API di Singing Pet

Trasforma la foto di un animale e una canzone in un video con sincronizzazione labiale dal tuo codice. Un credito per video, senza filigrana, circa un minuto per il rendering.

Ottieni una chiave API

Accedi e crea una chiave dalla tua dashboard. La chiave viene mostrata una sola volta e non può essere recuperata, quindi conservala in un luogo sicuro. Le chiavi hanno gli ambiti che scegli: sola lettura, oppure lettura e scrittura.

Crea una chiave API

Guida rapida

Crea una chiave, scegli una canzone, invia l'URL di una foto. Tre chiamate.

# 1. pick a song
curl https://api.singing.pet/v1/templates \
  -H "Authorization: Bearer $SINGING_PET_KEY"

# 2. queue the render (costs 1 credit)
curl -X POST https://api.singing.pet/v1/videos \
  -H "Authorization: Bearer $SINGING_PET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"template_id":"393","image_url":"https://example.com/dog.jpg"}'

# 3. poll until status is completed, about a minute
curl https://api.singing.pet/v1/videos/<id> \
  -H "Authorization: Bearer $SINGING_PET_KEY"

Autenticazione

Invia la tua chiave come bearer token in ogni richiesta. Se preferisci non gestire una chiave, l'API accetta anche token di accesso OAuth 2.1, con registrazione dinamica del client e PKCE.

Crediti

I crediti sono prepagati e non scadono mai. Un credito genera un video. Un rendering che fallisce viene rimborsato automaticamente, quindi non c'è bisogno di ricreare un video per recuperare il credito.

PacchettoCreditiPrezzoPer video
Starter100$5$0.050
Growth500$20$0.040
Scale2,500$75$0.030

Endpoint

Ogni endpoint sotto /v1 accetta una chiave API o un token OAuth. Il riferimento completo, inclusi gli schemi di richiesta e risposta, si trova nel documento OpenAPI.

GET/v1/templateslistApiTemplates
GET/v1/megetApiAccount
GET/v1/creditsgetApiCredits
GET/v1/videoslistApiVideos
POST/v1/videoscreateApiVideo
GET/v1/videos/{id}getApiVideo
DELETE/v1/videos/{id}deleteApiVideo

Errori

Ogni errore è in formato JSON con un codice stabile, un messaggio e un suggerimento su cosa fare al riguardo. Nulla restituisce una pagina di errore HTML.

{
  "error": {
    "code": "insufficient_credits",
    "message": "Not enough API credits to render a video",
    "status": 402,
    "hint": "Each video costs 1 credit. Buy more at https://singing.pet/dashboard/api-keys.",
    "documentation_url": "https://singing.pet/api"
  },
  "message": "Not enough API credits to render a video"
}

Preferisci gli strumenti all'HTTP?

Esiste un server MCP che espone lo stesso account e gli stessi crediti come strumenti che un client AI può chiamare direttamente.

Server MCP Singing Pet

Versionamento

La versione è il primo segmento del percorso. L'aggiunta di un campo o di un endpoint avviene all'interno della v1 senza preavviso. Qualsiasi cosa che potrebbe interrompere la tua integrazione riceve una nuova versione principale e 180 giorni di preavviso, segnalati con le intestazioni Deprecation e Sunset di RFC 8594.

  • Le modifiche sostanziali consistono nella rimozione di un endpoint, di un campo o di un valore enum, nel rendere obbligatorio un campo facoltativo o nel modificare il tipo di un campo. L'aggiunta di elementi non costituisce una modifica sostanziale e viene rilasciata all'interno della v1.
  • Una modifica sostanziale comporta una nuova versione principale e 180 giorni di preavviso prima che quella precedente smetta di rispondere.
  • Una versione deprecata risponde con le intestazioni Deprecation e Sunset secondo la RFC 8594, oltre a un'intestazione Link che punta qui. Ogni risposta v1 contiene già un link a questa policy.
Stato della versione corrente

Il rendering è asincrono

La creazione di un video restituisce immediatamente un id e un URL di polling. Un rendering richiede circa un minuto, quindi esegui il polling ogni dieci secondi circa. Puoi anche ascoltare sul websocket invece di eseguire il polling.

Limiti di frequenza

60 letture e 10 scritture al minuto. Ogni risposta contiene le intestazioni RateLimit e RateLimit-Policy in modo che tu possa regolarti, e un errore 429 ti dice esattamente quanto tempo attendere con Retry-After.

Limiti

Foto fino a 15MB, in formato JPEG, PNG, WebP o HEIC, su un URL HTTPS pubblico. La durata dell'output corrisponde alla canzone, con un limite di 30 secondi; la maggior parte dura tra i 15 e i 20 secondi. Cani, gatti, uccelli, conigli, criceti e porcellini d'India, di qualsiasi razza.