OpenAPI 3.0 reference · live try-it

API referenceAll endpoints · one place.

The complete contract for every published ItemData endpoint. Search by path or parameter, filter by product, expand an operation, and use Try it to configure and send the request without leaving the reference.

11Catalog operations
3Endpoint groups
12.0.0API version
GETRequest method

Public endpoints

11 of 11 endpoints
Endpoint group

Inventory

Fetch normalized Steam inventory pages with cache and billing metadata.

1 operation
GET/v1/inventoryFetch one Steam inventory page1–2 credits · Plan limits

Returns exactly one Steam page. A successful normal public request consumes one base credit and may use a fresh or stale-if-error public snapshot. no_cache=true, caller-supplied steam_login_secure or trade_url credentials, and try_first_seven_days_blocked_items=true each add +1 credit when the result is billable because they force a fresh fetch. Fresh-fetch additions never stack, so the maximum billable inventory-request price is 2 credits. Steam's undocumented Community inventory endpoint currently returns HTTP 401 with JSON null for structurally valid but unallocated SteamID64 values. Because 401 may also represent a public-empty state, ItemData treats it as a successful empty public page and follows normal public-page caching and billing. An upstream Steam HTTP 403 is treated as a confirmed private inventory and finalizes the full quote: 1 credit for a normal MISS or private-marker HIT, or 2 credits for a fresh-fetch mode. It is cached for 72 hours once per SteamID64; during that TTL it applies to every game and normal requests return HIT without contacting Steam. no_cache=true ignores both public snapshots and the private marker, charges 2 credits for a confirmed fresh 403, and refreshes the marker. A non-authoritative success=false result still removes an older public snapshot but is not charged. Caller-supplied and internal Steam-session requests always perform a fresh fetch and bypass all shared cache state. For an authorized account, provide a structurally valid steamLoginSecure cookie in X-Steam-Login-Secure to fetch the cookie owner's inventory for any supported game; for CS2, this avoids the normal 10-day visibility delay. steam_id is ignored and the owner SteamID64 is read from the cookie. Alternatively, provide a canonical Steam trade URL in X-Steam-Trade-URL to fetch that CS2 partner inventory, including 7-10 day trade-locked items; steam_id is then ignored and the target is read from the URL. If both credentials are present, X-Steam-Login-Secure takes precedence and the trade URL is ignored. Never put either secret in a URL unless legacy compatibility is unavoidable: query strings can enter browser history, access logs, and intermediary logs. Set try_first_seven_days_blocked_items=true for CS2 to try the internal partner-inventory session pool first; this forces non-tradable items to be included and falls back to a fresh public inventory request on the first page only when Steam rejects the partner request or the pool is temporarily unavailable. trade_url cannot be combined with try_first_seven_days_blocked_items. Broker authentication/configuration and invalid broker responses fail instead of being hidden by public fallback. Other failed requests and non-authoritative success=false responses consume zero credits. The upstream public Steam page size is fixed server-side at 2000; count and limit are not accepted. When more_items is true, pass last_assetid as start_assetid on the next request. Preserve cursor provenance using X-ItemData-Inventory-Source: keep the option enabled after partner, but omit it after public-fallback. The actual encoded JSON body is limited to 12 MiB for both compact and pretty output.

Permanent link
Authentication
Required ?key= query parameterOperation ID: getInventory
Credits
1–2 creditsSuccessful normal pages cost 1 credit. Any fresh-fetch mode adds +1, and fresh options never stack above 2 credits.
Rate limit
Plan limitsThe active plan's minute, day, and month request limits apply before Steam work begins.

Parameters

15 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
steam_id
Conditional
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID64 only, in the inclusive range 76561197960265729 through 76561202255233023. SteamID2, SteamID3, vanity names, profile URLs, whitespace, and other Steam account types are rejected before inventory capacity or credits are reserved. Required unless steam_login_secure or trade_url supplies the target. When either credential supplies the target, steam_id may be omitted; if supplied, it must still satisfy this schema but its value is not used. steam_login_secure takes precedence when both credentials are present.
Required unless X-Steam-Login-Secure or X-Steam-Trade-URL is provided.
game
Optional
query
string
Default: cs2
Allowed: cs2, rust, dota, dota2, tf2, pubg
Supported canonical values are cs2, rust, dota2, tf2, and pubg. dota is accepted as a compatibility alias and is returned canonically as dota2.
language
Optional
query
string
Default: english
Allowed:
Steam inventory localization language. Defaults to english and accepts Steam-compatible language identifiers.
start_assetid
Optional
query
string
Default:
Allowed:
Opaque Steam cursor from the previous response's last_assetid. Omit for the first page.
include_non_tradable
Optional
query
boolean
Default: false
Allowed:
Include non-tradable assets. Filtering never changes total_inventory_count or cursor progression.
with_no_tradable
Optional
query
boolean
Default: false
Allowed:
SteamWebAPI-compatible alias for include_non_tradable. If both are provided, their values must match.
no_cache
Optional
query
boolean
Default: false
Allowed:
Force a new public Steam fetch instead of serving a public snapshot or confirmed-private marker. Additional cost is +1 credit for a billable result; a confirmed Steam HTTP 403 therefore costs 2 credits and refreshes the account-wide private marker. The response is not published as another shared immutable object. A non-authoritative success=false response still durably removes any older public snapshot and is refunded. A concurrent no_cache call for the same SteamID64 returns refresh_in_progress and is not charged. Requests authorized by steam_login_secure or trade_url and internal Steam-session requests already bypass the shared cache and do not need this flag. Fresh-fetch additions never stack, so the maximum billable inventory-request price is 2 credits.
try_first_seven_days_blocked_items
Optional
query
boolean
Default: false
Allowed:
For CS2 only, try Steam's partner-inventory path through an internal service-account session before the normal public endpoint. It cannot be combined with steam_login_secure or trade_url, always bypasses the shared cache, and forces include_non_tradable=true. Additional cost is +1 credit for a billable result, including a confirmed Steam HTTP 403 from the public fallback. If Steam rejects the first partner request or the pool is temporarily unavailable, ItemData performs one fresh public fallback and reports public-fallback in X-ItemData-Inventory-Source; broker configuration/authentication and protocol failures do not silently fall back. For the next page, keep this flag after a partner response but omit it after public-fallback. A later partner cursor never falls back to the semantically different public cursor.
steam_login_secure
OptionalDeprecatedSensitive · never persist
query
string
Default:
Allowed:
Legacy query form of X-Steam-Login-Secure. Prefer the header because query strings can be retained in browser history and access or intermediary logs.
X-Steam-Login-Secure
OptionalSensitive · never persist
header
string
Default:
Allowed:
Preferred transport for a structurally valid steamLoginSecure cookie that contains its owner SteamID64. Supported for every game; for CS2, it fetches the authorized owner's inventory without the normal 10-day visibility delay. steam_id is ignored and derived from the cookie. The value is forwarded only for this request, bypasses all shared cache reads and writes, adds +1 credit for a billable result including a confirmed Steam HTTP 403, and is never persisted. If X-Steam-Trade-URL is also present, this header takes precedence and the trade URL is ignored.
trade_url
OptionalDeprecatedSensitive · never persist
query
string
Default:
Allowed:
Legacy query form of X-Steam-Trade-URL. Prefer the header because the trade token is a secret and query strings can be retained in browser history and access or intermediary logs.
X-Steam-Trade-URL
OptionalSensitive · never persist
header
string
Default:
Allowed:
Example: https://steamcommunity.com/tradeoffer/new/?partner=123456&token=AbCdEf
Preferred transport for a canonical HTTPS Steam trade URL with exactly partner=<AccountID32> and token=<6-128 characters from A-Z, a-z, 0-9, underscore, or hyphen>. CS2 only. Fetches the partner inventory including 7-10 day trade-locked items; steam_id is ignored and derived from partner. It always bypasses shared cache reads and writes, adds +1 credit after success, is never persisted, and cannot be combined with try_first_seven_days_blocked_items. It is ignored when X-Steam-Login-Secure is present.
format
Optional
query
string
Default: json
Allowed: json, prettyjson, pretty
Use prettyjson for indented JSON; pretty remains a compatibility alias.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Pretty output is subject to the same 12 MiB encoded-body limit as compact JSON. ItemData intentionally supports JSON only.

Responses

10 documented statuses
200
One inventory page, including a cacheable success=false response for a confirmed private inventory. Upstream Steam 401/403 statuses are domain inputs and do not become this API's HTTP 401/403 responses. A Steam 401, including the response observed for an unallocated but structurally valid SteamID64, becomes a billable successful empty page.
application/json · Inventory
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key is inactive, its assigned plan has expired (`plan_expired`), or access is forbidden
application/json · Error
429
Account-wide fixed-window request rate exceeded. All API keys for the same Steam account and every application replica share the minute, UTC-day, and UTC-month counters.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
Steam returned invalid data, or the decoded or final encoded inventory exceeded a safety limit (`pagination_limit`)
application/json · Error
503
Required dependency or proxy gateway unavailable (`cache_unavailable` or `upstream_unavailable`), or an identical refresh is still in progress (`refresh_in_progress`)
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'steam_id=76561198000000000' \
  --data-urlencode 'game=cs2' \
  'https://itemdata.net/v1/inventory'
Endpoint group

Steam Profile

Resolve Steam identities and read minimal profile, owned-game, friend-list, and trade-hold facts through the isolated Steam Web API broker.

7 operations
GET/v1/steam/idConvert a public individual Steam ID between canonical formats1 credit · Profile product limits

Converts one canonical public individual SteamID2, SteamID3, or SteamID64 into all three representations and the 32-bit AccountID. This operation is entirely local: it performs no vanity lookup, Steam API, broker, proxy, Inventory, or database read. Vanity names and profile URLs remain the responsibility of `/v1/steam/resolve`. A successful response costs one credit and requires the profile product entitlement and `profile:read` scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: convertSteamID
Credits
1 creditA successful local Steam ID conversion costs one credit.
Rate limit
Profile product limitsThe account, profile product, and profile quota-group minute, UTC-day, and UTC-month limits apply before conversion.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
steam_id
Required
query
string
Default:
Allowed:
Canonical public individual SteamID2, SteamID3, or SteamID64. Whitespace, leading-zero account components, groups, clans, and other universes are rejected.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

9 documented statuses
200
The public individual Steam identity in every supported canonical format. This operation charges one credit.
application/json · SteamIDResolution
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'steam_id=STEAM_0:0:19867136' \
  'https://itemdata.net/v1/steam/id'
GET/v1/steam/resolveResolve a Steam profile reference1 credit · Profile product limits

Converts a public individual SteamID2, SteamID3, or SteamID64 locally, or resolves a Steam vanity name or canonical steamcommunity.com profile URL. The response contains canonical SteamID2, SteamID3, SteamID64, and AccountID forms. The operation costs one credit after a successful resolution and requires the profile product entitlement and profile:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: resolveSteamProfileReference
Credits
1 creditA successful Steam profile-reference resolution costs one credit.
Rate limit
Profile product limitsThe account, profile product, and profile quota-group minute, UTC-day, and UTC-month limits apply before Steam work begins.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
id
Required
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID2 (STEAM_0:Y:Z or STEAM_1:Y:Z), SteamID3 ([U:1:AccountID]), SteamID64, 1-64 character ASCII vanity name using letters, digits, hyphen, or underscore, or a canonical http(s) steamcommunity.com or www.steamcommunity.com /id/<vanity> or /profiles/<SteamID64> URL without credentials, query, or fragment. Leading and trailing whitespace is ignored; embedded whitespace, control characters, noncanonical decimals, overflow, and unsupported Steam account types are rejected.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
The resolved public individual Steam identity in every supported canonical format. This operation charges one credit.
application/json · SteamIDResolution
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
404
Steam did not return the requested profile or vanity reference (`profile_not_found`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'id=76561198000000000' \
  'https://itemdata.net/v1/steam/resolve'
GET/v1/steam/profileRead a minimal Steam profile1 credit · Profile product limits

Returns the currently enabled minimal Steam player summary for a SteamID64, vanity name, or canonical Steam Community profile URL. Restrictions, badges, and level are available from the separate full profile operation and are not included here. A successful response costs one credit and requires the profile product entitlement and profile:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: getSteamProfile
Credits
1 creditA successful minimal Steam profile read costs one credit.
Rate limit
Profile product limitsThe account, profile product, and profile quota-group minute, UTC-day, and UTC-month limits apply before Steam work begins.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
id
Required
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID2 (STEAM_0:Y:Z or STEAM_1:Y:Z), SteamID3 ([U:1:AccountID]), SteamID64, 1-64 character ASCII vanity name using letters, digits, hyphen, or underscore, or a canonical http(s) steamcommunity.com or www.steamcommunity.com /id/<vanity> or /profiles/<SteamID64> URL without credentials, query, or fragment. Leading and trailing whitespace is ignored; embedded whitespace, control characters, noncanonical decimals, overflow, and unsupported Steam account types are rejected.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
One minimal Steam profile. This operation charges one credit.
application/json · SteamProfileResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
404
Steam did not return the requested profile or vanity reference (`profile_not_found`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'id=76561198000000000' \
  'https://itemdata.net/v1/steam/profile'
GET/v1/steam/profile/fullRead a full Steam profile1 credit · Profile product limits

Returns the validated player summary, exact economy/community/VAC/game ban facts, Steam level, and earned badges exposed by Valve for a SteamID64, vanity name, or canonical Steam Community profile URL. Restriction fields are upstream facts and are not a general trade eligibility verdict. All timestamps are RFC 3339 UTC values and optional badge identifiers remain omitted when Valve does not provide them. A successful response costs one credit and one profile quota unit and requires the profile product entitlement and profile:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: getSteamFullProfile
Credits
1 creditA successful full Steam profile read costs one credit.
Rate limit
Profile product limitsOne client request consumes one account, profile product, and profile quota-group unit; the isolated broker independently budgets the constituent Valve calls.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
id
Required
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID2 (STEAM_0:Y:Z or STEAM_1:Y:Z), SteamID3 ([U:1:AccountID]), SteamID64, 1-64 character ASCII vanity name using letters, digits, hyphen, or underscore, or a canonical http(s) steamcommunity.com or www.steamcommunity.com /id/<vanity> or /profiles/<SteamID64> URL without credentials, query, or fragment. Leading and trailing whitespace is ignored; embedded whitespace, control characters, noncanonical decimals, overflow, and unsupported Steam account types are rejected.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
One full Steam profile assembled from validated Steam Web API facts. This operation charges one credit.
application/json · SteamFullProfileResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
404
Steam did not return the requested profile or vanity reference (`profile_not_found`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'id=76561198000000000' \
  'https://itemdata.net/v1/steam/profile/full'
GET/v1/steam/profile/batchRead up to 20 minimal Steam profiles1–20 credits · Weighted profile limits

Returns minimal profiles in the same relative order as the requested SteamID64 values and reports IDs omitted by Steam in missing_steam_ids. The request accepts 1-20 unique public individual SteamID64 values and costs one credit and one profile quota unit per requested ID. A configured plan object_limits.batch_size is enforced against that submitted-ID count before quota or credit consumption.

Permanent link
Authentication
Required ?key= query parameterOperation ID: getSteamProfilesBatch
Credits
1–20 creditsA successful batch costs one credit per requested SteamID64, up to 20 credits.
Rate limit
Weighted profile limitsThe optional plan batch_size object limit counts submitted SteamID64 values first; when allowed, account, profile product, and profile quota-group limits consume one unit per value before Steam work begins.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
steam_ids
Required
query
string
Default:
Allowed:
Example: 76561198000000000,76561198000000001
Comma-separated list of 1-20 unique public individual SteamID64 values. Entries must contain exactly 17 ASCII digits with no surrounding whitespace; vanity names and profile URLs are not accepted by the batch operation.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
Ordered minimal profiles plus the explicit missing-ID set. Charges 1-20 credits according to the number of requested IDs.
application/json · SteamProfileBatchResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
422
The strictly validated request contains more caller-visible objects than the entitled plan's configured `batch_size` limit (`object_limit_exceeded`). Rejected before quota consumption, credit reservation, or product-service work and has no `Retry-After` header.
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'steam_ids=76561198000000000,76561198000000001' \
  'https://itemdata.net/v1/steam/profile/batch'
GET/v1/steam/profile/owned-gamesList a Steam account's owned games1 credit · Profile product limits

Returns the validated games Steam exposes as owned by a SteamID64, vanity name, or canonical Steam Community profile URL. Optional app metadata and played free games map directly to Valve's bounded GetOwnedGames options; app_ids restricts the response to up to 100 unique positive application IDs. Omitted optional booleans are false and an omitted app_ids value means no application filter. Private or unavailable game details return a sanitized error. A successful response costs one credit and one profile quota unit and requires the profile product entitlement and profile:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: listSteamOwnedGames
Credits
1 creditA successful owned-games read costs one credit, independent of the optional app filter.
Rate limit
Profile product limitsThe account, profile product, and profile quota-group minute, UTC-day, and UTC-month limits apply once before Steam work begins.

Parameters

6 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
id
Required
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID2 (STEAM_0:Y:Z or STEAM_1:Y:Z), SteamID3 ([U:1:AccountID]), SteamID64, 1-64 character ASCII vanity name using letters, digits, hyphen, or underscore, or a canonical http(s) steamcommunity.com or www.steamcommunity.com /id/<vanity> or /profiles/<SteamID64> URL without credentials, query, or fragment. Leading and trailing whitespace is ignored; embedded whitespace, control characters, noncanonical decimals, overflow, and unsupported Steam account types are rejected.
include_app_info
Optional
query
boolean
Default: false
Allowed:
Ask Steam to include optional application names, image hashes, sort metadata, capability flags, and content descriptors. Omit or set false for the smaller ownership and playtime projection.
include_played_free_games
Optional
query
boolean
Default: false
Allowed:
Ask Steam to include free games the account has played even when they are not recorded as owned. Omit or set false for Valve's default behavior.
app_ids
Optional
query
string
Default:
Allowed:
Example: 730,570
Optional comma-separated filter containing 1-100 unique canonical positive uint32 Steam AppID values. Arbitrary Steam applications are accepted; entries with whitespace, leading zeroes, duplicates, or values above 4294967295 are rejected. Omit the parameter entirely to request every game Steam exposes.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
The exact owned-game projection returned by Steam. This operation charges one credit.
application/json · SteamOwnedGamesResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
404
Steam did not return the requested profile or vanity reference (`profile_not_found`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'id=76561198000000000' \
  --data-urlencode 'include_app_info=true' \
  --data-urlencode 'include_played_free_games=true' \
  --data-urlencode 'app_ids=730,570' \
  'https://itemdata.net/v1/steam/profile/owned-games'
GET/v1/steam/friendlistRead a Steam friend list1 credit · Friend-list limits

Returns the public friend relationships exposed by Steam for a SteamID64, vanity name, or canonical Steam Community profile URL. Private or unavailable friend data returns a sanitized error. A successful response costs one credit and requires the profile product entitlement and friendlist:read scope; it uses the independently limited friendlist quota group.

Permanent link
Authentication
Required ?key= query parameterOperation ID: getSteamFriendList
Credits
1 creditA successful public Steam friend-list read costs one credit.
Rate limit
Friend-list limitsThe account, profile product, and independent friendlist quota-group minute, UTC-day, and UTC-month limits apply before Steam work begins.

Parameters

3 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
id
Required
query
string
Default:
Allowed:
Example: 76561198000000000
Public individual SteamID2 (STEAM_0:Y:Z or STEAM_1:Y:Z), SteamID3 ([U:1:AccountID]), SteamID64, 1-64 character ASCII vanity name using letters, digits, hyphen, or underscore, or a canonical http(s) steamcommunity.com or www.steamcommunity.com /id/<vanity> or /profiles/<SteamID64> URL without credentials, query, or fragment. Leading and trailing whitespace is ignored; embedded whitespace, control characters, noncanonical decimals, overflow, and unsupported Steam account types are rejected.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
The requested Steam account and its public friend relationships. This operation charges one credit.
application/json · SteamFriendListResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
404
Steam did not return the requested profile or vanity reference (`profile_not_found`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
The Steam Web API broker or Steam returned a malformed, inconsistent, or safety-limit-exceeding response (`invalid_upstream_response`).
application/json · Error
503
Product authorization, credit accounting, the isolated Steam Web API broker, or the required Steam operation is unavailable (`product_authorization_unavailable` or `operation_unavailable`). An operation disabled by the server launch configuration is never reported as a tariff entitlement failure.
application/json · Error
504
Steam request timed out
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'id=76561198000000000' \
  'https://itemdata.net/v1/steam/friendlist'
Endpoint group

CS2

Read pinned localized CS2 item definitions and facets with official Steam image URLs without request-time upstream access.

3 operations
GET/v1/steam/cs2/itemsList normalized CS2 item definitions with official Steam images1 credit · CS2 catalog limits

Lists CS2 definitions imported from a pinned ByMykel/CSGO-API all.json revision into an immutable local PostgreSQL generation. app_id is fixed to 730 and the request path performs no GitHub, Steam, Inventory, broker, or proxy call. Flat mode is the default; grouped=true paginates complete source-provided variant groups. Source-backed weapon_type, item_slug, rarity_color, StatTrak/Souvenir flags, and float bounds are included when available. market_url is derived from the exact Steam market_hash_name. legacy is nullable because the pinned source does not currently publish that attribute. An image_url is returned only when the source supplies an official HTTPS Steam image on community.akamai.steamstatic.com/economy/image/ or cdn.steamstatic.com/apps/730/icons/; GitHub-hosted and every other image URL are omitted. Cursors bind all filters and the immutable generation. A successful response costs one credit and requires the cs2 product entitlement plus catalog:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: listCS2CatalogItems
Credits
1 creditA successful flat or grouped catalog page costs one credit.
Rate limit
CS2 catalog limitsThe account, cs2 product, and catalog quota-group minute, UTC-day, and UTC-month limits apply once per page.

Parameters

12 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
language
Optional
query
string
Default: en
Allowed: bg, cs, da, de, el, en, es-ES, es-MX, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tr, uk, vi, zh-CN, zh-TW
Localizes human-readable display fields. Stable IDs, item_type, phase, wear, market_hash_name, and image_url never change. If the current generation has no complete requested locale, fields fall back to English.
search
Optional
query
string
Default:
Allowed:
Case-insensitive substring over the source-provided definition name. The canonical UTF-8 value contains no control or surrounding whitespace and occupies 3-128 bytes.
def_index
Optional
query
integer · int64
Default:
Allowed:
Exact positive CS2 definition index.
paint_index
Optional
query
integer · int64
Default:
Allowed:
Exact CS2 paint index. Zero is a valid explicit value.
grouped
Optional
query
boolean
Default: false
Allowed:
False paginates individual definitions; true paginates complete explicit variant groups.
show_all
Optional
query
boolean
Default: true
Allowed:
Include definitions without a public Steam Community market identity. Set false to keep only source-default-visible definitions.
preview_only
Optional
query
boolean
Default: false
Allowed:
Return only definitions without an exact market_hash_name match in the atomically selected Steam item-catalog generation. The compatibility alias preview has identical semantics.
only_phases
Optional
query
boolean
Default: false
Allowed:
Return only definitions with a non-empty explicit source phase.
limit
Optional
query
integer
Default:
Allowed:
Top-level page size. Grouped mode defaults to 50 and allows at most 100 groups; flat mode defaults to 100 and allows at most 200 definitions. Not accepted with group_by.
cursor
Optional
query
string
Default:
Allowed:
Opaque mode-specific keyset cursor (`c2g1_` grouped or `c2m1_` flat). Reuse it with the same filters; it expires after 24 hours or either generation changes. Not accepted with group_by.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

11 documented statuses
200
One flat or grouped catalog page, encoded within 8 MiB. This operation charges one credit.
application/json · SteamItemsPreviewFlatResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
410
The catalog cursor is older than 24 hours or either pinned generation is no longer current (`cursor_expired`). Restart without a cursor. The request is refunded.
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
Published catalog data contains a non-Steam image URL, violates another compiled domain bound, or the encoded response exceeds 8 MiB (`invalid_catalog_response` or `upstream_response_too_large`). The request is refunded.
application/json · Error
503
A current normalized CS2 metadata generation or Steam item generation has not been published or the bounded local store is unavailable (`catalog_unavailable`); product authorization or accounting is unavailable (`product_authorization_unavailable` or `usage_accounting_unavailable`); or request/response capacity is exhausted (`capacity_exceeded`). The request is refunded after any credit reservation.
application/json · Error
504
The bounded local catalog or request-response deadline elapsed (`catalog_timeout`), or product authorization exceeded its independent deadline (`product_authorization_timeout`). The request is refunded after any credit reservation.
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'limit=100' \
  'https://itemdata.net/v1/steam/cs2/items'
GET/v1/steam/cs2/facetsRead one complete bounded CS2 catalog facet1 credit · CS2 catalog limits

Returns one sorted, unpaginated projection of at most 50,000 unique non-empty values from the same immutable CS2 catalog used by the items endpoint. app_id is fixed to 730. def_index and paint_index values are JSON integers; every other field contains strings. The request path performs no upstream network call. A successful response costs one credit and requires the cs2 product entitlement plus catalog:read scope.

Permanent link
Authentication
Required ?key= query parameterOperation ID: readCS2CatalogFacet
Credits
1 creditA successful complete facet projection costs one credit.
Rate limit
CS2 catalog limitsThe account, cs2 product, and catalog quota-group minute, UTC-day, and UTC-month limits apply once per facet read.

Parameters

10 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
language
Optional
query
string
Default: en
Allowed: bg, cs, da, de, el, en, es-ES, es-MX, fi, fr, hu, it, ja, ko, nl, no, pl, pt-BR, pt-PT, ro, ru, sv, th, tr, uk, vi, zh-CN, zh-TW
Localizes human-readable display fields. Stable IDs, item_type, phase, wear, market_hash_name, and image_url never change. If the current generation has no complete requested locale, fields fall back to English.
field
Required
query
string
Default:
Allowed: item_type, category, item_name, collection, wear, wear_name, group_name, rarity, phase, def_index, paint_index, market_hash_name
Exact complete distinct projection to return. category, rarity, item_name, collection, group_name, and wear_name follow language; numeric index fields are JSON integers and stable fields are unchanged.
search
Optional
query
string
Default:
Allowed:
Case-insensitive substring over the source-provided definition name. The canonical UTF-8 value contains no control or surrounding whitespace and occupies 3-128 bytes.
def_index
Optional
query
integer · int64
Default:
Allowed:
Exact positive CS2 definition index.
paint_index
Optional
query
integer · int64
Default:
Allowed:
Exact CS2 paint index. Zero is a valid explicit value.
show_all
Optional
query
boolean
Default: true
Allowed:
Include definitions without a public Steam Community market identity. Set false to keep only source-default-visible definitions.
preview_only
Optional
query
boolean
Default: false
Allowed:
Return only definitions without an exact market_hash_name match in the atomically selected Steam item-catalog generation. The compatibility alias preview has identical semantics.
only_phases
Optional
query
boolean
Default: false
Allowed:
Return only definitions with a non-empty explicit source phase.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

10 documented statuses
200
One complete bounded distinct projection. This operation charges one credit.
application/json · SteamItemsPreviewDistinctResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
Published catalog data contains a non-Steam image URL, violates another compiled domain bound, or the encoded response exceeds 8 MiB (`invalid_catalog_response` or `upstream_response_too_large`). The request is refunded.
application/json · Error
503
A current normalized CS2 metadata generation or Steam item generation has not been published or the bounded local store is unavailable (`catalog_unavailable`); product authorization or accounting is unavailable (`product_authorization_unavailable` or `usage_accounting_unavailable`); or request/response capacity is exhausted (`capacity_exceeded`). The request is refunded after any credit reservation.
application/json · Error
504
The bounded local catalog or request-response deadline elapsed (`catalog_timeout`), or product authorization exceeded its independent deadline (`product_authorization_timeout`). The request is refunded after any credit reservation.
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  --data-urlencode 'field=item_type' \
  'https://itemdata.net/v1/steam/cs2/facets'
GET/v1/steam/cs2/languagesList supported and currently published CS2 catalog languages1 credit · CS2 catalog limits

Lists all 28 CSGO-API language identifiers. English is always available. available=true for another language only when a complete localization sidecar matching the current immutable English metadata generation has been published. Requests for unavailable supported languages remain valid and fall back field-by-field to English.

Permanent link
Authentication
Required ?key= query parameterOperation ID: listCS2CatalogLanguages
Credits
1 creditA successful language-availability read costs one credit.
Rate limit
CS2 catalog limitsUses the cs2 catalog quota group and the same account limits as facets.

Parameters

2 parameters
ParameterLocation & typeDefault / allowedDescription
key
RequiredSensitive · never persist
query
string
Default:
Allowed:
Required API-key transport. Pass the active key in the query string on every authenticated request.
pretty
Optional
query
boolean
Default: false
Allowed:
Set to 1 or true for indented JSON. Omit for compact JSON.

Responses

10 documented statuses
200
Supported languages and current-generation availability. This operation charges one credit.
application/json · CS2CatalogLanguagesResponse
400
Invalid request
application/json · Error
401
Missing or invalid API key
application/json · Error
402
Insufficient credits
application/json · Error
403
API key or plan access is forbidden, the key is not entitled to the requested product operation (`operation_not_entitled`), or Steam denied access to private profile, owned-game, or friend data (`steam_access_denied`).
application/json · Error
429
One of the account, product, or operation quota group's minute, UTC-day, or UTC-month limits was exceeded. Batch profile costs are weighted by the number of requested Steam IDs.
application/json · Error
499
Request context was canceled by the client
application/json · Error
502
Published catalog data contains a non-Steam image URL, violates another compiled domain bound, or the encoded response exceeds 8 MiB (`invalid_catalog_response` or `upstream_response_too_large`). The request is refunded.
application/json · Error
503
A current normalized CS2 metadata generation or Steam item generation has not been published or the bounded local store is unavailable (`catalog_unavailable`); product authorization or accounting is unavailable (`product_authorization_unavailable` or `usage_accounting_unavailable`); or request/response capacity is exhausted (`capacity_exceeded`). The request is refunded after any credit reservation.
application/json · Error
504
The bounded local catalog or request-response deadline elapsed (`catalog_timeout`), or product authorization exceeded its independent deadline (`product_authorization_timeout`). The request is refunded after any credit reservation.
application/json · Error

Request examples

cURL · Python payload · JavaScript
curl --fail-with-body --get \
  -H 'Accept: application/json' \
  --data-urlencode "key=$ITEMDATA_API_KEY" \
  'https://itemdata.net/v1/steam/cs2/languages'