API de Singing Pet
Convierte una foto de una mascota y una canción en un video con sincronización labial desde tu propio código. Un crédito por video, sin marca de agua, aproximadamente un minuto para renderizar.
Obtén una clave API
Inicia sesión y crea una clave desde tu panel de control. La clave se muestra una vez y no se puede recuperar, así que guárdala en un lugar seguro. Las claves tienen los alcances que elijas: solo lectura, o lectura y escritura.
Crear una clave APIInicio rápido
Crea una clave, elige una canción, envía una URL de la foto. Tres llamadas.
# 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"Autenticación
Envía tu clave como un token de portador (bearer token) en cada solicitud. Si prefieres no guardar una clave, la API también acepta tokens de acceso OAuth 2.1, con registro de cliente dinámico abierto y PKCE.
Créditos
Los créditos son prepagados y nunca caducan. Un crédito genera un video. Un renderizado que falla se reembolsa automáticamente, por lo que no es necesario volver a crear un video para recuperar el crédito.
| Paquete | Créditos | Precio | Por video |
|---|---|---|---|
| Starter | 100 | $5 | $0.050 |
| Growth | 500 | $20 | $0.040 |
| Scale | 2,500 | $75 | $0.030 |
Endpoints
Cada endpoint bajo /v1 requiere una clave API o un token OAuth. La referencia completa, incluyendo los esquemas de solicitud y respuesta, se encuentra en el documento OpenAPI.
| GET | /v1/templates | listApiTemplates |
| GET | /v1/me | getApiAccount |
| GET | /v1/credits | getApiCredits |
| GET | /v1/videos | listApiVideos |
| POST | /v1/videos | createApiVideo |
| GET | /v1/videos/{id} | getApiVideo |
| DELETE | /v1/videos/{id} | deleteApiVideo |
Errores
Cada error es JSON con un código estable, un mensaje y una pista sobre qué hacer al respecto. Nada devuelve una página de error 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"
}¿Prefieres herramientas en lugar de HTTP?
Existe un servidor MCP que expone la misma cuenta y los mismos créditos como herramientas que un cliente de IA puede llamar directamente.
Servidor MCP de Singing PetVersiones
La versión es el primer segmento de la ruta. La adición de un campo o un endpoint ocurre dentro de v1 sin previo aviso. Cualquier cosa que pueda romper tu integración recibirá una nueva versión principal y 180 días de aviso, señalizado con los encabezados Deprecation y Sunset de RFC 8594.
- Los cambios importantes incluyen la eliminación de un endpoint, un campo o un valor enum, hacer que un campo opcional sea obligatorio o cambiar el tipo de un campo. Añadir elementos no es un cambio importante y se incluye en la v1.
- Un cambio importante implica una nueva versión principal y 180 días de aviso antes de que la anterior deje de responder.
- Una versión obsoleta responde con los encabezados Deprecation y Sunset de RFC 8594, además de un encabezado Link que apunta aquí. Cada respuesta de la v1 ya incluye un enlace a esta política.
El renderizado es asíncrono
La creación de un video devuelve inmediatamente un id y una URL de consulta. Un renderizado tarda aproximadamente un minuto, así que consulta cada diez segundos aproximadamente. También puedes escuchar en el websocket en lugar de consultar.
Límites de tasa
60 lecturas y 10 escrituras por minuto. Cada respuesta incluye los encabezados RateLimit y RateLimit-Policy para que puedas controlar tu ritmo, y un error 429 te indica exactamente cuánto tiempo esperar con Retry-After.
Límites
Fotos de hasta 15MB, en formato JPEG, PNG, WebP o HEIC, en una URL pública HTTPS. La duración de salida coincide con la canción, con un límite de 30 segundos; la mayoría dura entre 15 y 20. Perros, gatos, pájaros, conejos, hámsters y cobayas, de cualquier raza.