SkinAPI is a single REST API for Steam and CS2 market data. Through one endpoint surface you get:
- Real-time prices aggregated across multiple marketplaces
- CS2 float values, paint seeds, patterns and wear
- Steam inventories, profiles and value history
- Deals and a trade-up calculator
- A full item catalog and metadata database
Every response is wrapped in a data object. The free plan needs no payment - sign in with Steam and start building.
- Sign in with Steam: skinapi.skinvaults.online/api/auth/steam
- Open your dashboard
- Create an API key (free plan, no card required)
Send your key in the x-api-key header on every request. Only /status works without a key.
curl "https://skinapi.skinvaults.online/api/v1/items?name=AK-47%20%7C%20Redline%20(Field-Tested)&game=cs2¤cy=USD" \
-H "x-api-key: YOUR_KEY"{
"data": {
"name": "AK-47 | Redline (Field-Tested)",
"game": "cs2",
"currency": "USD",
"price": 42.29
}
}Base URL:
https://skinapi.skinvaults.online/api/v1Every successful response is wrapped in a top-leveldataobject.
All endpoints require the x-api-key header except /status.
| Method | Endpoint | Description |
|---|---|---|
GET |
/items |
Current price for an item (cached Steam Market, live fallback). |
GET |
/markets |
Unified price for an item across every tracked marketplace. |
POST |
/markets/batch |
Price up to 20 items across all markets in one call. |
GET |
/history |
Daily price history (cross-source average + volume), up to 365 days. |
GET |
/deals |
Deal finder: items priced below Steam across markets. |
| Method | Endpoint | Description |
|---|---|---|
GET |
/float |
Exact float, paint seed, pattern (Doppler phase, blue-gem tier, Fire & Ice), stickers + sticker value, item name and image. |
GET |
/float/leaderboard |
Lowest (or highest) float leaderboard for a skin. |
| Method | Endpoint | Description |
|---|---|---|
GET |
/inventory |
Public inventory priced per item with total value and a summary breakdown. |
POST |
/inventory/batch |
Up to 10 inventories in a single request. |
GET |
/inventory/history |
Daily value-over-time history for a tracked inventory. |
| Method | Endpoint | Description |
|---|---|---|
GET |
/profile |
Steam profile: level, CS2 playtime, VAC/trade/community ban status, avatar, country. |
GET |
/friendlist |
Friend list with friendship timestamps. |
| Method | Endpoint | Description |
|---|---|---|
GET |
/catalog |
Full paginated item catalog (~15K CS2 items with image, type, rarity). |
GET |
/items/search |
Search the item database by name (autocomplete). |
GET |
/items/meta |
Full metadata for an item (weapon, rarity, collection, crates, float range). |
| Method | Endpoint | Description |
|---|---|---|
POST |
/tradeup |
Trade-up calculator: 10 same-rarity items -> outcomes, probabilities, EV. |
GET |
/status |
Public component health. No API key required. |
GET /api/v1/items?name=AK-47 | Redline (Field-Tested)&game=cs2¤cy=USD
x-api-key: YOUR_KEYname must be the full market_hash_name. Use /items/search to find the exact name.
GET /api/v1/markets?name=AK-47 | Redline (Field-Tested)&game=cs2¤cy=USD
x-api-key: YOUR_KEYReturns lowest, lowestSource, sources and a markets object (price, quantity and updatedAt per market). Market prices here are in minor units (cents).
POST /api/v1/markets/batch
x-api-key: YOUR_KEY
Content-Type: application/json
{
"names": [
"AK-47 | Redline (Field-Tested)",
"AWP | Asiimov (Field-Tested)",
"Glock-18 | Water Elemental (Factory New)"
],
"game": "cs2",
"currency": "USD"
}GET /api/v1/float?url=STEAM_INSPECT_LINK
x-api-key: YOUR_KEYReturns the float value, paint seed, pattern info and stickers. For the lowest/highest floats of a skin:
GET /api/v1/float/leaderboard?name=AK-47 | Redline (Field-Tested)&order=lowest&limit=25
x-api-key: YOUR_KEYGET /api/v1/inventory?steam_id=76561197960435530&game=cs2&prices=true¤cy=USD
x-api-key: YOUR_KEYThe parameter is steam_id (SteamID64 or vanity name) and the inventory must be public.
GET /api/v1/profile?id=76561197960435530
x-api-key: YOUR_KEYReturns steamId, name, avatar, country, steamLevel, CS2 stats and a bans summary (VAC, game, community, trade).
GET /api/v1/deals?game=cs2&min_discount=0.15¤cy=USD
x-api-key: YOUR_KEYGET /api/v1/items/search?q=redline&limit=10
x-api-key: YOUR_KEYReturns { query, count, results } with the exact name and image per result. Use that exact name in /items or /markets.
Games (pass in the game parameter): cs2, dota2, rust, tf2
Currencies (pass in the currency parameter): any ISO 4217 code. USD is the default; EUR and GBP are common.
| Plan | Price | Per minute | Per day | Per month |
|---|---|---|---|---|
| Free | €0 | 10 | 200 | 2,000 |
| Starter | €20/mo | 20 | 2,000 | 10,000 |
| Pro | €50/mo | 100 | 12,500 | 100,000 |
| Enterprise | Custom | 500 | 50,000 | 500,000 |
The
/floatand/inventoryendpoints have their own per-plan limits. See the pricing page for full details and the billing portal.
Every response includes these rate-limit headers:
| Header | Meaning |
|---|---|
X-RateLimit-Remaining-Minute |
Requests left in the current minute window |
X-RateLimit-Remaining-Day |
Requests left in the current day window |
X-RateLimit-Reset |
When the current window resets |
| Status | Meaning | Fix |
|---|---|---|
400 |
Bad request | Check required parameters (e.g. name, steam_id). |
401 |
Missing or invalid API key | Send the x-api-key header; confirm the key is active in your dashboard. |
429 |
Rate limited | Check X-RateLimit-Reset or upgrade your plan. |
- Documentation: skinapi.skinvaults.online/docs
- OpenAPI spec: skinapi.skinvaults.online/api/v1/openapi.json
- Postman collection: skinapi.skinvaults.online/api/v1/postman.json
- Status page: skinapi.skinvaults.online/status
Join our Discord for help, updates and to chat with other builders. The support bot answers SkinAPI questions instantly, and you can link your account with /connect.
Built by the SkinVaults team · skinapi.skinvaults.online