Skip to content
API

Team Fortress 2 developer API

TF2 API for backpacks and item prices

Read a public Team Fortress 2 backpack by SteamID64, then search or quote saved item prices without scanning that backpack again. AppID 440 uses inventory context 2. Grouped market prices are estimates for unusual items.

game=tf2Steam AppID 440 / context 2

Updated

tf2 inventory requestWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/inventory" --data-urlencode "steam_id=76561198090744629" --data-urlencode "game=tf2" --data-urlencode "top=0"

Choose the endpoint for the data you need

One server-side WOK key authenticates every route below. An inventory request depends on Steam visibility; a saved catalog read does not depend on a player's profile.

TaskWOK requestResponse to check
Read public owned itemsGET /v1/inventory?game=tf2status, items, items_total, unpriced and meta.cache_age.
Browse matching market namesGET /v1/items?game=tf2&q=...Source-specific items[].prices[], market_hash_name and next_cursor.
Quote one exact itemGET /v1/price?game=tf2&name=...Selected price, source, sources and updated_at.
Read observed daily historyGET /v1/price-history?game=tf2&name=...Source and returned OHLC points; unobserved days are absent.
Revalue an active inventory snapshotPOST /v1/inventories with refresh_prices:trueUse local prices without another Steam scan; an expired snapshot returns a per-pair cache miss.

The catalog covers named items WOK has observed; it does not promise a current quote for every item or a complete past series. Read the history coverage rules before using sparse data in a chart.

Run an inventory read, catalog search and item quote

Set WOK_API_KEY on your server. The sample SteamID and item name show valid request syntax; visibility and saved price coverage can change.

Public inventory: all grouped rowsWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/inventory" --data-urlencode "steam_id=76561198090744629" --data-urlencode "game=tf2" --data-urlencode "top=0"
Search saved catalogWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/items" --data-urlencode "game=tf2" --data-urlencode "q=Mann Co. Supply Crate Key" --data-urlencode "limit=50"
Quote one exact market nameWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/price" --data-urlencode "game=tf2" --data-urlencode "name=Mann Co. Supply Crate Key"

q is a substring search, so compare market_hash_name exactly and follow next_cursor. name in the quote route is exact and returns 404 if WOK has no saved quote. Both catalog endpoints read local observations; neither scans a player inventory or forces a live market fetch.

How to use a TF2 backpack estimate without hiding uncertainty

A public backpack read tells you which grouped items WOK observed. Saved price rows describe market names and sources, not every attribute of one unusual item.

Set top=0 for all grouped item rows. Show items_total, unpriced and total together so a partial quote cannot appear to be a complete backpack appraisal.

For each priced item, read pricesource and priceupdatedat. Auto mode prefers a valid backpack.tf observation when one exists; source coverage may differ for keys, crates, unusuals and other items.

Keep effects and instance attributes separate from the grouped market estimate. When a buyer needs a price for one exact item, use specialist appraisal or additional item metadata; do not present pricemedian as a guaranteed sale amount.

TF2 backpack response fieldsTry a public backpack manuallyMarket source meaningsRead a roster in batches

Read status and freshness before displaying a value

When available, auto valuation prefers an accepted backpack.tf observation, then other accepted saved sources. Check items[].pricesource and priceupdatedat; a missing backpack.tf quote can lead to another source or an unpriced item.

A native inventory may return HTTP 200 with status=private, notfound, limited or error. Do not display its total as a zero-value backpack. Authentication, quota and request validation have their own HTTP errors.

meta.cache_age describes the inventory snapshot. items[].priceupdatedat describes the selected saved price observation. These ages can differ because a cache hit can revalue the same item list locally.

The USD total includes only matched, counted items under WOK's value rules. Show unpriced and individual pricesource fields; market prices are estimates, not guaranteed sale proceeds.

TF2 inventory fields and status referenceSteam Market source guidePrice quote and batch referenceOpenAPI contractRequest quotas