Документация API

Platform API: правила интеграции

Короткая инструкция по интеграции: как передавать API-ключ, выбрать структуру ответа, выполнить первый запрос, обработать ошибки и проверить тестовые данные.

С чего начать

Что фиксирует эта страница

Здесь собраны правила, которые не зависят от конкретного API-метода: авторизация, версия ответа, обработка ошибок, повторы запросов, тестовый API и проверки перед запуском.

Параметры, схемы и примеры конкретного API-метода смотрите в API-справочнике. Страницы платформ нужны для сравнения покрытия и групп методов.

Используйте эту страницу как общий интеграционный минимум для команды. Она дополняет API-справочник, а не дублирует его.
Ключ в каждом запросе

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

Передавайте API-ключ в заголовке `X-API-Key` во всех запросах к Platform API.

Ключ не наследуется из сессии кабинета. Backend-сервисы, воркеры и фоновые задачи должны добавлять этот заголовок явно.

  • Храните ключ в secret storage и ротируйте его при смене доступа или подозрении на утечку.
  • Не добавляйте ключ в браузерный код, публичные репозитории, клиентские бандлы и логи.
  • Ограничивайте доступ к ключу по окружениям и сервисам, где это возможно.
Версия ответа

Выберите структуру ответа

V1 и V2 открывают один каталог API-методов, но возвращают разные структуры данных. Выберите версию до разработки клиента и закрепите ее в конфигурации интеграции.

Не смешивайте V1 и V2 в одном потоке обработки. Это усложняет маппинг, кеширование, тесты и поддержку.

V1
V1 - исходный ответ платформы

Сохраняет структуру ответа исходной платформы с минимальными преобразованиями со стороны Scrape Storm.

Когда использовать

Миграции, обратная совместимость и клиенты, которые уже завязаны на поля исходной платформы.

По умолчанию выбирайте V2. V1 оставляйте только для совместимости или миграции существующих клиентов.
Проверка транспорта

Сделайте первый рабочий запрос

После выбора версии проверьте интеграцию на одном рабочем API-методе: базовый URL, заголовки, query-параметры, таймаут и обработку ошибки.

HTTP-метод GET
Эндпоинт /api/v2/youtube.com/profile/about-by-user-identifier
Пример query-параметра user_identifier=mkbhd
Заголовок X-API-Key

В примере используется YouTube API-метод `profile/about-by-user-identifier`. Замените `user_identifier` на тестовый идентификатор из своего сценария.

Один успешный ответ подтверждает только транспорт и верхнюю структуру ответа. Перед запуском проверьте все используемые API-методы, лимиты, стоимость и обработку ошибок.
Envelope ответа

Проверьте форму ответа

Публичные platform API-методы и в V1, и в V2 используют один и тот же внешний envelope: `success`, `status` и `data`. Для списков сверху может добавляться `pagination`.

Выбор версии меняет схему внутри `data`, а не транспортную обертку. Точные поля конкретного API-метода смотрите в API-справочнике выбранной версии.

Сценарий ответа Верхний уровень Что читать первым
Успешный ответ success, status, data Полезная нагрузка метода лежит в `data`.
Успешный ответ со списком success, status, pagination, data `pagination` остается сверху, а данные метода все равно лежат в `data`.
Ответ с ошибкой success, status, error, meta Ветвление клиента делайте по HTTP status и `error.code`.
Не пытайтесь определять V1 или V2 по envelope. Зафиксируйте версию в URL и конфигурации клиента, а схему `data` берите из API-справочника этой версии.
Ошибки и повторы

Обрабатывайте ошибки по коду, а не по тексту

Ошибки возвращаются в едином envelope. Клиентская логика должна опираться на HTTP status и `error.code`. Поле `message` подходит для отображения или логов, но не как условие в коде.

  • `401`, `402` и `422` не повторяйте без изменения причины ошибки.
  • `429 RATE_LIMIT_EXCEEDED` повторяйте только после интервала из `Retry-After` или `error.retry_after_seconds`.
  • `500` и `503` повторяйте с ограниченным backoff и верхним лимитом попыток.
HTTP status Error code Действие клиента
401 Неавторизованный запрос UNAUTHORIZED Проверьте API-ключ и окружение. Не повторяйте запрос в цикле с тем же ключом.
422 Ошибка валидации VALIDATION_FAILED Исправьте параметры запроса. Тот же ввод вернет ту же ошибку.
402 Недостаточно кредитов INSUFFICIENT_CREDITS Остановите сценарий до пополнения баланса или изменения лимитов аккаунта.
429 Превышен лимит параллельных соединений CONCURRENT_CONNECTIONS_EXCEEDED Снизьте параллелизм на один API-ключ или поставьте запросы в очередь.
429 Превышен рейт-лимит RATE_LIMIT_EXCEEDED Дождитесь опубликованного retry-интервала и синхронизируйте повторы между воркерами.
503 API-метод временно недоступен ENDPOINT_UNAVAILABLE Примените backoff на уровне API-метода, а не останавливайте всю интеграцию, если остальные методы работают.
500 Внутренняя ошибка сервера INTERNAL_SERVER_ERROR Повторите запрос с ограниченным backoff. После лимита попыток логируйте и передавайте ошибку в мониторинг.
Для `RATE_LIMIT_EXCEEDED` единственный источник времени следующей попытки - `Retry-After` или `error.retry_after_seconds`.
Тестовый API

Проверяйте форму ответа на тестовых данных

Тестовые API-методы возвращают статические JSON-примеры без обращения к исходным платформам. Используйте их для разработки клиента, интерфейса и тестов парсинга.

Тестовый API не подтверждает доступность метода, свежесть данных, лимиты, стоимость и поведение при запуске. Перед запуском повторите тот же сценарий на рабочем API.
  • Не используйте тестовые ответы для проверки актуальности данных.
  • Не переносите значения из тестовых ответов в рабочую логику.
  • Сравнивайте только envelope, имена полей и базовую структуру ответа.
Тестовый API https://www.scrapestorm.net/api-mock
Пример https://www.scrapestorm.net/api-mock/v2/youtube.com/profile/about-by-user-identifier
API-справочник
Перед запуском

Чеклист запуска

Проверьте эти пункты перед рабочим трафиком и перед увеличением параллельных воркеров.

  1. 01

    Закреплена версия ответа

    Новые клиенты используют V2. V1 разрешен только для совместимости или миграции существующей интеграции.

  2. 02

    API-ключ хранится как секрет

    Ключ находится в secret storage и не попадает во фронтенд, публичные репозитории, клиентские бандлы и логи.

  3. 03

    Ошибки обрабатываются по машинным кодам

    Ветки клиента строятся на HTTP status и `error.code`. Поле `message` не участвует в логике.

  4. 04

    Ретраи ограничены

    `RATE_LIMIT_EXCEEDED` ждет `Retry-After` или `error.retry_after_seconds`. `402` и `422` не повторяются без изменения причины. `500` и `503` имеют backoff и лимит попыток.

  5. 05

    Параллелизм контролируется на уровне API-ключа

    Очередь или rate limiter ограничивает одновременные запросы от воркеров, cron-задач и фоновых процессов.

  6. 06

    Тестовый и рабочий API проверены отдельно

    Тестовый API используется для формы ответа. Рабочий API подтверждает реальные параметры, лимиты, доступность метода и списание кредитов.

  7. 07

    Стоимость API-методов проверена

    Перед ростом трафика проверьте стоимость используемых API-методов.

Дальше

API-справочник и платформы

Откройте API-справочник нужной версии для параметров, схем и примеров конкретного API-метода. Для выбора платформы и группы методов используйте раздел Платформы.