Skinport API
European marketplace, prices quoted in EUR and converted on our side. Get Skinport's lowest ask and listing count for 29,507 CS2 and Rust items, refreshed every 5 minutes — in the same response as Steam and 7 other marketplaces. Grab a free key or read the docs.
Why read Skinport through this API
Skinport is one of the few third-party markets that lists Rust skins as deeply as CS2, which makes it the natural price anchor for Rust inventories.
Skinport publishes a public price feed, so its lowest ask and stock count arrive without scraping listing pages. We read it every five minutes and store the lowest ask plus the number of listings behind it, per item, per game.
The point of a single API is that you are not maintaining 8 integrations. Skinport arrives in the
same shape as every other market: minor units, a currency, a listing count and a capture timestamp. Switch
?currency=EUR and every market converts together.
What you get for each Skinport item
- Lowest ask — the cheapest live listing, in integer minor units (no floats, no rounding drift).
- Listing count — how many listings sit behind that price, so you can tell a real floor from one lucky listing.
- Capture timestamp — when we last read it, per market. Never a silently stale number.
- Cross-market best — the cheapest venue for that item across all 9 sources, computed for you.
- Doppler phase prices — 406 phase-level quotes from Skinport.
- Your currency — 30+ currencies via daily ECB reference rates.
Example: Skinport in a cross-market response
One request returns every market's live price for an item. Prices below were true when this page was built:
curl "https://steamdataapi.com/api/v1/items/AK-47%20%7C%20Redline%20(Field-Tested)/markets" \
-H "Authorization: Bearer sdk_YOUR_KEY"
{
"currency": "USD",
"best": { "market": "csfloat", "price": 2871 },
"spread": 297,
"markets": [
{ "market": "csfloat", "price": 2871, "quantity": 3450, "capturedAt": "2026-07-30T11:40:02Z" },
{ "market": "buff163", "price": 2871, "quantity": 10589, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "youpin", "price": 2926, "quantity": 10000, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "c5game", "price": 2971, "quantity": 2428, "capturedAt": "2026-07-30T11:40:06Z" },
{ "market": "skinport", "price": 3015, "quantity": 559, "capturedAt": "2026-07-30T11:40:06Z" }
]
}
At build time Skinport was asking $30.15 for that item with 559 listings, against $28.71 at the cheapest venue (csfloat). That gap is exactly what the best and spread fields hand you without comparing anything yourself.
Tracking Skinport prices over time
A single ask tells you today; a series tells you whether today is unusual. Every market accrues a daily lowest-ask point, so you can pull Skinport's own history and compare it against Steam's median-sale series — which reaches back to 2013-08-13 and totals 15,581,753 daily points across the catalog.
curl "https://steamdataapi.com/api/v1/items/AK-47%20%7C%20Redline%20(Field-Tested)/history?source=markets&days=90" \
-H "Authorization: Bearer sdk_YOUR_KEY"
The two series answer different questions. Steam's median is what items actually sold for, which lags but cannot be moved by one optimistic listing. Skinport's daily low is what you could have bought at. Traders generally want both: the sale price to value a position, the ask to act on one.
From a Skinport price to a portfolio total
The same prices drive inventory valuation. Give the inventory endpoint a public SteamID and every item comes back priced — at the Steam ask and at cross-market real value, with Skinport included in the comparison — plus float, paint seed and Doppler phase where they apply, and a portfolio total in your currency.
const res = await fetch(
"https://steamdataapi.com/api/v1/inventory/76561198000000000?game=cs2¤cy=EUR",
{ headers: { Authorization: "Bearer sdk_YOUR_KEY" } },
);
const { totalValue, items } = await res.json();
Skinport versus the other markets we read
Item coverage differs a lot by venue. These counts are live from our own catalog:
| Marketplace | Items priced | Games |
|---|---|---|
| Skinport (this page) | 29,507 | CS2 + Rust |
| CSFloat | 27,360 | CS2 |
| Buff163 | 13,417 | CS2 |
| DMarket | 24,551 | CS2 + Rust |
| Waxpeer | 27,135 | CS2 + Rust |
| WhiteMarket | 27,054 | CS2 |
| YouPin898 | 13,081 | CS2 |
| C5Game | 13,425 | CS2 |
Steam itself is the ninth source: 29,458 CS2 and 5,397 Rust items carry a Steam ask, with median-sale history back to 2013 — 15,581,753 daily points in total.
Frequently asked questions
Does the Skinport API cover Rust as well as CS2?
Yes. We currently price 24,166 CS2 items and 5,341 Rust items from Skinport. Pass ?game=rust to filter.
How fresh are Skinport prices?
Skinport is re-read every 5 minutes. Every price carries a capturedAt timestamp so you can see exactly how old it is rather than guessing.
Do I get Skinport prices for Doppler phases?
Yes — Skinport quotes phases per listing, and we hold 406 phase prices across 100 knives from it. Ruby, Sapphire, Black Pearl, Emerald and Phase 1–4 are priced separately.
Can I get historical Skinport prices?
Yes. Every market accrues a daily lowest-ask series, so /history?source=markets returns Skinport's day-by-day price next to the others. Steam's median-sale series reaches back to 2013-08-13 and is on the same endpoint with ?source=steam.
What happens when Skinport stops listing an item?
It drops out of that item's markets array once its last capture ages past seven days, rather than showing a price nobody is offering. The cross-market real value keeps its last known figure, so a delisting does not turn your valuations into nulls.
Is this an official API?
No. This is an independent API that reads public marketplace data and serves it in one normalised shape. We are not affiliated with Skinport, Valve or Steam.
Start reading Skinport prices
Free key, no card. Create one, then call
/api/v1/items/{name}/markets. Full reference in the docs,
limits on pricing.