GET /v1/listings — просмотр актуальных листингов маркетплейса CS2
Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.
Эндпоинт listings возвращает все товары, доступные для покупки на маркетплейсе CSBoard прямо сейчас. Каждая запись содержит полные данные для оценки — значение float, paint seed, наклеенные стикеры с их износом — вместе с авторитетной ценой продажи в USD. Результаты разбиваются на страницы при помощи keyset-курсора, что позволяет надёжно пройти весь каталог даже по мере появления новых листингов.Требуется аутентификация. Отправьте ключ как Authorization: Bearer csb_pub_....
Передайте appId=570 для Dota 2 или appId=252490 для Rust. У таких строк те же ключи; поля, которые есть только в CS2 (wear, doppler_phase, float_value, paint_seed, inspect_link, tradable_at, listed_at), равны null, а stickers — []. См. Игры.
Query-параметры
integer
по умолчанию:"730"
Игра: 730 — CS2, 570 — Dota 2, 252490 — Rust. Не передавайте параметр, чтобы получить CS2. Игры, доступные вашему ключу, — в GET /v1/games.
string
Нечёткое совпадение по market_hash_name товара — запрос разбивается на слова, и каждое сопоставляется как подстрока, идеально подходит для поиска. Обратите внимание: имя, слова которого являются подмножеством более длинного имени предмета (например, Spectrum Case и Spectrum 2 Case), нельзя изолировать таким способом. Для одного конкретного предмета используйте name.
string
Точное market_hash_name (регистр не учитывается). Точный способ получить листинги одного конкретного предмета — name=Spectrum Case вернёт только Spectrum Case, никогда Spectrum 2 Case. Имеет приоритет над search, если переданы оба параметра.
string
Фильтр по категории товара, например Rifle, Knife, Gloves, Pistol.
string
Фильтр по диапазону износа. Одно из: Factory New, Minimal Wear, Field-Tested, Well-Worn, Battle-Scarred. Только для CS2 — с другим appId вернёт 400 invalid_param.
string
Фильтр по уровню редкости, например Classified, Covert, Extraordinary.
number
Минимальная цена продажи в USD (включительно).
number
Максимальная цена продажи в USD (включительно).
number
Минимальное значение float (включительно). Принимает значения от 0.0 до 1.0. Только для CS2 — с другим appId вернёт 400 invalid_param.
number
Максимальное значение float (включительно). Принимает значения от 0.0 до 1.0. Только для CS2 — с другим appId вернёт 400 invalid_param.
string
Срок доставки — те же три группы, что показывает сетка на сайте. Одно из:
instant — доставка ботом. От нескольких секунд до нескольких минут.
up_to_12h — трейд должен отправить продавец-человек на площадке-источнике. На сайте отображается как ≤12 ч.
hold — внутри trade lock в Steam до tradable_at предмета.
Используйте delivery=instant для любого сценария, где доставка нужна сейчас — вывод, выплата ботом, пользователь, ждущий на экране. Любое другое значение вернёт 400, поэтому опечатка проявится сразу, а не расширит выдачу незаметно.
number
Только листинги, у которых refund_percent не меньше заданного (0–100). Листинги без опубликованного значения исключаются, а не считаются подходящими.?delivery=instant&min_refund_percent=100 — тот пул, который нужен сценарию вывода: доставка сразу, а откат трейда в Steam никому ничего не стоит.
string
Фильтр StatTrak™. only возвращает только предметы StatTrak™; exclude исключает их из результатов. Только для CS2 — с другим appId вернёт 400 invalid_param.
string
Фильтр Souvenir. only возвращает только сувенирные предметы; exclude исключает их из результатов. Только для CS2 — с другим appId вернёт 400 invalid_param.
string (ISO 8601)
Возвращать только листинги, попавшие в каталог после этой временной метки — параметр для чтения дельты. В паре с sort=newest обычный ответ — пустая страница, и именно это делает частый опрос дешёвым вместо полного перечитывания на каждом тике.Перекрывайте свою вотермарку примерно на 60 секунд и дедуплицируйте по id. Отправляйте max(listed_at) - 60s, а не голый максимум. Временные метки берутся из момента НАЧАЛА транзакции БД, опубликовавшей листинг, поэтому большая транзакция может закоммитить строки со штампом раньше, чем строки меньшей и более поздней транзакции, уже закоммиченные. Вотермарка, сдвинутая ровно на максимум, перешагнёт такие листинги навсегда.Только для CS2 — с другим appId вернёт 400 invalid_param.
string
по умолчанию:"id"
Порядок сортировки. Одно из: id (стабильный по умолчанию), newest, price_asc, price_desc. newest сортирует по listed_at, поэтому перевыставленные предметы всплывают наравне с действительно новыми. newest — только для CS2: с другим appId вернёт 400 invalid_param.
string
Keyset-курсор пагинации. Передайте значение next_cursor из предыдущего ответа, чтобы получить следующую страницу.
integer
по умолчанию:"50"
Количество результатов на странице. Минимум 1, максимум 200.
Поля ответа
Listing[]
обязательно
Массив объектов листингов для этой страницы.
Показать Listing object
string
обязательно
Стабильный идентификатор листинга. Передайте его в POST /v1/orders, чтобы купить предмет.
string
обязательно
Steam market hash name, например AK-47 | Redline (Minimal Wear).
string | null
Диапазон износа: Factory New, Minimal Wear, Field-Tested, Well-Worn или Battle-Scarred. null для предметов без износа (например, некоторые ножи или перчатки).
string | null
Фаза Doppler или Gamma Doppler, например "Phase 2", "Ruby", "Emerald". null для предметов, не относящихся к Doppler.
number | null
Значение float от 0.0 до 1.0. null, если неприменимо.
integer | null
Paint seed (индекс паттерна). null, если неприменимо.
Sticker[]
обязательно
Наклеенные стикеры. Пустой массив, если их нет.
Показать Sticker object
string
Название стикера, например Crown (Foil).
string (URI)
URL изображения стикера на CDN.
integer
Номер слота стикера, от 0 до 4.
number | null
Износ стикера от 0.0 до 1.0. null, если износ стикера не был получен.
number
обязательно
Авторитетная цена продажи в USD. Это ровно та сумма, которая будет списана при покупке этого листинга через POST /v1/orders.
string
обязательно
Категория предмета, например Rifle, Knife, Gloves.
string
Уровень редкости, например Classified, Covert.
string (URI)
URL изображения предмета на CDN.
string
Ссылка для осмотра в Steam (steam://rungame/...) для этого предмета.
boolean
обязательно
Можно ли сейчас обменивать предмет. false означает, что он находится в торговом холде.
datetime | null
Временная метка ISO 8601, когда предмет выйдет из торгового холда. null, если предмет уже доступен для обмена.
string
обязательно
Ожидаемый режим доставки: instant (бот, от секунд до минут), up_to_12h (трейд должен отправить продавец-человек на площадке-источнике) или hold (внутри trade lock в Steam до tradable_at).
number | null
Какая часть покупки вернётся, если Valve откатит трейд в Steam. Это свойство площадки, с которой пришёл листинг, а не политика поддержки; по нашим источникам значение лежит в диапазоне от 0 до 100.null означает, что опубликованного значения для этого листинга нет — считайте его неизвестным, а не равным 100. Фильтруйте через min_refund_percent, чтобы собрать пул, где любой откат полностью компенсируется.
datetime | null
Когда предмет попал в каталог. Не то же самое, что момент создания записи: предметы возвращаются в каталог постоянно — отменённые заказы, истёкшие трейд-офферы, снятые холды — и перевыставленный предмет для вас новый, даже если существовал раньше. Именно это значение нужно передавать обратно в available_after.
string | null
обязательно
Непрозрачный keyset-курсор. Передайте его как query-параметр cursor, чтобы получить следующую страницу. null на последней странице.
Пагинация
Этот эндпоинт использует keyset-пагинацию. Чтобы пройти все страницы:
Выполните первый запрос (без cursor).
Если next_cursor не равен null, повторите запрос с cursor=<next_cursor>.
Остановитесь, когда next_cursor станет null — вы дошли до последней страницы.
Keyset-пагинация стабильна: новые листинги, появляющиеся во время итерации, не приводят к дубликатам или пропущенным строкам.
Некорректный параметр или фильтр только для CS2, переданный с другим appId.
400
unsupported_game
Ваш ключ не может использовать этот appId. Доступные перечислены в supported_app_ids.
401
missing_api_key, invalid_api_key
Отсутствует или некорректный API-ключ.
429
rate_limit_exceeded
Превышен поминутный лимит вашего ключа (по умолчанию 100/мин). Подождите количество секунд, указанное в заголовке Retry-After.
Значение price_usd у каждого листинга — это авторитетная цена покупки: оно отражает текущую цену продажи на момент запроса и ровно столько с вас спишут. Не используйте min_price_usd из эндпоинта /prices как оценку цены покупки — это значение может отставать.
Авторизации
Authorization
string
header
обязательно
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.
Параметры запроса
appId
enum<integer>
по умолчанию:730
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.
Доступные опции:
730,
570,
252490
search
string
Full-text match on market hash name.
name
string
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.
category
string
e.g. Rifle, Knife, Gloves.
wear
enum<string>
Item wear bucket. CS2 only — sent with another appId it answers 400 invalid_param.
Доступные опции:
Factory New,
Minimal Wear,
Field-Tested,
Well-Worn,
Battle-Scarred
rarity
string
e.g. Classified, Covert.
min_price
number
Minimum price in USD.
max_price
number
Maximum price in USD.
min_float
number
Minimum float value. CS2 only — sent with another appId it answers 400 invalid_param.
max_float
number
Maximum float value. CS2 only — sent with another appId it answers 400 invalid_param.
delivery
enum<string>
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.
Доступные опции:
instant,
up_to_12h,
hold
min_refund_percent
number
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.
Требуемый диапазон: 0 <= x <= 100
stat_trak
enum<string>
Filter StatTrak™ items. CS2 only — sent with another appId it answers 400 invalid_param.
Доступные опции:
only,
exclude
souvenir
enum<string>
Filter Souvenir items. CS2 only — sent with another appId it answers 400 invalid_param.
Доступные опции:
only,
exclude
available_after
string<date-time>
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
enum<string>
по умолчанию:id
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.
Доступные опции:
id,
newest,
price_asc,
price_desc
cursor
string
Keyset cursor from next_cursor.
limit
integer
по умолчанию:50
1–200. Default 50.
Требуемый диапазон: 1 <= x <= 200
Ответ
A page of listings.
items
object[]
обязательно
Show child attributes
next_cursor
string | null
обязательно
Pass back as cursor to fetch the next page. Null on the last page.
{"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.4142","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":"ru/api-reference/get-listings","slug":"/ru/api-reference/get-listings","pageMetadata":{"title":"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2","sidebarTitle":"GET /listings","description":"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.","openapi":"GET /listings","href":"/ru/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: \"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\"\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:`Эндпоинт listings возвращает все товары, доступные для покупки на маркетплейсе CSBoard прямо сейчас. Каждая запись содержит полные данные для оценки — значение float, paint seed, наклеенные стикеры с их износом — вместе с авторитетной ценой продажи в USD. Результаты разбиваются на страницы при помощи keyset-курсора, что позволяет надёжно пройти весь каталог даже по мере появления новых листингов.`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Требуется аутентификация.`}),` Отправьте ключ как `,_jsx(_components.code,{children:`Authorization: Bearer csb_pub_...`}),`.`]}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Передайте `,_jsx(_components.code,{children:`appId=570`}),` для Dota 2 или `,_jsx(_components.code,{children:`appId=252490`}),` для Rust. У таких строк те же ключи; поля, которые есть только в CS2 (`,_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`}),`), равны `,_jsx(_components.code,{children:`null`}),`, а `,_jsx(_components.code,{children:`stickers`}),` — `,_jsx(_components.code,{children:`[]`}),`. См. `,_jsx(_components.a,{href:`/ru/api-reference/get-games`,children:`Игры`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`query-параметры`,children:`Query-параметры`}),`\n`,_jsx(ParamField,{query:`appId`,default:`730`,type:`integer`,id:`param-app-id`,children:_jsxs(_components.p,{children:[`Игра: `,_jsx(_components.code,{children:`730`}),` — CS2, `,_jsx(_components.code,{children:`570`}),` — Dota 2, `,_jsx(_components.code,{children:`252490`}),` — Rust. Не передавайте параметр, чтобы получить CS2. Игры, доступные вашему ключу, — в `,_jsx(_components.a,{href:`/ru/api-reference/get-games`,children:_jsx(_components.code,{children:`GET /v1/games`})}),`.`]})}),`\n`,_jsx(ParamField,{query:`search`,type:`string`,id:`param-search`,children:_jsxs(_components.p,{children:[`Нечёткое совпадение по `,_jsx(_components.code,{children:`market_hash_name`}),` товара — запрос разбивается на слова, и каждое сопоставляется как подстрока, идеально подходит для поиска. Обратите внимание: имя, слова которого являются подмножеством более длинного имени предмета (например, `,_jsx(_components.code,{children:`Spectrum Case`}),` и `,_jsx(_components.code,{children:`Spectrum 2 Case`}),`), нельзя изолировать таким способом. Для одного конкретного предмета используйте `,_jsx(_components.code,{children:`name`}),`.`]})}),`\n`,_jsx(ParamField,{query:`name`,type:`string`,id:`param-name`,children:_jsxs(_components.p,{children:[`Точное `,_jsx(_components.code,{children:`market_hash_name`}),` (регистр не учитывается). Точный способ получить листинги одного конкретного предмета — `,_jsx(_components.code,{children:`name=Spectrum Case`}),` вернёт только Spectrum Case, никогда `,_jsx(_components.code,{children:`Spectrum 2 Case`}),`. Имеет приоритет над `,_jsx(_components.code,{children:`search`}),`, если переданы оба параметра.`]})}),`\n`,_jsx(ParamField,{query:`category`,type:`string`,id:`param-category`,children:_jsxs(_components.p,{children:[`Фильтр по категории товара, например `,_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:[`Фильтр по диапазону износа. Одно из: `,_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 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`rarity`,type:`string`,id:`param-rarity`,children:_jsxs(_components.p,{children:[`Фильтр по уровню редкости, например `,_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:`Минимальная цена продажи в USD (включительно).`})}),`\n`,_jsx(ParamField,{query:`max_price`,type:`number`,id:`param-max-price`,children:_jsx(_components.p,{children:`Максимальная цена продажи в USD (включительно).`})}),`\n`,_jsx(ParamField,{query:`min_float`,type:`number`,id:`param-min-float`,children:_jsxs(_components.p,{children:[`Минимальное значение float (включительно). Принимает значения от `,_jsx(_components.code,{children:`0.0`}),` до `,_jsx(_components.code,{children:`1.0`}),`. Только для CS2 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`max_float`,type:`number`,id:`param-max-float`,children:_jsxs(_components.p,{children:[`Максимальное значение float (включительно). Принимает значения от `,_jsx(_components.code,{children:`0.0`}),` до `,_jsx(_components.code,{children:`1.0`}),`. Только для CS2 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsxs(ParamField,{query:`delivery`,type:`string`,id:`param-delivery`,children:[_jsx(_components.p,{children:`Срок доставки — те же три группы, что показывает сетка на сайте. Одно из:`}),_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`instant`}),` — доставка ботом. От нескольких секунд до нескольких минут.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`up_to_12h`}),` — трейд должен отправить продавец-человек на площадке-источнике. На сайте отображается как ≤12 ч.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.code,{children:`hold`}),` — внутри trade lock в Steam до `,_jsx(_components.code,{children:`tradable_at`}),` предмета.`]}),`\n`]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Используйте `,_jsx(_components.code,{children:`delivery=instant`}),` для любого сценария, где доставка нужна сейчас`]}),` — вывод, выплата ботом, пользователь, ждущий на экране. Любое другое значение вернёт `,_jsx(_components.code,{children:`400`}),`, поэтому опечатка проявится сразу, а не расширит выдачу незаметно.`]})]}),`\n`,_jsxs(ParamField,{query:`min_refund_percent`,type:`number`,id:`param-min-refund-percent`,children:[_jsxs(_components.p,{children:[`Только листинги, у которых `,_jsx(_components.code,{children:`refund_percent`}),` не меньше заданного (0–100). Листинги без опубликованного значения `,_jsx(_components.strong,{children:`исключаются`}),`, а не считаются подходящими.`]}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`?delivery=instant\u0026min_refund_percent=100`}),` — тот пул, который нужен сценарию вывода: доставка сразу, а откат трейда в Steam никому ничего не стоит.`]})]}),`\n`,_jsx(ParamField,{query:`stat_trak`,type:`string`,id:`param-stat-trak`,children:_jsxs(_components.p,{children:[`Фильтр StatTrak™. `,_jsx(_components.code,{children:`only`}),` возвращает только предметы StatTrak™; `,_jsx(_components.code,{children:`exclude`}),` исключает их из результатов. Только для CS2 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`souvenir`,type:`string`,id:`param-souvenir`,children:_jsxs(_components.p,{children:[`Фильтр Souvenir. `,_jsx(_components.code,{children:`only`}),` возвращает только сувенирные предметы; `,_jsx(_components.code,{children:`exclude`}),` исключает их из результатов. Только для CS2 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_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:[`Возвращать только листинги, попавшие в каталог после этой временной метки — параметр для чтения дельты. В паре с `,_jsx(_components.code,{children:`sort=newest`}),` обычный ответ — пустая страница, и именно это делает частый опрос дешёвым вместо полного перечитывания на каждом тике.`]}),_jsxs(_components.p,{children:[_jsxs(_components.strong,{children:[`Перекрывайте свою вотермарку примерно на 60 секунд и дедуплицируйте по `,_jsx(_components.code,{children:`id`}),`.`]}),` Отправляйте `,_jsx(_components.code,{children:`max(listed_at) - 60s`}),`, а не голый максимум. Временные метки берутся из момента НАЧАЛА транзакции БД, опубликовавшей листинг, поэтому большая транзакция может закоммитить строки со штампом `,_jsx(_components.em,{children:`раньше`}),`, чем строки меньшей и более поздней транзакции, уже закоммиченные. Вотермарка, сдвинутая ровно на максимум, перешагнёт такие листинги навсегда.`]}),_jsxs(_components.p,{children:[`Только для CS2 — с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})]}),`\n`,_jsx(ParamField,{query:`sort`,type:`string`,default:`id`,id:`param-sort`,children:_jsxs(_components.p,{children:[`Порядок сортировки. Одно из: `,_jsx(_components.code,{children:`id`}),` (стабильный по умолчанию), `,_jsx(_components.code,{children:`newest`}),`, `,_jsx(_components.code,{children:`price_asc`}),`, `,_jsx(_components.code,{children:`price_desc`}),`. `,_jsx(_components.code,{children:`newest`}),` сортирует по `,_jsx(_components.code,{children:`listed_at`}),`, поэтому перевыставленные предметы всплывают наравне с действительно новыми. `,_jsx(_components.code,{children:`newest`}),` — только для CS2: с другим `,_jsx(_components.code,{children:`appId`}),` вернёт `,_jsx(_components.code,{children:`400 invalid_param`}),`.`]})}),`\n`,_jsx(ParamField,{query:`cursor`,type:`string`,id:`param-cursor`,children:_jsxs(_components.p,{children:[`Keyset-курсор пагинации. Передайте значение `,_jsx(_components.code,{children:`next_cursor`}),` из предыдущего ответа, чтобы получить следующую страницу.`]})}),`\n`,_jsx(ParamField,{query:`limit`,type:`integer`,default:`50`,id:`param-limit`,children:_jsxs(_components.p,{children:[`Количество результатов на странице. Минимум `,_jsx(_components.code,{children:`1`}),`, максимум `,_jsx(_components.code,{children:`200`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`поля-ответа`,children:`Поля ответа`}),`\n`,_jsxs(ResponseField,{name:`items`,type:`Listing[]`,required:true,id:`param-items`,children:[_jsx(_components.p,{children:`Массив объектов листингов для этой страницы.`}),_jsxs(Expandable,{title:`Listing object`,children:[_jsx(ResponseField,{name:`id`,type:`string`,required:true,id:`param-id`,children:_jsxs(_components.p,{children:[`Стабильный идентификатор листинга. Передайте его в `,_jsx(_components.code,{children:`POST /v1/orders`}),`, чтобы купить предмет.`]})}),_jsx(ResponseField,{name:`market_hash_name`,type:`string`,required:true,id:`param-market-hash-name`,children:_jsxs(_components.p,{children:[`Steam market hash name, например `,_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:[`Диапазон износа: `,_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`}),`. `,_jsx(_components.code,{children:`null`}),` для предметов без износа (например, некоторые ножи или перчатки).`]})}),_jsx(ResponseField,{name:`doppler_phase`,type:`string | null`,id:`param-doppler-phase`,children:_jsxs(_components.p,{children:[`Фаза Doppler или Gamma Doppler, например `,_jsx(_components.code,{children:`\"Phase 2\"`}),`, `,_jsx(_components.code,{children:`\"Ruby\"`}),`, `,_jsx(_components.code,{children:`\"Emerald\"`}),`. `,_jsx(_components.code,{children:`null`}),` для предметов, не относящихся к Doppler.`]})}),_jsx(ResponseField,{name:`float_value`,type:`number | null`,id:`param-float-value`,children:_jsxs(_components.p,{children:[`Значение float от `,_jsx(_components.code,{children:`0.0`}),` до `,_jsx(_components.code,{children:`1.0`}),`. `,_jsx(_components.code,{children:`null`}),`, если неприменимо.`]})}),_jsx(ResponseField,{name:`paint_seed`,type:`integer | null`,id:`param-paint-seed`,children:_jsxs(_components.p,{children:[`Paint seed (индекс паттерна). `,_jsx(_components.code,{children:`null`}),`, если неприменимо.`]})}),_jsxs(ResponseField,{name:`stickers`,type:`Sticker[]`,required:true,id:`param-stickers`,children:[_jsx(_components.p,{children:`Наклеенные стикеры. Пустой массив, если их нет.`}),_jsxs(Expandable,{title:`Sticker object`,children:[_jsx(ResponseField,{name:`name`,type:`string`,id:`param-name-1`,children:_jsxs(_components.p,{children:[`Название стикера, например `,_jsx(_components.code,{children:`Crown (Foil)`}),`.`]})}),_jsx(ResponseField,{name:`image`,type:`string (URI)`,id:`param-image`,children:_jsx(_components.p,{children:`URL изображения стикера на CDN.`})}),_jsx(ResponseField,{name:`slot`,type:`integer`,id:`param-slot`,children:_jsxs(_components.p,{children:[`Номер слота стикера, от `,_jsx(_components.code,{children:`0`}),` до `,_jsx(_components.code,{children:`4`}),`.`]})}),_jsx(ResponseField,{name:`wear`,type:`number | null`,id:`param-wear-2`,children:_jsxs(_components.p,{children:[`Износ стикера от `,_jsx(_components.code,{children:`0.0`}),` до `,_jsx(_components.code,{children:`1.0`}),`. `,_jsx(_components.code,{children:`null`}),`, если износ стикера не был получен.`]})})]})]}),_jsx(ResponseField,{name:`price_usd`,type:`number`,required:true,id:`param-price-usd`,children:_jsxs(_components.p,{children:[`Авторитетная цена продажи в USD. Это ровно та сумма, которая будет списана при покупке этого листинга через `,_jsx(_components.code,{children:`POST /v1/orders`}),`.`]})}),_jsx(ResponseField,{name:`category`,type:`string`,required:true,id:`param-category-1`,children:_jsxs(_components.p,{children:[`Категория предмета, например `,_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:[`Уровень редкости, например `,_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:`URL изображения предмета на CDN.`})}),_jsx(ResponseField,{name:`inspect_link`,type:`string`,id:`param-inspect-link`,children:_jsxs(_components.p,{children:[`Ссылка для осмотра в Steam (`,_jsx(_components.code,{children:`steam://rungame/...`}),`) для этого предмета.`]})}),_jsx(ResponseField,{name:`tradable`,type:`boolean`,required:true,id:`param-tradable`,children:_jsxs(_components.p,{children:[`Можно ли сейчас обменивать предмет. `,_jsx(_components.code,{children:`false`}),` означает, что он находится в торговом холде.`]})}),_jsx(ResponseField,{name:`tradable_at`,type:`datetime | null`,id:`param-tradable-at`,children:_jsxs(_components.p,{children:[`Временная метка ISO 8601, когда предмет выйдет из торгового холда. `,_jsx(_components.code,{children:`null`}),`, если предмет уже доступен для обмена.`]})}),_jsx(ResponseField,{name:`delivery`,type:`string`,required:true,id:`param-delivery-1`,children:_jsxs(_components.p,{children:[`Ожидаемый режим доставки: `,_jsx(_components.code,{children:`instant`}),` (бот, от секунд до минут), `,_jsx(_components.code,{children:`up_to_12h`}),` (трейд должен отправить продавец-человек на площадке-источнике) или `,_jsx(_components.code,{children:`hold`}),` (внутри trade lock в Steam до `,_jsx(_components.code,{children:`tradable_at`}),`).`]})}),_jsxs(ResponseField,{name:`refund_percent`,type:`number | null`,id:`param-refund-percent`,children:[_jsx(_components.p,{children:`Какая часть покупки вернётся, если Valve откатит трейд в Steam. Это свойство площадки, с которой пришёл листинг, а не политика поддержки; по нашим источникам значение лежит в диапазоне от 0 до 100.`}),_jsxs(_components.p,{children:[_jsx(_components.code,{children:`null`}),` означает, что опубликованного значения для этого листинга нет — считайте его неизвестным, а не равным 100. Фильтруйте через `,_jsx(_components.code,{children:`min_refund_percent`}),`, чтобы собрать пул, где любой откат полностью компенсируется.`]})]}),_jsx(ResponseField,{name:`listed_at`,type:`datetime | null`,id:`param-listed-at`,children:_jsxs(_components.p,{children:[`Когда предмет попал в каталог. `,_jsx(_components.strong,{children:`Не`}),` то же самое, что момент создания записи: предметы возвращаются в каталог постоянно — отменённые заказы, истёкшие трейд-офферы, снятые холды — и перевыставленный предмет для вас новый, даже если существовал раньше. Именно это значение нужно передавать обратно в `,_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:[`Непрозрачный keyset-курсор. Передайте его как query-параметр `,_jsx(_components.code,{children:`cursor`}),`, чтобы получить следующую страницу. `,_jsx(_components.code,{children:`null`}),` на последней странице.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`пагинация`,children:`Пагинация`}),`\n`,_jsxs(_components.p,{children:[`Этот эндпоинт использует `,_jsx(_components.strong,{children:`keyset-пагинацию`}),`. Чтобы пройти все страницы:`]}),`\n`,_jsxs(_components.ol,{children:[`\n`,_jsxs(_components.li,{children:[`Выполните первый запрос (без `,_jsx(_components.code,{children:`cursor`}),`).`]}),`\n`,_jsxs(_components.li,{children:[`Если `,_jsx(_components.code,{children:`next_cursor`}),` не равен null, повторите запрос с `,_jsx(_components.code,{children:`cursor=\u003cnext_cursor>`}),`.`]}),`\n`,_jsxs(_components.li,{children:[`Остановитесь, когда `,_jsx(_components.code,{children:`next_cursor`}),` станет `,_jsx(_components.code,{children:`null`}),` — вы дошли до последней страницы.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`Keyset-пагинация стабильна: новые листинги, появляющиеся во время итерации, не приводят к дубликатам или пропущенным строкам.`}),`\n`,_jsx(Heading,{level:`2`,id:`пример-запроса`,children:`Пример запроса`}),`\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:`пример-ответа`,children:`Пример ответа`}),`\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:`коды-ошибок`,children:`Коды ошибок`}),`\n`,_jsxs(Table,{children:[_jsx(_components.thead,{children:_jsxs(_components.tr,{children:[_jsx(_components.th,{children:`HTTP-статус`}),_jsx(_components.th,{children:`Код`}),_jsx(_components.th,{children:`Значение`})]})}),_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:[`Некорректный параметр или фильтр только для CS2, переданный с другим `,_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:[`Ваш ключ не может использовать этот `,_jsx(_components.code,{children:`appId`}),`. Доступные перечислены в `,_jsx(_components.code,{children:`supported_app_ids`}),`.`]})]}),_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:`Отсутствует или некорректный API-ключ.`})]}),_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:[`Превышен поминутный лимит вашего ключа (по умолчанию 100/мин). Подождите количество секунд, указанное в заголовке `,_jsx(_components.code,{children:`Retry-After`}),`.`]})]})]})]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`Значение `,_jsx(_components.code,{children:`price_usd`}),` у каждого листинга — это `,_jsx(_components.strong,{children:`авторитетная цена покупки`}),`: оно отражает текущую цену продажи на момент запроса и ровно столько с вас спишут. Не используйте `,_jsx(_components.code,{children:`min_price_usd`}),` из эндпоинта `,_jsx(_components.code,{children:`/prices`}),` как оценку цены покупки — это значение может отставать.`]})})]})}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 — просмотр актуальных листингов маркетплейса CS2","sidebarTitle":"GET /listings","description":"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.","openapi":"GET /listings","href":"/ru/api-reference/get-listings"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Query-параметры","slug":"query-параметры","depth":2,"children":[]},{"title":"Поля ответа","slug":"поля-ответа","depth":2,"children":[]},{"title":"Пагинация","slug":"пагинация","depth":2,"children":[]},{"title":"Пример запроса","slug":"пример-запроса","depth":2,"children":[]},{"title":"Пример ответа","slug":"пример-ответа","depth":2,"children":[]},{"title":"Коды ошибок","slug":"коды-ошибок","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"tags":["Market data"],"summary":"Live buyable listings","description":"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.","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 — просмотр актуальных листингов маркетплейса CS2 - CSBoard API","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{"en":{"href":"/api-reference/get-listings","matchLevel":1},"ru":{"href":"/ru/api-reference/get-listings","matchLevel":0},"zh-Hans":{"href":"/zh-Hans/api-reference/get-listings","matchLevel":1}}},"lastModified":"2026-10-02T12:04:30.008Z","originalFileLocation":"ru/api-reference/get-listings.mdx","locale":"ru"},"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=\"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\">\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 — просмотр актуальных листингов маркетплейса CS2 - CSBoard API\">\u003cmeta data-mint-head property=\"og:description\" content=\"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"CSBoard API\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api.csboard.com/ru/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=%D0%A0%D1%8B%D0%BD%D0%BE%D1%87%D0%BD%D1%8B%D0%B5+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5\u0026amp;title=GET+%2Fv1%2Flistings+%E2%80%94+%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80+%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85+%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2+%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%82%D0%BF%D0%BB%D0%B5%D0%B9%D1%81%D0%B0+CS2\u0026amp;description=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D0%B5+%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5+%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8+%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B8+CS2+%D1%81+float%2C+paint+seed%2C+%D0%BD%D0%B0%D0%BA%D0%BB%D0%B5%D0%B9%D0%BA%D0%B0%D0%BC%D0%B8+%D0%B8+%D1%86%D0%B5%D0%BD%D0%BE%D0%B9+%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%D0%B8+%D0%B2+USD.+%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%83%D0%B9%D1%82%D0%B5+%D0%BF%D0%BE+%D0%B8%D0%B7%D0%BD%D0%BE%D1%81%D1%83%2C+%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8%2C+%D1%80%D0%B5%D0%B4%D0%BA%D0%BE%D1%81%D1%82%D0%B8%2C+%D0%B4%D0%B8%D0%B0%D0%BF%D0%B0%D0%B7%D0%BE\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=87a6658cdde56e61c86507ce210273b770a641ebc0f0b06143cae124954d5529\">\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 — просмотр актуальных листингов маркетплейса CS2 - CSBoard API\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://csboard.mintlify.site/_mintlify/api/og/v2?division=%D0%A0%D1%8B%D0%BD%D0%BE%D1%87%D0%BD%D1%8B%D0%B5+%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5\u0026amp;title=GET+%2Fv1%2Flistings+%E2%80%94+%D0%BF%D1%80%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80+%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D1%85+%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%BE%D0%B2+%D0%BC%D0%B0%D1%80%D0%BA%D0%B5%D1%82%D0%BF%D0%BB%D0%B5%D0%B9%D1%81%D0%B0+CS2\u0026amp;description=%D0%9F%D0%BE%D0%BB%D1%83%D1%87%D0%B8%D1%82%D0%B5+%D0%B0%D0%BA%D1%82%D1%83%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5+%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BD%D1%8B%D0%B5+%D0%B4%D0%BB%D1%8F+%D0%BF%D0%BE%D0%BA%D1%83%D0%BF%D0%BA%D0%B8+%D0%BB%D0%B8%D1%81%D1%82%D0%B8%D0%BD%D0%B3%D0%B8+CS2+%D1%81+float%2C+paint+seed%2C+%D0%BD%D0%B0%D0%BA%D0%BB%D0%B5%D0%B9%D0%BA%D0%B0%D0%BC%D0%B8+%D0%B8+%D1%86%D0%B5%D0%BD%D0%BE%D0%B9+%D0%BF%D1%80%D0%BE%D0%B4%D0%B0%D0%B6%D0%B8+%D0%B2+USD.+%D0%A4%D0%B8%D0%BB%D1%8C%D1%82%D1%80%D1%83%D0%B9%D1%82%D0%B5+%D0%BF%D0%BE+%D0%B8%D0%B7%D0%BD%D0%BE%D1%81%D1%83%2C+%D0%BA%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8%D0%B8%2C+%D1%80%D0%B5%D0%B4%D0%BA%D0%BE%D1%81%D1%82%D0%B8%2C+%D0%B4%D0%B8%D0%B0%D0%BF%D0%B0%D0%B7%D0%BE\u0026amp;theme=932e691933583ab42431355a\u0026amp;signature=87a6658cdde56e61c86507ce210273b770a641ebc0f0b06143cae124954d5529\">\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/ru/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=\"/ru/api-reference/get-listings.md\">\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=\"en\" href=\"https://api.csboard.com/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/ru/api-reference/get-listings#webpage\",\"url\":\"https://api.csboard.com/ru/api-reference/get-listings\",\"name\":\"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2\",\"description\":\"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\",\"dateModified\":\"2026-10-02T12:04:30.008Z\",\"isPartOf\":{\"@id\":\"https://api.csboard.com#website\"},\"breadcrumb\":{\"@id\":\"https://api.csboard.com/ru/api-reference/get-listings#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api.csboard.com/ru/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 — просмотр актуальных листингов маркетплейса CS2\",\"item\":\"https://api.csboard.com/ru/api-reference/get-listings\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api.csboard.com/ru/api-reference/get-listings#apireference\",\"headline\":\"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2\",\"name\":\"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2\",\"description\":\"Получите актуальные доступные для покупки листинги CS2 с float, paint seed, наклейками и ценой продажи в USD. Фильтруйте по износу, категории, редкости, диапазону float и другим параметрам.\",\"url\":\"https://api.csboard.com/ru/api-reference/get-listings\",\"mainEntityOfPage\":{\"@id\":\"https://api.csboard.com/ru/api-reference/get-listings#webpage\"},\"dateModified\":\"2026-10-02T12:04:30.008Z\",\"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":"/ru/api-reference/get-listings.md","siteName":"CSBoard API","nav":{"global":null,"languages":[{"language":"en","pages":[{"title":"en","href":"/api-reference/get-listings"}]},{"language":"ru","tabs":[{"tab":"Руководства","pages":[{"title":"Руководства","href":"/ru/introduction"}]},{"tab":"Справочник API","groups":[{"group":"Рыночные данные","pages":[{"title":"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2","sidebarTitle":"GET /listings","openapi":"GET /listings","href":"/ru/api-reference/get-listings"},{"title":"GET /v1/listings/stream — живая лента появления и продажи листингов","sidebarTitle":"GET /listings/stream","description":"Подписка на листинги CS2 в момент их появления и в момент продажи, через Server-Sent Events. Заменяет опрос и сообщает, когда предметы исчезают.","openapi":"GET /listings/stream","href":"/ru/api-reference/get-listings-stream"},{"title":"GET /v1/listings/availability — пакетная проверка доступности","sidebarTitle":"GET /listings/availability","openapi":"GET /listings/availability","href":"/ru/api-reference/get-listings-availability"},{"title":"GET /v1/games — игры, которые можно передать в appId","sidebarTitle":"GET /games","openapi":"GET /games","href":"/ru/api-reference/get-games"},{"title":"GET /v1/prices — список minAsk цен CS2 по группам товаров","sidebarTitle":"GET /prices","openapi":"GET /prices","href":"/ru/api-reference/get-prices"},{"title":"GET /v1/prices/snapshot.ndjson.gz — полный снимок цен","sidebarTitle":"GET /prices/snapshot","openapi":"GET /prices/snapshot.ndjson.gz","href":"/ru/api-reference/get-prices-snapshot"},{"title":"GET /v1/public/prices — фид минимальных цен без ключа для CS2, Dota 2 и Rust","sidebarTitle":"GET /public/prices","openapi":"GET /public/prices","href":"/ru/api-reference/get-public-prices"},{"title":"GET /v1/currency — курсы валют для конвертации USD","sidebarTitle":"GET /currency","openapi":"GET /currency","href":"/ru/api-reference/get-currency"}]},{"group":"Торговля","pages":[{"title":"POST /v1/orders — покупка листингов CS2 со своего баланса","sidebarTitle":"POST /orders","openapi":"POST /orders","href":"/ru/api-reference/post-orders"},{"title":"POST /v1/market/buy — покупка и доставка на Steam trade URL","sidebarTitle":"POST /market/buy","openapi":"POST /market/buy","href":"/ru/api-reference/post-market-buy"},{"title":"POST /v1/orders/:id/claim — забрать заказ из холда","sidebarTitle":"POST /orders/:id/claim","openapi":"POST /orders/{id}/claim","href":"/ru/api-reference/post-orders-claim"},{"title":"POST /v1/orders/:id/cancel — отменить недоставленный заказ","sidebarTitle":"POST /orders/:id/cancel","openapi":"POST /orders/{id}/cancel","href":"/ru/api-reference/post-orders-cancel"},{"title":"GET /v1/orders — история ваших покупок","sidebarTitle":"GET /orders","openapi":"GET /orders","href":"/ru/api-reference/get-orders"},{"title":"GET /v1/orders/info — пакетный поиск заказов","sidebarTitle":"GET /orders/info","openapi":"GET /orders/info","href":"/ru/api-reference/get-orders-info"},{"title":"GET /v1/orders/{id} — получение одного заказа","sidebarTitle":"GET /orders/{id}","openapi":"GET /orders/{id}","href":"/ru/api-reference/get-order"}]},{"group":"P2P","pages":[{"title":"GET /v1/p2p/inventory — ваш инвентарь CS2, готовый к выставлению","sidebarTitle":"GET /p2p/inventory","openapi":"GET /p2p/inventory","href":"/ru/api-reference/get-p2p-inventory"},{"title":"POST /v1/p2p/listings — выставление ваших предметов CS2 на P2P-маркет","sidebarTitle":"POST /p2p/listings","openapi":"POST /p2p/listings","href":"/ru/api-reference/post-p2p-listings"},{"title":"GET /v1/p2p/listings — ваши P2P-листинги","sidebarTitle":"GET /p2p/listings","openapi":"GET /p2p/listings","href":"/ru/api-reference/get-p2p-listings"},{"title":"PATCH /v1/p2p/listings/{id} — изменение цены листинга","sidebarTitle":"PATCH /p2p/listings/{id}","openapi":"PATCH /p2p/listings/{id}","href":"/ru/api-reference/patch-p2p-listing"},{"title":"DELETE /v1/p2p/listings/{id} — снятие P2P-листинга","sidebarTitle":"DELETE /p2p/listings/{id}","openapi":"DELETE /p2p/listings/{id}","href":"/ru/api-reference/delete-p2p-listing"}]},{"group":"Аккаунт","pages":[{"title":"GET /v1/balance — баланс аккаунта и статус торговли","sidebarTitle":"GET /balance","openapi":"GET /balance","href":"/ru/api-reference/get-balance"}]},{"group":"Статус","pages":[{"title":"GET /v1/health — проверка доступности и свежести API CSBoard","sidebarTitle":"GET /health","openapi":"GET /health","href":"/ru/api-reference/get-health"}]}]},{"tab":"Журнал изменений","pages":[{"title":"Журнал изменений","href":"/ru/changelog/overview"}]}]},{"language":"zh-Hans","pages":[{"title":"zh-Hans","href":"/zh-Hans/api-reference/get-listings"}]}]},"basePath":"","title":"GET /v1/listings — просмотр актуальных листингов маркетплейса CS2 - CSBoard API","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["c2aa737661","b0f84f53ff","a9bb46feb3","2b790eda92"],"chunks":["OpenApiReferenceProvider-NXj-Rqjv.js","utils-m0thOP-_.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-D13EKcfm.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema--XTdfsEb.js","snippetPresets-D3s4lmAH.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","conditional-requirements-CFM0id0Q.js","Page-DSpdRuhM.js","ApiExamples-ChURybxL.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-DL8CiXq2.js","shallow-DI2-YB2E.js","getApiPlaygroundDisplay-DxbW7b_y.js","CodeSnippet-CiNYS0pP.js","CodeSnippets-BT87bThu.js","getPastedJson-F_g_IrFQ.js","icon-CCIG5BAs.js","MethodPill-DY3E0jwx.js","DuplicateIcon-BN88xnEg.js","createIcon-VCCc5HO5.js","DynamicMarkdown-CaSwclgK.js","SectionHeading-DXV8nWhc.js","axios-vUo_bRtp.js","Markdown-CV32Re6G.js","clsx-5ydLOnhV.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-pFDdfjRe.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-BUGO5bPJ.js"]}