Steam Scream V is on until Nov 2. Spooky games crowd the store this week, so the quieter weeks after it are worth a look.

See what's launching
Developer documentation · v1

Steam data API

Read Steam's own data for every game: store pages, prices in every region, reviews, followers, players, tags, client records, news, achievements and store page changes. Free, no sign-up to start, JSON or XML.

Quick start

Every address starts with https://launchrivals.com/api/user. Ask for any game by its Steam app id; no key needed:

curl 'https://launchrivals.com/api/user/steam/1145360' \
  -H 'Authorization: Bearer lrs_…'   # optional

The answer is the full record of the game. Add /xml to the end of any address for XML.

Keys

A key is free and makes everything five times faster. Any LaunchRivals account can create up to 3 in Settings → Steam data once a Steam account is linked. Send it in any one of three ways:

HowExampleGood for
Bearer headerAuthorization: Bearer lrs_…Servers, bots, scripts
Key headerX-Api-Key: lrs_…Tools that set custom headers
Query string?key=lrs_…Spreadsheets, quick tests (it shows up in logs, so keep it out of public pages)
  • A key that is sent but does not work answers 401; it never quietly falls back to the slower limit.
  • A key stops working when it is revoked, when the Steam account is unlinked, or when the account is closed.
  • With a key, a game's record also includes the studio's support email.

Rate limits

Requests per secondCounted per
No key1IP address
Free key5Key

Every answer carries X-RateLimit-Limit and X-RateLimit-Remaining. Past the limit you get 429 with Retry-After (seconds); wait that long and try again. Answers may be cached for 60 seconds, so there is no need to ask for the same game twice in a minute.

Formats

  • JSON (default): …/steam/1145360 or …/steam/1145360/json.
  • XML: …/steam/1145360/xml or ?format=xml. Object keys become elements, list items repeat the singular of their parent (<tags><tag>, otherwise <item>), booleans are true/false, empty values carry nil="true".
  • UTF-8 throughout. Cross-origin requests are allowed from any site, so the API works straight from the browser.

Errors

Errors come in the format you asked for, with the HTTP status repeated in the body:

{
    "error": "We have no game with that id.",
    "status": 404
}
StatusMeaning
200Here you go.
401The key is unknown or revoked, or its Steam account is no longer linked.
404No game or studio with that id, or no such address.
429Too many requests this second; see Retry-After.

Conventions

  • Money is in the smallest unit of the currency: 2499 in USD is $24.99; currencies without cents (JPY, KRW …) are whole units.
  • Times are ISO 8601 in UTC (2026-10-23T19:08:53Z), dates are YYYY-MM-DD.
  • Release dates come with a precision: day, month, quarter, year or none; the date of a month or quarter is its last day, as on Steam.
  • null means we do not know yet; an empty list means there is nothing.
  • Everything is read from Steam's public pages and services; updated in a game's record says when each part was last read. Popular, upcoming and new games are refreshed daily, the rest of the catalogue regularly.

OpenAPI

The whole API as an OpenAPI 3.1 document, for Postman, Insomnia, Swagger UI or a client generator:

https://launchrivals.com/api/user/openapi.json

A game

GET /api/user/steam/{app_id} · /xml for XML

Everything we hold for one game: store page details, developer and publisher with their studio pages, release date, US price and the price in every region, purchase options, reviews, followers, players right now, tags with player votes, features, platforms, Steam Deck status, languages, links, screenshots, DLC, and the client record (depots, branches, latest builds).

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.
  • support.email is included only when you send a key.
  • updated tells you when each part was last read from Steam.
  • Prices are in the smallest unit of the currency (2499 = $24.99).

Request

curl 'https://launchrivals.com/api/user/steam/1145360' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer
{
    "app_id": 1145360,
    "name": "Hades",
    "type": "game",
    "store_url": "https://store.steampowered.com/app/1145360/hades/",
    "visible": true,
    "is_free": false,
    "early_access": false,
    "adult": false,
    "description": "Defy the god of the dead as you hack and slash out of the Underworld in this rogue-like dungeon crawler from the creators of Bastion, Transistor, and Pyre.",
    "developer": "Supergiant Games",
    "publisher": "Supergiant Games",
    "studios": [
        {
            "clan_id": 3584665,
            "name": "Supergiant Games",
            "role": "developer",
            "followers": 164810,
            "avatar": "https://avatars.fastly.steamstatic.com/a2ac03c229b9dd346495c1efdd7e7c37f910a22f_full.jpg",
            "url": "https://store.steampowered.com/curator/3584665/"
        }
    ],
    "release": {
        "date": "2020-09-17",
        "precision": "day",
        "text": "Sep 17, 2020",
        "coming_soon": false,
        "early_access_date": null
    },
    "price": {
        "currency": "USD",
        "final_cents": 2499,
        "discount_pct": 0,
        "initial_cents": 2499
    },
    "regional_prices": [
        {
            "cc": "AE",
            "currency": "AED",
            "final_cents": 6600,
            "initial_cents": 6600,
            "discount_pct": 0,
            "formatted": "66.00 AED",
            "checked": "2026-10-23T11:47:13Z"
        },
        {
            "cc": "AR",
            "currency": "USD",
            "final_cents": 499,
            "initial_cents": 499,
            "discount_pct": 0,
            "formatted": "$4.99",
            "checked": "2026-10-23T11:46:49Z"
        }
    ],
    "purchase_options": [
        {
            "type": "package",
            "id": 415372,
            "name": "Hades",
            "final_cents": 2499,
            "games": 1
        },
        {
            "type": "bundle",
            "id": 61368,
            "name": "Hades + Hades II",
            "final_cents": 4497,
            "games": 1
        }
    ],
    "reviews": {
        "total": 310472,
        "positive": 304222,
        "negative": 6250,
        "percent_positive": 98,
        "label": "Overwhelmingly Positive"
    },
    "followers": 308820,
    "players_now": 3900,
    "counts_on_profile": true,
    "tags": [
        {
            "id": 42804,
            "name": "Action Roguelike",
            "rank": 1,
            "votes": 1463
        },
        {
            "id": 3959,
            "name": "Roguelite",
            "rank": 2,
            "votes": 1066
        }
    ],
    "features": [
        "Single-player",
        "Steam Achievements"
    ],
    "platforms": {
        "windows": true,
        "mac": true,
        "linux": false,
        "vr": false,
        "deck": "Verified"
    },
    "languages": [
        {
            "name": "English",
            "audio": true,
            "subtitles": true
        },
        {
            "name": "French",
            "audio": false,
            "subtitles": true
        }
    ],
    "links": [
        {
            "type": "Website",
            "url": "http://www.supergiantgames.com"
        },
        {
            "type": "Facebook",
            "url": "https://www.facebook.com/supergiantgames/"
        }
    ],
    "support": {
        "url": "https://www.supergiantgames.com/contact/"
    },
    "media": {
        "header": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1145360/header.jpg?t=1758127023",
        "capsule": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1145360/capsule_616x353.jpg?t=1758127023",
        "screenshots": [
            "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1145360/ss_c0fed447426b69981cf1721756acf75369801b31.jpg?t=1758127023",
            "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1145360/ss_8a9f0953e8a014bd3df2789c2835cb787cd3764d.jpg?t=1758127023"
        ],
        "screenshot_count": 11,
        "trailer_count": 3
    },
    "parent_app_id": null,
    "demo_app_ids": [],
    "dlc_app_ids": [],
    "client": {
        "change_number": 39319305,
        "record": {
            "name": "Hades",
            "type": "Game",
            "oslist": [
                "windows",
                "macos"
            ],
            "controller_support": "full",
            "deck": 3,
            "metacritic": {
                "score": 93,
                "url": "https://www.metacritic.com/game/pc/hades?ftag=MCD-06-10aaa1f"
            },
            "release_state": "released"
        },
        "depots": [
            {
                "id": 228988,
                "name": null,
                "os": "windows",
                "arch": null,
                "language": null,
                "size": null,
                "download_size": null,
                "manifest": null,
                "dlc_app_id": null
            },
            {
                "id": 229006,
                "name": null,
                "os": "windows",
                "arch": null,
                "language": null,
                "size": null,
                "download_size": null,
                "manifest": null,
                "dlc_app_id": null
            }
        ],
        "branches": [
            {
                "name": "public",
                "build_id": 10929685,
                "updated": "2023-04-12T14:20:17Z",
                "description": null,
                "password": false
            }
        ],
        "builds": [
            {
                "branch": "public",
                "build_id": 10929685,
                "updated": "2023-04-12T14:20:17Z",
                "seen": "2026-10-23T11:49:39Z"
            }
        ]
    },
    "achievement_count": 49,
    "updated": {
        "store": "2026-10-23T11:46:10Z",
        "reviews": "2026-10-23T19:59:11Z",
        "followers": "2026-10-23T19:59:11Z",
        "players": "2026-10-22T13:00:18Z",
        "prices": "2026-10-23T11:47:15Z",
        "client": "2026-10-23T11:49:39Z",
        "news": "2026-10-23T11:46:40Z"
    },
    "more": {
        "prices": "https://launchrivals.com/api/user/steam/1145360/prices",
        "history": "https://launchrivals.com/api/user/steam/1145360/history",
        "news": "https://launchrivals.com/api/user/steam/1145360/news",
        "changes": "https://launchrivals.com/api/user/steam/1145360/changes",
        "achievements": "https://launchrivals.com/api/user/steam/1145360/achievements"
    }
}

Prices in every region

GET /api/user/steam/{app_id}/prices · /xml for XML

The current price in every Steam region we read (country code, currency, final and list price, discount, Steam's own formatting), plus every price change we have recorded.

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.
  • history[].from is when that price was first seen.

Request

curl 'https://launchrivals.com/api/user/steam/1145360/prices' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "app_id": 1145360,
    "regions": [
        {
            "cc": "AE",
            "currency": "AED",
            "final_cents": 6600,
            "initial_cents": 6600,
            "discount_pct": 0,
            "formatted": "66.00 AED",
            "checked": "2026-10-23T11:47:13Z"
        },
        {
            "cc": "AR",
            "currency": "USD",
            "final_cents": 499,
            "initial_cents": 499,
            "discount_pct": 0,
            "formatted": "$4.99",
            "checked": "2026-10-23T11:46:49Z"
        }
    ],
    "history": [
        {
            "cc": "AE",
            "from": "2026-10-23T11:47:13Z",
            "final_cents": 6600,
            "initial_cents": 6600,
            "discount_pct": 0,
            "formatted": "66.00 AED"
        },
        {
            "cc": "AR",
            "from": "2026-10-23T11:46:49Z",
            "final_cents": 499,
            "initial_cents": 499,
            "discount_pct": 0,
            "formatted": "$4.99"
        }
    ]
}

History

GET /api/user/steam/{app_id}/history · /xml for XML

Followers, reviews and the US price day by day, and concurrent players every hour.

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.
days query integer How far back, 1–730 days. Players reach back at most 30 days.

Request

curl 'https://launchrivals.com/api/user/steam/1145360/history?days=30' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "app_id": 1145360,
    "days": 30,
    "daily": [
        {
            "date": "2026-10-21",
            "followers": null,
            "reviews_total": null,
            "reviews_positive": null,
            "price_cents": null,
            "discount_pct": null
        },
        {
            "date": "2026-10-22",
            "followers": 308821,
            "reviews_total": 287359,
            "reviews_positive": 278738,
            "price_cents": 2499,
            "discount_pct": 0
        }
    ],
    "players": [
        {
            "at": "2026-10-23T12:00:00Z",
            "players": 4810
        },
        {
            "at": "2026-10-23T13:00:00Z",
            "players": 5122
        }
    ]
}

News and patch notes

GET /api/user/steam/{app_id}/news · /xml for XML

News posts and patch notes, newest first, with their full text.

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.
limit query integer 1–100.
patches query integer 1 for patch notes only.

Request

curl 'https://launchrivals.com/api/user/steam/1145360/news?limit=3' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "app_id": 1145360,
    "news": [
        {
            "id": "1835236783574995",
            "title": "Watch the Hades Orchestral Concert, Live from London!",
            "url": "https://steamstore-a.akamaihd.net/news/externalpost/steam_community_announcements/1835236783574995",
            "author": "kid_zomb",
            "feed": "Community Announcements",
            "patch_notes": false,
            "tags": [],
            "published": "2026-06-16T16:55:06Z",
            "contents": "On June 27 at London's Royal Festival Hall, our composer and audio director Darren Korb will be joined by his fellow Hades vocalists and conductor Austin Win…"
        },
        {
            "id": "1811772772248756",
            "title": "Hades II v1.0 Is Now Available!",
            "url": "https://steamstore-a.akamaihd.net/news/externalpost/steam_community_announcements/1811772772248756",
            "author": "kid_zomb",
            "feed": "Community Announcements",
            "patch_notes": true,
            "tags": [],
            "published": "2025-09-25T16:11:33Z",
            "contents": "We couldn't possibly be more excited to announce that we've completed the Early Access development of Hades II, and officially launched v1.0 of the game!! Wh…"
        }
    ]
}

Store page changes

GET /api/user/steam/{app_id}/changes · /xml for XML

Every change we spotted on the store page: price, release date, name, tags, description, images and more, with the old and the new value.

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.
limit query integer 1–200.

Request

curl 'https://launchrivals.com/api/user/steam/1145360/changes?limit=50' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "app_id": 1145360,
    "changes": [
        {
            "field": "price",
            "old": "2499",
            "new": "1249",
            "detected": "2026-10-21T17:04:11Z"
        },
        {
            "field": "tags",
            "old": "Action Roguelike, Roguelite, Hack and Slash",
            "new": "Action Roguelike, Roguelite, Indie",
            "detected": "2026-10-18T09:12:40Z"
        }
    ]
}

Achievements

GET /api/user/steam/{app_id}/achievements · /xml for XML

Every achievement with its title, description, icons and the share of players who unlocked it, most unlocked first.

ParameterInTypeDescription
app_id required path integer The Steam app id, as in store.steampowered.com/app/1145360.

Request

curl 'https://launchrivals.com/api/user/steam/1145360/achievements' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "app_id": 1145360,
    "achievements": [
        {
            "name": "AchClearTartarus",
            "title": "Escaped Tartarus",
            "description": "Clear Tartarus",
            "hidden": false,
            "percent": 81.8,
            "icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1145360/062a2b7bdc156af9438bdc440a19833addd2ae38.jpg",
            "icon_gray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1145360/4c936bef605fe82e00145c7b37287a13cd690af3.jpg"
        },
        {
            "name": "AchClearAsphodel",
            "title": "Escaped Asphodel",
            "description": "Clear Asphodel",
            "hidden": false,
            "percent": 72.2,
            "icon": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1145360/202d5cd97dd3b727e0eaa8ffc02a62dcf67cd5d7.jpg",
            "icon_gray": "https://steamcdn-a.akamaihd.net/steamcommunity/public/images/apps/1145360/dd8b6056196f8b7e209ef9323c81bbf48aba094b.jpg"
        }
    ]
}

Release calendar

GET /api/user/steam/releases · /xml for XML

Games with a release day in a window of up to three months, most followed first, optionally with one tag.

ParameterInTypeDescription
from query string First day, YYYY-MM-DD. Default: today.
to query string Last day, YYYY-MM-DD. Default: 30 days on.
tag query integer A tag id from Tags.
limit query integer 1–500.
  • Only games with an exact day; month, quarter and "coming soon" dates are left out.

Request

curl 'https://launchrivals.com/api/user/steam/releases?from=2026-10-26&to=2026-11-25&tag=492' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "from": "2026-10-23",
    "to": "2026-11-22",
    "tag_id": null,
    "games": [
        {
            "app_id": 4540280,
            "name": "Sinful Survivors",
            "type": "game",
            "release": {
                "date": "2026-11-04",
                "precision": "day",
                "text": "Nov 4, 2026",
                "coming_soon": true
            },
            "price_cents": null,
            "is_free": false,
            "followers": 1342,
            "reviews_total": 0,
            "header": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4540280/f7ce08a736273d52680900a9299502c45f4eaea6/header.jpg?t=1792527175",
            "url": "https://launchrivals.com/api/user/steam/4540280"
        },
        {
            "app_id": 4542120,
            "name": "Neurospasm",
            "type": "game",
            "release": {
                "date": "2026-10-29",
                "precision": "day",
                "text": "Oct 29, 2026",
                "coming_soon": true
            },
            "price_cents": null,
            "is_free": false,
            "followers": 92,
            "reviews_total": 0,
            "header": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/4542120/ee3a608693644473cf4d7e61274d0ec528976b79/header.jpg?t=1792668433",
            "url": "https://launchrivals.com/api/user/steam/4542120"
        }
    ]
}

Tags

GET /api/user/steam/tags · /xml for XML

Every Steam tag with its id, A to Z.

Request

curl 'https://launchrivals.com/api/user/steam/tags' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "tags": [
        {
            "id": 7743,
            "name": "1980s"
        },
        {
            "id": 6691,
            "name": "1990's"
        }
    ]
}

Steam events

GET /api/user/steam/events · /xml for XML

Steam's seasonal sales, Next Fests and themed festivals from a year back on, with sign-up deadlines and the tags a themed festival is about.

  • confirmed: false marks dates Valve has not announced yet.

Request

curl 'https://launchrivals.com/api/user/steam/events' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "events": [
        {
            "name": "Steam Scream V",
            "slug": "steam-scream-v-2026",
            "kind": "theme_fest",
            "starts": "2026-10-26",
            "ends": "2026-11-02",
            "registration_deadline": null,
            "confirmed": true,
            "tags": [
                {
                    "id": 1667,
                    "name": "Horror"
                },
                {
                    "id": 1721,
                    "name": "Psychological Horror"
                }
            ]
        },
        {
            "name": "Auto Battler RPG Fest 2026",
            "slug": "auto-battler-rpg-fest-2026",
            "kind": "theme_fest",
            "starts": "2026-11-16",
            "ends": "2026-11-23",
            "registration_deadline": null,
            "confirmed": true,
            "tags": [
                {
                    "id": 1084988,
                    "name": "Auto Battler"
                }
            ]
        }
    ]
}

Studio page

GET /api/user/steam/studios/{clan_id} · /xml for XML

A developer or publisher page on Steam: its followers over time, website, social links and its games.

ParameterInTypeDescription
clan_id required path integer The studio id, as in store.steampowered.com/curator/3584665; also in studios[].clan_id of a game.

Request

curl 'https://launchrivals.com/api/user/steam/studios/3584665' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "clan_id": 3584665,
    "name": "Supergiant Games",
    "url": "https://store.steampowered.com/curator/3584665/",
    "avatar": "https://avatars.fastly.steamstatic.com/a2ac03c229b9dd346495c1efdd7e7c37f910a22f_full.jpg",
    "website": "https://www.supergiantgames.com",
    "socials": [
        {
            "type": "Discord",
            "url": "https://discord.com/invite/Supergiant"
        },
        {
            "type": "YouTube",
            "url": "https://www.youtube.com/@supergiantgames"
        }
    ],
    "followers": 164810,
    "updated": "2026-10-23T13:20:02Z",
    "history": [
        {
            "date": "2026-10-23",
            "followers": 164810
        }
    ],
    "games": [
        {
            "app_id": 1145360,
            "name": "Hades",
            "type": "game",
            "release": {
                "date": "2020-09-17",
                "precision": "day",
                "text": "Sep 17, 2020",
                "coming_soon": false
            },
            "price_cents": 2499,
            "is_free": false,
            "followers": 308820,
            "reviews_total": 310472,
            "header": "https://shared.akamai.steamstatic.com/store_item_assets/steam/apps/1145360/header.jpg?t=1758127023",
            "url": "https://launchrivals.com/api/user/steam/1145360",
            "role": "developer"
        }
    ]
}

Your key and limits

GET /api/user · /xml for XML

Which key you are calling with (if any), your rate limit and a list of every endpoint. Handy to check that your key works.

Request

curl 'https://launchrivals.com/api/user' \
  -H 'Authorization: Bearer lrs_…'   # optional
Example answer (trimmed)
{
    "key": {
        "name": "My Discord bot",
        "prefix": "lrs_3f9c2a71"
    },
    "rate_limit": {
        "per_second": 5,
        "by": "key"
    },
    "get_a_key": "https://launchrivals.com/settings/steam-data",
    "docs": "https://launchrivals.com/steam-data",
    "formats": [
        "json",
        "xml"
    ],
    "endpoints": {
        "game": "https://launchrivals.com/api/user/steam/{app_id}",
        "…": "…"
    }
}

Changelog

  • v1 · October 23, 2026 · First release: games, prices, history, news, store changes, achievements, search, releases, tags, events, studios; keys; JSON and XML; OpenAPI.

Questions or ideas? Write to us. LaunchRivals is not affiliated with Valve or Steam.