SteamRadar
EN

SteamRadar API

Everything on this site through JSON: the whole Steam catalogue with prices, players, reviews and estimates; YouTube and Twitch coverage per game with scores; creators, streamers and indie developers you can reach; and in-platform messaging paid with your credits wallet. Base URL: https://steamradar.net/web/api/v1/

2. Call
GET https://steamradar.net/web/api/v1/me
3. Message
POST contacts/search → POST messages
curl -H "Authorization: Bearer sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/search?q=door+kickers&type=game"

# Python
import requests
api = requests.Session(); api.headers["X-API-Key"] = "sr_live_YOUR_KEY"
games = api.get("https://steamradar.net/web/api/v1/search", params={"q": "door kickers", "type": "game"}).json()["items"]

// JavaScript
const r = await fetch("https://steamradar.net/web/api/v1/search?q=door+kickers", {headers: {"X-API-Key": "sr_live_YOUR_KEY"}});
const {items} = await r.json();

Authentication

Every endpoint except POST auth/register, POST auth/login, POST auth/forgot, POST auth/reset, POST auth/verify, GET health, GET docs and GET openapi (and the index at the base URL) requires a logged-in user: a personal API key (sr_live_…, created on API keys) or the session token the mobile apps get from auth/login. Send it as Authorization: Bearer <key> or X-API-Key: <key>.

Keys have scopes: read Read public data (games, creators, charts); messages Send and read messages, credits; dashboard Your account: follows, alerts, claims, affiliate, profile; a call outside the key's scopes answers 403 missing_scope. Admin endpoints never accept keys. Up to 5 active keys per account; a revoked key stops working immediately.

Rate limits & paging

60 requests per minute per key (X-RateLimit-Limit / X-RateLimit-Remaining headers, 429 with Retry-After when exceeded). Lists take ?page=1&per=30 (max 100) and answer {"items": [...], "page", "per", "total"}; "total" may read "10000+" on very large lists. Times are UTC ISO-8601, money is in cents.

Errors

Every answer is {"ok": true, …} or {"ok": false, "error": "code", "message": "what to do"} with the HTTP status:

400bad input (bad_json, no_recipients, rejected …)
401login_required, bad_key, bad_token
402credits_needed — the answer lists the packages you can buy
403missing_scope, forbidden
404not_found
429rate_limited
501 / 503not_implemented / unavailable: the feature is not live yet — hide it, do not retry in a loop

Messaging & credits

You never get a creator's or developer's e-mail. You message them through the platform: every recipient gets the whole message by e-mail with a link to reply on the site, and people with an account also read it in their inbox. Every recipient costs 1 credit after your 5 free messages per UTC day; unreachable, opted-out, blocked and already-messaged-today recipients are skipped and never charged. Up to 1,000 recipients per send and 5,000 per day. Credits come in packages:

100 for $4.75250 for $11.25500 for $21.251,000 for $40.002,500 for $93.755,000 for $175.0010,000 for $325.00
# 1. who can I reach? (identities come back ready to use)
POST https://steamradar.net/web/api/v1/contacts/search
{"kind": "youtubers", "filters": {"game": 1239080, "subs_min": 10000}, "limit": 50}
→ {"items": [...], "identities": ["yt:UC…", "yt:UC…"], "total": 412}

# 2. what will it cost?
GET https://steamradar.net/web/api/v1/messages/quote?to=yt:UC…,yt:UC…
→ {"send": 2, "free_left": 5, "credits_needed": 0, "credits": 120, "cost_ok": true}

# 3. send (all-or-nothing)
POST https://steamradar.net/web/api/v1/messages
{"to": ["yt:UC…", "yt:UC…"], "subject": "Keys for our new demo", "body": "Hi! …"}
→ {"message_id": 77, "sent": 2, "free_used": 2, "credits_used": 0, "credits_left": 120}

# short on credits → 402 with the packages; buy with POST credits/checkout {"package_id": 500} → open checkout_url

Account

7 endpoints
POST me/push dashboard

Register this device for push notifications

ParameterInTypeDescription
tokenbodystringAPNs device token (ios) or FCM token (android)
platformbodystringios or android
expo_tokenbodystringolder Expo form
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"token":"\u2026","platform":"\u2026","expo_token":"\u2026"}' "https://steamradar.net/web/api/v1/me/push"
{
    "ok": true
}
GET me dashboard

The account behind the key or token: credits, free messages left today, unread counts, verified assets

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/me"
{
    "ok": true,
    "user": {
        "id": 1,
        "name": "Me",
        "msg_credits": 120,
        "free_messages_left_today": 5,
        "unread_messages": 0,
        "identities": []
    }
}
GET keys dashboard

Your API keys (session token only)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/keys"
{
    "ok": true,
    "items": [
        {
            "id": 1,
            "name": "my script",
            "prefix": "sr_live_abc12345",
            "scopes": [
                "read",
                "messages"
            ],
            "calls_total": 42
        }
    ]
}
POST keys dashboard

Create an API key (session token only); the full key is returned once

ParameterInTypeDescription
namebodystring
scopesbodyarraysubset of read, messages, dashboard
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"name":"\u2026","scopes":[]}' "https://steamradar.net/web/api/v1/keys"
{
    "ok": true,
    "key": "sr_live_…",
    "item": {
        "id": 2,
        "name": "my script"
    }
}
DELETE keys/{id} dashboard

Revoke a key (session token only)

curl -X DELETE -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/keys/:id"
{
    "ok": true
}
PATCH me dashboard

Update name, e-mail alerts, sign-in notices; with a session token also the password (other sessions and API keys are then revoked) or the e-mail address (confirmed by a link). A wrong current_password saves nothing

ParameterInTypeDescription
namebodystring
notify_emailbodybool
notify_loginbodyboole-mail on a sign-in from a new device
emailbodystringnew address (needs current_password)
passwordbodystringnew password, min 8 characters (needs current_password)
current_passwordbodystring
curl -X PATCH -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"name":"\u2026","notify_email":true,"notify_login":true,"email":"\u2026","password":"\u2026","current_password":"\u2026"}' "https://steamradar.net/web/api/v1/me"
{
    "ok": true,
    "user": [],
    "revoked": {
        "sessions": 0,
        "keys": 0
    }
}
DELETE me dashboard

Delete the account (session token only, password required): personal data removed, receipts and ledgers kept anonymously, every session and API key ended — the same as Dashboard → Settings on the website

ParameterInTypeDescription
passwordbodystringthe current password
curl -X DELETE -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"password":"\u2026"}' "https://steamradar.net/web/api/v1/me"
{
    "ok": true,
    "deleted": true
}

Catalogue

11 endpoints
GET home read

Front-page data: KPIs, trending on YouTube, most played, top sellers, new releases, upcoming, discounts, latest videos and changes

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/home"
{
    "ok": true,
    "kpis": {
        "apps": 321363,
        "games": 199223
    },
    "trending_youtube": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2: Task Force North",
            "type": "game",
            "img": "https://…/capsule_231x87.jpg",
            "price": "$24.99",
            "price_cents": 2499,
            "discount_pct": 0,
            "reviews": 12500,
            "review_pct": 96,
            "players_now": 451,
            "yt_score": 100,
            "tw_score": 42.5
        }
    ]
}
GET search read

Search and filter every Steam app

ParameterInTypeDescription
qquerystringname search
typequerystringgame, demo, dlc, software, music
tagqueryintegerSteam tag id (repeatable)
catqueryintegercategory id
price_minquerynumberUS dollars, e.g. 5
price_maxquerynumberUS dollars, e.g. 19.99 (free games are always included)
discountquery1only discounted
year_fromqueryinteger
year_toqueryinteger
coming_soonquery1
reviews_minqueryinteger
pct_minqueryintegermin % positive
platformquerystringwin, mac, linux
deckqueryinteger3 = verified
yt_score_minquerynumber
tw_score_minquerynumber
sortquerystringreviews, release, price, players, yt_score, tw_score, name, discount, followers, owners, revenue
dirquerystringasc / desc
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/search"
{
    "ok": true,
    "items": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2: Task Force North",
            "type": "game",
            "img": "https://…/capsule_231x87.jpg",
            "price": "$24.99",
            "price_cents": 2499,
            "discount_pct": 0,
            "reviews": 12500,
            "review_pct": 96,
            "players_now": 451,
            "yt_score": 100,
            "tw_score": 42.5
        }
    ],
    "page": 1,
    "per": 30,
    "total": 199223
}
GET suggest read

Autocomplete apps by name

ParameterInTypeDescription
qquerystring2+ characters
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/suggest"
{
    "ok": true,
    "items": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2",
            "type": "game",
            "img": "https://…",
            "meta": "Game 2025"
        }
    ]
}
GET charts read

A chart

ParameterInTypeDescription
chartquerystringconcurrent (default), most_played, top_sellers, trending, top_releases, yt_trending, yt_score, tw_live, tw_hours, top_rated, most_reviewed, … (without it: the list of charts); an unknown id answers 400
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/charts"
{
    "ok": true,
    "items": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2: Task Force North",
            "type": "game",
            "img": "https://…/capsule_231x87.jpg",
            "price": "$24.99",
            "price_cents": 2499,
            "discount_pct": 0,
            "reviews": 12500,
            "review_pct": 96,
            "players_now": 451,
            "yt_score": 100,
            "tw_score": 42.5,
            "value": 1269367
        }
    ]
}
GET sales read

Current discounts

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/sales"
{
    "ok": true,
    "items": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2: Task Force North",
            "type": "game",
            "img": "https://…/capsule_231x87.jpg",
            "price": "$24.99",
            "price_cents": 2499,
            "discount_pct": 0,
            "reviews": 12500,
            "review_pct": 96,
            "players_now": 451,
            "yt_score": 100,
            "tw_score": 42.5
        }
    ]
}
GET upcoming read

Upcoming releases

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/upcoming"
{
    "ok": true,
    "items": [
        {
            "appid": 1239080,
            "name": "Door Kickers 2: Task Force North",
            "type": "game",
            "img": "https://…/capsule_231x87.jpg",
            "price": "$24.99",
            "price_cents": 2499,
            "discount_pct": 0,
            "reviews": 12500,
            "review_pct": 96,
            "players_now": 451,
            "yt_score": 100,
            "tw_score": 42.5
        }
    ]
}
GET changes read

Latest store changes across the catalogue

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/changes"
{
    "ok": true,
    "items": []
}
GET updates read

Latest public builds

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/updates"
{
    "ok": true,
    "items": []
}
GET tags read

Every Steam tag

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/tags"
{
    "ok": true,
    "items": [
        {
            "id": 19,
            "name": "Action"
        }
    ]
}
GET packages/{id} read

A Steam package (sub)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/packages/:id"
{
    "ok": true,
    "package": []
}
GET bundles/{id} read

A Steam bundle

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/bundles/:id"
{
    "ok": true,
    "bundle": []
}

Games

11 endpoints
GET apps/{appid} read

Everything about one app: store data, prices, players, followers, estimates, scores, tags, DLC, screenshots, developer contact flags (never an e-mail)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid"
{
    "ok": true,
    "app": {
        "appid": 1239080,
        "name": "Door Kickers 2: Task Force North",
        "type": "game",
        "img": "https://…/capsule_231x87.jpg",
        "price": "$24.99",
        "price_cents": 2499,
        "discount_pct": 0,
        "reviews": 12500,
        "review_pct": 96,
        "players_now": 451,
        "yt_score": 100,
        "tw_score": 42.5,
        "owners_est": 375000,
        "revenue_est_cents": 520000000,
        "tags": [
            {
                "id": 19,
                "name": "Action",
                "weight": 1000
            }
        ]
    }
}
GET apps/{appid}/youtube read

YouTube coverage: score, stats, chart, creators or videos

ParameterInTypeDescription
subquerystringcreators (default) or videos
sortquerystringcreators: subs, videos, views, last; videos: views (default newest)
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/youtube"
{
    "ok": true,
    "sub": "creators",
    "stats": {
        "score": 100,
        "videos": 13669,
        "creators": 978
    },
    "chart": {
        "labels": [],
        "game": [],
        "demo": []
    },
    "items": [],
    "total": 978
}
GET apps/{appid}/twitch read

Twitch coverage: live now, 30-day stats, streamers (items), VODs, clips, hourly and daily series

ParameterInTypeDescription
sortquerystringhours (default), avg, peak, followers, last
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/twitch"
{
    "ok": true,
    "stats": {
        "viewers_now": 120,
        "hours_30d": 5400
    },
    "items": [],
    "hourly": [],
    "daily": [],
    "vods": [],
    "clips": []
}
GET apps/{appid}/prices read

Current price in every tracked region and the price history of one region

ParameterInTypeDescription
ccquerystringregion of the history, default US
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/prices"
{
    "ok": true,
    "regions": [
        {
            "cc": "US",
            "currency": "USD",
            "formatted": "$24.99",
            "final_cents": 2499,
            "discount_pct": 0
        }
    ],
    "history_cc": "US",
    "history": []
}
GET apps/{appid}/charts read

Daily players (peak / average), reviews and estimated owners over time

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/charts"
{
    "ok": true,
    "players": [
        {
            "day": "2026-11-10",
            "peak": 457,
            "avg": 300
        }
    ]
}
GET apps/{appid}/news read

Steam news and patch notes

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/news"
{
    "ok": true,
    "items": []
}
GET apps/{appid}/achievements read

Achievements with global unlock rates

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/achievements"
{
    "ok": true,
    "items": []
}
GET apps/{appid}/changes read

Store changes we recorded (price, release, name, …)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/changes"
{
    "ok": true,
    "items": []
}
GET apps/{appid}/technical read

PICS data: builds, branches, depots, Steam Deck results, packages, bundles

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/technical"
{
    "ok": true,
    "pics": [],
    "branches": [],
    "builds": [
        {
            "buildid": 1234567
        }
    ],
    "depots": [],
    "packages": [],
    "bundles": [],
    "changenumbers": []
}
POST apps/{appid}/update read

Refresh one app now: Steam data, then YouTube, then Twitch (30 per day per account)

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/update"
{
    "ok": true,
    "request": {
        "id": 42,
        "status": "pending"
    }
}
GET requests/{id} read

Progress of an update request

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/requests/:id"
{
    "ok": true,
    "status": "done",
    "finished": true,
    "steps": {
        "steam": true,
        "youtube": true,
        "twitch": true
    }
}

Creators

5 endpoints
GET youtubers read

Browse YouTube creators who covered Steam games

ParameterInTypeDescription
qquerystring
gamequeryintegerappid they covered
tagqueryintegergenre of covered games
countryquerystringISO code
subs_minqueryinteger
subs_maxqueryinteger
views_minqueryintegeraverage views
active_daysqueryintegeruploaded within N days
games_minqueryinteger
reachablequery1only creators we can deliver a message to
has_twitchquery1
sortquerystringsubs, views, games, videos, last, upload, name
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/youtubers"
{
    "ok": true,
    "items": [
        {
            "identity": "yt:UC…",
            "title": "Creator",
            "subscribers": 120000,
            "games": 14,
            "reachable": true
        }
    ],
    "total": 66135
}
GET youtubers/{id} read

One YouTube creator: stats, games covered, videos, rating

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/youtubers/:id"
{
    "ok": true,
    "creator": {
        "channel_id": "UC…",
        "title": "Creator",
        "subscribers": 120000
    },
    "games": []
}
GET streamers read

Browse Twitch streamers who streamed Steam games

ParameterInTypeDescription
qquerystring
gamequeryinteger
languagequerystring
followers_minqueryinteger
viewers_minqueryintegeraverage viewers
hours_minqueryintegerhours streamed, 30 days
live_daysqueryintegerlive within N days
games_minqueryinteger
typequerystringpartner / affiliate
reachablequery1
has_youtubequery1
sortquerystringfollowers, avg, peak, hours, games, live, name
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/streamers"
{
    "ok": true,
    "items": [
        {
            "identity": "tw:123",
            "display_name": "Streamer",
            "followers": 5000,
            "reachable": true
        }
    ],
    "total": 274308
}
GET streamers/{id} read

One Twitch streamer: stats, games streamed, VODs, clips

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/streamers/:id"
{
    "ok": true,
    "streamer": {
        "user_id": "123",
        "display_name": "Streamer"
    }
}
GET developers read

Steam games whose developer can be messaged

ParameterInTypeDescription
qquerystringgame, developer or publisher
tagqueryinteger
yearqueryinteger
reviews_maxqueryintegerdefault 999
reachablequery0/1default 1
sourcequerystringsteam_support, website, contact_page, presskit, mailto, youtube
sortquerystringreviews, release, name, developer, yt, tw, price
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/developers"
{
    "ok": true,
    "items": [
        {
            "identity": "dev:1742910",
            "app": {
                "appid": 1239080,
                "name": "Door Kickers 2: Task Force North",
                "type": "game",
                "img": "https://…/capsule_231x87.jpg",
                "price": "$24.99",
                "price_cents": 2499,
                "discount_pct": 0,
                "reviews": 12500,
                "review_pct": 96,
                "players_now": 451,
                "yt_score": 100,
                "tw_score": 42.5
            },
            "developer": "Studio",
            "reachable": true
        }
    ]
}

Messaging

14 endpoints
POST contacts/search messages

Find recipients in one call: identities plus display data, ready for POST messages

ParameterInTypeDescription
kindbodystringyoutubers, streamers or developers
filtersbodyobjectthe list filters of that kind (see GET youtubers / streamers / developers)
limitbodyinteger1-200, default 50
pagebodyinteger
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"kind":"\u2026","filters":{},"limit":1,"page":1}' "https://steamradar.net/web/api/v1/contacts/search"
{
    "ok": true,
    "items": [
        {
            "identity": "yt:UCxxxxxxxxxxxxxxxxxxxxxx",
            "platform": "yt",
            "name": "Creator name",
            "sub": "1.2M subscribers",
            "avatar": "https://…",
            "reachable": true,
            "state": "send",
            "claimed": false
        }
    ],
    "identities": [
        "yt:UC…"
    ],
    "total": 1745
}
GET credits messages

Your wallet: credits, free messages left today, caps, packages

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/credits"
{
    "ok": true,
    "credits": 120,
    "free_left_today": 5,
    "free_per_day": 5,
    "sent_today": 0,
    "max_per_send": 1000,
    "max_per_day": 5000,
    "packages": [
        {
            "id": 100,
            "messages": 100,
            "price_cents": 1000
        }
    ]
}
GET messages/quote messages

What a send would cost and who would get it

ParameterInTypeDescription
toquerystringcomma-separated identities (yt:, tw:, dev:, or a member as u:<id> / user:<id>)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/quote"
{
    "ok": true,
    "recipients": [
        {
            "identity": "yt:UCxxxxxxxxxxxxxxxxxxxxxx",
            "platform": "yt",
            "name": "Creator name",
            "sub": "1.2M subscribers",
            "avatar": "https://…",
            "reachable": true,
            "state": "send",
            "claimed": false,
            "status": "send"
        }
    ],
    "send": 1,
    "free_left": 5,
    "credits_needed": 0,
    "credits": 120,
    "cost_ok": true
}
POST messages messages

Send one message to up to 1,000 recipients. 5 free per UTC day, then 1 credit each; unreachable, duplicate (24 h) and blocked recipients are skipped and never charged; all-or-nothing

ParameterInTypeDescription
tobodyarrayidentities (yt:, tw:, dev:, u:<id> / user:<id> for a member)
subjectbodystring≤ 150
bodybodystring≤ 5,000 plain text
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"to":[],"subject":"\u2026","body":"\u2026"}' "https://steamradar.net/web/api/v1/messages"
{
    "ok": true,
    "message_id": 77,
    "sent": 3,
    "free_used": 3,
    "credits_used": 0,
    "delivered": 1,
    "invited": 2,
    "credits_left": 120
}
GET messages/inbox messages

Messages you received

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/inbox"
{
    "ok": true,
    "items": [],
    "unread": 0
}
GET messages/sent messages

Messages you sent with per-recipient status counts

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/sent"
{
    "ok": true,
    "items": []
}
GET messages/{id} messages

A conversation (or your sent message with its recipients)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/:id"
{
    "ok": true,
    "thread_id": 1,
    "messages": []
}
POST messages/{id}/reply messages

Reply in a conversation (free)

ParameterInTypeDescription
bodybodystring
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"body":"\u2026"}' "https://steamradar.net/web/api/v1/messages/:id/reply"
{
    "ok": true,
    "message_id": 78
}
POST messages/{id}/read messages

Mark read

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/:id/read"
{
    "ok": true
}
POST messages/read-all messages

Mark every received message read

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/messages/read-all"
{
    "ok": true
}
POST messages/{id}/report messages

Report a message you received

ParameterInTypeDescription
reasonbodystring
blockbodyboolalso block the sender
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"reason":"\u2026","block":true}' "https://steamradar.net/web/api/v1/messages/:id/report"
{
    "ok": true,
    "blocked": false
}
GET credits/packages messages

Credit packages

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/credits/packages"
{
    "ok": true,
    "items": [
        {
            "id": 100,
            "messages": 100,
            "price_cents": 1000,
            "price": "$10.00"
        }
    ]
}
POST credits/checkout messages

Start a purchase: returns the Stripe Checkout URL to open in a browser

ParameterInTypeDescription
package_idbodyinteger100, 500, 1000, 5000, 10000 or 25000
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"package_id":1}' "https://steamradar.net/web/api/v1/credits/checkout"
{
    "ok": true,
    "checkout_url": "https://checkout.stripe.com/…"
}
GET credits/history messages

Credit ledger

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/credits/history"
{
    "ok": true,
    "items": [],
    "credits": 120
}

Dashboard

16 endpoints
GET dashboard dashboard

Dashboard summary: follows, my games with live coverage, alerts, claims, requests

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/dashboard"
{
    "ok": true,
    "credits": 120,
    "follows": [],
    "my_games": []
}
POST apps/{appid}/follow dashboard

Follow a game (alerts when creators cover it)

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/follow"
{
    "ok": true
}
DELETE apps/{appid}/follow dashboard

Unfollow

curl -X DELETE -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/follow"
{
    "ok": true
}
POST apps/{appid}/own dashboard

Attach a game to your dashboard "My games" (private; others see it on your profile only once you verified it with a claim)

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/own"
{
    "ok": true
}
DELETE apps/{appid}/own dashboard

Detach a game from "My games"

curl -X DELETE -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/apps/:appid/own"
{
    "ok": true
}
GET alerts dashboard

Alerts (new creators / videos / streamers on followed games, claims)

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/alerts"
{
    "ok": true,
    "items": []
}
POST alerts/read dashboard

Mark alerts read

ParameterInTypeDescription
idsbodyarrayoptional; all when omitted
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"ids":[]}' "https://steamradar.net/web/api/v1/alerts/read"
{
    "ok": true
}
GET claims dashboard

Your ownership claims and verified assets

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/claims"
{
    "ok": true,
    "items": []
}
POST claims dashboard

Start a claim: a code is e-mailed to the profile's contact address

ParameterInTypeDescription
identitybodystringyt:, tw: or dev:
methodbodystringemail_code (the only method)
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"identity":"\u2026","method":"\u2026"}' "https://steamradar.net/web/api/v1/claims"
{
    "ok": true,
    "claim": {
        "id": 9,
        "status": "pending"
    }
}
GET claims/{id} dashboard

Claim status

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/claims/:id"
{
    "ok": true,
    "claim": {
        "id": 9,
        "status": "pending"
    }
}
POST claims/{id}/cancel dashboard

Cancel a claim

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/claims/:id/cancel"
{
    "ok": true
}
POST claims/{id}/verify dashboard

Enter the e-mailed verification code

ParameterInTypeDescription
codebodystringSR-XXXX-XXXX
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"code":"\u2026"}' "https://steamradar.net/web/api/v1/claims/:id/verify"
{
    "ok": true,
    "verified": true
}
GET affiliate dashboard

Referral link, referred users, earnings, payouts

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/affiliate"
{
    "ok": true,
    "ref_code": "abc12345",
    "balance_cents": 0,
    "earned_cents": 0,
    "min_payout_cents": 2000,
    "payout_methods": [
        {
            "id": "USDT-TRC20",
            "label": "USDT · Tron (TRC-20)"
        }
    ],
    "payouts": []
}
POST affiliate/convert dashboard

Convert affiliate earnings to credits

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/affiliate/convert"
{
    "ok": true
}
POST affiliate/payout dashboard

Request a crypto withdrawal of the whole available balance (≥ $20; session token only, confirmed e-mail). method = a payout_methods id from GET affiliate (USDT-TRC20, USDT-ERC20, USDC-ERC20, USDC-SOL, BTC, ETH), details = the wallet address

ParameterInTypeDescription
methodbodystringUSDT-TRC20
detailsbodystringwallet address
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"method":"\u2026","details":"\u2026"}' "https://steamradar.net/web/api/v1/affiliate/payout"
{
    "ok": true,
    "amount_cents": 2000,
    "payout_id": 1
}
GET purchases dashboard

Payments and ledger

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/purchases"
{
    "ok": true,
    "payments": [],
    "ledger": []
}

Social

5 endpoints
GET users/{id} read

A member's profile (any signed-in member): name, verified profiles and the games they verified as theirs

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/users/:id"
{
    "ok": true,
    "user": {
        "id": 5,
        "name": "Member",
        "identities": [],
        "games": []
    }
}
GET {target}/ratings read

Ratings of a target (app:ID, yt:ID, tw:ID)

ParameterInTypeDescription
pagequeryintegerPage number, from 1
perqueryintegerItems per page, 1-100 (default 30)
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/:target/ratings"
{
    "ok": true,
    "rating": {
        "avg": 4.5,
        "count": 12
    },
    "items": []
}
POST users/{id}/block messages

Block a member

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/users/:id/block"
{
    "ok": true
}
DELETE users/{id}/block messages

Unblock a member

curl -X DELETE -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/users/:id/block"
{
    "ok": true
}
POST {target}/rate dashboard

Rate a target 1-5 with an optional review

ParameterInTypeDescription
starsbodyinteger1-5
reviewbodystringoptional
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"stars":1,"review":"\u2026"}' "https://steamradar.net/web/api/v1/:target/rate"
{
    "ok": true,
    "rating": {
        "avg": 4.5,
        "count": 13
    },
    "my_rating": 5
}

Authentication

8 endpoints
POST auth/register public

Create an account; returns a session token

ParameterInTypeDescription
emailbodystring
passwordbodystringmin 8 characters
namebodystringoptional
refbodystringreferral code, optional
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"email":"\u2026","password":"\u2026","name":"\u2026","ref":"\u2026"}' "https://steamradar.net/web/api/v1/auth/register"
{
    "ok": true,
    "token": "eyJ…",
    "user": {
        "id": 1,
        "name": "Me",
        "msg_credits": 0
    }
}
POST auth/login public

Log in; returns a session token (the mobile apps use this; scripts use API keys instead)

ParameterInTypeDescription
emailbodystring
passwordbodystring
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"email":"\u2026","password":"\u2026"}' "https://steamradar.net/web/api/v1/auth/login"
{
    "ok": true,
    "token": "eyJ…",
    "user": {
        "id": 1
    }
}
POST auth/forgot public

E-mail a password-reset link (always 200; 3 per address per hour)

ParameterInTypeDescription
emailbodystring
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"email":"\u2026"}' "https://steamradar.net/web/api/v1/auth/forgot"
{
    "ok": true
}
POST auth/reset public

Set a new password with the e-mailed token (single-use, 1 hour); app sessions are logged out

ParameterInTypeDescription
tokenbodystring
passwordbodystringmin 8 characters
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"token":"\u2026","password":"\u2026"}' "https://steamradar.net/web/api/v1/auth/reset"
{
    "ok": true,
    "token": "eyJ…",
    "user": {
        "id": 1
    }
}
POST auth/verify public

Confirm the e-mail address with the e-mailed token

ParameterInTypeDescription
tokenbodystring
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"token":"\u2026"}' "https://steamradar.net/web/api/v1/auth/verify"
{
    "ok": true,
    "user": {
        "id": 1,
        "email_verified": true
    }
}
POST auth/resend-verification dashboard

Send the confirmation e-mail again (5 per day)

curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/auth/resend-verification"
{
    "ok": true,
    "sent": true
}
POST auth/logout dashboard

End this session token (session token only: revoke a key with DELETE keys/{id}); also forgets this device's push token

ParameterInTypeDescription
expo_tokenbodystringoptional: the push token to forget
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"expo_token":"\u2026"}' "https://steamradar.net/web/api/v1/auth/logout"
{
    "ok": true
}
GET health public

Service check, with catalogue sizes for a welcome screen (kept an hour)

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/health"
{
    "ok": true,
    "status": "up",
    "time": "2026-11-10T22:00:00Z",
    "db": true,
    "kpis": {
        "apps": 322031,
        "creators": 80679,
        "streamers": 410721
    }
}

Docs

1 endpoints
GET docs public

This route catalogue as JSON

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/docs"
{
    "ok": true,
    "routes": [
        {
            "method": "GET",
            "path": "health",
            "scope": "public"
        }
    ]
}

Openapi

1 endpoints
GET openapi public

OpenAPI 3.0 document of this API

curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/openapi"
{
    "ok": true
}

Library

2 endpoints
GET library dashboard

Imported Steam library or wishlist with our data per game

ParameterInTypeDescription
kindquerystringowned (default) or wishlist
curl -H "X-API-Key: sr_live_YOUR_KEY" "https://steamradar.net/web/api/v1/library"
{
    "ok": true,
    "items": []
}
POST library/import dashboard

Import the linked Steam account's library or wishlist (public profile)

ParameterInTypeDescription
kindbodystringowned or wishlist
curl -X POST -H "X-API-Key: sr_live_YOUR_KEY" -H "Content-Type: application/json" -d '{"kind":"\u2026"}' "https://steamradar.net/web/api/v1/library/import"
{
    "ok": true,
    "imported": 120
}

Webhooks

Coming soon: notifications when a creator covers your game or answers your message, pushed to a URL of your choice. Poll GET alerts and GET messages/inbox meanwhile.