Referência da API

Todo endpoint, com o formato de requisição e resposta. Todas as rotas são relativas a https://sketchie.ai/api.

Convenções

Todo endpoint /v1/* requer o cabeçalho Authorization: Bearer sk_.... 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"
}

Endpoints de geração têm limite de 20 requisições por minuto. Todos os outros compartilham um limite de 200 por minuto.

Criar um explicativo

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

Inicia uma geração e retorna 202 Accepted com o registro na fila. Faça polling de obter um explicativo até estar ready.

Corpo da requisição
{
  "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. Um ref de voz. Padrão é o narrador padrão (Nora). Veja Vozes.
language string Opcional. Um código de idioma suportado (padrão en). Veja Idiomas.
aspect string Opcional. 16:9 (padrão), 9:16 ou 1:1.
source string Opcional. Um documento, artigo ou transcrição para transformar em explicativo. Quando presente, input vira orientação opcional.
preset string Estilo de desenho opcional: marker (padrão), chalkboard, pencil, blueprint, crayon, clean.
fillMode string Técnica de preenchimento de revelação opcional: A, B, C (padrão) ou D.
sceneGraph object Opcional. Um scene graph pré-autorado. O worker pula a geração do grafo e o renderiza direto, mas este endpoint ainda cria um novo explicativo e consome a franquia gratuita normal ou a cota do plano pago. Para editar um explicativo existente, use editar um explicativo.

Retorna o registro do explicativo: id, status, prompt, lengthSeconds, voice, language, aspect, videoUrl (null até ficar 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

Retorna o registro completo: status atual, a 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 inexistente retorna 404.

Listar explicativos

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

Lista os explicativos da chave chamadora, do mais novo primeiro. Restrito ao dono da chave. limit é limitado de 1 a 100 (padrão 50). Retorna resumos leves (sem scene graph ou versões). Use obter um explicativo para o registro completo.

Editar um explicativo

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

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

Corpo da requisição
{ "instruction": "Make the title scene shorter and warmer" }

Reverter para uma versão

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

Reaponta a versão principal para uma versão pronta anterior e espelha o grafo e o vídeo dela no registro. O alvo deve ser uma versão ready com vídeo (senão 409).

Corpo da requisição
{ "versionId": "..." }

Stream de status ao vivo

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

Um stream de Server-Sent Events (text/event-stream). Abra uma conexão e cada transição de status de qualquer um dos seus explicativos chega como um frame event: status, então você pode 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 daquele idioma. Retorna voices (cada uma com um name amigável, o id para passar como voice, language, isDefault e um preview_url reproduzível) mais o default global. Veja 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. Veja Idiomas.

Estado da conta

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

Retorna videosGenerated (total), a image da conta e isAdmin. Requer autenticação.

Status de cobrança

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

Requer autenticação e retorna 200 tanto para contas grátis quanto pagas. Uma conta grátis retorna plan: "free" com videoAllowance, videosUsed e videosRemaining. Uma conta paga também retorna planLabel, billingInterval, trialStatus, quotaMinutes, minutesUsedThisPeriod, minutesRemaining e bonusMinutes.

Config de runtime e saúde

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

Público. Retorna { "authEnforced": true }. Um liveness check fica em GET /health.