Probe API Documentation API Reference
This API provides access to our global measurement network
Each API call needs to have an API key. To get a trial access to our API, please sign up here.
Best way to start using our API is to follow our Quickstart tutorial
Two-request data query model
All of the methods which execute measurements on your behalf follow two-request API model. In Start method (e..g StartPingTest) you specify test parameters which control what should be tested and how. In Get methods (e.g. GetPingResults) you retrieve the results based on testID you were returned from Start method.
Flexible data output
Probe API allows to return many properties of the test as well as the information about the probe itself. To save bandwidth we output only properties that you ask for. You can explicitly define what information you would like to get back by specifying list of properties as a list in ProbeInfoProperties
Date-time format
We use Unix Epoch time to display all datetime properties in the API response. Here is handy online tool for converting back/forth from human readable format.
Encoding
All input parameters/variables should be encoded in UTF8.
API Quota usage
You can use this page to see API usage per day. By clicking on the rows on the page you can also see break down by Test type and used bandwidth. Alternatively, you can check your API usage stats using Helper method /GetUsageStats.
API usage is updated in realtime.
API Endpoint
https://kong.speedcheckerapi.com:8443/ProbeAPIv2
Schemes: http, https
Version: 2.3.0
Authentication
apikey
Ping
Methods related to running Ping test.
POST /StartPingTest
Starts PING method using ICMP or TCP from selected sources to selected destinations
settings defining the test parameters
Request Example
{
"testSettings": {
"PingType": "icmp",
"BufferSize": 32,
"Count": 3,
"Fragment": 1,
"Ipv4only": 0,
"Ipv6only": 0,
"Resolve": 0,
"Sleep": 1000,
"Ttl": 128,
"Timeout": 1000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetPingResults
Retrieves results of ping test with particular testID (which was retrieved using StartPingTest method).
ID of the test
OK
Response Example (200 OK)
{
"PingTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "Router",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"IP": "8.8.8.8",
"PingArray": [
"22",
"22",
"22"
],
"PingTime": 22,
"Status": "OK"
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
Pageload
Methods related to running Pageload test.
POST /StartPageLoadTest
Starts page load test from selected sources to selected destinations. Webpage must load within 60 seconds otherwise timeout event will occur and not all performance metrics be available.
settings defining the test parameters
Request Example
{
"testSettings": {
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetPageLoadResults
Retrieves results of page load test with particular testID (which was retrieved using StartPageLoadTest method).
ID of the test
OK
Response Example (200 OK)
{
"PageLoadTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"DNSLookupTime": 0,
"Destination": "http://www.google.com",
"HTTPStatus": "200",
"InitialConnection": 133,
"NumberOfRequests": 14,
"PageLoadTime": 3030,
"SSLNegotiationTime": 0,
"TTFB": 1268,
"TotalDownloadedBytes": 358439
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
DIG
Methods related to running DIG test.
POST /StartDigTest
Starts DIG test from selected sources to selected destinations. DNS query is using user’s DNS server as the DNS Resolver server and returns the “Query time” in milliseconds. Query type: A. Query class: IN. Cache:0. Recurse:0. Protocol:UDP. Tries:1. Time:2.
settings defining the test parameters
Request Example
{
"testSettings": {
"Cache": 0,
"QClass": "IN",
"QType": "A",
"Recurse": 0,
"Retries": 0,
"Server": "",
"Tcp": 0,
"Time": 2000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetDigResults
Retrieves results of DIG test with particular testID (which was retrieved using StartDigTest method).
ID of the test
OK
Response Example (200 OK)
{
"DigTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"QueryTime": "3",
"Status": "NoError"
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
HTTP
Methods related to running HTTP tests.
POST /StartHttpGetTest (deprecated)
Starts Http GET test from selected sources to selected destinations.
settings defining the test parameters
Request Example
{
"testSettings": {
"MaxBytes": 10485760,
"Timeout": 2000,
"UserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetHttpGetResults (deprecated)
Retrieves results of Http GET test with particular testID (which was retrieved using StartHttpGetTest method).
ID of the test
OK
Response Example (200 OK)
{
"HttpGetTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
POST /StartHttpTest
Starts Http test (HEAD,GET or POST) from selected sources to selected destinations.
settings defining the test parameters
Request Example
{
"testSettings": {
"Method": "GET",
"MaxBytes": 10485760,
"Timeout": 2000,
"Headers": [
"content-type: application/json",
"apikey: 1234556-1975-1978-9876-abcdefghjj"
],
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
},
{
"Platform": "Android"
},
{
"MinimumVersion": "3.5.0"
}
],
"Destinations": [
"http://httpbin.org/headers"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetHttpResults
Retrieves results of Http test with particular testID (which was retrieved using StartHttpTest method).
ID of the test
OK
Response Example (200 OK)
{
"HttpTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
VideoTest
Methods related to running Video test.
POST /StartVideoTest
Starts Video test from selected sources to selected destinations. At the moment maximum video length is 15 seconds and only supported platform is Youtube. If longer video is supplied, only first 15 seconds are played (performance metrics should be available in the response if timeout occurs). Some Video IDs (specified in VideoURL querystring) cannot report video speed - e.g ozv4q2ov3Mk , you will notice videoDownloadSpeed=-1 (if you specify it in the TestResultProperties) . This is because some videos have restrictions on playback (this particular ID is from VEVO and they imposed some restrictions on Youtube playback). Other metrics are fine for this video ID, but if you want to get videodownloadspeed, you need to pick different videoID
settings defining the test parameters
Request Example
{
"testSettings": {
"VideoUrl": "http://pcsucdn.com/YoutubeVideoTest.html?v=F4vEyqPcfqk",
"VideoControlScript": "Youtube4.js",
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
],
"TestResultProperties": [
"VideoDownloadSpeed"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetVideoResults
Retrieves results of Video test with particular testID (which was retrieved using StartHttpGetTest method).
ID of the test
OK
Response Example (200 OK)
{
"VideoTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"VideoID": "string",
"VideoResolution": "string",
"VideoHostname": "string",
"InitialBufferingLatency": "number",
"RebufferingTimes": "number",
"DurationOfEachRebuffering": "number",
"VideoPlayDuration": "number",
"VideoDownloadSpeed": "number",
"VideoPlayFinishEvent": "string",
"TestDateTime": "string (date-time)",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
Traceroute
Methods related to running Traceroute test.
POST /StartTracertTest
Starts Traceroute test from selected sources to selected destinations.
settings defining the test parameters
Request Example
{
"testSettings": {
"BufferSize": 32,
"Count": 3,
"Fragment": 1,
"Ipv4only": 0,
"Ipv6only": 0,
"MaxFailedHops": 0,
"Resolve": 1,
"Sleep": 300,
"Ttl": 128,
"TtlStart": 1,
"Timeout": 60000,
"HopTimeout": 1000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GET /GetTracertResults
Retrieves results of Traceroute test with particular testID (which was retrieved using StartHttpGetTest method).
ID of the test
OK
Response Example (200 OK)
{
"TracerouteTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"Tracert": [
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "gv-rc0011-cr101-ae101-0.core.as9143.net",
"IP": "213.51.174.209",
"PingTimeArray": [
"14",
"11",
"15"
]
},
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "nl-ams14a-ri1-ae8-0.aorta.net",
"IP": "84.116.135.38",
"PingTimeArray": [
"12",
"20",
"13"
]
},
{
"HostName": "",
"IP": "74.125.146.228",
"PingTimeArray": [
"11",
"11",
"12"
]
},
{
"HostName": "",
"IP": "108.170.241.129",
"PingTimeArray": [
"14",
"10",
"16"
]
},
{
"HostName": "",
"IP": "209.85.244.55",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"PingTimeArray": [
"14",
"11",
"13"
]
}
]
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
Helper
Helper methods such as getting probe information, usage stats and more.
POST /GetNewProbes
Get newly logged in probes based on given criteria
criteria on the basis of which probes are selected
Request Example
{
"criteria": {
"FromXMinutes": 5,
"Sources": [
{
"CountryCode": "PL"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"GetProbesResult": {
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Probes": [
{
"ASN": 5617,
"CityName": "Gliwice",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "82.163.143.15",
"GeolocationAccuracy": 10000,
"IPAddress": "83.26.232.236",
"Latitude": 50.1908,
"Longitude": 18.4508,
"Network": "Orange Polska",
"NetworkID": 305,
"Platform": "PC",
"ProbeID": "c8c27774-e188-4625-82db-eb34c54a3841",
"Version": "1.0.44.0"
},
{
"ASN": 39603,
"CityName": "Warsaw",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "185.89.185.1",
"GeolocationAccuracy": 177,
"IPAddress": "94.254.231.151",
"Latitude": 52.238763,
"Longitude": 21.114586,
"Network": "Play",
"NetworkID": 454,
"Platform": "PC",
"ProbeID": "0f69bf53-2479-48b7-95f6-a4c6a83bc531",
"Version": "1.0.44.0"
}
]
}
}
GET /GetCountries (deprecated)
Get List of countries
OK
Response Example (200 OK)
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Countries": [
{
"CountryCode": "FR",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/fr.png",
"CountryName": "",
"ProbesCount": 624
},
{
"CountryCode": "DE",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/de.png",
"CountryName": "",
"ProbesCount": 1231
},
{
"CountryCode": "US",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/us.png",
"CountryName": "",
"ProbesCount": 3413
},
{
"CountryCode": "AU",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/au.png",
"CountryName": "",
"ProbesCount": 431
}
]
}
GET /GetNetworks (deprecated)
Get List of networks
Country from which Networks are taken, if null all networks are returned
OK
Response Example (200 OK)
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Networks": [
{
"CountryCode": null,
"LogoURL": null,
"NetworkID": "352",
"NetworkName": "Servei de Telecomunicacions d'Andorra"
}
]
}
POST /GetProbes
Get probes based on given criteria
criteria on the basis of which probes are selected
Request Example
{
"criteria": {
"Sources": [
{
"CountryCode": "PL"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
OK
Response Example (200 OK)
{
"GetProbesResult": {
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Probes": [
{
"ASN": 5617,
"CityName": "Gliwice",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "82.163.143.15",
"GeolocationAccuracy": 10000,
"IPAddress": "83.26.232.236",
"Latitude": 50.1908,
"Longitude": 18.4508,
"Network": "Orange Polska",
"NetworkID": 305,
"Platform": "PC",
"ProbeID": "c8c27774-e188-4625-82db-eb34c54a3841",
"Version": "1.0.44.0"
},
{
"ASN": 39603,
"CityName": "Warsaw",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "185.89.185.1",
"GeolocationAccuracy": 177,
"IPAddress": "94.254.231.151",
"Latitude": 52.238763,
"Longitude": 21.114586,
"Network": "Play",
"NetworkID": 454,
"Platform": "PC",
"ProbeID": "0f69bf53-2479-48b7-95f6-a4c6a83bc531",
"Version": "1.0.44.0"
}
]
}
}
GET /GetCities (deprecated)
Get List of cities for a given country which have online probes at the moment.
Specify countryCode to retrieve list of cities which are located in corresponding Country.
OK
Response Example (200 OK)
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Cities": [
{
"CityName": "La Massana",
"CountryCode": "AD",
"ProbesCount": 1
}
]
}
GET /GetUsageStats
Method to query your used test quota and bandwidth in realtime. If you do not put start/end dates, you will get usage quota for today. Bandwidth is in Bytes.
(Optional) Specify starting date to retrieve the stats from. Format: YYYY-MM-DD , e.g. 2017-05-20
(Optional) Specify ending date to retrieve the stats to. Format: YYYY-MM-DD , e.g. 2017-05-20
OK
Response Example (200 OK)
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Stats retreived"
},
"usageStats": [
{
"Date": "/Date(1510931862112)/",
"NumberOfTests": 264,
"TestType": "PageLoad",
"UsedBandwidth": 1563461720
},
{
"Date": "/Date(1510931863520)/",
"NumberOfTests": 3706,
"TestType": "Ping",
"UsedBandwidth": 1333800
},
{
"Date": "/Date(1510931858559)/",
"NumberOfTests": 165326,
"TestType": "Traceroute",
"UsedBandwidth": 823469520
}
]
}
Schema Definitions
Source: object
- ProbeID: string
-
ID of the probe
- IPAddress: string
-
IP of the probe
- CountryCode: string
-
Country code to target
- ASN: number
-
ASN to target
- NetworkID: number
-
NetworkID to target. To get NetworkID, call GetNetworks endpoint.
- CityName: string
-
City to target. To get list of Cities available, call GetCities endpoint.
- BoundingBox: BoundingBox
- GeolocationPrecision: number
-
Specify to target only probes with higher geolocation accuracy (in meters). e.g. putting 5000 will mean only probes geolocated with 5km accuracy or better will be considered.
- Platform: string
-
Supported 'PC' to target desktop devices and 'Android' to target Android probes
- MinimumVersion: string
-
Minimum version of the probe to target. If not entered then for PC platform it is 1.0.40.0. For Android it is 3.0.0.0. For Router 1.1.
Example
{
"ProbeID": "10dc545f-6d4f-4b60-a4d6-756c7e85eb69",
"IPAddress": "213.23.12.87",
"CountryCode": "US",
"ASN": 7018,
"CityName": "Dayton",
"GeolocationPrecision": 5000,
"NetworkID": 618,
"Platform": "PC",
"MinimumVersion": "1.0.44.0"
}
BoundingBox: object
Rectangle area defined by minimum and maximum latitudes and longitudes.
- MinLatitude: number
- MaxLatitude: number
- MinLongitude: number
- MaxLongitude: number
Example
{
"MinLatitude": 51.21610667738272,
"MaxLatitude": 51.64420417946697,
"MinLongitude": -0.82672119140625,
"MaxLongitude": 0.73883056640625
}
PingTestSettings: object
- PingType: string
-
specify whether to send ICMP ("icmp") or TCP packets ("tcp")
- BufferSize: number
-
Size of the packet data (default 32, max 65500)
- Count: number
-
Number of pings to run (default 3, max 100). If number of pings is changed, timeout parameter should be changed as well to ensure probe has time to execute all pings
- Fragment: number
-
allow fragmentation of sending packets (default 1)
- Ipv4only: number
-
Force using IPv4. If no IPv4 IP address is returned will return error (default 0)
- Ipv6only: number
-
Force using IPv6. If no IPv6 IP address is returned will return error (default 0)
- Resolve: number
-
resolveIP address to domain name (default 0)
- Sleep: number
-
sleep time between pings as executed on one probe in milliseconds (default 1000ms, max 5000ms)
- Ttl: number
-
Max allowed hops for packet (default 128, max 255)
- Timeout: number
-
Ping timeout in milliseconds that one ping can take (default 1000ms, max 5000ms)
- TestCount: number
-
how many probes will be used for testing (for each source)
- Sources: Source
- Destinations: string[]
-
List of destinations for testing (e.g. hostnames or IPs)
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of PingTestResult which API should respond. By default we respond with Status, Destination, IP, PingTime, PingArray, TestDateTime. Rest of the properties need to be specified
Example
{
"testSettings": {
"PingType": "icmp",
"BufferSize": 32,
"Count": 3,
"Fragment": 1,
"Ipv4only": 0,
"Ipv6only": 0,
"Resolve": 0,
"Sleep": 1000,
"Ttl": 128,
"Timeout": 1000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
PingTestResponse: object
- PingTestResults: PingTestResult
- ResponseStatus: ResponseStatus
Example
{
"PingTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "Router",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"IP": "8.8.8.8",
"PingArray": [
"22",
"22",
"22"
],
"PingTime": 22,
"Status": "OK"
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
PingTestResult: object
- ProbeInfo: ProbeInfo
- Status: string
- Destination: string
-
Destination that was specified in StartPingTest API request
- HostName: string
-
Destination Hostname resolved from IP
- IP: string
-
Destination IP
- PingTime: number
-
Average ping latency in milliseconds from results in PingArray
- PingArray: number[]
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "Router",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"IP": "8.8.8.8",
"PingArray": [
"22",
"22",
"22"
],
"PingTime": 22,
"Status": "OK"
}
CountryProbe: object
- CountryCode: string
- CountryName: string
- ProbesCount: number
-
Number of probes in the country at the time of API call.
Example
{
"CountryCode": "US",
"CountryName": "United States",
"ProbesCount": 5232
}
CityProbe: object
- CountryCode: string
- CityName: string
- ProbesCount: number
-
Number of probes in the City at the time of API call.
Example
{
"CountryCode": "US",
"CityName": "Denver",
"ProbesCount": 15
}
UsageStat: object
- Date: string (date-time)
- TestType: string
- NumberOfTests: number
-
Number of measurements of given test type executed on given date.
- UsedBandwidth: number
-
Bandwidth consumed by measurements of given test type executed on given date.
Example
{
"Date": "/Date(1510931862112)/",
"NumberOfTests": 264,
"TestType": "PageLoad",
"UsedBandwidth": 1563461720
}
ProbeInfo: object
- ProbeID: string
-
ID of the probe
- IPAddress: string
-
IP of the probe
- Latitude: number
- Longitude: number
- GeolocationAccuracy: number
-
in meters
- ASN: number
- Network: string
-
ISP Organization
- NetworkID: number
- CountryCode: string
-
In ISO format, e.g. US for United States
- CityName: string
- CountryName: string
- DNSResolver: string
-
IP address of the DNS resolver used by the probe.
- ConnectionType: string
-
Internet connection type (e.g. wifi, lan, mobile)
- Platform: string
-
Platform of the probe (e.g. desktop, android, router)
- Screensize: string
-
Screen size of the probe (applicable for desktop and android)
Example
{
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
}
PageLoadTestSettings: object
- TestCount: number
-
how many probes will be used for testing (for each source)
- Sources: Source
- Destinations: string[]
-
List of URLs for testing (inc. http or https)
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of PageLoadTestResult which API should respond. By default we respond with HTTPStatus, Destination, InitialConnection, DNSLookupTime, PageLoadTime, TTFB, SSLNegotiationTime, TotalDownloadedBytes, NumberOfRequests, TestDateTime. Rest of the properties need to be specified
Example
{
"testSettings": {
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
PageLoadTestResponse: object
- PageLoadTestResults: PageLoadTestResult
- ResponseStatus: ResponseStatus
Example
{
"PageLoadTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"DNSLookupTime": 0,
"Destination": "http://www.google.com",
"HTTPStatus": "200",
"InitialConnection": 133,
"NumberOfRequests": 14,
"PageLoadTime": 3030,
"SSLNegotiationTime": 0,
"TTFB": 1268,
"TotalDownloadedBytes": 358439
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
PageLoadTestResult: object
- ProbeInfo: ProbeInfo
- HTTPStatus: string
- Destination: string
- DNSLookupTime: number
- InitialConnection: number
- SSLNegotiationTime: number
- TTFB: number
- PageLoadTime: number
- TotalDownloadedBytes: number
-
All downloaded bytes by the web browser from the destination URL (inc. any sub requests)
- NumberOfRequests: number
-
Number of sub requests done by the web browser while loading the webpage
- HARFile: string
-
Base64 encoded and GZIPped HAR file of the webpage request by the browser. To get the content you need to decode using Base64 then unzip using GZIP. ( https://dvcs.w3.org/hg/webperf/raw-file/tip/specs/HAR/Overview.html). For some metrics in HAR file, value '-1' means that we don't have this value available, unfortunately the browser component doesn't give us all the information at the moment that we would need to construct HAR file with all information.
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"DNSLookupTime": 0,
"Destination": "http://www.google.com",
"HTTPStatus": "200",
"InitialConnection": 133,
"NumberOfRequests": 14,
"PageLoadTime": 3030,
"SSLNegotiationTime": 0,
"TTFB": 1268,
"TotalDownloadedBytes": 358439
}
DigTestSettings: object
- Cache: number
-
Cache result in local cache, e.g. 0 means don’t cache results (default 0)
- QClass: string
-
Query class (default IN)
- QType: string
-
Query type (default A)
- Recurse: number
-
Set Recursion Desired flag (default 0)
- Retries: number
-
Total number of retries (default 0)
- Server: string
-
DNS server to use as a resolver, e.g. 8.8.8.8 (default, empty string, uses local DNS setting)
- Tcp: number
-
Use tcp as a transport, e.g. 0 means use UDP, 1 means use TCP, both use port 53 (default 0)
- Time: number
-
Maximum time available to probes for testing in milliseconds (default 2000ms)
- TestCount: number
-
how many probes will be used for testing (for each source)
- Sources: Source
- Destinations: string[]
-
List of destinations for testing (e.g. hostnames or URLs)
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of DigTestResult which API should respond. By default we respond with Status, Destination, QueryTime, TestDateTime. Rest of the properties need to be specified
Example
{
"testSettings": {
"Cache": 0,
"QClass": "IN",
"QType": "A",
"Recurse": 0,
"Retries": 0,
"Server": "",
"Tcp": 0,
"Time": 2000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
DigTestResponse: object
- DigTestResults: DigTestResult
- ResponseStatus: ResponseStatus
Example
{
"DigTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"QueryTime": "3",
"Status": "NoError"
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
DigTestResult: object
- ProbeInfo: ProbeInfo
- Status: string
- Destination: string
- QueryTime: number
- QueryText: string
-
Full DNS DIG output
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"QueryTime": "3",
"Status": "NoError"
}
HttpGetTestSettings: object
- MaxBytes: number
-
Max bytes to download from response stream. By default 10485760 bytes (10MB) are downloaded. Each platform has slightly different way of handling MaxBytes, PC platform - If you request Headers or Body contents in HttpGetTestProperties object then 102400 bytes (100kB) will be downloaded. (Total size of body<100kB), Android platform - If you request Headers or Body contents in HttpGetTestProperties object then 102400 bytes (100kB) will be downloaded. (Total size of body<100kB). Please note that downloadedBytes may be up to 8kB larger than MaxBytes in some cases., Router platform - If you request Headers or Body contents in HttpGetTestProperties object then 51200 bytes (50kB) will be downloaded. (Total size of body+headers<50kB)
- Timeout: number
-
Maximum time available to probes for testing in milliseconds (default 2000ms, maximum 60000ms). Timeout and Maxbytes settings are related. If Timeout is too small, not all bytes may be downloaded.
- TestCount: number
-
how many probes will be used for testing (for each source)
- UserAgent: string
-
Set request's User-Agent header.
- Sources: Source
- Destinations: string[]
-
List of destinations for testing (inc. http or https prefix)
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of HttpGetResult which API should respond. By default we respond with Status, ContentLength, Destination, DownloadedBytes, TimeToFirstByte, TotalTime, TestDateTime. Rest of the properties need to be specified
Example
{
"testSettings": {
"MaxBytes": 10485760,
"Timeout": 2000,
"UserAgent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0",
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
HttpTestSettings: object
- Method: string
-
GET/POST/HEAD . POST and HEAD supported only on Android platform and minimumVersion 3.5.0
- MaxBytes: number
-
Max bytes to download from response stream. By default 10485760 bytes (10MB) are downloaded. Each platform has slightly different way of handling MaxBytes, PC platform - If you request Headers or Body contents in HttpTestProperties object then 102400 bytes (100kB) will be downloaded. (Total size of body<100kB), Android platform - If you request Headers or Body contents in HttpTestProperties object then 102400 bytes (100kB) will be downloaded. (Total size of body<100kB). Please note that downloadedBytes may be up to 8kB larger than MaxBytes in some cases., Router platform - If you request Headers or Body contents in HttpTestProperties object then 51200 bytes (50kB) will be downloaded. (Total size of body+headers<50kB)
- Timeout: number
-
Maximum time available to probes for testing in milliseconds (default 2000ms, maximum 60000ms). Timeout and Maxbytes settings are related. If Timeout is too small, not all bytes may be downloaded.
- TestCount: number
-
how many probes will be used for testing (for each source)
- Sources: Source
- Destinations: string[]
-
List of destinations for testing (inc. http or https prefix)
- Headers: string[]
-
List of http headers to pass to the destination (use BinaryHeaders instead if you want to pass special characters or binary content).This is supported only on Android platform and minimumVersion 3.5.0
- Body: string
-
Escaped body in clear text (use BinaryBody instead if you want to pass special characters or binary content). Applicable only to HTTP POST.This is supported only on Android platform and minimumVersion 3.5.0
- BinaryHeaders: string[]
-
List of http headers to pass to the destination. The headers should be first ZIPped and then encoded using Base64.This is supported only on Android platform and minimumVersion 3.5.0
- BinaryBody: string
-
Body of the HTTP POST request. The headers should be first ZIPped and then encoded using Base64.This is supported only on Android platform and minimumVersion 3.5.0
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of HttpResult which API should respond. By default we respond with Status, ContentLength, Destination, DownloadedBytes, TimeToFirstByte, TotalTime, TestDateTime. Rest of the properties need to be specified
Example
{
"testSettings": {
"Method": "GET",
"MaxBytes": 10485760,
"Timeout": 2000,
"Headers": [
"content-type: application/json",
"apikey: 1234556-1975-1978-9876-abcdefghjj"
],
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
},
{
"Platform": "Android"
},
{
"MinimumVersion": "3.5.0"
}
],
"Destinations": [
"http://httpbin.org/headers"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
HttpGetTestResponse: object
- HttpGetTestResults: HttpGetTestResult
- ResponseStatus: ResponseStatus
Example
{
"HttpGetTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
HttpTestResponse: object
- HttpTestResults: HttpTestResult
- ResponseStatus: ResponseStatus
Example
{
"HttpTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
HttpGetTestResult: object
- ProbeInfo: ProbeInfo
- Status: string
-
HTTP status code
- ContentLength: number
- Destination: string
- DownloadedBytes: number
-
Number of bytes downloaded from the destination url. This number is influenced by the MaxBytes parameter.
- TimeToFirstByte: number
- TotalTime: number
-
Time in milliseconds that took to retrieve all DownloadedBytes, inc. any initialization requests.
- ConnectTime: number
-
TCP Connect Time in milliseconds. This can be measured only for HTTP endpoints and needs to be specified in TestResultProperties
- Headers: string
-
Contains headers from HTTP GET response. This parameter will be empty unless you specify 'Headers' in HttpGetTestProperties object in call to /StartHttpGetTest. Output encoded using Base64 and zipped using GZIP. To get the QueryText you need to decode using Base64 then unzip using GZIP.
- Body: string
-
Contains body from HTTP GET response. This parameter will be empty unless you specify 'Body' in HttpGetTestProperties object in call to /StartHttpGetTest. Output encoded using Base64 and zipped using GZIP. To get the QueryText you need to decode using Base64 then unzip using GZIP.
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
HttpTestResult: object
- ProbeInfo: ProbeInfo
- Status: string
-
HTTP status code
- ContentLength: number
- Destination: string
- DownloadedBytes: number
-
Number of bytes downloaded from the destination url. This number is influenced by the MaxBytes parameter.
- TimeToFirstByte: number
- TotalTime: number
-
Time in milliseconds that took to retrieve all DownloadedBytes, inc. any initialization requests.
- ConnectTime: number
-
TCP Connect Time in milliseconds. This can be measured only for HTTP endpoints and needs to be specified in TestResultProperties
- Headers: string
-
Contains headers from HTTP response in clear text. This parameter will be empty unless you specify 'Headers' in HttpTestProperties object in call to /StartHttpTest.
- Body: string
-
Contains body from HTTP response in clear text. This parameter will be empty unless you specify 'Body' in HttpTestProperties object in call to /StartHttpTest.
- BinaryHeaders: string
-
Contains headers from HTTP response. This parameter will be empty unless you specify 'BinaryHeaders' in HttpTestProperties object in call to /StartHttpTest. Output encoded using Base64 and zipped using GZIP. To get the QueryText you need to decode using Base64 then unzip using GZIP.
- BinaryBody: string
-
Contains body from HTTP response. This parameter will be empty unless you specify 'BinaryBody' in HttpTestProperties object in call to /StartHttpTest. Output encoded using Base64 and zipped using GZIP. To get the body you need to decode using Base64 then unzip using GZIP.
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"ContentLength": -1,
"Destination": "http://www.google.com",
"DownloadedBytes": 102,
"Status": "200",
"TimeToFirstByte": 105,
"TotalTime": 105
}
VideoTestSettings: object
- TestCount: number
-
how many probes will be used for testing (for each source)
- Sources: Source
- VideoUrl: string
-
VideoUrl. For Youtube its recomended to set http://pcsucdn.com/YoutubeVideoTest2.html?v=Bw9zSMsKcwk. Success ratio of completed test relies heavily on chosen videoID (e.g. Bw9zSMsKcwk). VideoUrl can be also used to specify desired Video Quality using pw,ph and pq parameters e.g. http://pcsucdn.com/YoutubeVideoTest2.html?v=Bw9zSMsKcwk&pw=640&ph=360&pq=medium . For all available modes, look at following Youtube documentation: https://developers.google.com/youtube/iframe_api_reference#Playback_quality
- VideoControlScript: string
-
jsVideoControlUrl. For Youtube its recommended to set Youtube-Empty.js
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of VideoTestResult which API should respond. By default we respond with VideoID, VideoResolution, VideoHostname, InitialBufferingStartupLatency, RebufferingTimes, DurationOfEachRebuffering, VideoPlayDuration, VideoPlayFinishEvent, TestDateTime. You can optionaly specify VideoDownloadSpeed
Example
{
"testSettings": {
"VideoUrl": "http://pcsucdn.com/YoutubeVideoTest.html?v=F4vEyqPcfqk",
"VideoControlScript": "Youtube4.js",
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
],
"TestResultProperties": [
"VideoDownloadSpeed"
]
}
}
VideoTestResponse: object
- VideoTestResults: VideoTestResult
- ResponseStatus: ResponseStatus
Example
{
"VideoTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"VideoID": "string",
"VideoResolution": "string",
"VideoHostname": "string",
"InitialBufferingLatency": "number",
"RebufferingTimes": "number",
"DurationOfEachRebuffering": "number",
"VideoPlayDuration": "number",
"VideoDownloadSpeed": "number",
"VideoPlayFinishEvent": "string",
"TestDateTime": "string (date-time)",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
VideoTestResult: object
- ProbeInfo: ProbeInfo
- VideoID: string
- VideoResolution: string
- VideoHostname: string
- InitialBufferingLatency: number
- RebufferingTimes: number
- DurationOfEachRebuffering: number
- VideoPlayDuration: number
- VideoDownloadSpeed: number
-
Specified in kbps. You need to specify in TestResultProperties to have this available in results. Despite that, not all results have videoDownloadSpeed, that metric is taken by loading additional page from Youtube and that not always works. If results are missing for particular video result, then videoDownloadSpeed is missing from the list of properties.
- VideoPlayFinishEvent: string
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"VideoID": "string",
"VideoResolution": "string",
"VideoHostname": "string",
"InitialBufferingLatency": "number",
"RebufferingTimes": "number",
"DurationOfEachRebuffering": "number",
"VideoPlayDuration": "number",
"VideoDownloadSpeed": "number",
"VideoPlayFinishEvent": "string",
"TestDateTime": "string (date-time)",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
TracerouteTestSettings: object
- BufferSize: number
-
Size of the packet data (default 32, max 65500)
- Count: number
-
Number of pings to each hop (default 3, maximum 10)
- Fragment: number
-
allow fragmentation of sending packets (default 1)
- Ipv4only: number
-
Force using IPv4. If no IPv4 IP address is returned will return error (default 0)
- Ipv6only: number
-
Force using IPv6. If no IPv6 IP address is returned will return error (default 0)
- MaxFailedHops: number
-
Stop the command execution after maximum errors in a row (e.g. stop after 5 ping timeouts, default 0)
- Resolve: number
-
IP addresses will be resolved to domain names for each hop (default 1)
- Sleep: number
-
Sleep between pings as executed on one probe in milliseconds (default 300ms, max 5000ms)
- Ttl: number
-
Max number of hops (default 32). If you specify more than 255, then it will default to 128.
- TtlStart: number
-
First Hop from which the trace route should start (default 1)
- TestCount: number
-
how many probes will be used for testing (for each source)
- Timeout: number
-
Maximum time available to probes for testing in milliseconds (default 60000ms).
- HopTimeout: number
-
Ping timeout in milliseconds that one ping can take in one hop (default 1000ms, max 5000ms).
- Sources: Source
- Destinations: string[]
-
List of destinations for testing (e.g. hostnames or IPs)
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
- TestResultProperties: string[]
-
List of properties of TracerouteTestResult which API should respond. By default we respond with Destination, HostName, IP, Tracert, TestDateTime.
Example
{
"testSettings": {
"BufferSize": 32,
"Count": 3,
"Fragment": 1,
"Ipv4only": 0,
"Ipv6only": 0,
"MaxFailedHops": 0,
"Resolve": 1,
"Sleep": 300,
"Ttl": 128,
"TtlStart": 1,
"Timeout": 60000,
"HopTimeout": 1000,
"TestCount": 10,
"Sources": [
{
"CountryCode": "US"
}
],
"Destinations": [
"www.google.com"
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
TracerouteTestResponse: object
- TracerouteTestResults: TracerouteTestResult
- ResponseStatus: ResponseStatus
Example
{
"TracerouteTestResults": [
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"Tracert": [
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "gv-rc0011-cr101-ae101-0.core.as9143.net",
"IP": "213.51.174.209",
"PingTimeArray": [
"14",
"11",
"15"
]
},
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "nl-ams14a-ri1-ae8-0.aorta.net",
"IP": "84.116.135.38",
"PingTimeArray": [
"12",
"20",
"13"
]
},
{
"HostName": "",
"IP": "74.125.146.228",
"PingTimeArray": [
"11",
"11",
"12"
]
},
{
"HostName": "",
"IP": "108.170.241.129",
"PingTimeArray": [
"14",
"10",
"16"
]
},
{
"HostName": "",
"IP": "209.85.244.55",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"PingTimeArray": [
"14",
"11",
"13"
]
}
]
}
],
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "OK"
}
}
TracertData: object
- HostName: string
-
resolved hostname of the particular hop
- IP: string
-
IP address of particular hop
- PingTimeArray: number[]
Example
{
"HostName": "string",
"IP": "string",
"PingTimeArray": [
"number"
]
}
TracerouteTestResult: object
- ProbeInfo: ProbeInfo
- Destination: string
-
Destination as entered into StartTracert API call
- HostName: string
-
Resolved hostname of the destination
- IP: string
-
IP address of the destination
- Tracert: TracertData
- TestDateTime: string (date-time)
- TestStatus: ResponseStatus
Example
{
"ProbeInfo": {
"ASN": 9600,
"CityName": "Tokyo",
"ConnectionType": "fiber",
"CountryCode": "JP",
"DNSResolver": "",
"GeolocationAccuracy": 10000,
"IPAddress": "211.9.53.171",
"Latitude": 34.6551456,
"Longitude": 133.9195019,
"Network": "So-net Corporation",
"Platform": "PC",
"ProbeID": "1097c070-29d5-4fba-959a-b07f73e3a17b",
"Version": "1.1"
},
"TestDateTime": "/Date(1510927973085+0000)/",
"TestStatus": {
"StatusCode": "200",
"StatusText": "OK"
},
"Destination": "8.8.8.8",
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"Tracert": [
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "gv-rc0011-cr101-ae101-0.core.as9143.net",
"IP": "213.51.174.209",
"PingTimeArray": [
"14",
"11",
"15"
]
},
{
"HostName": "",
"IP": "",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "nl-ams14a-ri1-ae8-0.aorta.net",
"IP": "84.116.135.38",
"PingTimeArray": [
"12",
"20",
"13"
]
},
{
"HostName": "",
"IP": "74.125.146.228",
"PingTimeArray": [
"11",
"11",
"12"
]
},
{
"HostName": "",
"IP": "108.170.241.129",
"PingTimeArray": [
"14",
"10",
"16"
]
},
{
"HostName": "",
"IP": "209.85.244.55",
"PingTimeArray": [
null,
null,
null
]
},
{
"HostName": "google-public-dns-a.google.com",
"IP": "8.8.8.8",
"PingTimeArray": [
"14",
"11",
"13"
]
}
]
}
ResponseStatus: object
- StatusCode: string
- StatusText: string
Example
{
"StatusCode": "200",
"StatusText": "OK"
}
GetProbesSettings: object
- Sources: Source
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
Example
{
"criteria": {
"Sources": [
{
"CountryCode": "PL"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
GetNewProbesSettings: object
- FromXMinutes: number
-
Number of minutes to look back to find new probes. Default is 15 minutes
- Sources: Source
- ProbeInfoProperties: string[]
-
List of properties of ProbeInfo which API should respond. By default we respond with probeID. Rest of the properties need to be specified
Example
{
"criteria": {
"FromXMinutes": 5,
"Sources": [
{
"CountryCode": "PL"
}
],
"ProbeInfoProperties": [
"Latitude",
"Longitude",
"ProbeID",
"CountryCode",
"CityName"
]
}
}
StartTestResponse: object
- TestID: string
-
ID of the API Call Test. use that ID in GetResults calls to retrieve the measurement results.
- ResponseStatus: ResponseStatus
Example
{
"TestID": "4b4e9ffd-93b0-4156-ae37-1d2887c2c719",
"Status": {
"StatusCode": "200",
"StatusText": "OK"
}
}
GetProbesResponse: object
- Probes: ProbeInfo
- ResponseStatus: ResponseStatus
Example
{
"GetProbesResult": {
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Probes": [
{
"ASN": 5617,
"CityName": "Gliwice",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "82.163.143.15",
"GeolocationAccuracy": 10000,
"IPAddress": "83.26.232.236",
"Latitude": 50.1908,
"Longitude": 18.4508,
"Network": "Orange Polska",
"NetworkID": 305,
"Platform": "PC",
"ProbeID": "c8c27774-e188-4625-82db-eb34c54a3841",
"Version": "1.0.44.0"
},
{
"ASN": 39603,
"CityName": "Warsaw",
"ConnectionType": "Wireless80211",
"CountryCode": "PL",
"DNSResolver": "185.89.185.1",
"GeolocationAccuracy": 177,
"IPAddress": "94.254.231.151",
"Latitude": 52.238763,
"Longitude": 21.114586,
"Network": "Play",
"NetworkID": 454,
"Platform": "PC",
"ProbeID": "0f69bf53-2479-48b7-95f6-a4c6a83bc531",
"Version": "1.0.44.0"
}
]
}
}
GetCountriesResponse: object
- Countries: CountryProbe
- ResponseStatus: ResponseStatus
Example
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Countries": [
{
"CountryCode": "FR",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/fr.png",
"CountryName": "",
"ProbesCount": 624
},
{
"CountryCode": "DE",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/de.png",
"CountryName": "",
"ProbesCount": 1231
},
{
"CountryCode": "US",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/us.png",
"CountryName": "",
"ProbesCount": 3413
},
{
"CountryCode": "AU",
"CountryFlag": "http://bscapi.blob.core.windows.net/bsc-img-country-logos/au.png",
"CountryName": "",
"ProbesCount": 431
}
]
}
GetNetworksResponse: object
- Networks: Network
- ResponseStatus: ResponseStatus
Example
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Networks": [
{
"CountryCode": null,
"LogoURL": null,
"NetworkID": "352",
"NetworkName": "Servei de Telecomunicacions d'Andorra"
}
]
}
GetCitiesResponse: object
- Cities: CityProbe
- ResponseStatus: ResponseStatus
Example
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Test finished, you can retreive results now"
},
"Cities": [
{
"CityName": "La Massana",
"CountryCode": "AD",
"ProbesCount": 1
}
]
}
GetUsageStatsResponse: object
- usageStats: UsageStat
- ResponseStatus: ResponseStatus
Example
{
"ResponseStatus": {
"StatusCode": "200",
"StatusText": "Stats retreived"
},
"usageStats": [
{
"Date": "/Date(1510931862112)/",
"NumberOfTests": 264,
"TestType": "PageLoad",
"UsedBandwidth": 1563461720
},
{
"Date": "/Date(1510931863520)/",
"NumberOfTests": 3706,
"TestType": "Ping",
"UsedBandwidth": 1333800
},
{
"Date": "/Date(1510931858559)/",
"NumberOfTests": 165326,
"TestType": "Traceroute",
"UsedBandwidth": 823469520
}
]
}