Skip to content

Speedtest API

How it works: Speedtest server. The CLI equivalent is dtvsol speedtest …. Authentication and errors: see the API overview.

The server’s state and settings.

{
"ok": true,
"settings": {"enabled": true, "tcp_ports": [5060, 8080], "udp_ports": [5060, 8080], "ipv6": true,
"allowed_domains": "*.ookla.com, *.speedtest.net", "tls": "certbot", "cert_file": "", "key_file": "",
"hostname": "speedtest.your-isp.com", "max_conn_per_ip": null, "cpu_cores": 4, "auto_update": true},
"installed": true,
"version": "2.11.5.2 2026-06-04.1737.7d0993d",
"running": true,
"hello": {"ok": true, "answer": "hello 2.11 (2.11.5) 2026-06-04.1737.7d0993d"},
"connections": 3,
"tls_in_use": "self-signed",
"tls_note": null,
"certificate_expires": "2026-12-28 10:00:00",
"certificate_days_left": 90,
"register": "https://account.ookla.com (Speedtest server hosting): …"
}

Downloads Ookla’s server (the latest) and sets it up; starts it when it is on. 502 when the download fails.

Changes the settings (the fields given) and restarts the server with them.

Name In Type Notes
enabled body boolean Run it, or not.
hostname body string The server’s name (its DNS must point to the router).
tcp_ports, udp_ports body array or string 1 to 8 ports; 5060 and 8080 are speedtest.net’s.
ipv6 body boolean Listen on IPv6 too.
tls body string certbot, file, letsencrypt (Ookla’s, once registered) or none.
cert_file, key_file body string Full paths, for tls: file.
allowed_domains body string Who may test: *.ookla.com, *.speedtest.net, or *.
max_conn_per_ip body integer 50–3000; null = Ookla’s default.
cpu_cores body integer Its CPU ceiling.
auto_update body boolean Ookla updates the server by itself.

Starts it (enabled: true).

Stops it.

Writes its settings file again and restarts it.

A Let’s Encrypt certificate for the hostname through certbot, then tls: certbot.

Name In Type Notes
email body string For Let’s Encrypt. Required.
agree_tos body boolean Let’s Encrypt’s terms accepted. Required.

400 when the hostname is not set or does not lead to one of the router’s addresses; 502 when certbot fails (port 80 must reach the router).

Stops it and removes Ookla’s files; the settings are kept.

This site was written with the help of AI and checked by our team.