Speedrun.com Leaderboard & Runs Scraper avatar

Speedrun.com Leaderboard & Runs Scraper

Pricing

Pay per event

Go to Apify Store
Speedrun.com Leaderboard & Runs Scraper

Speedrun.com Leaderboard & Runs Scraper

Scrape speedrun.com leaderboard rankings for any game and category. Resolves game names to IDs, enumerates categories automatically, and returns flattened run rows with player names, times, ranks, WR flags, platform, region, and video links via the official v1 REST API.

Pricing

Pay per event

Rating

0.0

(0)

Developer

BowTiedRaccoon

BowTiedRaccoon

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Categories

Share

Scrape leaderboard rankings and verified run records from speedrun.com for any game and category. The actor resolves game names to IDs automatically, enumerates categories, and returns flat run records with player names, times, ranks, world-record flags, platform, region, subcategory labels, and video links — all via the official speedrun.com v1 REST API.

What you get

Each output record represents one verified run on a speedrun.com leaderboard:

FieldDescription
game_idspeedrun.com internal game ID
game_nameGame title (international)
game_abbreviationURL slug, e.g. sm64
game_released_yearYear of release
category_idspeedrun.com category ID
category_nameCategory label, e.g. 120 Star, Any%
subcategory_variablesPipe-separated subcategory variable labels, e.g. Platform:N64
run_idUnique run identifier
rankLeaderboard position (1 = current world record)
is_world_recordtrue when rank equals 1
primary_time_secondsTimed duration in seconds
player_idsPipe-separated player IDs
player_namesPipe-separated player display names
player_countryISO 3166-1 alpha-2 country code of the first player
platformPlatform name, e.g. Nintendo 64, PC
emulatedtrue if the run used an emulator
regionRegion label, e.g. JPN / NTSC
run_dateDate the run was performed (YYYY-MM-DD)
verify_dateISO-8601 timestamp when the run was verified
video_linkPrimary video URL (YouTube, Twitch, etc.)
commentRunner-submitted comment
examiner_idID of the verifier who approved the run
weblinkDirect URL to this run on speedrun.com

Input

ParameterTypeDefaultDescription
gameQuerystringGame name or abbreviation to search. Partial names work (e.g. super mario 64, sm64).
categoryNamestring(all)Optional filter. Leave blank to scrape all per-game categories.
topNinteger20Maximum top runs to fetch per leaderboard (1–200).
maxItemsinteger10Total output cap across all leaderboards.

Example: Top 10 runs in SM64 "120 Star"

{
"gameQuery": "super mario 64",
"categoryName": "120 Star",
"topN": 10,
"maxItems": 10
}

Example: All categories for Minecraft Java Edition

{
"gameQuery": "minecraft: java edition",
"topN": 5,
"maxItems": 100
}

How it works

  1. Game resolution — Searches by abbreviation (exact) then by name (up to 5 matches). This is the step naive slug-guessing misses — the API returns 404 on unresolved IDs.
  2. Category enumeration — Fetches per-game categories for each matched game, optionally filtered by categoryName.
  3. Subcategory labels — Resolves category-specific variables with is-subcategory: true to human-readable labels (e.g. Platform:N64 | Version:1.0).
  4. Leaderboard fetch — One request per game+category with ?embed=players,platforms,regions to resolve all IDs in-response without additional calls.

Rate limits

speedrun.com allows approximately 100 requests per minute unauthenticated. The actor throttles to one request per 600 ms and retries on 429 responses with exponential backoff.

Use cases

  • Track world record holders and submission history for esports analytics
  • Monitor game leaderboards for creator tooling and Discord bots
  • Aggregate speedrun data across games for data journalism and community dashboards
  • Compare subcategory breakdowns (console vs. emulator, version splits)