API Singing Pet
Singing Pet ma API REST. Szablony piosenek i cennik są otwarte dla każdego. Wszystko, co dotyka filmów, kredytów albo płatności konkretnej osoby, wymaga tokenu Firebase.
Specyfikacja OpenAPI
Czytelny maszynowo opis całego API, z unikalnym operation id, typowanymi parametrami i schematem odpowiedzi dla każdego endpointu. Skieruj na niego generator klienta albo loader function callingu swojego agenta.
Zobacz specyfikację OpenAPIhttps://singing.pet/openapi.json
Uwierzytelnianie
Wyślij ID token z Firebase Authentication jako bearer token. Logowanie przez Google albo linkiem e-mail na tej stronie tworzy taki token. Endpointy oznaczone jako publiczne nie potrzebują żadnego nagłówka.
Endpointy
https://api.singing.pet
| GET | / | getServiceIndex | Publiczny |
| GET | /openapi.json | getOpenApiSpec | Publiczny |
| GET | /health | getHealth | Publiczny |
| GET | /templates | listTemplates | Publiczny |
| GET | /subscription/pricing | getPricing | Publiczny |
| 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 | Publiczny |
| 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 |
Przykładowe żądanie
curl https://api.singing.pet/templates
curl https://api.singing.pet/user/videos?page=1 \
-H "Authorization: Bearer $FIREBASE_ID_TOKEN"Błędy
Każdy błąd wraca jako JSON. To, czego nie obsługuje konkretny endpoint, korzysta z jednej koperty ze stałym kodem, czytelnym komunikatem i podpowiedzią, co zrobić dalej.
{
"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"
}Renderowanie jest asynchroniczne
Wywołanie tworzące odpowiada, gdy tylko render trafi do kolejki. Odpytuj listUserVideos, aż status zmieni się z pending na completed albo failed, albo słuchaj websocketu na wss://api.singing.pet.
Limity
Audio musi mieć od 2 do 30 sekund, a film trwa dokładnie tyle, co audio. Zamiana tekstu na mowę przyjmuje do 500 znaków. Darmowe konta mają dwa filmy miesięcznie, plany płatne są bez limitu.
Markdown dla agentów
Każda strona z treścią serwuje czysty Markdown, jeśli poprosisz o niego nagłówkiem Accept, zgodnie z acceptmarkdown.com. Ręcznie pisany indeks strony leży w llms.txt.