API de Singing Pet
Singing Pet tiene una API REST. Las plantillas de canciones y los precios son abiertos. Todo lo que toca los vídeos, los créditos o la facturación de una persona necesita un token de Firebase.
Especificación OpenAPI
La descripción legible por máquina de toda la API, con un operation id único, parámetros tipados y un esquema de respuesta para cada endpoint. Apunta ahí directamente un generador de clientes o el cargador de function calling de tu agente.
Ver la especificación OpenAPIhttps://singing.pet/openapi.json
Autenticación
Envía un ID token de Firebase Authentication como bearer token. Al iniciar sesión con Google o con un enlace por email en esta web se genera uno. Los endpoints marcados como públicos no necesitan ninguna cabecera.
Endpoints
https://api.singing.pet
| GET | / | getServiceIndex | Público |
| GET | /openapi.json | getOpenApiSpec | Público |
| GET | /health | getHealth | Público |
| GET | /templates | listTemplates | Público |
| GET | /subscription/pricing | getPricing | Público |
| GET | /user/me | getCurrentUser | Token |
| GET | /user/videos | listUserVideos | Token |
| POST | /create-with-template | createVideoFromTemplate | Token |
| POST | /create-with-audio | createVideoFromAudio | Token |
| DELETE | /delete-video | deleteVideo | Token |
| GET | /tts/voices | listVoices | Token |
| POST | /tts | generateSpeech | Token |
| POST | /tiktok/extract-audio | extractTikTokAudio | Token |
| GET | /subscription/status | getSubscriptionStatus | Token |
| POST | /subscription/create-checkout-session | createCheckoutSession | Token |
| POST | /subscription/create-one-time-checkout | createOneTimeCheckout | Token |
| POST | /subscription/create-portal-session | createPortalSession | Token |
| GET | /versions | listApiVersions | Público |
| GET | /v1/templates | listApiTemplates | Token |
| GET | /v1/me | getApiAccount | Token |
| GET | /v1/credits | getApiCredits | Token |
| GET | /v1/videos | listApiVideos | Token |
| POST | /v1/videos | createApiVideo | Token |
| GET | /v1/videos/{id} | getApiVideo | Token |
| DELETE | /v1/videos/{id} | deleteApiVideo | Token |
| POST | /mcp | callMcpServer | Token |
Petición de ejemplo
curl https://api.singing.pet/templates
curl https://api.singing.pet/user/videos?page=1 \
-H "Authorization: Bearer $FIREBASE_ID_TOKEN"Errores
Todos los fallos vuelven en JSON. Lo que no gestiona un endpoint concreto usa un único envoltorio con un código estable, un mensaje legible y una pista sobre qué hacer.
{
"error": {
"code": "not_found",
"message": "No route matches GET /nope",
"status": 404,
"hint": "Check the path against https://singing.pet/openapi.json.",
"documentation_url": "https://singing.pet/developers"
},
"message": "No route matches GET /nope"
}El renderizado es asíncrono
Una llamada de creación responde en cuanto el render entra en cola. Consulta listUserVideos hasta que el estado pase de pending a completed o failed, o escucha el websocket en wss://api.singing.pet.
Límites
El audio debe durar entre 2 y 30 segundos y el vídeo dura exactamente lo mismo que el audio. La conversión de texto a voz admite hasta 500 caracteres. Las cuentas gratuitas tienen dos vídeos al mes; los planes de pago son ilimitados.
Markdown para agentes
Cada página de contenido de esta web sirve Markdown limpio si lo pides con una cabecera Accept, siguiendo acceptmarkdown.com. El índice del sitio escrito a mano está en llms.txt.