Skip to main content
GET
Live buyable listings
Эндпоинт listings возвращает все товары, доступные для покупки на маркетплейсе CSBoard прямо сейчас. Каждая запись содержит полные данные для оценки — значение float, paint seed, наклеенные стикеры с их износом — вместе с авторитетной ценой продажи в USD. Результаты разбиваются на страницы при помощи keyset-курсора, что позволяет надёжно пройти весь каталог даже по мере появления новых листингов. Требуется аутентификация. Отправьте ключ как Authorization: Bearer csb_pub_....

Query-параметры

Нечёткое совпадение по 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.
string
Фильтр по уровню редкости, например Classified, Covert, Extraordinary.
number
Минимальная цена продажи в USD (включительно).
number
Максимальная цена продажи в USD (включительно).
number
Минимальное значение float (включительно). Принимает значения от 0.0 до 1.0.
number
Максимальное значение float (включительно). Принимает значения от 0.0 до 1.0.
string
Фильтр StatTrak™. only возвращает только предметы StatTrak™; exclude исключает их из результатов.
string
Фильтр Souvenir. only возвращает только сувенирные предметы; exclude исключает их из результатов.
string (ISO 8601)
Возвращать только листинги, попавшие в каталог после этой временной метки — параметр для чтения дельты. В паре с sort=newest обычный ответ — пустая страница, и именно это делает частый опрос дешёвым вместо полного перечитывания на каждом тике.Перекрывайте свою вотермарку примерно на 60 секунд и дедуплицируйте по id. Отправляйте max(listed_at) - 60s, а не голый максимум. Временные метки берутся из момента НАЧАЛА транзакции БД, опубликовавшей листинг, поэтому большая транзакция может закоммитить строки со штампом раньше, чем строки меньшей и более поздней транзакции, уже закоммиченные. Вотермарка, сдвинутая ровно на максимум, перешагнёт такие листинги навсегда.
string
по умолчанию:"id"
Порядок сортировки. Одно из: id (стабильный по умолчанию), newest, price_asc, price_desc. newest сортирует по listed_at, поэтому перевыставленные предметы всплывают наравне с действительно новыми.
string
Keyset-курсор пагинации. Передайте значение next_cursor из предыдущего ответа, чтобы получить следующую страницу.
integer
по умолчанию:"50"
Количество результатов на странице. Минимум 1, максимум 200.

Поля ответа

Listing[]
обязательно
Массив объектов листингов для этой страницы.
string | null
обязательно
Непрозрачный keyset-курсор. Передайте его как query-параметр cursor, чтобы получить следующую страницу. null на последней странице.

Пагинация

Этот эндпоинт использует keyset-пагинацию. Чтобы пройти все страницы:
  1. Выполните первый запрос (без cursor).
  2. Если next_cursor не равен null, повторите запрос с cursor=<next_cursor>.
  3. Остановитесь, когда next_cursor станет null — вы дошли до последней страницы.
Keyset-пагинация стабильна: новые листинги, появляющиеся во время итерации, не приводят к дубликатам или пропущенным строкам.

Пример запроса

Пример ответа

Коды ошибок

Значение 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.

Параметры запроса

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.

Доступные опции:
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.

max_float
number

Maximum float value.

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.

Доступные опции:
only,
exclude
souvenir
enum<string>

Filter Souvenir items.

Доступные опции:
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.

sort
enum<string>
по умолчанию:id

Sort order. Default id. newest orders by listed_at (when the item entered the catalogue), so re-listings surface too.

Доступные опции:
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[]
обязательно
next_cursor
string | null
обязательно

Pass back as cursor to fetch the next page. Null on the last page.