The listings endpoint exposes every buyable item currently on the CSBoard marketplace. Each record includes the complete inspection data you need for evaluation — float value, paint seed, applied stickers with their wear — alongside the authoritative asking price in USD. Results are paginated using a keyset cursor so you can reliably walk the full catalog even as new listings arrive.Authentication required. Send your key as Authorization: Bearer csb_pub_....
Pass appId=570 for Dota 2 or appId=252490 for Rust. Those rows have the same keys; the CS2-only fields (wear, doppler_phase, float_value, paint_seed, inspect_link, tradable_at, listed_at) are null and stickers is []. See Games.
Fuzzy match on the item’s market_hash_name — splits the query into words and substring-matches each, ideal for discovery. Note: a name whose words are a subset of a longer item’s name (e.g. Spectrum Case vs Spectrum 2 Case) cannot be isolated this way. For a single specific item, use name.
Exact market_hash_name (case-insensitive). The precise way to fetch one specific item’s listings — name=Spectrum Case returns only Spectrum Case, never Spectrum 2 Case. Takes precedence over search when both are supplied.
Filter by wear bucket. One of: Factory New, Minimal Wear, Field-Tested, Well-Worn, Battle-Scarred. CS2 only — with another appId it answers 400 invalid_param.
Delivery bucket — the same three the site’s own grid shows. One of:
instant — bot fulfilment. Seconds to a few minutes.
up_to_12h — a human seller on the source market has to send the trade. Displayed as ≤12h on the site.
hold — inside a Steam trade lock until the item’s tradable_at.
Use delivery=instant for any flow that must deliver now — a withdrawal, a bot payout, a user waiting on a screen. Any other value is a 400, so a typo fails loudly instead of quietly widening your results.
Only listings whose refund_percent is at least this (0–100). Listings with no published figure are excluded, not assumed.?delivery=instant&min_refund_percent=100 is the pool a withdrawal flow wants: ships immediately, and a Steam reversal costs nobody anything.
Only return listings that entered the catalogue after this timestamp — the delta-poll parameter. Pair it with sort=newest and the usual response is an empty page, which is what makes frequent polling cheap instead of a full rescan every tick.Overlap your watermark by ~60 seconds and dedupe by id. Send max(listed_at) - 60s, never the bare maximum. Timestamps come from the start of the database transaction that published the listing, so a large batch can commit rows stamped earlier than rows a smaller, later batch already committed — a watermark advanced to the exact maximum steps over those listings permanently.CS2 only — with another appId it answers 400 invalid_param.
Sort order. One of: id (stable default), newest, price_asc, price_desc. newest orders by listed_at, so re-listings surface alongside genuinely new inventory. newest is CS2 only — with another appId it answers 400 invalid_param.
Expected delivery mode: instant (bot, seconds to minutes), up_to_12h (a human seller on the source market must send the trade), or hold (inside a Steam trade lock until tradable_at).
How much of the purchase comes back if Valve reverses the Steam trade. This is a property of the market the listing came from, not a support policy, and it ranges from 0 to 100 across our sources.null means we have no published figure for that listing — treat it as unknown, never as 100. Filter with min_refund_percent to build a pool where every item is made whole.
When this item entered the catalogue. Not the same as when the row was created: items return to the catalogue constantly — cancelled orders, expired trade offers, released holds — and a re-listed item is new to you even though it existed before. This is the value to feed back as available_after.
A malformed parameter, or a CS2-only filter sent with another appId.
400
unsupported_game
Your key cannot use this appId. supported_app_ids lists the ones it can.
401
missing_api_key, invalid_api_key
Missing or invalid API key.
429
rate_limit_exceeded
Over your key’s per-minute limit (100/min by default). Back off for the number of seconds in the Retry-After header.
price_usd on each listing is the authoritative buy price — it reflects the live asking price at query time and is exactly what you’ll be charged. Do not use the min_price_usd from the /prices endpoint as a buy-price estimate; that value can lag.
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and X-RateLimit-Bucket for the bucket the call spent. See Rate limits.
Steam appId of the game. 730 = CS2 (the default), 570 = Dota 2, 252490 = Rust. Omit it and the endpoint answers for CS2 exactly as before. An appId this key may not use answers 400 unsupported_game, whose supported_app_ids lists the ones it may — see GET /games.
Exact market_hash_name (case-insensitive) — the precise single-item lookup. Unlike fuzzy search, it isolates one item even when its name is a word-subset of a longer one (e.g. Spectrum Case vs Spectrum 2 Case). Takes precedence over search.
Delivery bucket, the same three the site's grid shows. instant = bot fulfilment (seconds to minutes); up_to_12h = a human seller on the source market must send the trade; hold = inside a Steam trade lock until the item's tradable_at. Any other value is a 400.
Only listings whose refund_percent is at least this (0-100). Listings with no published figure are EXCLUDED, not assumed. Combine with delivery=instant for a pool that ships now and is fully refundable on a Steam reversal.
ISO-8601 timestamp. Returns only listings that entered the catalogue after it — the delta-poll parameter. Pair with sort=newest; the usual response is an empty page, which is what makes frequent polling cheap instead of a full rescan every tick.
Overlap your watermark by ~60 seconds and dedupe by id. Send max(listed_at) - 60s, never the bare maximum. Timestamps come from the start of the database transaction that published the listing, so a large batch can commit rows stamped earlier than rows a smaller, later batch already committed; a watermark advanced to the exact maximum steps over those listings permanently. CS2 only — sent with another appId it answers 400 invalid_param.
Sort order. Default id. newest orders by listed_at (when the item entered the catalogue), so re-listings surface too. newest is CS2 only — with another appId it answers 400 invalid_param.
{"docsConfig":{"theme":"luma","$schema":"https://mintlify.com/docs.json","name":"CSBoard API","colors":{"primary":"#2563eb","light":"#60a5fa","dark":"#172554"},"favicon":"https://mintcdn.com/csboard/LyXJsSfteiiBK7GJ/favicon.svg?fit=max\u0026auto=format\u0026n=LyXJsSfteiiBK7GJ\u0026q=85\u0026s=29fd93b872ec9ce02b5ca0a5aecc8d03","appearance":{"default":"dark"},"navbar":{"links":[{"href":"https://csboard.com/profile?tab=api","label":"Get a key"}],"primary":{"type":"button","label":"csboard.com","href":"https://csboard.com"}},"footer":{"socials":{"website":"https://csboard.com"}},"styling":{"latex":false},"navigation":{"languages":[{"language":"en","href":"introduction"},{"language":"ru","href":"ru/introduction"},{"language":"zh-Hans","href":"zh-Hans/introduction"}]}},"deployment":{"deploymentMetadataValue":{"subdomain":"csboard","hasAudioNarration":false,"actualSubdomain":"csboard","customDomains":["api.csboard.com"],"gitSource":{"type":"github","owner":"kizilovv","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"DISABLED"}},"buildId":"6aed460334fe7746877e0ec2","clientVersion":"0.0.4117","searchFilterCounts":[{"language":"en","tag":"API Reference","count":42},{"language":"ru","tag":"Справочник API","count":22},{"language":"zh-Hans","tag":"API 参考","count":22},{"language":"en","tag":"Market Data","count":10},{"language":"en","tag":"Guides","count":10},{"language":"en","tag":"Webhooks","count":8},{"language":"ru","tag":"Рыночные данные","count":8},{"language":"ru","tag":"Руководства","count":8},{"language":"zh-Hans","tag":"市场数据","count":8},{"language":"zh-Hans","tag":"指南","count":8},{"language":"en","tag":"Trading","count":7},{"language":"ru","tag":"Торговля","count":7},{"language":"zh-Hans","tag":"交易","count":7},{"language":"en","tag":"Instant Sell","count":6},{"language":"en","tag":"Walkthroughs","count":6},{"language":"en","tag":"P2P","count":5},{"language":"en","tag":"Account","count":5},{"language":"ru","tag":"P2P","count":5},{"language":"ru","tag":"Инструкции","count":5},{"language":"zh-Hans","tag":"P2P","count":5},{"language":"zh-Hans","tag":"教程","count":5},{"language":"en","tag":"Get Started","count":4},{"language":"ru","tag":"Начало работы","count":3},{"language":"zh-Hans","tag":"快速开始","count":3},{"language":"ru","tag":"Аккаунт","count":1},{"language":"ru","tag":"Статус","count":1},{"language":"ru","tag":"Журнал изменений","count":1},{"language":"zh-Hans","tag":"账户","count":1},{"language":"zh-Hans","tag":"状态","count":1},{"language":"zh-Hans","tag":"更新日志","count":1}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableContextualStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"api-reference/get-listings","slug":"/api-reference/get-listings","pageMetadata":{"title":"GET /v1/listings — Browse Live CS2 Marketplace Listings","sidebarTitle":"GET /listings","description":"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.","openapi":"GET /listings","href":"/api-reference/get-listings"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,em:`em`,li:`li`,ol:`ol`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,tbody:`tbody`,td:`td`,th:`th`,thead:`thead`,tr:`tr`,ul:`ul`,..._provideComponents(),...props.components},{CodeBlock,Expandable,Heading,Note,ParamField,ResponseField,Table,Tip}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Expandable)_missingMdxReference(`Expandable`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!ParamField)_missingMdxReference(`ParamField`,true);if(!ResponseField)_missingMdxReference(`ResponseField`,true);if(!Table)_missingMdxReference(`Table`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`The listings endpoint exposes every buyable item currently on the CSBoard marketplace. Each record includes the complete inspection data you need for evaluation — float value, paint seed, applied stickers with their wear — alongside the authoritative asking price in USD. Results are paginated using a keyset cursor so you can reliably walk the full catalog even as new listings arrive.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Authentication required.`}),` Send your key as `,_jsx(_components.code,{children:`Authorization: Bearer csb_pub_...`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Pass `,_jsx(_components.code,{children:`appId=570`}),` for Dota 2 or `,_jsx(_components.code,{children:`appId=252490`}),` for Rust. Those rows have the same keys; the CS2-only fields (`,_jsx(_components.code,{children:`wear`}),`, `,_jsx(_components.code,{children:`doppler_phase`}),`, `,_jsx(_components.code,{children:`float_value`}),`, `,_jsx(_components.code,{children:`paint_seed`}),`, `,_jsx(_components.code,{children:`inspect_link`}),`, `,_jsx(_components.code,{children:`tradable_at`}),`, `,_jsx(_components.code,{children:`listed_at`}),`) are `,_jsx(_components.code,{children:`null`}),` and `,_jsx(_components.code,{children:`stickers`}),` is `,_jsx(_components.code,{children:`[]`}),`. See `,_jsx(_components.a,{href:`/api-reference/get-games`,children:`Games`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`query-parameters`,children:`Query parameters`}),`\n`,_jsx(ParamField,{query:`appId`,default:`730`,type:`integer`,id:`param-app-id`,children:_jsxs(_components.p,{children:[`Game to read: `,_jsx(_components.code,{children:`730`}),` = CS2, `,_jsx(_components.code,{children:`570`}),` = Dota 2, `,_jsx(_components.code,{children:`252490`}),` = Rust. Omit it for CS2. See `,_jsx(_components.a,{href:`/api-reference/get-games`,children:_jsx(_components.code,{children:`GET /v1/games`})}),` for the games your key can use.`]})}),`\n`,_jsx(ParamField,{query:`search`,type:`string`,id:`param-search`,children:_jsxs(_components.p,{children:[`Fuzzy match on the item’s `,_jsx(_components.code,{children:`market_hash_name`}),` — splits the query into words and substring-matches each, ideal for discovery. Note: a name whose words are a subset of a longer item’s name (e.g. `,_jsx(_components.code,{children:`Spectrum Case`}),` vs `,_jsx(_components.code,{children:`Spectrum 2 Case`}),`) cannot be isolated this way. For a single specific item, use `,_jsx(_components.code,{children:`name`}),`.`]})}),`\n`,_jsx(ParamField,{query:`name`,type:`string`,id:`param-name`,children:_jsxs(_components.p,{children:[`Exact `,_jsx(_components.code,{children:`market_hash_name`}),` (case-insensitive). The precise way to fetch one specific item’s listings — `,_jsx(_components.code,{children:`name=Spectrum Case`}),` returns only Spectrum Case, never `,_jsx(_components.code,{children:`Spectrum 2 Case`}),`. Takes precedence over `,_jsx(_components.code,{children:`search`}),` when both are supplied.`]})}),`\n`,_jsx(ParamField,{query:`category`,type:`string`,id:`param-category`,children:_jsxs(_components.p,{children:[`Filter by item category, e.g. `,_jsx(_components.code,{children:`Rifle`}),`, `,_jsx(_components.code,{children:`Knife`}),`, `,_jsx(_components.code,{children:`Gloves`}),`, `,_jsx(_components.code,{children:`Pistol`}),`.`]})}),`\n`,_jsx(ParamField,{query:`wear`,type:`string`,id:`param-wear`,children:_jsxs(_components.p,{children:[`Filter by wear bucket. One of: `,_jsx(_components.code,{children:`Factory New`}),`, `,_jsx(_components.code,{children:`Minimal Wear`}),`, `,_jsx(_components.code,{children:`Field-Tested`}),`, `,_jsx(_components.code,{children:`Well-Worn`}),`, `,_jsx(_components.code,{children:`Battle-Scarred`}),`. CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`rarity`,type:`string`,id:`param-rarity`,children:_jsxs(_components.p,{children:[`Filter by rarity tier, e.g. `,_jsx(_components.code,{children:`Classified`}),`, `,_jsx(_components.code,{children:`Covert`}),`, `,_jsx(_components.code,{children:`Extraordinary`}),`.`]})}),`\n`,_jsx(ParamField,{query:`min_price`,type:`number`,id:`param-min-price`,children:_jsx(_components.p,{children:`Minimum asking price in USD (inclusive).`})}),`\n`,_jsx(ParamField,{query:`max_price`,type:`number`,id:`param-max-price`,children:_jsx(_components.p,{children:`Maximum asking price in USD (inclusive).`})}),`\n`,_jsx(ParamField,{query:`min_float`,type:`number`,id:`param-min-float`,children:_jsxs(_components.p,{children:[`Minimum float value (inclusive). Accepts values from `,_jsx(_components.code,{children:`0.0`}),` to `,_jsx(_components.code,{children:`1.0`}),`. CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`max_float`,type:`number`,id:`param-max-float`,children:_jsxs(_components.p,{children:[`Maximum float value (inclusive). Accepts values from `,_jsx(_components.code,{children:`0.0`}),` to `,_jsx(_components.code,{children:`1.0`}),`. CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsxs(ParamField,{query:`delivery`,type:`string`,id:`param-delivery`,children:[_jsx(_components.p,{children:`Delivery bucket — the same three the site’s own grid shows. One of:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`instant`}),` — bot fulfilment. Seconds to a few minutes.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`up_to_12h`}),` — a human seller on the source market has to send the trade. Displayed as ≤12h on the site.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`hold`}),` — inside a Steam trade lock until the item’s `,_jsx(_components.code,{children:`tradable_at`}),`.`]}),`\n`]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Use `,_jsx(_components.code,{children:`delivery=instant`}),` for any flow that must deliver now`]}),` — a withdrawal, a bot payout, a user waiting on a screen. Any other value is a `,_jsx(_components.code,{children:`400`}),`, so a typo fails loudly instead of quietly widening your results.`]})]}),`\n`,_jsxs(ParamField,{query:`min_refund_percent`,type:`number`,id:`param-min-refund-percent`,children:[_jsxs(_components.p,{children:[`Only listings whose `,_jsx(_components.code,{children:`refund_percent`}),` is at least this (0–100). Listings with no published figure are `,_jsx(_components.strong,{children:`excluded`}),`, not assumed.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`?delivery=instant\u0026min_refund_percent=100`}),` is the pool a withdrawal flow wants: ships immediately, and a Steam reversal costs nobody anything.`]})]}),`\n`,_jsx(ParamField,{query:`stat_trak`,type:`string`,id:`param-stat-trak`,children:_jsxs(_components.p,{children:[`StatTrak™ filter. `,_jsx(_components.code,{children:`only`}),` returns only StatTrak™ items; `,_jsx(_components.code,{children:`exclude`}),` removes them from results. CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`souvenir`,type:`string`,id:`param-souvenir`,children:_jsxs(_components.p,{children:[`Souvenir filter. `,_jsx(_components.code,{children:`only`}),` returns only Souvenir items; `,_jsx(_components.code,{children:`exclude`}),` removes them from results. CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsxs(ParamField,{query:`available_after`,type:`string (ISO 8601)`,id:`param-available-after`,children:[_jsxs(_components.p,{children:[`Only return listings that entered the catalogue after this timestamp — the delta-poll parameter. Pair it with `,_jsx(_components.code,{children:`sort=newest`}),` and the usual response is an empty page, which is what makes frequent polling cheap instead of a full rescan every tick.`]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Overlap your watermark by ~60 seconds and dedupe by `,_jsx(_components.code,{children:`id`}),`.`]}),` Send `,_jsx(_components.code,{children:`max(listed_at) - 60s`}),`, never the bare maximum. Timestamps come from the start of the database transaction that published the listing, so a large batch can commit rows stamped `,_jsx(_components.em,{children:`earlier`}),` than rows a smaller, later batch already committed — a watermark advanced to the exact maximum steps over those listings permanently.`]}),_jsxs(_components.p,{children:[`CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})]}),`\n`,_jsx(ParamField,{query:`sort`,default:`id`,type:`string`,id:`param-sort`,children:_jsxs(_components.p,{children:[`Sort order. One of: `,_jsx(_components.code,{children:`id`}),` (stable default), `,_jsx(_components.code,{children:`newest`}),`, `,_jsx(_components.code,{children:`price_asc`}),`, `,_jsx(_components.code,{children:`price_desc`}),`. `,_jsx(_components.code,{children:`newest`}),` orders by `,_jsx(_components.code,{children:`listed_at`}),`, so re-listings surface alongside genuinely new inventory. `,_jsx(_components.code,{children:`newest`}),` is CS2 only — with another `,_jsx(_components.code,{children:`appId`}),` it answers `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`cursor`,type:`string`,id:`param-cursor`,children:_jsxs(_components.p,{children:[`Keyset pagination cursor. Pass the `,_jsx(_components.code,{children:`next_cursor`}),` value from the previous response to fetch the next page.`]})}),`\n`,_jsx(ParamField,{query:`limit`,default:`50`,type:`integer`,id:`param-limit`,children:_jsxs(_components.p,{children:[`Number of results per page. Minimum `,_jsx(_components.code,{children:`1`}),`, maximum `,_jsx(_components.code,{children:`200`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`response-fields`,children:`Response fields`}),`\n`,_jsxs(ResponseField,{name:`items`,type:`Listing[]`,required:true,id:`param-items`,children:[_jsx(_components.p,{children:`Array of listing objects for this page.`}),_jsxs(Expandable,{title:`Listing object`,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id`,children:_jsxs(_components.p,{children:[`Stable listing identifier. Pass this to `,_jsx(_components.code,{children:`POST /v1/orders`}),` to purchase the item.`]})}),_jsx(ResponseField,{name:`market_hash_name`,type:`string`,required:true,id:`param-market-hash-name`,children:_jsxs(_components.p,{children:[`Steam market hash name, e.g. `,_jsx(_components.code,{children:`AK-47 | Redline (Minimal Wear)`}),`.`]})}),_jsx(ResponseField,{name:`wear`,type:`string | null`,id:`param-wear-1`,children:_jsxs(_components.p,{children:[`Wear bucket: `,_jsx(_components.code,{children:`Factory New`}),`, `,_jsx(_components.code,{children:`Minimal Wear`}),`, `,_jsx(_components.code,{children:`Field-Tested`}),`, `,_jsx(_components.code,{children:`Well-Worn`}),`, or `,_jsx(_components.code,{children:`Battle-Scarred`}),`. `,_jsx(_components.code,{children:`null`}),` for items without wear (e.g. some knives or gloves).`]})}),_jsx(ResponseField,{name:`doppler_phase`,type:`string | null`,id:`param-doppler-phase`,children:_jsxs(_components.p,{children:[`Doppler or Gamma Doppler phase, e.g. `,_jsx(_components.code,{children:`\"Phase 2\"`}),`, `,_jsx(_components.code,{children:`\"Ruby\"`}),`, `,_jsx(_components.code,{children:`\"Emerald\"`}),`. `,_jsx(_components.code,{children:`null`}),` for non-Doppler items.`]})}),_jsx(ResponseField,{name:`float_value`,type:`number | null`,id:`param-float-value`,children:_jsxs(_components.p,{children:[`Item float value between `,_jsx(_components.code,{children:`0.0`}),` and `,_jsx(_components.code,{children:`1.0`}),`. `,_jsx(_components.code,{children:`null`}),` if not applicable.`]})}),_jsx(ResponseField,{name:`paint_seed`,type:`integer | null`,id:`param-paint-seed`,children:_jsxs(_components.p,{children:[`Paint seed (pattern index). `,_jsx(_components.code,{children:`null`}),` if not applicable.`]})}),_jsxs(ResponseField,{name:`stickers`,type:`Sticker[]`,required:true,id:`param-stickers`,children:[_jsx(_components.p,{children:`Applied stickers. Empty array if none.`}),_jsxs(Expandable,{title:`Sticker object`,children:[_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsxs(_components.p,{children:[`Sticker name, e.g. `,_jsx(_components.code,{children:`Crown (Foil)`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`string (URI)`,id:`param-image`,children:_jsx(_components.p,{children:`CDN URL of the sticker image.`})}),_jsx(ResponseField,{name:`slot`,type:`integer`,id:`param-slot`,children:_jsxs(_components.p,{children:[`Sticker slot position, `,_jsx(_components.code,{children:`0`}),` through `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`wear`,type:`number | null`,id:`param-wear-2`,children:_jsxs(_components.p,{children:[`Sticker wear between `,_jsx(_components.code,{children:`0.0`}),` and `,_jsx(_components.code,{children:`1.0`}),`. `,_jsx(_components.code,{children:`null`}),` if the sticker has not been scraped.`]})})]})]}),_jsx(ResponseField,{name:`price_usd`,type:`number`,required:true,id:`param-price-usd`,children:_jsxs(_components.p,{children:[`Authoritative asking price in USD. This is exactly the amount charged if you buy this listing via `,_jsx(_components.code,{children:`POST /v1/orders`}),`.`]})}),_jsx(ResponseField,{name:`category`,type:`string`,required:true,id:`param-category-1`,children:_jsxs(_components.p,{children:[`Item category, e.g. `,_jsx(_components.code,{children:`Rifle`}),`, `,_jsx(_components.code,{children:`Knife`}),`, `,_jsx(_components.code,{children:`Gloves`}),`.`]})}),_jsx(ResponseField,{name:`rarity`,type:`string`,id:`param-rarity-1`,children:_jsxs(_components.p,{children:[`Rarity tier, e.g. `,_jsx(_components.code,{children:`Classified`}),`, `,_jsx(_components.code,{children:`Covert`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`string (URI)`,id:`param-image-1`,children:_jsx(_components.p,{children:`CDN URL of the item image.`})}),_jsx(ResponseField,{name:`inspect_link`,type:`string`,id:`param-inspect-link`,children:_jsxs(_components.p,{children:[`Steam inspect link (`,_jsx(_components.code,{children:`steam://rungame/...`}),`) for this item.`]})}),_jsx(ResponseField,{name:`tradable`,type:`boolean`,required:true,id:`param-tradable`,children:_jsxs(_components.p,{children:[`Whether the item is currently tradable. `,_jsx(_components.code,{children:`false`}),` means it is in a trade hold.`]})}),_jsx(ResponseField,{name:`tradable_at`,type:`datetime | null`,id:`param-tradable-at`,children:_jsxs(_components.p,{children:[`ISO 8601 timestamp indicating when the item leaves its trade hold. `,_jsx(_components.code,{children:`null`}),` if already tradable.`]})}),_jsx(ResponseField,{name:`delivery`,type:`string`,required:true,id:`param-delivery-1`,children:_jsxs(_components.p,{children:[`Expected delivery mode: `,_jsx(_components.code,{children:`instant`}),` (bot, seconds to minutes), `,_jsx(_components.code,{children:`up_to_12h`}),` (a human seller on the source market must send the trade), or `,_jsx(_components.code,{children:`hold`}),` (inside a Steam trade lock until `,_jsx(_components.code,{children:`tradable_at`}),`).`]})}),_jsxs(ResponseField,{name:`refund_percent`,type:`number | null`,id:`param-refund-percent`,children:[_jsx(_components.p,{children:`How much of the purchase comes back if Valve reverses the Steam trade. This is a property of the market the listing came from, not a support policy, and it ranges from 0 to 100 across our sources.`}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`null`}),` means we have no published figure for that listing — treat it as unknown, never as 100. Filter with `,_jsx(_components.code,{children:`min_refund_percent`}),` to build a pool where every item is made whole.`]})]}),_jsx(ResponseField,{name:`listed_at`,type:`datetime | null`,id:`param-listed-at`,children:_jsxs(_components.p,{children:[`When this item entered the catalogue. `,_jsx(_components.strong,{children:`Not`}),` the same as when the row was created: items return to the catalogue constantly — cancelled orders, expired trade offers, released holds — and a re-listed item is new to you even though it existed before. This is the value to feed back as `,_jsx(_components.code,{children:`available_after`}),`.`]})})]})]}),`\n`,_jsx(ResponseField,{name:`next_cursor`,type:`string | null`,required:true,id:`param-next-cursor`,children:_jsxs(_components.p,{children:[`Opaque keyset cursor. Pass this as the `,_jsx(_components.code,{children:`cursor`}),` query parameter to fetch the next page. `,_jsx(_components.code,{children:`null`}),` on the last page.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`pagination`,children:`Pagination`}),`\n`,_jsxs(_components.p,{children:[`This endpoint uses `,_jsx(_components.strong,{children:`keyset pagination`}),`. To walk all pages:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Make the initial request (no `,_jsx(_components.code,{children:`cursor`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`If `,_jsx(_components.code,{children:`next_cursor`}),` is non-null, repeat the request with `,_jsx(_components.code,{children:`cursor=\u003cnext_cursor>`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Stop when `,_jsx(_components.code,{children:`next_cursor`}),` is `,_jsx(_components.code,{children:`null`}),` — you have reached the last page.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Keyset pagination is stable: new listings appearing during iteration won’t cause duplicates or skipped rows.`}),`\n`,_jsx(Heading,{level:`2`,id:`example-request`,children:`Example request`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`curl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"https://csboard.com/v1/listings?category=Rifle\u0026wear=Minimal+Wear\u0026min_float=0.07\u0026max_float=0.12\u0026sort=price_asc\u0026limit=20\"`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D7BA7D`},children:` \\\\`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -H`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"Authorization: Bearer csb_pub_...\"`})]}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`example-response`,children:`Example response`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`31`,language:`json`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`json`,children:_jsxs(_components.code,{language:`json`,numberOfLines:`31`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`{`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"items\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"id\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"itm_8841201\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"market_hash_name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"AK-47 | Redline (Minimal Wear)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Minimal Wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"doppler_phase\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`null`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"float_value\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.0912`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"paint_seed\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`412`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"stickers\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: [`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` {`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"name\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Crown (Foil)\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.csboard.com/stickers/crown_foil.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"slot\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"wear\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`0.0`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"price_usd\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`14.37`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"category\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Rifle\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"rarity\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"Classified\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"image\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"https://cdn.csboard.com/items/ak47_redline_mw.png\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"inspect_link\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20...\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tradable\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:`false`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"tradable_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-07-06T12:00:00Z\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"delivery\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"hold\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"refund_percent\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#B5CEA8`},children:`100`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`,`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"listed_at\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"2026-06-29T08:41:17.000Z\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` }`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:` ],`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#116329`,\"--shiki-dark\":`#9CDCFE`},children:` \"next_cursor\"`}),_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`: `}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`\"eyJpZCI6Iml0bV84ODQxMjAxIn0=\"`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#1F2328`,\"--shiki-dark\":`#D4D4D4`},children:`}`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`error-codes`,children:`Error codes`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP status`}),_jsx(_components.th,{children:`Code`}),_jsx(_components.th,{children:`Meaning`})]})}),_jsxs(_components.tbody,{children:[_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`invalid_param`})}),_jsxs(_components.td,{children:[`A malformed parameter, or a CS2-only filter sent with another `,_jsx(_components.code,{children:`appId`}),`.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`400`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`unsupported_game`})}),_jsxs(_components.td,{children:[`Your key cannot use this `,_jsx(_components.code,{children:`appId`}),`. `,_jsx(_components.code,{children:`supported_app_ids`}),` lists the ones it can.`]})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`401`}),_jsxs(_components.td,{children:[_jsx(_components.code,{children:`missing_api_key`}),`, `,_jsx(_components.code,{children:`invalid_api_key`})]}),_jsx(_components.td,{children:`Missing or invalid API key.`})]}),_jsxs(_components.tr,{children:[_jsx(_components.td,{\"data-numeric\":`true`,children:`429`}),_jsx(_components.td,{children:_jsx(_components.code,{children:`rate_limit_exceeded`})}),_jsxs(_components.td,{children:[`Over your key’s per-minute limit (100/min by default). Back off for the number of seconds in the `,_jsx(_components.code,{children:`Retry-After`}),` header.`]})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[_jsx(_components.code,{children:`price_usd`}),` on each listing is the `,_jsx(_components.strong,{children:`authoritative buy price`}),` — it reflects the live asking price at query time and is exactly what you’ll be charged. Do not use the `,_jsx(_components.code,{children:`min_price_usd`}),` from the `,_jsx(_components.code,{children:`/prices`}),` endpoint as a buy-price estimate; that value can lag.`]})})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"GET /v1/listings — Browse Live CS2 Marketplace Listings","sidebarTitle":"GET /listings","description":"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.","openapi":"GET /listings","href":"/api-reference/get-listings"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Query parameters","slug":"query-parameters","depth":2,"children":[]},{"title":"Response fields","slug":"response-fields","depth":2,"children":[]},{"title":"Pagination","slug":"pagination","depth":2,"children":[]},{"title":"Example request","slug":"example-request","depth":2,"children":[]},{"title":"Example response","slug":"example-response","depth":2,"children":[]},{"title":"Error codes","slug":"error-codes","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Market data"],"summary":"Live buyable listings","description":"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.","operationId":"listListings","parameters":["8c265619-07b4-4ca3-af0f-e6bfd32be667","56f55430-c502-474f-b28d-567c39a7a11a","17daae94-6bd7-4ae7-8afd-f426fa602e44","2cf0c696-9dcb-4a75-884f-6c92808eaa22","9bd6b846-4caf-44a4-bbec-766e48c16520","299ab506-260b-4f6c-9326-d6ff53fc1ad9","f6df5cf3-24d2-4701-8aa3-cd0c3e01d899","4b3de2c9-bce3-4739-8db1-fc4d67634646","7e4e21a3-2c71-4bc9-8d4f-1b993db7f140","c7a65ab9-0a3f-4a10-ac20-2199351799f2","1c7f5bf0-b4a4-4025-ae60-d38f75d3e00d","f0bf582c-5aae-497f-92c6-77bdf3a3ddf0","9f9b29db-44a7-4f02-b198-9d3b21682361","868a026b-57ac-445f-9af3-983cdd24f188","0fe16b77-57fc-402f-a321-14cfe18e5d90","4c8a3ed4-0e47-43d2-b10a-ada66e8945b0","af0f0b16-a710-42a0-b689-1ed6797f26f7","30867aa9-f358-4942-a6b5-e630aebb204a"],"responses":{"200":"a0279bcc-53b5-45a0-84b4-efb63248d5a9","400":"18d58bba-9db3-44f8-ac37-9a8f16f9e5da","401":"9c1fb2ce-bdc5-4a39-ad3b-db7d7093d3bf","429":"6a427431-4bd9-4e94-ab2a-f017190b3def"},"method":"get","type":"path","servers":["0e703a7c-bb72-4382-a5c4-7af713801e30"],"security":["06dc2d5d-3307-4e9d-932f-2c2f29b1a6df"],"path":"/listings","baseUrlOptions":["https://csboard.com/v1"],"title":"Live buyable listings","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{"8c265619-07b4-4ca3-af0f-e6bfd32be667":{"name":"appId","in":"query","required":false,"description":"Steam appId of the game. `730` = CS2 (the default), `570` = Dota 2, `252490` = Rust. Omit it and the endpoint answers for CS2 exactly as before. An appId this key may not use answers `400 unsupported_game`, whose `supported_app_ids` lists the ones it may — see `GET /games`.","schema":{"type":"integer","enum":[730,570,252490],"default":730,"isRequired":false,"description":"Steam appId of the game. `730` = CS2 (the default), `570` = Dota 2, `252490` = Rust. Omit it and the endpoint answers for CS2 exactly as before. An appId this key may not use answers `400 unsupported_game`, whose `supported_app_ids` lists the ones it may — see `GET /games`.","uniqueKey":"","typeLabel":"enum\u003cinteger>"}},"56f55430-c502-474f-b28d-567c39a7a11a":{"name":"search","in":"query","description":"Full-text match on market hash name.","schema":{"type":"string","description":"Full-text match on market hash name.","uniqueKey":"","typeLabel":"string"}},"17daae94-6bd7-4ae7-8afd-f426fa602e44":{"name":"name","in":"query","required":false,"description":"Exact market_hash_name (case-insensitive) — the precise single-item lookup. Unlike fuzzy `search`, it isolates one item even when its name is a word-subset of a longer one (e.g. `Spectrum Case` vs `Spectrum 2 Case`). Takes precedence over `search`.","schema":{"type":"string","isRequired":false,"description":"Exact market_hash_name (case-insensitive) — the precise single-item lookup. Unlike fuzzy `search`, it isolates one item even when its name is a word-subset of a longer one (e.g. `Spectrum Case` vs `Spectrum 2 Case`). Takes precedence over `search`.","uniqueKey":"","typeLabel":"string"}},"2cf0c696-9dcb-4a75-884f-6c92808eaa22":{"name":"category","in":"query","description":"e.g. Rifle, Knife, Gloves.","schema":{"type":"string","description":"e.g. Rifle, Knife, Gloves.","uniqueKey":"","typeLabel":"string"}},"9bd6b846-4caf-44a4-bbec-766e48c16520":{"name":"wear","in":"query","description":"Item wear bucket. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"string","enum":["Factory New","Minimal Wear","Field-Tested","Well-Worn","Battle-Scarred"],"description":"Item wear bucket. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"299ab506-260b-4f6c-9326-d6ff53fc1ad9":{"name":"rarity","in":"query","description":"e.g. Classified, Covert.","schema":{"type":"string","description":"e.g. Classified, Covert.","uniqueKey":"","typeLabel":"string"}},"f6df5cf3-24d2-4701-8aa3-cd0c3e01d899":{"name":"min_price","in":"query","description":"Minimum price in USD.","schema":{"type":"number","description":"Minimum price in USD.","uniqueKey":"","typeLabel":"number"}},"4b3de2c9-bce3-4739-8db1-fc4d67634646":{"name":"max_price","in":"query","description":"Maximum price in USD.","schema":{"type":"number","description":"Maximum price in USD.","uniqueKey":"","typeLabel":"number"}},"7e4e21a3-2c71-4bc9-8d4f-1b993db7f140":{"name":"min_float","in":"query","description":"Minimum float value. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"number","description":"Minimum float value. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"number"}},"c7a65ab9-0a3f-4a10-ac20-2199351799f2":{"name":"max_float","in":"query","description":"Maximum float value. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"number","description":"Maximum float value. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"number"}},"1c7f5bf0-b4a4-4025-ae60-d38f75d3e00d":{"name":"delivery","in":"query","description":"Delivery bucket, the same three the site's grid shows. `instant` = bot fulfilment (seconds to minutes); `up_to_12h` = a human seller on the source market must send the trade; `hold` = inside a Steam trade lock until the item's tradable_at. Any other value is a 400.","schema":{"type":"string","enum":["instant","up_to_12h","hold"],"description":"Delivery bucket, the same three the site's grid shows. `instant` = bot fulfilment (seconds to minutes); `up_to_12h` = a human seller on the source market must send the trade; `hold` = inside a Steam trade lock until the item's tradable_at. Any other value is a 400.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"f0bf582c-5aae-497f-92c6-77bdf3a3ddf0":{"name":"min_refund_percent","in":"query","description":"Only listings whose refund_percent is at least this (0-100). Listings with no published figure are EXCLUDED, not assumed. Combine with delivery=instant for a pool that ships now and is fully refundable on a Steam reversal.","schema":{"type":"number","minimum":0,"maximum":100,"description":"Only listings whose refund_percent is at least this (0-100). Listings with no published figure are EXCLUDED, not assumed. Combine with delivery=instant for a pool that ships now and is fully refundable on a Steam reversal.","uniqueKey":"","typeLabel":"number"}},"9f9b29db-44a7-4f02-b198-9d3b21682361":{"name":"stat_trak","in":"query","description":"Filter StatTrak™ items. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"string","enum":["only","exclude"],"description":"Filter StatTrak™ items. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"868a026b-57ac-445f-9af3-983cdd24f188":{"name":"souvenir","in":"query","description":"Filter Souvenir items. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"string","enum":["only","exclude"],"description":"Filter Souvenir items. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"0fe16b77-57fc-402f-a321-14cfe18e5d90":{"name":"available_after","in":"query","required":false,"description":"ISO-8601 timestamp. Returns only listings that entered the catalogue after it — the delta-poll parameter. Pair with `sort=newest`; the usual response is an empty page, which is what makes frequent polling cheap instead of a full rescan every tick.\n\n**Overlap your watermark by ~60 seconds and dedupe by `id`.** Send `max(listed_at) - 60s`, never the bare maximum. Timestamps come from the start of the database transaction that published the listing, so a large batch can commit rows stamped *earlier* than rows a smaller, later batch already committed; a watermark advanced to the exact maximum steps over those listings permanently. CS2 only — sent with another `appId` it answers `400 invalid_param`.","schema":{"type":"string","format":"date-time","isRequired":false,"description":"ISO-8601 timestamp. Returns only listings that entered the catalogue after it — the delta-poll parameter. Pair with `sort=newest`; the usual response is an empty page, which is what makes frequent polling cheap instead of a full rescan every tick.\n\n**Overlap your watermark by ~60 seconds and dedupe by `id`.** Send `max(listed_at) - 60s`, never the bare maximum. Timestamps come from the start of the database transaction that published the listing, so a large batch can commit rows stamped *earlier* than rows a smaller, later batch already committed; a watermark advanced to the exact maximum steps over those listings permanently. CS2 only — sent with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"string\u003cdate-time>"},"example":"2026-07-27T09:13:02.481Z"},"4c8a3ed4-0e47-43d2-b10a-ada66e8945b0":{"name":"sort","in":"query","description":"Sort order. Default id. `newest` orders by `listed_at` (when the item entered the catalogue), so re-listings surface too. `newest` is CS2 only — with another `appId` it answers `400 invalid_param`.","schema":{"type":"string","enum":["id","newest","price_asc","price_desc"],"default":"id","description":"Sort order. Default id. `newest` orders by `listed_at` (when the item entered the catalogue), so re-listings surface too. `newest` is CS2 only — with another `appId` it answers `400 invalid_param`.","uniqueKey":"","typeLabel":"enum\u003cstring>"}},"af0f0b16-a710-42a0-b689-1ed6797f26f7":{"name":"cursor","in":"query","description":"Keyset cursor from next_cursor.","schema":{"type":"string","description":"Keyset cursor from next_cursor.","uniqueKey":"","typeLabel":"string"}},"30867aa9-f358-4942-a6b5-e630aebb204a":{"name":"limit","in":"query","description":"1–200. Default 50.","schema":{"type":"integer","minimum":1,"maximum":200,"default":50,"description":"1–200. Default 50.","uniqueKey":"","typeLabel":"integer"}}},"responses":{"a0279bcc-53b5-45a0-84b4-efb63248d5a9":{"description":"A page of listings.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable listing id. Pass to POST /v1/orders.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].id","typeLabel":"string"},"market_hash_name":{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].market_hash_name","typeLabel":"string"},"stickers":{"type":"array","items":{"type":"object","properties":{"name":{"oneOf":[{"type":"string","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].name.oneOf.0","typeLabel":"string"},{"type":"null","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].name.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].name","typeLabel":"string | null"},"image":{"oneOf":[{"type":"string","format":"uri","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].image.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].image.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].image","typeLabel":"string\u003curi> | null"},"slot":{"oneOf":[{"type":"integer","minimum":0,"maximum":4,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].slot.oneOf.0","typeLabel":"integer"},{"type":"null","minimum":0,"maximum":4,"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].slot.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].slot","typeLabel":"integer | null"},"wear":{"oneOf":[{"type":"number","description":"Sticker wear 0–1, or null if unscraped.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].wear.oneOf.0","typeLabel":"number"},{"type":"null","description":"Sticker wear 0–1, or null if unscraped.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].wear.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX].wear","typeLabel":"number | null"}},"required":["name","image","slot","wear"],"uniqueKey":"\\items.items.[INDEX].stickers.items.[INDEX]","typeLabel":"object"},"description":"Applied stickers; `[]` when none.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].stickers","typeLabel":"object[]"},"price_usd":{"type":"number","description":"Authoritative asking price in USD. Equals the amount charged if you buy this listing.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].price_usd","typeLabel":"number"},"category":{"oneOf":[{"type":"string","description":"Item category, e.g. `Rifle`, `Knife`, `Gloves`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].category.oneOf.0","typeLabel":"string"},{"type":"null","description":"Item category, e.g. `Rifle`, `Knife`, `Gloves`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].category.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"\\items.items.[INDEX].category","typeLabel":"string | null"},"tradable":{"type":"boolean","description":"`false` while the item is inside a Steam trade lock.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].tradable","typeLabel":"boolean"},"delivery":{"type":"string","enum":["instant","up_to_12h","hold"],"description":"Delivery bucket: `instant` — bot delivery, seconds to a few minutes; `up_to_12h` — a human seller has to send the trade; `hold` — inside a Steam trade lock until `tradable_at`.","isRequired":true,"uniqueKey":"\\items.items.[INDEX].delivery","typeLabel":"enum\u003cstring>"},"wear":{"oneOf":[{"type":"string","enum":["Factory New","Minimal Wear","Field-Tested","Well-Worn","Battle-Scarred",null],"description":"Wear bucket. `null` for items without wear, and for Dota 2 / Rust.","uniqueKey":"\\items.items.[INDEX].wear.oneOf.0","typeLabel":"enum\u003cstring>"},{"type":"null","enum":["Factory New","Minimal Wear","Field-Tested","Well-Worn","Battle-Scarred",null],"description":"Wear bucket. `null` for items without wear, and for Dota 2 / Rust.","uniqueKey":"\\items.items.[INDEX].wear.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].wear","typeLabel":"enum\u003cstring> | null"},"doppler_phase":{"oneOf":[{"type":"string","description":"Doppler / Gamma Doppler phase, e.g. \"Phase 2\", \"Ruby\", or null.","uniqueKey":"\\items.items.[INDEX].doppler_phase.oneOf.0","typeLabel":"string"},{"type":"null","description":"Doppler / Gamma Doppler phase, e.g. \"Phase 2\", \"Ruby\", or null.","uniqueKey":"\\items.items.[INDEX].doppler_phase.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].doppler_phase","typeLabel":"string | null"},"float_value":{"oneOf":[{"type":"number","description":"Float value between 0 and 1. `null` when not applicable.","uniqueKey":"\\items.items.[INDEX].float_value.oneOf.0","typeLabel":"number"},{"type":"null","description":"Float value between 0 and 1. `null` when not applicable.","uniqueKey":"\\items.items.[INDEX].float_value.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].float_value","typeLabel":"number | null"},"paint_seed":{"oneOf":[{"type":"integer","description":"Paint seed (pattern index). `null` when not applicable.","uniqueKey":"\\items.items.[INDEX].paint_seed.oneOf.0","typeLabel":"integer"},{"type":"null","description":"Paint seed (pattern index). `null` when not applicable.","uniqueKey":"\\items.items.[INDEX].paint_seed.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].paint_seed","typeLabel":"integer | null"},"rarity":{"oneOf":[{"type":"string","description":"Rarity tier, e.g. `Classified`, `Covert`.","uniqueKey":"\\items.items.[INDEX].rarity.oneOf.0","typeLabel":"string"},{"type":"null","description":"Rarity tier, e.g. `Classified`, `Covert`.","uniqueKey":"\\items.items.[INDEX].rarity.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].rarity","typeLabel":"string | null"},"image":{"oneOf":[{"type":"string","format":"uri","description":"Item image URL.","uniqueKey":"\\items.items.[INDEX].image.oneOf.0","typeLabel":"string\u003curi>"},{"type":"null","format":"uri","description":"Item image URL.","uniqueKey":"\\items.items.[INDEX].image.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].image","typeLabel":"string\u003curi> | null"},"inspect_link":{"oneOf":[{"type":"string","description":"Steam inspect link. `null` when there is none, and for Dota 2 / Rust.","uniqueKey":"\\items.items.[INDEX].inspect_link.oneOf.0","typeLabel":"string"},{"type":"null","description":"Steam inspect link. `null` when there is none, and for Dota 2 / Rust.","uniqueKey":"\\items.items.[INDEX].inspect_link.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].inspect_link","typeLabel":"string | null"},"tradable_at":{"oneOf":[{"type":"string","format":"date-time","description":"When the item leaves trade hold. Null if already tradable.","uniqueKey":"\\items.items.[INDEX].tradable_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When the item leaves trade hold. Null if already tradable.","uniqueKey":"\\items.items.[INDEX].tradable_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].tradable_at","typeLabel":"string\u003cdate-time> | null"},"refund_percent":{"oneOf":[{"type":"number","minimum":0,"maximum":100,"description":"How much of the purchase comes back if Valve reverses the Steam trade, 0–100. A property of the market the listing came from, not a support policy. `null` means we have no published figure — treat it as unknown, never as 100. Filter with `min_refund_percent`.","uniqueKey":"\\items.items.[INDEX].refund_percent.oneOf.0","typeLabel":"number"},{"type":"null","minimum":0,"maximum":100,"description":"How much of the purchase comes back if Valve reverses the Steam trade, 0–100. A property of the market the listing came from, not a support policy. `null` means we have no published figure — treat it as unknown, never as 100. Filter with `min_refund_percent`.","uniqueKey":"\\items.items.[INDEX].refund_percent.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].refund_percent","typeLabel":"number | null"},"listed_at":{"oneOf":[{"type":"string","format":"date-time","description":"When this item entered the catalogue. Not the same as when the row was created: items return to the catalogue constantly (cancelled orders, expired trade offers, released holds), and a re-listed item is new to you even though it existed before. `sort=newest` orders by this field, and it is the value to feed back as `available_after`.","example":"2026-07-27T09:14:02.481Z","uniqueKey":"\\items.items.[INDEX].listed_at.oneOf.0","typeLabel":"string\u003cdate-time>"},{"type":"null","format":"date-time","description":"When this item entered the catalogue. Not the same as when the row was created: items return to the catalogue constantly (cancelled orders, expired trade offers, released holds), and a re-listed item is new to you even though it existed before. `sort=newest` orders by this field, and it is the value to feed back as `available_after`.","example":"2026-07-27T09:14:02.481Z","uniqueKey":"\\items.items.[INDEX].listed_at.oneOf.1","typeLabel":"null"}],"uniqueKey":"\\items.items.[INDEX].listed_at","typeLabel":"string\u003cdate-time> | null"}},"required":["id","market_hash_name","price_usd","category","delivery","stickers","tradable"],"description":"One buyable listing. Dota 2 and Rust listings (`appId` 570 / 252490) carry the same keys as CS2 ones; the CS2-only fields — `wear`, `doppler_phase`, `float_value`, `paint_seed`, `inspect_link`, `tradable_at`, `listed_at` — are `null` and `stickers` is `[]`.","uniqueKey":"\\items.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"\\items","typeLabel":"object[]"},"next_cursor":{"oneOf":[{"type":"string","description":"Pass back as `cursor` to fetch the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.0","typeLabel":"string"},{"type":"null","description":"Pass back as `cursor` to fetch the next page. Null on the last page.","isRequired":true,"uniqueKey":"next_cursor.oneOf.1","typeLabel":"null"}],"isRequired":true,"uniqueKey":"next_cursor","typeLabel":"string | null"}},"required":["items","next_cursor"],"uniqueKey":"","typeLabel":"object"},"example":{"items":[{"id":"itm_8841201","market_hash_name":"AK-47 | Redline (Minimal Wear)","wear":"Minimal Wear","doppler_phase":null,"float_value":0.0912,"paint_seed":412,"stickers":[{"name":"Crown (Foil)","image":"https://cdn.csboard.com/stickers/crown_foil.png","slot":0,"wear":0}],"price_usd":14.37,"category":"Rifle","rarity":"Classified","image":"https://cdn.csboard.com/items/ak47_redline_mw.png","inspect_link":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20...","tradable":false,"tradable_at":"2026-07-06T12:00:00Z","delivery":"hold","refund_percent":100,"listed_at":"2026-06-29T08:41:17.000Z"}],"next_cursor":"eyJpZCI6Iml0bV84ODQxMjAxIn0="},"examples":{"Example":{"title":"Example","value":{"items":[{"id":"itm_8841201","market_hash_name":"AK-47 | Redline (Minimal Wear)","wear":"Minimal Wear","doppler_phase":null,"float_value":0.0912,"paint_seed":412,"stickers":[{"name":"Crown (Foil)","image":"https://cdn.csboard.com/stickers/crown_foil.png","slot":0,"wear":0}],"price_usd":14.37,"category":"Rifle","rarity":"Classified","image":"https://cdn.csboard.com/items/ak47_redline_mw.png","inspect_link":"steam://rungame/730/76561202255233023/+csgo_econ_action_preview%20...","tradable":false,"tradable_at":"2026-07-06T12:00:00Z","delivery":"hold","refund_percent":100,"listed_at":"2026-06-29T08:41:17.000Z"}],"next_cursor":"eyJpZCI6Iml0bV84ODQxMjAxIn0="}}},"exampleType":"examples"}},"exampleType":"examples"},"18d58bba-9db3-44f8-ac37-9a8f16f9e5da":{"description":"A malformed or CS2-only parameter (`invalid_param`), or an `appId` this key may not use (`unsupported_game`).","content":{"application/json":{"schema":{"type":"object","description":"All errors return { code, detail }. Some carry extra fields (e.g. price_moved adds current_total_usd, insufficient_balance adds required_usd/current_usd, item_unavailable adds unavailable_ids and, on CS2 buys, unknown_ids).","properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. rate_limit_exceeded, trading_not_enabled, price_moved.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation.","uniqueKey":"detail","typeLabel":"string"}},"required":["code"],"uniqueKey":"","typeLabel":"object"},"examples":{"invalid_param":{"title":"invalid_param","value":{"code":"invalid_param","detail":"wear is CS2-only and is not supported for appId 570 (Dota 2)."}},"unsupported_game":{"title":"unsupported_game","value":{"code":"unsupported_game","detail":"appId 440 is not available to this key. Supported: 730 (CS2), 570 (Dota 2), 252490 (Rust).","supported_app_ids":[730,570,252490]}}},"exampleType":"examples"}},"exampleType":"examples"},"9c1fb2ce-bdc5-4a39-ad3b-db7d7093d3bf":{"description":"Missing or invalid API key (`missing_api_key` or `invalid_api_key`).","content":{"application/json":{"schema":{"type":"object","description":"All errors return { code, detail }. Some carry extra fields (e.g. price_moved adds current_total_usd, insufficient_balance adds required_usd/current_usd, item_unavailable adds unavailable_ids and, on CS2 buys, unknown_ids).","properties":{"code":{"type":"string","description":"Machine-readable error code, e.g. rate_limit_exceeded, trading_not_enabled, price_moved.","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation.","uniqueKey":"detail","typeLabel":"string"}},"required":["code"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"missing_api_key","detail":"Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"},"examples":{"Example":{"title":"Example","value":{"code":"missing_api_key","detail":"Provide your API key via `Authorization: Bearer csb_pub_…`. Generate one at https://csboard.com/profile?tab=api"}}},"exampleType":"examples"}},"exampleType":"examples"},"6a427431-4bd9-4e94-ab2a-f017190b3def":{"description":"A per-key limit is spent. The key's own buckets answer `rate_limit_exceeded` with `bucket` (`read`, `trading` or `buy_orders`), `limit_per_min` and `retry_after_sec`. `Retry-After` is the seconds left until the one-minute window restarts (1–60), not a flat 60. Endpoint-specific limits (`snapshot_rate_limited` on the price snapshot, `rate_limited` on Instant Sell) send only `code` and `detail`.","headers":{"Retry-After":{"description":"Seconds until the one-minute window restarts (1–60). Waiting that long is always enough.","schema":{"type":"integer"}},"X-RateLimit-Limit":{"description":"The ceiling per minute of the bucket this call spent (named in `X-RateLimit-Bucket`).","schema":{"type":"integer"},"example":3000},"X-RateLimit-Remaining":{"description":"Calls left on that bucket in the current one-minute window.","schema":{"type":"integer","minimum":0},"example":2987},"X-RateLimit-Reset":{"description":"Seconds until the one-minute window restarts and the counter starts again.","schema":{"type":"integer","minimum":1,"maximum":60},"example":41},"X-RateLimit-Bucket":{"description":"The bucket this call spent: `read` (reads and every other keyed call) or `trading` (buys, order reads, claims, cancels, balance). A `429` from the buy-order limit says `buy_orders`.","schema":{"type":"string","enum":["read","trading","buy_orders"]},"example":"trading"}},"content":{"application/json":{"schema":{"type":"object","description":"The `429` body of a per-key bucket. Endpoint-specific limits send only `code` and `detail`.","properties":{"code":{"type":"string","description":"`rate_limit_exceeded` for the key's buckets. Endpoint-specific limits use their own code (`snapshot_rate_limited`, `rate_limited`).","isRequired":true,"uniqueKey":"code","typeLabel":"string"},"detail":{"type":"string","description":"Human-readable explanation.","uniqueKey":"detail","typeLabel":"string"},"bucket":{"type":"string","enum":["read","trading","buy_orders"],"description":"Which bucket is spent.","uniqueKey":"bucket","typeLabel":"enum\u003cstring>"},"limit_per_min":{"type":"integer","description":"That bucket's ceiling per minute.","uniqueKey":"limit_per_min","typeLabel":"integer"},"retry_after_sec":{"type":"integer","minimum":1,"maximum":60,"description":"Seconds until the window restarts — the same number as `Retry-After`.","uniqueKey":"retry_after_sec","typeLabel":"integer"}},"required":["code"],"uniqueKey":"","typeLabel":"object"},"example":{"code":"rate_limit_exceeded","detail":"Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.","bucket":"read","limit_per_min":100,"retry_after_sec":23},"examples":{"Example":{"title":"Example","value":{"code":"rate_limit_exceeded","detail":"Read rate limit of 100 requests/min exceeded. The counter restarts in 23 s. For new listings use GET /v1/listings/stream instead of polling.","bucket":"read","limit_per_min":100,"retry_after_sec":23}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"06dc2d5d-3307-4e9d-932f-2c2f29b1a6df":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","scopes":[],"schemeName":"bearerAuth"}}},"servers":{"0e703a7c-bb72-4382-a5c4-7af713801e30":{"url":"https://csboard.com/v1","description":"Production"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"http","scheme":"bearer","description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","scopes":[],"schemeName":"bearerAuth"},"schema":{"title":"Bearer Auth","type":"string","isRequired":true,"description":"Send your key as a Bearer token on every request: `Authorization: Bearer csb_pub_...`. Generate keys in your CSBoard profile. Calls made with a key are metered only by that key's own limits — there is no per-IP limit on top — and every answer carries `X-RateLimit-Limit`, `X-RateLimit-Remaining`, `X-RateLimit-Reset` and `X-RateLimit-Bucket` for the bucket the call spent. See [Rate limits](/rate-limits).","format":"bearer","typeLabel":"string\u003cbearer>","deprecated":false},"schemeName":"bearerAuth","name":"Authorization"}],"title":"bearerAuth"}]},"originalFileLocation":"openapi.json"},"subdomain":"csboard","siteName":"CSBoard API","title":"GET /v1/listings — Browse Live CS2 Marketplace Listings - CSBoard API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/get-listings","matchLevel":0},"ru":{"href":"/ru/api-reference/get-listings","matchLevel":1},"zh-Hans":{"href":"/zh-Hans/api-reference/get-listings","matchLevel":1}}},"lastModified":"2026-10-02T12:04:30.012Z","originalFileLocation":"api-reference/get-listings.mdx","locale":"en"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"dark\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\">\u003cmeta data-mint-head name=\"application-name\" content=\"CSBoard API\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"GET /v1/listings — Browse Live CS2 Marketplace Listings - CSBoard API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CSBoard API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.csboard.com/api-reference/get-listings\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=GET+%2Fv1%2Flistings+%E2%80%94+Browse+Live+CS2+Marketplace+Listings\u0026amp;description=Fetch+live%2C+buyable+CS2+skin+listings+with+float%2C+paint+seed%2C+stickers%2C+and+USD+asking+price.+Filter+by+wear%2C+category%2C+rarity%2C+float+range%2C+and+more.\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=5c3b9c0f2d36025610f1113872461a5cd57582cbc7c931e7d733be04d8d8f5db\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"GET /v1/listings — Browse Live CS2 Marketplace Listings - CSBoard API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=Market+Data\u0026amp;title=GET+%2Fv1%2Flistings+%E2%80%94+Browse+Live+CS2+Marketplace+Listings\u0026amp;description=Fetch+live%2C+buyable+CS2+skin+listings+with+float%2C+paint+seed%2C+stickers%2C+and+USD+asking+price.+Filter+by+wear%2C+category%2C+rarity%2C+float+range%2C+and+more.\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=5c3b9c0f2d36025610f1113872461a5cd57582cbc7c931e7d733be04d8d8f5db\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/csboard/m4zEijRxsV60XgHV/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"CSBoard API\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563eb\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api.csboard.com/api-reference/get-listings\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/api-reference/get-listings.md\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"en\" href=\"https://api.csboard.com/api-reference/get-listings\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"ru\" href=\"https://api.csboard.com/ru/api-reference/get-listings\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"zh-Hans\" href=\"https://api.csboard.com/zh-Hans/api-reference/get-listings\">\u003clink data-mint-head rel=\"alternate\" hreflang=\"x-default\" href=\"https://api.csboard.com/api-reference/get-listings\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api.csboard.com/#organization\",\"name\":\"CSBoard API\",\"url\":\"https://api.csboard.com\"},{\"@type\":\"WebSite\",\"@id\":\"https://api.csboard.com#website\",\"name\":\"CSBoard API\",\"url\":\"https://api.csboard.com\",\"publisher\":{\"@id\":\"https://api.csboard.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api.csboard.com/api-reference/get-listings#webpage\",\"url\":\"https://api.csboard.com/api-reference/get-listings\",\"name\":\"GET /v1/listings — Browse Live CS2 Marketplace Listings\",\"description\":\"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\",\"dateModified\":\"2026-10-02T12:04:30.012Z\",\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.csboard.com/api-reference/get-listings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.csboard.com/api-reference/get-listings#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"CSBoard API\",\"item\":\"https://api.csboard.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"GET /v1/listings — Browse Live CS2 Marketplace Listings\",\"item\":\"https://api.csboard.com/api-reference/get-listings\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.csboard.com/api-reference/get-listings#apireference\",\"headline\":\"GET /v1/listings — Browse Live CS2 Marketplace Listings\",\"name\":\"GET /v1/listings — Browse Live CS2 Marketplace Listings\",\"description\":\"Fetch live, buyable CS2 skin listings with float, paint seed, stickers, and USD asking price. Filter by wear, category, rarity, float range, and more.\",\"url\":\"https://api.csboard.com/api-reference/get-listings\",\"mainEntityOfPage\":{\"@id\":\"https://api.csboard.com/api-reference/get-listings#webpage\"},\"dateModified\":\"2026-10-02T12:04:30.012Z\",\"publisher\":{\"@id\":\"https://api.csboard.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"CSBoard API\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"CSBoard API\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/api-reference/get-listings.md","siteName":"CSBoard API","nav":{"global":null,"languages":[{"language":"en","tabs":[{"tab":"Guides","pages":[{"title":"Guides","href":"/introduction"}]},{"tab":"API Reference","groups":[{"group":"Market Data","pages":[{"title":"GET /v1/listings — Browse Live CS2 Marketplace Listings","sidebarTitle":"GET /listings","openapi":"GET /listings","href":"/api-reference/get-listings"},{"title":"GET /v1/listings/depth — One Item's Whole Book, Live","sidebarTitle":"GET /listings/depth","description":"Every lot we hold for one market_hash_name, cheapest first, after refreshing the item's book from the upstream market. For sizing a position on a specific skin: float, phase, delivery.","openapi":"GET /listings/depth","href":"/api-reference/get-listings-depth"},{"title":"GET /v1/listings/stream — Live Feed of New and Sold Listings","sidebarTitle":"GET /listings/stream","openapi":"GET /listings/stream","href":"/api-reference/get-listings-stream"},{"title":"GET /v1/listings/snapshot.ndjson.gz — Every Listing in One File","sidebarTitle":"GET /listings/snapshot","openapi":"GET /listings/snapshot.ndjson.gz","href":"/api-reference/get-listings-snapshot"},{"title":"GET /v1/listings/availability — Bulk Availability Check","sidebarTitle":"GET /listings/availability","openapi":"GET /listings/availability","href":"/api-reference/get-listings-availability"},{"title":"GET /v1/games — Games You Can Pass as appId","sidebarTitle":"GET /games","openapi":"GET /games","href":"/api-reference/get-games"},{"title":"GET /v1/prices — CS2 minAsk Price List by Item Group","sidebarTitle":"GET /prices","openapi":"GET /prices","href":"/api-reference/get-prices"},{"title":"GET /v1/prices/snapshot.ndjson.gz — Full Price Snapshot","sidebarTitle":"GET /prices/snapshot","openapi":"GET /prices/snapshot.ndjson.gz","href":"/api-reference/get-prices-snapshot"},{"title":"GET /v1/public/prices — Keyless Min-Ask Feed for CS2, Dota 2 and Rust","sidebarTitle":"GET /public/prices","openapi":"GET /public/prices","href":"/api-reference/get-public-prices"},{"title":"GET /v1/currency — FX Rates for USD Price Conversion","sidebarTitle":"GET /currency","openapi":"GET /currency","href":"/api-reference/get-currency"}]},{"group":"Trading","pages":[{"title":"POST /v1/orders — Buy CS2 Listings from Your Balance","sidebarTitle":"POST /orders","openapi":"POST /orders","href":"/api-reference/post-orders"},{"title":"POST /v1/market/buy — Buy and Deliver to a Steam Trade URL","sidebarTitle":"POST /market/buy","openapi":"POST /market/buy","href":"/api-reference/post-market-buy"},{"title":"POST /v1/orders/:id/claim — Release a Held Order","sidebarTitle":"POST /orders/:id/claim","openapi":"POST /orders/{id}/claim","href":"/api-reference/post-orders-claim"},{"title":"POST /v1/orders/:id/cancel — Cancel an Undelivered Order","sidebarTitle":"POST /orders/:id/cancel","openapi":"POST /orders/{id}/cancel","href":"/api-reference/post-orders-cancel"},{"title":"GET /v1/orders — List Your Purchase History","sidebarTitle":"GET /orders","openapi":"GET /orders","href":"/api-reference/get-orders"},{"title":"GET /v1/orders/info — Batch Order Lookup","sidebarTitle":"GET /orders/info","openapi":"GET /orders/info","href":"/api-reference/get-orders-info"},{"title":"GET /v1/orders/{id} — Fetch a Single Order","sidebarTitle":"GET /orders/{id}","openapi":"GET /orders/{id}","href":"/api-reference/get-order"}]},{"group":"Instant Sell","pages":[{"title":"GET /v1/sell/status: Is Instant Sell Enabled for My Key?","sidebarTitle":"GET /sell/status","openapi":"GET /sell/status","href":"/api-reference/get-sell-status"},{"title":"POST /v1/sell/quotes: Quote a Steam Inventory for Instant Sell","sidebarTitle":"POST /sell/quotes","openapi":"POST /sell/quotes","href":"/api-reference/post-sell-quotes"},{"title":"POST /v1/sell/orders: Sell Items from a Steam Inventory","sidebarTitle":"POST /sell/orders","openapi":"POST /sell/orders","href":"/api-reference/post-sell-orders"},{"title":"GET /v1/sell/orders: List Your Instant Sell Orders","sidebarTitle":"GET /sell/orders","openapi":"GET /sell/orders","href":"/api-reference/get-sell-orders"},{"title":"GET /v1/sell/orders/{id}: One Instant Sell Order","sidebarTitle":"GET /sell/orders/{id}","openapi":"GET /sell/orders/{id}","href":"/api-reference/get-sell-order"},{"title":"POST /v1/sell/orders/{id}/cancel: Cancel an Instant Sell Order","sidebarTitle":"POST /sell/orders/{id}/cancel","openapi":"POST /sell/orders/{id}/cancel","href":"/api-reference/post-sell-order-cancel"}]},{"group":"P2P","pages":[{"title":"GET /v1/p2p/inventory — Your CS2 Inventory, Ready to List","sidebarTitle":"GET /p2p/inventory","openapi":"GET /p2p/inventory","href":"/api-reference/get-p2p-inventory"},{"title":"POST /v1/p2p/listings — List Your CS2 Items on the P2P Market","sidebarTitle":"POST /p2p/listings","openapi":"POST /p2p/listings","href":"/api-reference/post-p2p-listings"},{"title":"GET /v1/p2p/listings — Your P2P Listings","sidebarTitle":"GET /p2p/listings","openapi":"GET /p2p/listings","href":"/api-reference/get-p2p-listings"},{"title":"PATCH /v1/p2p/listings/{id} — Change a Listing's Price","sidebarTitle":"PATCH /p2p/listings/{id}","openapi":"PATCH /p2p/listings/{id}","href":"/api-reference/patch-p2p-listing"},{"title":"DELETE /v1/p2p/listings/{id} — Remove a P2P Listing","sidebarTitle":"DELETE /p2p/listings/{id}","openapi":"DELETE /p2p/listings/{id}","href":"/api-reference/delete-p2p-listing"}]},{"group":"Account","pages":[{"title":"GET /v1/balance — Account Balance and Trading Status","sidebarTitle":"GET /balance","openapi":"GET /balance","href":"/api-reference/get-balance"},{"title":"GET /v1/transactions — Your Balance Ledger","sidebarTitle":"GET /transactions","openapi":"GET /transactions","href":"/api-reference/get-transactions"},{"title":"GET /v1/stats — Your Delivery and Refund Record","sidebarTitle":"GET /stats","openapi":"GET /stats","href":"/api-reference/get-stats"},{"title":"GET /v1/key — Inspect Your API Key","sidebarTitle":"GET /key","openapi":"GET /key","href":"/api-reference/get-key"},{"title":"PUT /v1/key/allowed-ips — Restrict a Key to Your Servers","sidebarTitle":"PUT /key/allowed-ips","openapi":"PUT /key/allowed-ips","href":"/api-reference/put-key-allowed-ips"}]},{"group":"Webhooks","pages":[{"title":"GET /v1/webhooks — List Your Webhook Endpoints","sidebarTitle":"GET /webhooks","openapi":"GET /webhooks","href":"/api-reference/get-webhooks"},{"title":"POST /v1/webhooks — Register a Webhook Endpoint","sidebarTitle":"POST /webhooks","openapi":"POST /webhooks","href":"/api-reference/post-webhooks"},{"title":"PATCH /v1/webhooks/{id} — Update a Webhook Endpoint","sidebarTitle":"PATCH /webhooks/{id}","openapi":"PATCH /webhooks/{id}","href":"/api-reference/patch-webhook"},{"title":"DELETE /v1/webhooks/{id} — Remove a Webhook Endpoint","sidebarTitle":"DELETE /webhooks/{id}","openapi":"DELETE /webhooks/{id}","href":"/api-reference/delete-webhook"},{"title":"POST /v1/webhooks/{id}/test — Send a Test Event","sidebarTitle":"POST /webhooks/{id}/test","openapi":"POST /webhooks/{id}/test","href":"/api-reference/post-webhook-test"},{"title":"POST /v1/webhooks/{id}/rotate-secret — Rotate the Signing Secret","sidebarTitle":"POST /webhooks/{id}/rotate-secret","openapi":"POST /webhooks/{id}/rotate-secret","href":"/api-reference/post-webhook-rotate-secret"},{"title":"GET /v1/webhooks/{id}/deliveries — Delivery History","sidebarTitle":"GET /webhooks/{id}/deliveries","openapi":"GET /webhooks/{id}/deliveries","href":"/api-reference/get-webhook-deliveries"},{"title":"POST /v1/webhooks/{id}/deliveries/{deliveryId}/retry — Retry a Delivery","sidebarTitle":"POST …/retry","openapi":"POST /webhooks/{id}/deliveries/{deliveryId}/retry","href":"/api-reference/post-webhook-delivery-retry"}]},{"group":"Status","pages":[{"title":"GET /v1/health — CSBoard API Liveness and Freshness Probe","sidebarTitle":"GET /health","openapi":"GET /health","href":"/api-reference/get-health"}]}]},{"tab":"Changelog","pages":[{"title":"Changelog","href":"/changelog/overview"}]}]},{"language":"ru","pages":[{"title":"ru","href":"/ru/api-reference/get-listings"}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/api-reference/get-listings"}]}]},"basePath":"","title":"GET /v1/listings — Browse Live CS2 Marketplace Listings - CSBoard API","buildId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","deploymentId":"dpl_41S5Z2jG9QnfDRwN1KZrLdBwj7DM","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-DDP9JXtj.js","utils-8yQyvEtx.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-CBCFR8Sn.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-rQaXkUHa.js","snippetPresets-J5KpBTgV.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DTNSD-0M.js","ApiExamples-BVxVH4Cj.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-BxdQ2vIi.js","shallow-BjV2tFiD.js","getApiPlaygroundDisplay-C_55tL4O.js","CodeSnippet-C0JpiCOC.js","CodeSnippets-w9Ps7djG.js","getPastedJson-BDfB-H8d.js","icon-g-kUkkO9.js","MethodPill-v4l6fq0h.js","DuplicateIcon-CvLo-CfU.js","createIcon-165clrrV.js","DynamicMarkdown-D3RQ-fEj.js","SectionHeading-vvo-3yLf.js","axios-vUo_bRtp.js","Markdown-CMT1uFWQ.js","clsx-C8f2yC9R.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-CI2D8R2Y.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-k78Wrw_e.js"]}