Referência da API

Cada endpoint, com a forma do seu pedido e resposta. Todas as rotas são relativas a https://sketchie.ai/api.

Convenções

Cada endpoint /v1/* requer o cabeçalho Authorization: Bearer sk_.... Os erros voltam como JSON com uma flag error e uma message:

Resposta de erro
{
  "error": true,
  "message": "length must be a positive multiple of 30 seconds, at most 360"
}

Os endpoints de geração têm um limite de 20 pedidos por minuto. Todos os outros endpoints partilham um limite de 200 por minuto.

Criar um explicativo

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

Inicia uma geração e devolve 202 Accepted com o registo em fila. Faça polling de obter um explicativo até estar ready.

Corpo do pedido
{
  "input": "Explain how DNS resolves a domain name",
  "length": "0:30",
  "aspect": "16:9",
  "voice": "sketchie:sulafat",
  "language": "en"
}
CampoTipoNotas
input string O que explicar. Um prompt curto ou o texto completo de um documento. Obrigatório a menos que source ou sceneGraph esteja presente. Alias: prompt.
length string or number Duração-alvo como "M:SS" ("0:30", "1:00") ou segundos. Um múltiplo positivo de 30, até 360. Omita para duração automática. Alias: lengthSeconds (número).
voice string Opcional. Uma ref de voz. Predefinição é o narrador padrão (Nora). Consulte Vozes.
language string Opcional. Um código de idioma suportado (predefinição en). Consulte Idiomas.
aspect string Opcional. 16:9 (predefinição), 9:16, ou 1:1.
source string Opcional. Um documento, artigo ou transcrição para transformar num explicativo. Quando presente, input torna-se orientação opcional.
preset string Estilo de desenho opcional: marker (predefinição), chalkboard, pencil, blueprint, crayon, clean.
fillMode string Técnica de preenchimento de revelação opcional: A, B, C (predefinição), ou D.
sceneGraph object Opcional. Um scene graph pré-escrito. O worker salta a geração do grafo e renderiza-o diretamente, mas este endpoint continua a criar um novo explicativo e a consumir a franquia gratuita normal ou a quota do plano pago de quem chama. Para editar um explicativo existente, use editar um explicativo.

Devolve o registo do explicativo: id, status, prompt, lengthSeconds, voice, language, aspect, videoUrl (null até estar pronto) e sceneGraph (null até ser gerado). Um 400 volta para um input vazio sem source, um length malformado, ou um aspect, preset, fillMode ou language inválido.

Obter um explicativo

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

Devolve o registo completo: status atual, o videoUrl quando ready, o sceneGraph editável, o histórico de versões (versions) e os chunks de cena da versão principal. Um id em falta devolve 404.

Listar explicativos

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

Lista os explicativos da chave que chama, mais recentes primeiro. Restrito ao dono da chave. limit é limitado de 1 a 100 (predefinição 50). Devolve resumos leves (sem scene graph ou versões). Use obter um explicativo para o registo completo.

Editar um explicativo

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

A cunha da editabilidade. Transforme uma instrução em linguagem simples num re-render direcionado. Só as cenas afetadas são renderizadas de novo, produzindo uma nova versão. Devolve 202 com a versão em fila. Faça polling de obter um explicativo até a versão principal estar ready. Isto acrescenta ao vídeo existente, portanto não consome outra criação de vídeo gratuito. O primeiro re-render de cada vídeo é gratuito. Os seguintes usam minutos do plano pago, e às contas gratuitas é pedido que iniciem um plano. O explicativo já deve estar ready (senão 409).

Corpo do pedido
{ "instruction": "Make the title scene shorter and warmer" }

Reverter para uma versão

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

Reaponta a cabeça para uma versão pronta anterior e espelha o seu grafo e vídeo no registo. O alvo deve ser uma versão ready com um vídeo (senão 409).

Corpo do pedido
{ "versionId": "..." }

Stream de estado ao vivo

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

Um stream de Server-Sent Events (text/event-stream). Abra uma ligação e cada transição de estado em qualquer um dos seus explicativos chega como um frame event: status, para poder atualizar um estado "vídeo pronto" no instante em que o worker termina em vez de fazer polling. O stream é restrito ao dono da sua chave.

Vozes

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

O catálogo de vozes de narração. O opcional ?language=<code> filtra por vozes nativas desse idioma. Devolve voices (cada uma com um name amigável, o id a passar como voice, language, isDefault e um preview_url reproduzível) mais o default global. Consulte Vozes.

Idiomas

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

Os idiomas de narração suportados, como { code, label, native }. Cada code é um language válido na criação. Consulte Idiomas.

Estado da conta

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

Devolve videosGenerated (vitalício), a image da conta e isAdmin. Requer autenticação.

Estado de faturação

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

Requer autenticação e devolve 200 tanto para contas gratuitas como pagas. Uma conta gratuita devolve plan: "free" com videoAllowance, videosUsed e videosRemaining. Uma conta paga também devolve planLabel, billingInterval, trialStatus, quotaMinutes, minutesUsedThisPeriod, minutesRemaining e bonusMinutes.

Configuração de runtime e saúde

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

Público. Devolve { "authEnforced": true }. Uma verificação de vivacidade fica em GET /health.