Перейти к основному содержимому

Каталог стримов — GET /v3/streams

Получите полный индекс трансляций с привязкой к товарам, стримерам и категориям.

Аутентификация

В production запросы выполняются с applicationId в query параметре. Bearer токены доступны в закрытой бете. Подробности — в гайде по аутентификации.

Базовый запрос

GET https://app.shopstory.live/v3/streams?applicationId={your-app-id}&limit=20

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

ПараметрОбязательноОписание
applicationIdИдентификатор приложения. Обязателен до публичного запуска токенов
limit⛔️Количество элементов на странице (≤ 100, по умолчанию 20)
offset⛔️Смещение для пагинации
feedProductId⛔️Фильтр по ID товара из фида
categoryId⛔️Фильтр по категории
status⛔️Статус трансляции: planned, online, finished
Подготовка к токенам

Когда Bearer токены станут доступны, параметр applicationId можно будет убрать, добавив заголовок Authorization: Bearer .... Держите эту логику в одном месте (SDK/клиент), чтобы миграция была безболезненной.

Структура ответа

{
"status": 200,
"serverTime": "2025-09-03T20:46:14.043Z",
"body": {
"plannedStreams": [],
"availableStreams": [],
"products": [],
"streamers": [],
"categories": [],
"total": 0
}
}
  • plannedStreams[] — будущие трансляции.
  • availableStreams[] — live и завершённые трансляции. Онлайн всегда первыми.
  • products[] — справочник товаров. Поля с идентификаторами возвращаются строками.
  • streamers[] — информация о ведущих, если привязаны к стриму.
  • categories[] — справочник категорий.
  • total — количество записей с учётом фильтров.

Пример элемента availableStreams

{
"id": "2017",
"application": "authentica",
"name": "How to: как сделать укладку с трендовым плетением?",
"description": "",
"streamer": "4",
"status": "finished",
"plannedDate": "2023-09-27T12:00:00Z",
"startDate": "2023-09-26T12:00:29Z",
"endDate": "2023-09-26T12:58:59Z",
"previewImages": [
{ "src": "https://cdn.shopstory.live/preview/2017-main.jpg", "type": "main" }
],
"products": ["211219"],
"categories": ["care"],
"productFeedIds": [183966]
}

Советы по реализации UI

  • Связывайте товары через products[]: это уменьшит количество запросов.
  • Онлайн-трансляции находятся сверху — UI можно строить без дополнительной сортировки.
  • Для ленивой загрузки используйте параметры limit и offset.

Ошибки

Код statusbody.error.codeКогда возникает
400InvalidApplicationapplicationId отсутствует или неверный
422InvalidFilterНекорректные фильтры или их комбинация
429RateLimitExceededПревышен лимит запросов (см. Rate Limits)
Защищаем applicationId

Не передавайте идентификатор напрямую из браузера. Настройте backend-прокси, чтобы перехватывать запросы, проверять заголовки и применять собственное rate limiting. В гайде по аутентификации есть пример реализации.

Следующее