csst.at API

Bring CS2 player and account data into your own site, app or tool with the csst.at API. Access is arranged directly: to discuss your project, the sources you need and your expected daily request volume.

Read the API documentation at api.csst.at/docs for endpoint parameters and response schemas.

Pricing and daily requests

Paid access costs $1/month per 1,000 daily requests. Pricing scales linearly up to 100,000 daily requests.

Monthly price and the requests available each day during that month
Monthly price (USD)Daily request allowance
$1/month1,000 requests per day
$10/month10,000 requests per day
$100/month100,000 requests per day
Discussed case by caseMore than 100,000 requests per day

For example, $10 covers a daily allowance of 10,000 requests throughout the month. It is not a bundle of 10,000 requests to use across the entire month. Within the standard range, monthly price in USD = daily request allowance ÷ 1,000.

Small projects may qualify for free API access. This is decided case by case. Tell us what you are building and how much traffic you expect.

Arrange API access

Use the to discuss a paid plan, a larger API deal or free access for a small project: Discord snek239, X @snek239, or email [email protected].

Once access is arranged, authenticate requests with your API key in the Authorization: Bearer YOUR_API_KEY header. Keep the key on your server, out of public frontend code.

Make a request

The base URL is https://api.csst.at. Player endpoints use a path such as /:steam_identifier/steam, /:steam_identifier/faceit or /:steam_identifier/leetify. Choose the source endpoint you need; access to sources is agreed for your key.

curl --header 'Authorization: Bearer YOUR_API_KEY' \
  'https://api.csst.at/76561198000000000/steam'

Replace YOUR_API_KEY with your own key. The endpoint returns JSON; consult the docs for the current fields and options.

What does :steam_identifier mean?

:steam_identifier is a path placeholder for the player you want to look up. The docs may write it as {steam_identifier}. Replace the whole placeholder, including the colon or braces, with one player's Steam identifier.

Supported Steam identifier formats
FormatExample
SteamID6476561198000000000
SteamID2STEAM_0:0:19867136
SteamID3[U:1:39734272]
Vanity nameyour-vanity-name from a Steam /id/ URL
Steam profile URLA Steam Community /profiles/ or /id/ URL, URL-encoded as one path segment

The first three examples identify the same account. Prefer SteamID64 when you already have it: it is stable and avoids resolving a vanity name. A vanity name is the custom part of a Steam profile URL, not the player's display nickname.

URL-encode the identifier as a single path segment, especially when using a full URL or an ID containing brackets. For example, in JavaScript, use encodeURIComponent(identifier). A full profile URL becomes:

https://api.csst.at/https%3A%2F%2Fsteamcommunity.com%2Fprofiles%2F76561198000000000%2F/steam

Other placeholders refer to the endpoint's own ID type. For example, :faceit_id in the FACEIT history endpoint is a FACEIT player ID. Check the docs for each route rather than substituting a Steam ID into every placeholder.

Source availability

Data coverage and freshness depend on the source, its cache and the player's privacy settings. Discuss the endpoints your project needs when arranging access.

csstats.gg is currently blocking scraping, and its integration on this site is temporarily paused. If your project depends on that source, discuss its availability before arranging access. See the FAQ for the site notice.