Référence de l’API

Chaque endpoint, avec sa forme de requête et de réponse. Toutes les routes sont relatives à https://sketchie.ai/api.

Conventions

Chaque endpoint /v1/* requiert l’en-tête Authorization: Bearer sk_.... Les erreurs reviennent en JSON avec un indicateur error et un message :

Réponse d’erreur
{
  "error": true,
  "message": "length must be a positive multiple of 30 seconds, at most 360"
}

Les endpoints de génération sont limités à 20 requêtes par minute. Tous les autres partagent une limite de 200 par minute.

Créer un explicatif

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

Démarre une génération et renvoie 202 Accepted avec l’enregistrement en file. Interrogez récupérer un explicatif jusqu’à ce qu’il soit ready.

Corps de la requête
{
  "input": "Explain how DNS resolves a domain name",
  "length": "0:30",
  "aspect": "16:9",
  "voice": "sketchie:sulafat",
  "language": "en"
}
ChampTypeNotes
input string Quoi expliquer. Un court prompt ou le texte complet d’un document. Requis sauf si source ou sceneGraph est présent. Alias : prompt.
length string or number Durée cible en "M:SS" ("0:30", "1:00") ou secondes. Un multiple positif de 30, jusqu’à 360. Omettez pour une durée automatique. Alias : lengthSeconds (nombre).
voice string Optionnel. Une ref de voix. Par défaut le narrateur standard (Nora). Voir Voix.
language string Optionnel. Un code de langue pris en charge (défaut en). Voir Langues.
aspect string Optionnel. 16:9 (défaut), 9:16 ou 1:1.
source string Optionnel. Un document, un article ou une transcription à transformer en explicatif. S’il est présent, input devient une consigne optionnelle.
preset string Style de dessin optionnel : marker (défaut), chalkboard, pencil, blueprint, crayon, clean.
fillMode string Technique de remplissage de révélation optionnelle : A, B, C (défaut) ou D.
sceneGraph object Optionnel. Un scene graph pré-écrit. Le worker saute la génération du graphe et le rend directement, mais cet endpoint crée quand même un nouvel explicatif et consomme la franchise gratuite normale ou le quota du forfait payant. Pour modifier un explicatif existant, utilisez modifier un explicatif.

Renvoie l’enregistrement de l’explicatif : id, status, prompt, lengthSeconds, voice, language, aspect, videoUrl (null jusqu’à prêt) et sceneGraph (null jusqu’à généré). Un 400 revient pour un input vide sans source, une length mal formée, ou un aspect, preset, fillMode ou language invalide.

Récupérer un explicatif

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

Renvoie l’enregistrement complet : status courant, la videoUrl une fois ready, le sceneGraph modifiable, l’historique des versions (versions) et les chunks de scène de la version principale. Un id manquant renvoie 404.

Lister les explicatifs

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

Liste les explicatifs de la clé appelante, du plus récent. Limité au propriétaire de la clé. limit est borné de 1 à 100 (défaut 50). Renvoie des résumés légers (sans scene graph ni versions). Utilisez récupérer un explicatif pour l’enregistrement complet.

Modifier un explicatif

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

Le levier de modifiabilité. Transformez une instruction en langage naturel en un re-rendu ciblé. Seules les scènes concernées sont re-rendues, produisant une nouvelle version. Renvoie 202 avec la version en file. Interrogez récupérer un explicatif jusqu’à ce que la version principale soit ready. Cela s’ajoute à la vidéo existante, donc ne consomme pas un autre créneau de création de vidéo gratuite. Le premier re-rendu de chaque vidéo est gratuit. Les suivants utilisent les minutes du forfait payant, et les comptes gratuits sont invités à démarrer un forfait. L’explicatif doit déjà être ready (sinon 409).

Corps de la requête
{ "instruction": "Make the title scene shorter and warmer" }

Revenir à une version

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

Repointe la version principale vers une version prête antérieure et reflète son graphe et sa vidéo sur l’enregistrement. La cible doit être une version ready avec une vidéo (sinon 409).

Corps de la requête
{ "versionId": "..." }

Flux de statut en direct

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

Un flux Server-Sent Events (text/event-stream). Ouvrez une connexion et chaque transition de statut sur l’un de vos explicatifs arrive sous forme de frame event: status, pour mettre à jour un état "vidéo prête" à l’instant où le worker termine au lieu d’interroger. Le flux est limité au propriétaire de votre clé.

Voix

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

Le catalogue de voix de narration. L’optionnel ?language=<code> filtre sur les voix natives de cette langue. Renvoie voices (chacune avec un name convivial, l’id à passer comme voice, language, isDefault et une preview_url jouable) plus le default global. Voir Voix.

Langues

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

Les langues de narration prises en charge, sous la forme { code, label, native }. Chaque code est un language valide à la création. Voir Langues.

État du compte

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

Renvoie videosGenerated (à vie), l’image du compte et isAdmin. Requiert une authentification.

Statut de facturation

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

Requiert une authentification et renvoie 200 pour les comptes gratuits et payants. Un compte gratuit renvoie plan: "free" avec videoAllowance, videosUsed et videosRemaining. Un compte payant renvoie aussi planLabel, billingInterval, trialStatus, quotaMinutes, minutesUsedThisPeriod, minutesRemaining et bonusMinutes.

Config d’exécution et santé

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

Public. Renvoie { "authEnforced": true }. Un liveness check se trouve à GET /health.