Developer & data tools

Network Speed Tester

Measure latency, jitter, download and upload speed between your browser and our server.

Round-trip times in milliseconds, separated by commas or spaces. The browser test fills this in.

ms
ms

Try an example: Example measurements (fibre-like) · No measurements yet (explains the test)

How it works

Runs in your browser: a series of small requests measures latency and jitter, then a random, incompressible download and an upload measure throughput to this server. Without JavaScript you can enter your own measurements (bytes and milliseconds) and get the same statistics.

  • Latency: the browser sends about 20 tiny no-store requests to /speedtest/ping one after another and times each round trip (the first, which may include connection setup, is discarded). Jitter is the mean absolute difference between consecutive samples.
  • Download: random bytes from /speedtest/download in growing sizes (up to 50 MB) until one transfer takes about 2 seconds; speed = bytes × 8 ÷ time, in megabits per second (10^6 bit/s). The payload is random, so compression cannot inflate the result.
  • Upload: random bytes generated in the browser are POSTed to /speedtest/upload, which discards them and reports how many arrived.
  • Everything runs between your browser and this one server in one region; results to other servers, CDNs or regions can differ a lot. Wi-Fi, VPNs, browser extensions and other traffic on your connection all affect the numbers.

Measures only the path between your device and our server (single region). Not an official broadband measurement.

Sources

For scripts and AI agents

  • JSON API: POST https://networkspeedtester.usefulweb.site/api/v1/calculate (same calculation as this page)
  • Interface description: OpenAPI 3.1 · AI guide: llms.txt
  • MCP server (Streamable HTTP): https://networkspeedtester.usefulweb.site/mcp · tool name network_speed_tester
Example request
curl -s -X POST https://networkspeedtester.usefulweb.site/api/v1/calculate \
  -H 'content-type: application/json' \
  -d '{"pingSamples":"18.2, 17.9, 19.4, 18.1, 25.6, 18.0, 18.3, 17.8, 19.0, 18.4","downloadBytes":50000000,"downloadMs":1420,"uploadBytes":20000000,"uploadMs":3350}'

Related tools

Feedback