GET /v1/listings/stream — живая лента появления и продажи листингов
Подписка на листинги CS2 в момент их появления и в момент продажи, через Server-Sent Events. Заменяет опрос и сообщает, когда предметы исчезают.
Authorization: Bearer csb_pub_....
Query-параметры
Фильтры применяются на нашей стороне, до отправки вам. Они нужны для экономии вашего трафика — одно соединение уже несёт весь каталог, поэтому несколько подключений под разные сегменты не нужны.Rifle, Knife, Gloves.Classified, Covert.Factory New, Minimal Wear, Field-Tested, Well-Worn, Battle-Scarred.market_hash_name (регистр не учитывается) — поток по одному конкретному предмету.only или exclude.only или exclude.Last-Event-ID — заголовок является стандартным механизмом и предпочтителен.События
Listing, который возвращает GET /v1/listings, включая listed_at.Срабатывает как для действительно нового инвентаря, так и для перевыставлений — предметов, вернувшихся из отменённых заказов, истёкших трейд-офферов или снятых холдов. Перевыставленный предмет для вас новый, даже если существовал раньше.{ "id": "..." }.Именно на это событие нужно реагировать. Убирать предметы в момент продажи — это разница между тем, что ваши запросы на покупку проходят, и тем, что они узнают о пропаже предмета постфактум. Эту половину картины опрос не даёт ни на какой частоте.Last-Event-ID старше сохранённой истории, поэтому повтор был бы неполным. Полезная нагрузка — { "reason": "last_event_id_expired", "detail": "..." }.Перечитайте GET /v1/listings?sort=newest, чтобы восстановить своё состояние, затем переподключитесь без Last-Event-ID. Мы присылаем это событие вместо того, чтобы молча отдать вам частичный повтор, который вы приняли бы за полный.Переподключение без пропусков
У каждого события естьid. Отправьте последний обработанный id обратно в заголовке Last-Event-ID при переподключении — и получите ровно то, что пропустили, включая наши деплои, которые по своей природе рвут открытые соединения.
Каждые 25 секунд приходит комментарий : heartbeat. Более долгую тишину считайте мёртвым соединением и переподключайтесь; браузерный EventSource делает это сам и сам же отправляет Last-Event-ID.
Лимиты
Три одновременных потока на один API-ключ. Само соединение не ограничено по частоте — события идут с той скоростью, с какой меняется каталог.Пример запроса
Пример потока
Пример клиента
EventSource не умеет выставлять заголовок Authorization — в серверной среде используйте SSE-клиент, который это умеет (или передайте ключ так, как позволяет ваш HTTP-клиент). Сниппет выше показывает обработку событий, а не аутентификацию.
Коды ошибок
Авторизации
Send your key as a Bearer token on every request: Authorization: Bearer csb_pub_.... Generate keys in your CSBoard profile.
Параметры запроса
Only stream listings at or above this USD price.
Only stream listings at or below this USD price.
e.g. Rifle, Knife, Gloves.
e.g. Classified, Covert.
Exact wear name.
Factory New, Minimal Wear, Field-Tested, Well-Worn, Battle-Scarred Exact market_hash_name (case-insensitive).
Filter StatTrak™ items.
only, exclude Filter Souvenir items.
only, exclude Narrow new events to one delivery bucket (instant or hold). gone events are never filtered — a missed removal is the ghost listing this feed exists to prevent.
instant, up_to_12h, hold Resume after this event id. Use only if your client cannot send the Last-Event-ID header.
Narrow new events to listings whose refund_percent is at least this (0-100). gone events are never filtered.
0 <= x <= 100Ответ
An open SSE stream. Stays open until you disconnect.
The response is of type string.