WOK API / SteamWebAPI
SteamWebAPI Alternative: Limits and Migration
Compare quotas, price sources and response contracts. Test your SteamWebAPI integration with WOK before switching production traffic.
BASE + KEY- BASE = "https://www.steamwebapi.com"
+ BASE = "https://woksteamapi.com"
- KEY = "your-steamwebapi-key"
+ KEY = "your-wok-key"
Migration effort: Base URL, key and contract validation.

Choose the WOK contract your application needs
Developer guide · English. Compatible paths help an existing integration start testing; native endpoints offer a different response model. Choose the parser and error behavior deliberately.
| Your application | Start here | Validate before switching |
|---|---|---|
| Existing item-array parser | GET /steam/api/inventory | Success is an array. Check group=1 versus group=0, string asset IDs, null prices and HTTP inventory errors against the migration checklist. |
| New server application | GET /v1/inventory | Success is an object with status, items, totals and meta. HTTP 200 can describe a private or unavailable inventory. This route has no group parameter. |
| Roster or scanner | POST /v1/inventories or NDJSON stream | Validate every pair independently. Streaming needs a verified final complete record; it adds neither replay protection nor extra source capacity. Download a stream consumer. |
Start with the downloadable offline contract exercise: twelve fictional responses show private versus empty inventories, quantity-aware USD totals, missing prices and partial batch failures. It needs Python 3.10+, no API key and no network request.
A compatible URL does not establish identical fields, valuations or coverage. Test saved success, private, empty and failure responses before a bounded live comparison. Keep inventory age separate from price-source timestamps, and compare measured latency under the same workload rather than treating a plan's per-minute quota as throughput. Read the example setup and partial-result rules before running the downloadable client.
Moving inventories that span several Steam pages? Check large-inventory pagination and batch coverage before comparing totals or replacing your continuation logic.
Validate the switch with one real request
Create a WOK account and API key, set it as WOK_API_KEY on your server, and run this compatibility request with a public SteamID64.
Bearer authenticationcurl --fail-with-body --max-time 35 -H "Authorization: Bearer $WOK_API_KEY" "https://woksteamapi.com/steam/api/inventory?steam_id=76561198090744629&game=cs2&price_source=auto&group=1¤cy=USD"Validate grouping, unpriced items and errors against your parser. Read X-Wok-Cache-Age and X-Wok-Cache-TTL separately from item price timestamps. A successful cached response is not proof of a new Steam scan.
For repeated valuations, batch price-only refresh reprices a fresh stored inventory without contacting Steam. Missing snapshots stay explicit instead of triggering an invisible scan.
Follow the endpoint migration checklistValidate the response contractCheck WOK daily and 30-day quotas
SteamWebAPI alternative comparison
Both APIs answer the same question - what is in a Steam inventory and what is it worth. What differs is how much you get for one key, how fast you can call, and how much is billed separately.
| Feature | steamwebapi | WOK API |
|---|---|---|
| Published per-minute limit, compared tier | 200 at €200/mo (Inventory High+) | Ultra 1,500/min; Titan 2,500/min |
| Steam profiles | Included in Starter; dedicated plans also exist | included |
| FACEIT rank and stats | Not evaluated in this comparison | included, no FACEIT key |
| Price sources | Steam and marketplace data; coverage varies | Source-level prices and update times |
| Migration effort | - | Base URL, key and contract validation |
SteamWebAPI pricing checked October 21, 2026. SteamWebAPI official pricing · WOK pricing.
Match the plan to your workload
Compare burst capacity and sustained usage together. These selected tiers do not represent every plan or an identical bundle.
| Published allowance | SteamWebAPI Inventory High+ | WOK ULTRA |
|---|---|---|
| Price and access period | €200 per month | $139 for 30 days |
| Inventory requests per minute | 200 | 1,500 |
| Daily inventory allowance | 500,000 | 240,000 quota units |
| Monthly inventory allowance | 15,000,000 | 7,000,000 quota units |
Checked October 21, 2026: SteamWebAPI pricing and WOK public plans. Prices use different currencies; no exchange-rate or universal savings claim is implied.
WOK ULTRA has the higher published per-minute allowance in this comparison; Inventory High+ has the larger daily and period allowance. WOK's request window is 30 days from activation or renewal. Neither number measures request latency. Plan for cache misses, batch size, price coverage and the endpoints your application actually uses.
The current WOK Titan plan permits 2,500 quota units per minute per key. That published guard is not a measured promise of cold Steam inventory throughput. The table above compares Ultra specifically.
On WOK, one inventory lookup uses one quota unit; a native batch reserves one unit per normalized player-game pair. One batch accepts at most 20 players, four games and 80 pairs: 20 players across four games reserve 80 units. Split a larger matrix into separate calls. Read your effective limits and UTC resets at GET /v1/key. Every key uses a rolling 30-day quota window anchored to activation or its latest paid renewal. Longer terms continue in consecutive 30-day windows without changing the API key. Daily and minute guards keep their own periods.
SteamWebAPI also offers inventory batches, marketplace price data and plans that include profiles. WOK is an alternative to evaluate, not an official SteamWebAPI replacement or an affiliated service. Use the migration validation checklist before routing customer traffic.
Endpoint compatibility
WOK supports selected SteamWebAPI-style routes. Validate the documented response shape, grouping, missing values and error handling before switching production traffic; this is not a guarantee of every competitor feature.
| Endpoint | Notes |
|---|---|
/steam/api/inventory | Documented compatibility shape; Bearer preferred |
/steam/api/profile | Documented compatibility shape; Bearer preferred |
/v1/inventory | Bearer auth, extra fields |
/v1/profiles | one call, up to 64 profiles |
/v1/prices | up to 200 prices per call |
/faceit/data/v4/players | no separate FACEIT key |
What changes in your code
requestsresponse = requests.get(
f"{BASE}/steam/api/inventory",
headers={"Authorization": f"Bearer {KEY}"},
params={"steam_id": sid, "game": "cs2", "price_source": "auto"},
timeout=35,
)
response.raise_for_status()
Error codes
Handle authentication, quota, validation and upstream failures separately. Native batch responses also carry per-pair status and errors inside HTTP 200.
400malformed parameter401missing, invalid or expired key402quota exhausted or required add-on missing404profile or item not found422parameter failed validation429rate limit reached502Steam or FACEIT did not answerPrice sources
Prices are cross-checked across several markets and you decide which one counts. Add price_source to any inventory call, or set a default on your key. skinport uses the lowest active Skinport listing; steam_buy is the Steam instant-sell price - the highest standing buy order.
autosteamsteam_buyskinportmarketbackpacktfbuffmix
?price_source=steam_buy&strict=1
Steam inventory 429 guide: cache-first reads, bounded retries and explicit freshness metadata.
SteamAPIs alternativeCSFloat API alternativebackpack.tf API alternative
Steam API pricing
Start with a free key or choose a paid plan. Pay once, or choose automatic renewal through Stripe. Request quotas use 30-day windows. Compatibility routes with migration guidance.
FREE DEVELOPER
Free
- units / 30 days
- 1 000
- units / day
- 100
- RPM
- 30
HISTORY
$6
- units / 30 days
- 750 000
- units / day
- 30,000
- RPM
- 600
PRICES STARTER
$6
- units / 30 days
- 250 000
- units / day
- 10,000
- RPM
- 300
PLAYERS STARTER
$8
- units / 30 days
- 60 000
- units / day
- 2,500
- RPM
- 300
VIEWER
$9
- units / 30 days
- 1 000
- units / day
- 100
- RPM
- 120
FLOAT
$9
- units / 30 days
- 100 000
- units / day
- 5,000
- RPM
- 300
PRICES
$9
- units / 30 days
- 600 000
- units / day
- 20,000
- RPM
- 600
INVENTORY STARTER
$12
- units / 30 days
- 150 000
- units / day
- 6,000
- RPM
- 400
HISTORY PRO
$12
- units / 30 days
- 3 000 000
- units / day
- 120,000
- RPM
- 1200
START
$15
- units / 30 days
- 300 000
- units / day
- 10,000
- RPM
- 250
ASSETS
$15
- units / 30 days
- 300 000
- units / day
- 15,000
- RPM
- 300
PLAYERS
$15
- units / 30 days
- 200 000
- units / day
- 7,000
- RPM
- 600
PRICES PRO
$19
- units / 30 days
- 2 000 000
- units / day
- 70,000
- RPM
- 1200
VIEWER PRO
$19
- units / 30 days
- 5 000
- units / day
- 500
- RPM
- 300
FLOAT PRO
$19
- units / 30 days
- 1 000 000
- units / day
- 50,000
- RPM
- 1200
INVENTORY
$25
- units / 30 days
- 450 000
- units / day
- 15,000
- RPM
- 800
HISTORY SCALE
$25
- units / 30 days
- 12 000 000
- units / day
- 450,000
- RPM
- 1500
ASSETS PRO
$29
- units / 30 days
- 1 000 000
- units / day
- 50,000
- RPM
- 1200
PLAYERS PRO
$29
- units / 30 days
- 500 000
- units / day
- 18,000
- RPM
- 1200
PRO
$35
- units / 30 days
- 700 000
- units / day
- 24,000
- RPM
- 500
PRICES SCALE
$39
- units / 30 days
- 6 000 000
- units / day
- 210,000
- RPM
- 1500
VIEWER SCALE
$39
- units / 30 days
- 12 500
- units / day
- 1,250
- RPM
- 600
FLOAT SCALE
$39
- units / 30 days
- 3 000 000
- units / day
- 120,000
- RPM
- 1500
INVENTORY PRO
$49
- units / 30 days
- 900 000
- units / day
- 32,000
- RPM
- 1500
ASSETS SCALE
$49
- units / 30 days
- 5 000 000
- units / day
- 200,000
- RPM
- 1500
HISTORY BUSINESS
$49
- units / 30 days
- 25 000 000
- units / day
- 900,000
- RPM
- 1500
PLAYERS SCALE
$59
- units / 30 days
- 1 100 000
- units / day
- 40,000
- RPM
- 1500
PRICES BUSINESS
$59
- units / 30 days
- 12 000 000
- units / day
- 420,000
- RPM
- 1500
MAX
$65
- units / 30 days
- 2 000 000
- units / day
- 80,000
- RPM
- 1000
FLOAT BUSINESS
$69
- units / 30 days
- 6 000 000
- units / day
- 220,000
- RPM
- 1500
PLAYERS BUSINESS
$89
- units / 30 days
- 1 750 000
- units / day
- 65,000
- RPM
- 1500
HISTORY ENTERPRISE
$89
- units / 30 days
- 50 000 000
- units / day
- 1,800,000
- RPM
- 1500
ASSETS BUSINESS
$89
- units / 30 days
- 10 000 000
- units / day
- 350,000
- RPM
- 1500
INVENTORY SCALE
$99
- units / 30 days
- 2 000 000
- units / day
- 70,000
- RPM
- 2000
PRICES ENTERPRISE
$99
- units / 30 days
- 25 000 000
- units / day
- 900,000
- RPM
- 1500
FLOAT ENTERPRISE
$119
- units / 30 days
- 12 000 000
- units / day
- 450,000
- RPM
- 1500
ULTRA
$139
- units / 30 days
- 7 000 000
- units / day
- 240,000
- RPM
- 1500
INVENTORY BUSINESS
$149
- units / 30 days
- 3 000 000
- units / day
- 110,000
- RPM
- 2500
ASSETS ENTERPRISE
$149
- units / 30 days
- 20 000 000
- units / day
- 700,000
- RPM
- 1500
PRICES ENTERPRISE PLUS
$179
- units / 30 days
- 50 000 000
- units / day
- 1,800,000
- RPM
- 1500
TITAN
$199
- units / 30 days
- 9 000 000
- units / day
- 350,000
- RPM
- 2500
PLAYERS ENTERPRISE
$199
- units / 30 days
- 4 000 000
- units / day
- 150,000
- RPM
- 1500
INVENTORY ENTERPRISE
$299
- units / 30 days
- 6 000 000
- units / day
- 220,000
- RPM
- 3000
PLAYERS ENTERPRISE PLUS
$389
- units / 30 days
- 8 000 000
- units / day
- 300,000
- RPM
- 1500
BUSINESS
$569
- units / 30 days
- 12 000 000
- units / day
- 450,000
- RPM
- 3000
INVENTORY ENTERPRISE PLUS
$569
- units / 30 days
- 12 000 000
- units / day
- 450,000
- RPM
- 3500
ENTERPRISE
$949
- units / 30 days
- 20 000 000
- units / day
- 750,000
- RPM
- 3500
ENTERPRISE PLUS
$1399
- units / 30 days
- 30 000 000
- units / day
- 1,100,000
- RPM
- 3500