ИдеиHooksReelsСценарииТрендыГолос брендаCTAСторителлингCaptionsКаруселиHashtagsТон
✦Posti◌Brand⌁Ideas⬡Reels◐Social✺AI
Postify
APIДокументы

API

GETПроверка backend connectPOSTГенерация видеоPOSTГенерация постаGETСтатус видео-задачиGETКонтекст бренда для AIAIШаблон для нейросети

Endpoint

Генерация видео

POST
/api/video/jobs

Создаёт задачу генерации видео. UI дальше показывает jobId и опрашивает статус.

Проверка connect

Кнопка отправляет тестовый запрос и показывает реальный ответ. Если backend ещё не готов — можно вывести рыбный пример.

Тестовый request body
{
  "brandId": "brand_123",
  "postId": "post_456",
  "mode": "regular"
}

Что сайт отправляет

  • brandId
  • postId или script
  • mode
  • optional brief/referenceVideoId

Frontend логика

  • Создать job
  • Показать прогресс
  • Опрашивать статус
  • Подставить videoUrl в пост

Backend логика

  • Проверить готовность бренда
  • Создать video job
  • Поставить задачу в очередь AI
  • Вернуть jobId

Input

  • brandId
  • postId или script
  • mode: avatar | regular
  • Bearer accessToken

Success

  • jobId
  • status: queued | running
  • estimatedSeconds

Errors

  • brand_not_ready
  • avatar_training
  • quota_exceeded
  • provider_unavailable

Пример curl

curl -X POST http://localhost:3000/api/video/jobs \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"brandId":"brand_123","postId":"post_456","mode":"regular"}'

Пример fetch

const res = await fetch("/api/video/jobs", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${accessToken}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ brandId: "brand_123", postId: "post_456", mode: "regular" }),
});
const data = await res.json();
console.log(res.ok, data.jobId ?? data);