Speedtest API
How it works: Speedtest server. The CLI equivalent is dtvsol speedtest ….
Authentication and errors: see the API overview.
GET /speedtest
Section titled “GET /speedtest”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): …"}POST /speedtest/install
Section titled “POST /speedtest/install”Downloads Ookla’s server (the latest) and sets it up; starts it when it is on. 502 when the
download fails.
POST /speedtest/set
Section titled “POST /speedtest/set”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. |
POST /speedtest/on
Section titled “POST /speedtest/on”Starts it (enabled: true).
POST /speedtest/off
Section titled “POST /speedtest/off”Stops it.
POST /speedtest/restart
Section titled “POST /speedtest/restart”Writes its settings file again and restarts it.
POST /speedtest/certificate
Section titled “POST /speedtest/certificate”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).
POST /speedtest/remove
Section titled “POST /speedtest/remove”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.