Developer API & Embed Widget

Integrate Speedtest.now into your website or application. We offer a free embeddable speed test widget and a JSON REST API for client info and rankings data.

Attribution Requirement

By using the Speedtest.now embed or API, you agree to display the "Powered by Speedtest.now" attribution link. This is a required condition of use. The embed widget displays this attribution automatically and it cannot be removed or hidden. For API integrations, you must include a visible link to speedtest.now near any displayed data. See our Terms of Service for full details.

Embed Widget

Add a fully functional speed test to your website using either an iframe snippet or a single JavaScript tag. The widget is self-contained and always displays the required Speedtest.now attribution.

Live Preview

Option 1: iframe Embed

Copy and paste this HTML into your page. Set width and height as needed.

<iframe
  src="https://speedtest.now/widget"
  width="100%"
  height="320"
  frameborder="0"
  title="Internet Speed Test"
  style="border-radius: 8px;"
></iframe>

Query Parameters

Parameter Values Description
theme dark (default) Widget color theme
ref your-domain.com Optional referrer identifier for analytics

Option 2: JavaScript Snippet

Add a single script tag anywhere in your page. The widget renders automatically at the script location.

<div id="speedtest-widget"></div>
<script src="https://speedtest.now/embed.js"></script>

The script creates a responsive iframe and appends the required attribution below it automatically.

REST API

All endpoints return JSON. No authentication is required for public endpoints. Rate limiting applies: see individual endpoint notes. All API consumers must display a visible "Powered by Speedtest.now" attribution.

Base URL: https://speedtest.now/api

GET /api/client-info

Returns client IP address, ISP name, country, region, and city based on geolocation.

{
  "ip": "1.2.3.x",
  "isp": "Example ISP",
  "country": "US",
  "region": "California",
  "city": "Los Angeles"
}

GET /api/rankings/countries

Returns top 50 countries ranked by median download speed over the past 7 days.

[
  {
    "country_code": "KR",
    "country_name": "South Korea",
    "median_download_mbps": 280.5,
    "median_upload_mbps": 240.1,
    "median_ping_ms": 8.2,
    "sample_count": 1452,
    "rank": 1
  },
  ...
]

GET /api/leaderboard/weekly

Returns the current week's top 20 download speed entries. Requires verified user accounts to appear.

{
  "week": "Week of Apr 7, 2026",
  "entries": [
    {
      "rank": 1,
      "username": "speedracer99",
      "score": 9841.2,
      "country": "JP"
    },
    ...
  ]
}

GET /api/servers/nearest

Returns list of active test servers ordered by priority. Use client-side latency probing to select nearest.

[
  {
    "id": 1,
    "name": "US West — Los Angeles",
    "city": "Los Angeles",
    "country": "US",
    "hostname": "la.speedtest.now",
    "protocol": "https"
  }
]

GET /api/result/<public_id>

Returns a single public speed test result by its public ID. Returns 403 if the result is set to private.

{
  "public_id": "abc123xyz",
  "download_mbps": 482.3,
  "upload_mbps": 21.7,
  "ping_ms": 14.0,
  "jitter_ms": 2.1,
  "packet_loss_pct": 0.0,
  "isp": "Xfinity",
  "country": "US",
  "city": "Chicago",
  "completed_at": "2026-04-12T10:30:00"
}

By using this widget or API you agree to our Terms of Service and Privacy Policy. Questions? Contact us.