Справочник за API

Всеки endpoint с формата на заявката и отговора му. Всички маршрути са относителни спрямо https://sketchie.ai/api.

Конвенции

Всеки endpoint /v1/* изисква хедъра Authorization: Bearer sk_.... Грешките се връщат като JSON с флаг error и message:

Отговор при грешка
{
  "error": true,
  "message": "length must be a positive multiple of 30 seconds, at most 360"
}

Endpoint-ите за генериране са ограничени до 20 заявки в минута. Всички други endpoint-и споделят лимит от 200 в минута.

Създаване на обяснение

POST https://sketchie.ai/api/v1/explainer

Стартира генериране и връща 202 Accepted със записа в опашката. Запитвайте вземане на обяснение, докато е ready.

Тяло на заявката
{
  "input": "Explain how DNS resolves a domain name",
  "length": "0:30",
  "aspect": "16:9",
  "voice": "sketchie:sulafat",
  "language": "en"
}
ПолеТипБележки
input string Какво да се обясни. Кратка подкана или пълен текст на документ. Задължително, освен ако не присъства source или sceneGraph. Псевдоним: prompt.
length string or number Целева дължина като "M:SS" ("0:30", "1:00") или секунди. Положително кратно на 30, до 360. Пропуснете за автоматична дължина. Псевдоним: lengthSeconds (число).
voice string Незадължително. Референция за глас. По подразбиране стандартният разказвач (Nora). Вижте Гласове.
language string Незадължително. Поддържан код на език (по подразбиране en). Вижте Езици.
aspect string Незадължително. 16:9 (по подразбиране), 9:16, или 1:1.
source string Незадължително. Документ, статия или транскрипция за превръщане в обяснение. Когато присъства, input става незадължителна насока.
preset string Незадължителен стил на рисуване: marker (по подразбиране), chalkboard, pencil, blueprint, crayon, clean.
fillMode string Незадължителна техника на запълване при разкриване: A, B, C (по подразбиране), или D.
sceneGraph object Незадължително. Предварително написан scene graph. Работникът пропуска генерирането на графа и го рендира директно, но този endpoint все пак създава ново обяснение и изразходва нормалната безплатна квота или квотата на платения план на извикващия. За да редактирате съществуващо обяснение, използвайте редактиране на обяснение.

Връща записа на обяснението: id, status, prompt, lengthSeconds, voice, language, aspect, videoUrl (null до готовност) и sceneGraph (null до генериране). 400 се връща за празен input без source, зле форматиран length, или невалиден aspect, preset, fillMode или language.

Вземане на обяснение

GET https://sketchie.ai/api/v1/explainer/:id

Връща пълния запис: текущ status, videoUrl след ready, редактируемия sceneGraph, историята на версиите (versions) и сцените chunks на главната версия. Липсващо id връща 404.

Списък на обясненията

GET https://sketchie.ai/api/v1/explainer?limit=50

Изброява обясненията на извикващия ключ, най-новите първи. Ограничено до собственика на ключа. limit се ограничава от 1 до 100 (по подразбиране 50). Връща леки резюмета (без scene graph или версии). За пълния запис използвайте вземане на обяснение.

Редактиране на обяснение

POST https://sketchie.ai/api/v1/explainer/:id/edit

Клинът на редактируемостта. Превърнете инструкция на прост език в целенасочено пре-рендиране. Само засегнатите сцени се рендират отново, създавайки нова версия. Връща 202 с версията в опашката. Запитвайте вземане на обяснение, докато главната версия е ready. Това се добавя към съществуващото видео, така че не изразходва друг слот за създаване на безплатно видео. Първото пре-рендиране на всяко видео е безплатно. По-късните използват минути от платения план, а безплатните акаунти биват помолени да започнат план. Обяснението вече трябва да е ready (иначе 409).

Тяло на заявката
{ "instruction": "Make the title scene shorter and warmer" }

Връщане към версия

POST https://sketchie.ai/api/v1/explainer/:id/revert

Пренасочва главата към по-ранна готова версия и огледава нейния граф и видео върху записа. Целта трябва да е ready версия с видео (иначе 409).

Тяло на заявката
{ "versionId": "..." }

Поток на статус на живо

GET https://sketchie.ai/api/v1/explainer/events

Поток Server-Sent Events (text/event-stream). Отворете една връзка и всеки преход на статус на което и да е от вашите обяснения пристига като кадър event: status, така че можете да актуализирате състояние "видео готово" в момента, в който работникът приключи, вместо да запитвате. Потокът е ограничен до собственика на вашия ключ.

Гласове

GET https://sketchie.ai/api/v1/voices

Каталогът с гласове за разказ. Незадължителният ?language=<code> филтрира по гласове, родни за този език. Връща voices (всеки с удобно name, id за подаване като voice, language, isDefault и възпроизводим preview_url) плюс глобалния default. Вижте Гласове.

Езици

GET https://sketchie.ai/api/v1/languages

Поддържаните езици за разказ, като { code, label, native }. Всеки code е валиден language при създаване. Вижте Езици.

Състояние на акаунта

GET https://sketchie.ai/api/v1/account/state

Връща videosGenerated (за целия живот), image на акаунта и isAdmin. Изисква удостоверяване.

Статус на таксуване

GET https://sketchie.ai/api/v1/billing/status

Изисква удостоверяване и връща 200 както за безплатни, така и за платени акаунти. Безплатен акаунт връща plan: "free" с videoAllowance, videosUsed и videosRemaining. Платен акаунт връща също planLabel, billingInterval, trialStatus, quotaMinutes, minutesUsedThisPeriod, minutesRemaining и bonusMinutes.

Конфигурация по време на изпълнение и здраве

GET https://sketchie.ai/api/config

Публично. Връща { "authEnforced": true }. Проверка за живост има на GET /health.