Skip to content
API

WOK API

CS2 asset search API: float, seed and observed inventories | WOK

Beta: search CS2 assets observed in public inventories

Required access

Assets / All-purpose

Choose a plan
  1. 1. Create a key

    Sign in to your account and choose the appropriate plan.

  2. 2. Set your server environment

    WOK_API_KEY is your WOK key, not a Steam key. Keep it out of browser code, URLs, logs and agent prompts.

  3. 3. Check access and make a request

    GET /v1/key returns allowed endpoints and quota limits without spending units.

Account →

First request

Replace the demo SteamID or inspect placeholder with your intended input.

cURL
curl --fail-with-body --max-time 60 "https://woksteamapi.com/v1/cs2/assets?paint_index=282&limit=20" \
  -H "Authorization: Bearer $WOK_API_KEY"
Node.js
const key = process.env.WOK_API_KEY;
if (!key) throw new Error('Set WOK_API_KEY on the server');
const response = await fetch("https://woksteamapi.com/v1/cs2/assets?paint_index=282&limit=20", {
  method: 'GET',
  headers: { Authorization: `Bearer ${key}`, 'Content-Type': 'application/json' },
  signal: AbortSignal.timeout(60000),
});
if (!response.ok) throw new Error(`WOK HTTP ${response.status}; inspect Retry-After for 429`);
const result = await response.json();
// Validate the documented status and fields before using result.
Python
import json, os, urllib.request, urllib.error
url = 'https://woksteamapi.com/v1/cs2/assets?paint_index=282&limit=20'
headers = {'Authorization': 'Bearer ' + os.environ['WOK_API_KEY'], 'Content-Type': 'application/json'}
data = None
request = urllib.request.Request(url, data=data, headers=headers, method='GET')
with urllib.request.urlopen(request, timeout=60) as response:
    result = json.load(response)
# Handle HTTPError and validate the documented response status in your application.

Handle the response

items[] contains assetid, observed_owner_steamid, markethashname, nullable float_value/paint_seed/def_index, images and observations. GET /v1/cs2/assets/coverage returns current coverage. POST /v1/cs2/assets/find accepts queries[] with up to 50 filters, one unit per query.

Beta sample of public inventories previously fetched by WOK. At most 100,000 assets retained for 7 days, up to 5,000 per inventory. No active scan, no private/trade overlay inventories, no complete owner or transfer history. Matching float/seed does not prove unique identity. An empty result means not observed, not nonexistent. Each find query returns at most 20 candidates; use its next_cursor with GET /v1/cs2/assets for more.

Parameters and response format →

Agent setup guide

Copy the task into your coding tool. Set the key separately on your server. The instructions contain no API key.

MarkdownOpenAPI
Read the instructions
# Connect to WOK API

WOK_API_KEY is your WOK key, not a Steam key. Keep it out of browser code, URLs, logs and agent prompts.

https://woksteamapi.com

Authorization: Bearer $WOK_API_KEY

- https://woksteamapi.com/api/openapi.json
- https://woksteamapi.com/mcp.json
- https://woksteamapi.com/api/integration-guide.md
- https://woksteamapi.com/api/specialist-plans.md

1. Inspect the project stack and implement a server-side adapter using its existing conventions.

2. Call GET /v1/key once to check access.endpoints, capabilities and quotas. This costs no units. Specialist plans exclude other workloads.

3. Use documented parameters and validate HTTP and application status. Keep unavailable, private and empty distinct. Missing data remains null or unavailable, never invented zero data.

4. Set a total deadline of 60 seconds and bound concurrency. Retry temporary 429/502/503/504 at most twice with jitter, respecting Retry-After and the deadline. Stop on exhausted quota until reset. Never loop on 400/401/403 or unsupported features.

5. Cache by source timestamps and deduplicate identical in-flight reads. Do not poll per animation frame or force-refresh automatically.

6. Keep currency, price source, statistic and observed time together. Do not compare different currencies or source snapshots as the same price.

7. Use SteamID64 strings, not JavaScript numbers. Encode item names in URL parameters, preserving spaces, ★, pipes and non-Latin characters. Follow cursor pagination. Batch units may be charged per item or player.

8. Create examples and checks with mocks first. Ask before live paid or bulk requests. This prompt does not authorize purchases, plan changes, real charges or sending emails.

9. Report changed files, setup commands, checks and unsupported capabilities. Do not claim data or rendering parity beyond the response evidence.

## Assets

Beta: search CS2 assets observed in public inventories

Required access: Assets / All-purpose

GET /v1/cs2/assets

items[] contains assetid, observed_owner_steamid, markethashname, nullable float_value/paint_seed/def_index, images and observations. GET /v1/cs2/assets/coverage returns current coverage. POST /v1/cs2/assets/find accepts queries[] with up to 50 filters, one unit per query.

Beta sample of public inventories previously fetched by WOK. At most 100,000 assets retained for 7 days, up to 5,000 per inventory. No active scan, no private/trade overlay inventories, no complete owner or transfer history. Matching float/seed does not prove unique identity. An empty result means not observed, not nonexistent. Each find query returns at most 20 candidates; use its next_cursor with GET /v1/cs2/assets for more.

Included data endpoints:

- /v1/cs2/assets
- /v1/cs2/assets/coverage
- /v1/cs2/assets/find
- /v1/cs2/doppler-phase
- /v1/cs2/inspect
- /v1/cs2/items

https://woksteamapi.com/api/integrations/assets.md

```sh
curl --fail-with-body --max-time 60 "https://woksteamapi.com/v1/cs2/assets?paint_index=282&limit=20" \
  -H "Authorization: Bearer $WOK_API_KEY"
```

Replace the demo SteamID or inspect placeholder with your intended input.

← Other workloads