Skinory (submitted as g2push) Inventory API
The Inventory API from Skinory (submitted as g2push) — 1 operation(s) for inventory.
The Inventory API from Skinory (submitted as g2push) — 1 operation(s) for inventory.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/skinory:skinory-inventory-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Skinory Inventory API
version: 1.0.0
summary: Read-only CS2 skin prices, Steam inventory appraisal, pro teams and players
description: Public read-only API of skinory.io. Prices are the best buy-now offer aggregated across market feeds (Skinport, Market.CSGO, DMarket, CSFloat, Waxpeer, White.Market, CSBoard) and the Steam Community Market, in USD, refreshed roughly hourly. The site does not sell items. Item pages live at the url fields of every response.
termsOfService: https://skinory.io/privacy
contact:
name: Skinory
url: https://skinory.io/ru/about
license:
name: CC BY-SA 4.0 for the teams and players data, attribution with a link to Skinory is required
url: https://creativecommons.org/licenses/by-sa/4.0/
servers:
- url: https://skinory.io
security:
- {}
- bearerKey: []
- headerKey: []
tags:
- name: Inventory
paths:
/api/v1/inventory:
get:
operationId: appraiseInventory
summary: Appraise a public CS2 Steam inventory
description: Resolves a Steam profile and returns the total value of its CS2 inventory with the most expensive items. The inventory must be public in Steam privacy settings. A fresh appraisal can take a few seconds; on 503 retry after the Retry-After delay. Owners can hide their inventory on the site, then 403 hidden is returned.
parameters:
- name: steam
in: query
required: true
description: Steam profile URL (steamcommunity.com/id/<name> or /profiles/<id>), a 17-digit SteamID64 or a custom URL name
example: https://steamcommunity.com/id/gabelogannewell
schema:
type: string
maxLength: 200
- name: lang
in: query
required: false
description: Language of the page links in url fields (the site locale prefix, e.g. /en/items/…). Defaults to the Accept-Language header, then English. Unknown values are ignored.
example: en
schema:
type: string
enum:
- ru
- pl
- en
- de
- nl
- da
- es
- pt
- fr
- tr
- mn
- zh
- ja
- ko
- vi
- id
- ms
- tl
- hi
- ar
- fa
- he
responses:
'200':
description: Appraisal
content:
application/json:
schema:
type: object
properties:
steamId:
type: string
profileUrl:
type: string
name:
type: string
avatar:
type: string
level:
type:
- integer
- 'null'
currency:
type: string
const: USD
value:
type: number
description: Total value of priced items, USD
items:
type: integer
description: Items in the inventory
priced:
type: integer
description: Items that have a market price
checkedAt:
type: string
format: date-time
stale:
type: boolean
description: true when a cached appraisal is returned while a fresh one is computed
topItems:
type: array
items:
type: object
properties:
name:
type: string
price:
type: number
count:
type: integer
description: Copies in the inventory, absent on cached appraisals
image:
type: string
url:
description: Item page on the site
type:
- string
- 'null'
required:
- name
- price
- image
- url
publicPage:
description: Public inventory page, only when the owner shared it
type:
- string
- 'null'
pricing:
type: string
source:
type: string
required:
- steamId
- profileUrl
- name
- avatar
- level
- currency
- value
- items
- priced
- checkedAt
- stale
- topItems
- publicPage
- pricing
- source
'400':
description: Missing steam parameter
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
required:
- error
'401':
description: 'unauthorized: the Authorization or X-Api-Key header carries a malformed, unknown or revoked API key; send no key header to be served anonymously'
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
'403':
description: private (Steam inventory is private) or hidden (owner opted out)
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
'404':
description: Profile not found
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
'429':
description: 'Per-address cooldown or the hourly limit of 60 appraisals per address (600 and no cooldown for known AI assistants by User-Agent, 300 per API key and no cooldown with a key); busy with a key or an assistant User-Agent when the minute budget of lookups of never appraised profiles is spent (30 per key, 8 shared by all assistants). Retry-After is the number of seconds until the limit window resets. Responses served from the stored appraisal (stale: true) are not counted'
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
'503':
description: busy (appraisal in progress) or upstream (Steam is temporarily refusing requests from the server); retry after Retry-After seconds. Known AI assistants are held for up to 25 seconds and requests with an API key for up to 25 seconds while a queued fresh appraisal completes before busy is returned; there is no wait while Steam refuses the server
content:
application/json:
schema:
type: object
properties:
error:
type: string
message:
type: string
tags:
- Inventory
components:
securitySchemes:
bearerKey:
type: http
scheme: bearer
description: 'API key in Authorization: Bearer <key>. Optional; without a key the request is anonymous and keeps the per-address limits. Create a key at https://skinory.io/en/profile after signing in through Steam (the account has to be a day old, up to 3 keys per account). A key has its own limits instead of the address ones: 600 requests per minute, 300 appraisals per hour, 30 lookups per minute of profiles never appraised before, 200 profiles per /api/v1/inventories call and no per-address cooldown. A malformed, unknown or revoked key is refused with 401, a key of a banned account with 403. Keyed responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds until the minute window resets).'
headerKey:
type: apiKey
in: header
name: X-Api-Key
description: 'API key in the X-Api-Key header. Optional; without a key the request is anonymous and keeps the per-address limits. Create a key at https://skinory.io/en/profile after signing in through Steam (the account has to be a day old, up to 3 keys per account). A key has its own limits instead of the address ones: 600 requests per minute, 300 appraisals per hour, 30 lookups per minute of profiles never appraised before, 200 profiles per /api/v1/inventories call and no per-address cooldown. A malformed, unknown or revoked key is refused with 401, a key of a banned account with 403. Keyed responses carry X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset (seconds until the minute window resets).'