Internet speed test
CoverageMap API

Speed test object

The speedTest object: crowdsourced latency, download and upload statistics near a location.

Request the speed-tests dataset to get real-world latency, download and upload statistics from speed tests run near the location, for each provider and technology. It is returned in the speedTest field of every coverage entry and costs 2 units per location. A location with no speed test data for any provider and technology is not billed for this dataset.

Example

One coverage entry from a request with "datasets": ["speed-tests"]:

Coverage entry
{
  "provider": { "code": "VZW", "name": "Verizon Wireless" },
  "technology": { "code": "lte", "name": "LTE" },
  "speedTest": {
    "latency": {
      "accuracy": "exact",
      "min": 18,
      "med": 24,
      "avg": 26.4,
      "max": 41,
      "count": 12,
      "failedCount": 1,
      "distance": 0.063,
      "halfKilometer": {
        "accuracy": "exact",
        "min": 18,
        "med": 24,
        "avg": 26.4,
        "max": 41,
        "count": 12,
        "failedCount": 1
      },
      "oneKilometer": {
        "accuracy": "exact",
        "min": 15,
        "med": 25,
        "avg": 27.9,
        "max": 58,
        "count": 34,
        "failedCount": 2
      },
      "twoKilometers": {
        "accuracy": "exact",
        "min": 15,
        "med": 26,
        "avg": 28.3,
        "max": 77,
        "count": 61,
        "failedCount": 4
      }
    },
    "downloadSpeed": {
      "accuracy": "exact",
      "min": 42.3,
      "med": 118.6,
      "avg": 121.9,
      "max": 214.2,
      "count": 12,
      "failedCount": 1,
      "distance": 0.063,
      "halfKilometer": {
        "accuracy": "exact",
        "min": 42.3,
        "med": 118.6,
        "avg": 121.9,
        "max": 214.2,
        "count": 12,
        "failedCount": 1
      },
      "oneKilometer": {
        "accuracy": "exact",
        "min": 27.8,
        "med": 104.1,
        "avg": 109.5,
        "max": 236.7,
        "count": 34,
        "failedCount": 2
      },
      "twoKilometers": {
        "accuracy": "exact",
        "min": 19.4,
        "med": 97.3,
        "avg": 103.8,
        "max": 289.1,
        "count": 61,
        "failedCount": 4
      }
    },
    "uploadSpeed": {
      "accuracy": "exact",
      "min": 6.1,
      "med": 17.4,
      "avg": 18.2,
      "max": 31.7,
      "count": 12,
      "failedCount": 1,
      "distance": 0.063,
      "halfKilometer": {
        "accuracy": "exact",
        "min": 6.1,
        "med": 17.4,
        "avg": 18.2,
        "max": 31.7,
        "count": 12,
        "failedCount": 1
      },
      "oneKilometer": {
        "accuracy": "exact",
        "min": 4.8,
        "med": 15.9,
        "avg": 16.7,
        "max": 34.2,
        "count": 34,
        "failedCount": 2
      },
      "twoKilometers": {
        "accuracy": "exact",
        "min": 3.2,
        "med": 14.6,
        "avg": 15.8,
        "max": 38.9,
        "count": 61,
        "failedCount": 4
      }
    }
  }
}

When there is no test, successful or failed, within 10 km for the provider and technology, the field is null:

No nearby tests
{
  "provider": { "code": "ATT", "name": "AT&T Mobility" },
  "technology": { "code": "5g", "name": "5GNR" },
  "speedTest": null
}

Attributes

The three metrics share one shape. Every statistic is rounded to two decimal places and distance to three.

latencyobject
Round trip latency in milliseconds.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
distancenumberNullable
Kilometres from the location to the centre of the closest tested area. Null when there is none within 10 km.
halfKilometerobject
Combined statistics for every tested area whose centre is within 0.5 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
oneKilometerobject
Combined statistics for every tested area whose centre is within 1 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
twoKilometersobject
Combined statistics for every tested area whose centre is within 2 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
downloadSpeedobject
Download speed in Mbps.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
distancenumberNullable
Kilometres from the location to the centre of the closest tested area. Null when there is none within 10 km.
halfKilometerobject
Combined statistics for every tested area whose centre is within 0.5 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
oneKilometerobject
Combined statistics for every tested area whose centre is within 1 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
twoKilometersobject
Combined statistics for every tested area whose centre is within 2 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
uploadSpeedobject
Upload speed in Mbps.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
distancenumberNullable
Kilometres from the location to the centre of the closest tested area. Null when there is none within 10 km.
halfKilometerobject
Combined statistics for every tested area whose centre is within 0.5 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
oneKilometerobject
Combined statistics for every tested area whose centre is within 1 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.
twoKilometersobject
Combined statistics for every tested area whose centre is within 2 km.
Show child attributes
accuracystring
How reliable the statistics are. At the top level it reflects how close the closest tested area is; inside a radius it reflects how many tests the radius holds, including failed ones.

Possible values: exact, high, medium, low, minimum, none

minnumberNullable
Lowest value across the successful tests. Null when there are none.
mednumberNullable
Median value.
avgnumberNullable
Average value.
maxnumberNullable
Highest value.
countinteger
Number of successful tests behind the values.
failedCountinteger
A count of failed tests. Failed tests are left out of the statistics.

Closest area and radii

The top level values of each metric describe the closest tested area: a 0.3 km square with at least one test, successful or failed. distance is how far away its centre is. When every test there failed, count is 0, the statistics are null and failedCount is positive. The halfKilometer, oneKilometer and twoKilometers objects combine every tested area whose centre is within that radius, so they pool more tests as the radius grows.

Radii without successful tests

A radius with no successful tests still has every field, with null statistics. Its failedCount can still be positive, which tells you people tried to test there and could not connect. Its accuracy then reflects those failed tests, so only a radius with no tests at all has none accuracy:

Radius with only failed tests
{
  "oneKilometer": {
    "accuracy": "low",
    "min": null,
    "med": null,
    "avg": null,
    "max": null,
    "count": 0,
    "failedCount": 3
  }
}

Notes

  • Tests come from the CoverageMap app, website and open source tools, and are updated continuously.
  • Failed tests are left out of the statistics so retries do not skew the medians. A location where tests keep failing shows a low count with a high failedCount.
  • When technologies are combined, the statistics pool the tests of every technology the provider has.
  • Speed tests are available for every country enabled on your subscription.