spirkzspirkz

Интеграции

Публикуй в spirkz из любого планировщика

Integrations API позволяет сторонним планировщикам — Zapier, Metricool, Buffer и подобным — отправлять видео в spirkz от имени автора. Видео, отправленное этим способом, проходит те же правила и ту же очередь проверки, что и загруженное в приложении.

Базовый URL
https://server.spirkz.com/api/v1/integrations

Как это работает

  1. 1

    Автор создаёт API-ключ в приложении spirkz и вставляет его в планировщик.

  2. 2

    Планировщик вызывает POST /videos с публичным videoUrl и данными. spirkz сразу отвечает 202.

  3. 3

    spirkz скачивает файл в фоне, сохраняет его и создаёт для автора заявку в статусе pending.

  4. 4

    Команда spirkz проверяет её. Если видео одобрено и scheduledAt ещё впереди, оно выходит в это время; иначе — сразу.

  5. 5

    Планировщик опрашивает GET /videos/:id, чтобы следить за ходом.

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

Передавай ключ автора в каждом запросе. Отсутствующий, неизвестный или отозванный ключ получит 401. Ключи действуют от имени автора, который их выпустил.

Authorization: Bearer spk_...

Лимиты запросов на ключ

600

запросов в час, всего

30

вызовов POST /videos в час

Эндпоинты

GET/me

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

{ "user": { "id", "name", "username" }, "keyName" }
GET/categoriesGET/languages

Данные для твоих списков выбора: допустимые categoryIds (активные категории; ?locale= для названий) и значения languageSlug.

POST/videos

Отправить видео. Тело запроса — JSON:

ПолеПравила
videoUrlОбязательноhttps, общедоступный, ≤ 2000 симв. mp4 / mov / webm / avi, ≤ 500 МБ. Приватные и внутренние адреса отклоняются.
sourceОбязательноКто отправляет, например "zapier", "metricool". ≤ 50 симв., хранится в нижнем регистре.
nameОбязательно≤ 150 симв.
categoryIdsОбязательно1–5 id из GET /categories.
descriptionНеобязательно≤ 500 симв.
languageSlugНеобязательноИз GET /languages. По умолчанию en.
tagНеобязательноМассив строк, до 10 тегов, каждый ≤ 40 симв.
durationНеобязательноСекунды, неотрицательное целое число.
scheduledAtНеобязательноISO 8601. Не раньше чем через 10 минут и не позже чем через 60 дней. Не указано или null = выход сразу после одобрения.
  • 202 — data.video со status: "received".
  • 400 / 404 — какое-то поле недопустимо. Ничего не сохраняется.
  • 409 — у автора уже есть 10 видео, ожидающих отправки или проверки (включая те, что ещё скачиваются).
GET/videosGET/videos/:id

Видео автора, загруженные через интеграции, сначала новые (?limit, ?offset), или одно по id.

{
  "id": "...",
  "source": "zapier",
  "video_url": "https://...",
  "status": "submitted",
  "error": null,
  "created_at": "...",
  "updated_at": "...",
  "userVideo": {
    "id": "...",
    "name": "...",
    "status": "pending",
    "scheduled_at": "2026-10-10T09:00:00.000Z",
    "decline_reason": null,
    "publishedVideoId": null
  }
}

Отслеживание видео

Скачивание — status

receivedprocessingsubmittedилиfailed

При failed причина указана в error.

Проверка — userVideo.status

pendingscheduledapprovedилиdeclined

publishedVideoId появляется, когда видео опубликовано. У отклонённого видео есть decline_reason.

Пример

curl -X POST https://server.spirkz.com/api/v1/integrations/videos \
  -H "Authorization: Bearer spk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "videoUrl": "https://example.com/clip.mp4",
    "source": "zapier",
    "name": "Morning routine",
    "categoryIds": ["<category id>"],
    "description": "Day 1",
    "scheduledAt": "2026-10-10T09:00:00Z"
  }'

Нативная поддержка

Любой планировщик может интегрироваться через эндпоинты выше. Эти инструменты уже поддерживают spirkz из коробки:

Делаешь интеграцию?

Расскажи, что ты создаёшь, и мы поможем довести это до релиза.

Написать нам