Каталог стримов — 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.
Ошибки
Код status | body.error.code | Когда возникает |
|---|---|---|
400 | InvalidApplication | applicationId отсутствует или неверный |
422 | InvalidFilter | Некорректные фильтры или их комбинация |
429 | RateLimitExceeded | Превышен лимит запросов (см. Rate Limits) |
Защищаем
applicationIdНе передавайте идентификатор напрямую из браузера. Настройте backend-прокси, чтобы перехватывать запросы, проверять заголовки и применять собственное rate limiting. В гайде по аутентификации есть пример реализации.
Следующее
- Встраиваем мини-плеер: мини-плеер и deep link
- Настраиваем кеширование: операционный гайд