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ę OpenAPI

https://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/getServiceIndexPubliczny
GET/openapi.jsongetOpenApiSpecPubliczny
GET/healthgetHealthPubliczny
GET/templateslistTemplatesPubliczny
GET/subscription/pricinggetPricingPubliczny
GET/user/megetCurrentUserToken
GET/user/videoslistUserVideosToken
POST/create-with-templatecreateVideoFromTemplateToken
POST/create-with-audiocreateVideoFromAudioToken
DELETE/delete-videodeleteVideoToken
GET/tts/voiceslistVoicesToken
POST/ttsgenerateSpeechToken
POST/tiktok/extract-audioextractTikTokAudioToken
GET/subscription/statusgetSubscriptionStatusToken
POST/subscription/create-checkout-sessioncreateCheckoutSessionToken
POST/subscription/create-one-time-checkoutcreateOneTimeCheckoutToken
POST/subscription/create-portal-sessioncreatePortalSessionToken
GET/versionslistApiVersionsPubliczny
GET/v1/templateslistApiTemplatesToken
GET/v1/megetApiAccountToken
GET/v1/creditsgetApiCreditsToken
GET/v1/videoslistApiVideosToken
POST/v1/videoscreateApiVideoToken
GET/v1/videos/{id}getApiVideoToken
DELETE/v1/videos/{id}deleteApiVideoToken
POST/mcpcallMcpServerToken

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.