What you get#
Onekey exposes Speedrun.com as 12 endpoints behind one API key: 4 endpoints return one record (data is an object) and 8 endpoints return a list (data is an array). Every answer uses the same envelope (success, data, metadata, error), the cost is reported in metadata.credits_charged, and fields are mapped onto the unified schema so the code you write for Speedrun.com also works for the rest of the gaming category.
Endpoints#
| Endpoint | What it does | Parameters | Credits | Status |
|---|---|---|---|---|
game | Fetch a speedrun.com game. | game* | 1 | stable |
game_categories | List the run categories of a speedrun.com game. | game* | 5 | stable |
game_records | World records of a speedrun.com game, per category. | game* | 5 | stable |
games_search | Search speedrun.com games by name. | q* | 5 | stable |
latest_runs | Most recently verified speedrun.com runs. | - | 5 | stable |
leaderboard | Top runs of a speedrun.com game category. | game*, category* | 5 | stable |
platforms | List speedrun.com platforms. | - | 5 | stable |
run | Fetch a single speedrun.com run. | id* | 1 | stable |
series | Fetch a speedrun.com series. | series* | 1 | stable |
user | Fetch a speedrun.com user profile. | user* | 1 | stable |
user_personal_bests | A speedrun.com user's personal-best runs. | user* | 5 | stable |
users_search | Search speedrun.com users by name. | q* | 5 | stable |
A * marks a required parameter. Each endpoint name links to its reference page with the full parameter table, caching window and a recorded response.
Make a request#
This calls speedrun.game (1 credit, stable). Replace YOUR_API_KEY with your key; sign up, no card. 1,000 free credits cover the open-platform endpoints. Hard-to-reach platforms (X, TikTok, Instagram, Reddit, and others marked on their page) need a verified email and a purchased pack.
curl "https://api.onekey.dev/v1/speedrun/game?game=smb1" \
-H "x-api-key: YOUR_API_KEY"Fields you get back#
These unified fields come back from Speedrun.com, with the same names as on every other platform. The count is how many of its 12 mapped endpoints return the field; a field the source lacks is null, never missing. 6 platform-specific fields (ext.<name>) come on top, documented on each endpoint page.
| Field | Type | Endpoints |
|---|---|---|
content.createdAt | ISO 8601 date | 7 |
author.id | string | 6 |
content.id | string | 5 |
content.url | URL | 5 |
entity.id | string | 5 |
entity.name | string | 5 |
entity.url | URL | 5 |
media.durationSeconds | number | 5 |
entity.category | string | 4 |
content.text | string | 3 |
entity.slug | string | 3 |
entity.year | integer | 3 |
author.url | URL | 2 |
author.username | string | 2 |
media.thumbnailUrl | URL | 2 |
media.url | URL | 2 |
entity.country | string | 1 |
entity.status | string | 1 |
entity.type | string | 1 |
The full schema is in Unified schema.
Pricing#
Speedrun.com calls cost 1 to 5 credits, flat per endpoint. Free when served from cache (0.2 credit for a cached response over 100 KB). Invalid, failed or not-found calls are not charged. See pricing for credit packs.