Base address and authentication
The HTTP API lives under the following base path on your MyConnection Server:
https://yourserver.example.com/myspeed/api/v1/
Every request authenticates with an API key supplied in a standard bearer header:
Authorization: Bearer mcs_<keyId>_<secret>
Requests must use HTTPS (unless that requirement has been relaxed in the API settings), and must present a browser-style User-Agent that is permitted by the server's security settings.
Endpoints
| Endpoint | Purpose |
|---|---|
GET /api/v1/ping |
An authentication check. It confirms a key is valid and returns the owning user, and does not require the Publish Manager license. Use it to verify connectivity and credentials. |
GET /api/v1/data |
Returns test result data as JSON in a { meta, data } envelope. This is the main endpoint, and it requires the Publish Manager license. |
Request parameters
The data endpoint accepts the same selection parameters as the tabular database report:
| Parameter | Description |
|---|---|
plugins | The test types to return, for example voip, speed or route. Required. |
last / lastunits | A relative time window, for example the last 7 days. |
from / to | An explicit date range, used instead of a relative window. |
adv | Advanced filters, using the same bracket syntax as the report (see below). |
detaildata | Include per-test detail data as well as the summary records. |
by | Summarise the results by a time bucket rather than returning individual tests. |
offset / limit | Pagination controls (see below). |
Filtering
Result filtering, including filtering by IP address, is expressed through the adv parameter using the report's bracket syntax. For example, to return results for a single source address across all plugins:
adv=[gbl:ip=1.2.3.4]
Filters can be scoped to a plugin instead of all plugins, wildcards are supported, and string fields offer exact, contains and not-equal operators. There is no separate top-level ip parameter; IP filtering always rides the adv parameter.
Pagination
A single response returns at most the server's configured maximum page size. Use offset and limit to page through larger result sets. The meta section of each response reports the paging state:
| meta field | Meaning |
|---|---|
count | Total records matching the query. |
returned | Records included in this response. |
offset / limit | The paging position and size used. |
truncated | true when more records remain beyond this page. |
To retrieve everything, keep increasing offset by limit while truncated is true. Narrowing the time window is the most effective way to reduce the size of a large pull.
Example request
A minimal request for the last day of VoIP results from a single source IP:
curl -H "Authorization: Bearer mcs_ab12cd34ef56_..." \
-H "User-Agent: Mozilla/5.0" \
"https://yourserver.example.com/myspeed/api/v1/data?plugins=voip&last=1&lastunits=days&adv=[gbl:ip=1.2.3.4]"
The bracket characters in adv may need URL encoding depending on your client.
