Race the Internet.

Trigger real races across continents, go around planet and get back live latency data.

Authentication

All requests require a Bearer token in the Authorization header.

request headerAuthorization: Bearer YOUR_API_KEY
Public API Key · Free 100 races / day · resets midnight UTC
apl_8Hps5pRJmW-zSwJ9j4DUHjLqavYGnf0U9M13fHoPg3Q

Need higher limits? Request a dedicated key

Available Races

Three circuits are ready to run. Each race has 10 participants racing around the planet across three continents. The winner is the participant with the lowest total latency across all legs.

🔥
Warm-up runs included Before each race, 10 warm-up rounds are fired across all regions. This ensures every participant starts under the same conditions, with no cold start advantage.
api-std-1
Atlantic Circuit
🇺🇸 N. Virginia
↓ 5,464 km
🇮🇪 Ireland
↓ 11,207 km
🇸🇬 Singapore
↓ 15,532 km
🇺🇸 N. Virginia
32,203 km · min 161ms
api-std-2
South American Loop
🇧🇷 São Paulo
↓ 9,823 km
🇩🇪 Frankfurt
↓ 9,331 km
🇯🇵 Tokyo
↓ 18,529 km
🇧🇷 São Paulo
37,683 km · min 188ms
api-std-3
Pacific Rim
🇺🇸 Oregon
↓ 8,245 km
🇫🇷 Paris
↓ 16,964 km
🇦🇺 Sydney
↓ 12,342 km
🇺🇸 Oregon
37,550 km · min 188ms

Quickstart

Trigger a race

curl -s -X POST https://api.aroundplanet.tech/races/api-std-1/run \
  -H "Authorization: Bearer YOUR_API_KEY"
response{
  "run_id":          "run-2282e0cdd9fe43fe",
  "race_id":         "api-std-1",
  "status":          "running",
  "poll_status_url":  "/v1/runs/run-2282e0cdd9fe43fe/status",
  "poll_result_url":  "/v1/runs/run-2282e0cdd9fe43fe/result"
}

Poll until complete (about 15s)

curl -s https://api.aroundplanet.tech/runs/YOUR_RUN_ID/status \
  -H "Authorization: Bearer YOUR_API_KEY"
response{
  "run_id":  "run-2282e0cdd9fe43fe",
  "race_id": "api-std-1",
  "status":  "complete"   // running | complete | timeout
}

Fetch the full result

curl -s https://api.aroundplanet.tech/runs/YOUR_RUN_ID/result \
  -H "Authorization: Bearer YOUR_API_KEY"
response (abridged){
  "run_id":  "run-2282e0cdd9fe43fe",
  "race_id": "api-std-1",
  "result": {
    "stats": {
      "total_duration": { "min": 4620.7, "mean": 5116.6, "max": 6471.0 }
    },
    "insights": {
      "physics_ratio": { "value": 31.78, "theo_ms": 161.0 },
      "winner":        { "ms": 4620.71, "narrative": "Winner completed in 4621ms..." }
    },
    "completeness":  { "valid_count": 10, "error_rate_pct": 0.0 },
    "runs": [ /* 10 individual run objects with per-leg ms */ ],
    "replay": [ /* timestamped events for each run */ ]
  }
}

Endpoints

GET /races
List the 3 available race circuits with their routes and current status.
POST /races/{race_id}/run
Start a race around planet. Returns a run_id immediately. Poll /runs/{run_id}/status until complete.

required race_id · one of api-std-1, api-std-2, api-std-3
GET /runs/{run_id}/status
Status of a race around planet. Poll every 2 seconds. Values: complete · running · timeout
GET /runs/{run_id}/result
Full result of a race around planet. Includes per-leg latencies, stats, winner and replay timeline. Available once status is complete.

Rate Limits

Per key, rolling 60-second window. Returns 429 when exceeded.

ActionLimit
GET /races, /status, /result60 requests / 60s
POST /races/{id}/run5 race triggers / 60s

Get a Key

✉️

Request a key

Email hello@aroundplanet.online with a description of what you are building.