This Privacy Policy explains what SpeedTestAgent ("we", "us") handles when you use speedtestagent.com (the "Service"), why it is handled, and the choices available to you. You can run a test without an account. This page describes the current implementation; it is not a promise of compliance with every law in every location.
Information we handle
- Connection and approximate location. The server receives your request IP and uses it to obtain ISP, city, region, and country information. The preferred server-side lookup tries ipwhois.app, then ipapi.co, and then freeipapi.com. If that server lookup cannot provide ISP information, the browser can fall back to ipapi.co directly. The server also uses api.ipify.org when it resolves the test server's own public location. These providers receive an IP address as part of the lookup and have their own policies.
- Speed-test measurements. Download, upload, HTTP latency, jitter, and loaded HTTP latency (when samples are available) are measured in your browser using Cloudflare's edge where available, with our API endpoint as a fallback. IP packet loss is not measured. A recent history is held in browser memory for the current session. Measurements are not sent to our results database just because you run a test; they are sent when you explicitly create a shareable result.
- Shareable results. Creating a link sends the measurements, ISP and approximate location (such as city and region), and test-server metadata to our server. The public record does not include your IP address. The server associates the record with an opaque, randomly generated owner cookie so the owner's result history can be retrieved without an account. Anyone with the share URL can view the public result.
- Contact form submissions. If you use the Contact page, we receive your name, email address, selected topic, and message on our server and transmit them through Gmail SMTP to the configured support inbox. The form does not send an automatic reply. Contact messages are not used to create a site account.
- HTTP and infrastructure data. The browser, hosting platform, reverse proxies, Cloudflare, our API/hosting providers, Gmail, geo providers, and other network infrastructure may handle IP addresses, request times, user-agent data, and connection metadata while delivering their services. An IP address is not written into a shareable result record, but that does not mean HTTP infrastructure or a provider cannot see it.
How we use information
- To run the requested test and display its measurements and connection context.
- To label the ISP and approximate location shown with a test.
- To create and display a shareable result only when you request one.
- To provide the browser's owner-scoped result history through its opaque cookie.
- To send contact requests to the support inbox and prevent contact-form abuse.
- To operate, secure, troubleshoot, and rate-limit the Service.
- To load conditional advertising only as described below when advertising is configured.
Browser storage and cookies
The app uses browser-side storage for convenience, not as an account. Depending on the features you use, local storage contains your theme preference, selected plan/target preference, and the speed-calculator recommendation used to compare a result with your needs. Recent test history is held in browser memory during the session. You can clear these values through your browser's site-data controls.
When you create a shareable result, the server may set the HTTP-onlystagent_uid cookie. It is an opaque owner identifier, not an IP address, and is used to associate your shareable results with your browser. Clearing cookies means the server can no longer identify that browser as the owner of earlier results. Other providers may set their own cookies under their policies.
Advertising and Google privacy choices
Manual advertising is disabled by default when no valid real article slot is configured. Manual ads can be requested only on eligible article pages after Google Privacy & Messaging has supplied consent information. Google applies the visitor's privacy choices. A Google publisher meta tag may remain for publisher verification; it does not by itself request or serve an ad.
Google Privacy & Messaging supplies regional consent and opt-out choices where applicable. On the live site, we load Google's AdSense and Privacy & Messaging scripts to support these controls, even when no manual ad unit is configured and before a privacy choice is made. Loading these scripts is not itself consent to personalized advertising; Google processes the applicable privacy signals. Manual article ads are requested only after its consent information is available. If the controls are unavailable or blocked, they show an unavailable message; use the Contact page for help.
Google is the only consent mechanism; the site does not store a custom accept/reject advertising decision in local storage. The shared controls below use Google's EU revocation and US opt-out controls when available. If Google reports that European consent does not apply to your visit, the controls explain that instead of promising a dialog. An opt-out confirmation is shown only when Google reports the choice.
For Google's explanation of how it uses data from sites and apps that use its services, see How Google uses information from sites or apps that use our services.
Third-party services
- Cloudflare — speed-test edge transfers and, where available, the Cloudflare test colo shown in a result.
- API/hosting providers, including Hetzner — production API infrastructure and our fallback speed-test endpoint.
- ipwhois.app, ipapi.co, freeipapi.com, and api.ipify.org — IP lookup, approximate ISP/location, or server-IP lookup as described above.
- Gmail SMTP — delivery of Contact page submissions to the configured support inbox.
- Google Fonts — fonts loaded externally from Google Fonts.
- Google Privacy & Messaging — regional privacy controls on the live site, including when no ads are shown. AdSense — script loading to support Google's privacy messages and conditional manual advertising as described above.
Each provider controls its own processing and retention under its own privacy policy.
Retention and deletion
We do not publish a fixed retention interval for server or hosting access logs. Those logs and infrastructure records can be retained or handled by the operators and providers that process the requests. Shareable result records remain available unless they are removed by the operator or following a validated deletion request; we do not promise a fixed result retention period. Browser storage remains until you clear it, and Google/provider data is governed by the relevant provider.
To ask about, correct, or delete information associated with a contact request or a shareable result, use the Contact page and select the privacy-request topic. Include the relevant share URL when applicable, but do not include passwords or other sensitive information.
Children
The Service is not directed to children. Do not submit a child's personal information through the Contact page. If you believe a child has sent personal information, use the Contact page so we can review the request.
Changes to this policy
We may update this Policy when the Service or its data practices change. The "Last updated" date identifies the latest revision.
Contact
Questions or privacy requests should be sent through the Contact page. Choose "Privacy request" to route the message appropriately; no automatic confirmation email is sent.