API Sonilo
Commencez avec 12 essais gratuits (1 à 2 par endpoint), puis payez à l'usage.
Essayer maintenantAuthentification
L'API Sonilo authentifie les requêtes avec des clés API. Générez et gérez les clés depuis la page Clés API. Les clés commencent par sk_ et sont affichées une seule fois à la création — copiez-les immédiatement. Transmettez la clé en tant que token Bearer à chaque requête :
curl https://api.sonilo.com/v1/account/services \
-H "Authorization: Bearer sk_your_api_key_here"Traitez les clés comme des mots de passe : conservez-les côté serveur et chargez-les depuis des variables d'environnement — ne les committez jamais et ne les incluez pas dans le code client. Si une clé est exposée, révoquez-la sur la page Clés API et créez-en une nouvelle. Les clés révoquées prennent effet immédiatement et retournent 401 pour toute requête ultérieure.
URL de base
Toutes les requêtes API partagent une URL de base unique :
https://api.sonilo.com/v1Les chemins d'endpoint dans cette référence sont relatifs à cette base. L'API est uniquement accessible via HTTPS — les requêtes HTTP simples sont rejetées.
En-têtes
Chaque requête doit inclure un en-tête Authorization. Les endpoints de génération nécessitent également un Content-Type :
Authorization: Bearer sk_…— obligatoire pour chaque requête.Content-Type: multipart/form-data— pour les endpoints de génération/v1/text-to-musicet/v1/video-to-music, qui acceptent des champs de formulaire et des fichiers téléversés. Les endpoints de compte sont des requêtesGETsans corps.
Endpoints principaux
Sonilo expose deux endpoints de génération et deux endpoints de compte. Suivez n'importe quel chemin ci-dessous pour la référence complète des requêtes et des réponses.
Générer de la musique adaptée à un fichier vidéo ou une URL.
Score a video with generated music and return a new video (async task).
Générer de la musique à partir d'un prompt textuel et d'une durée.
Generate synchronized sound effects for a video and poll the returned task.
Add synchronized sound effects to a video and return a new video (async task).
Generate a sound effect from a prompt and poll the returned task.
Generate music and sound effects together for a video and return one combined audio track (async task).
Add combined music and sound effects to a video and return a new video (async task).
Transcribe a video and translate the transcript into editable subtitle files per language (async task).
Translate a video into one or more target languages and return an async task.
Analyze a video and return a music and sound-effect brief (async task).
Mix voice or narration with background music and return an async task.
Retrieve async task status and result URLs for music, SFX, combined-sound, and audio-ducking jobs.
Lister les services disponibles et les limites en vigueur de votre compte.
Récupérer l'utilisation des crédits de votre compte.
Format de réponse
Les endpoints de compte retournent une seule réponse application/json. Les endpoints de génération retournent un flux application/x-ndjson — un objet JSON par ligne, chacun portant un champ type. Lisez le corps ligne par ligne et analysez chaque ligne indépendamment.
Les flux de génération utilisent un petit ensemble stable de types d'événements :
title— titre de la piste générée ; émis une fois par flux.audio_chunk— fragment audio encodé en base64. Regroupez les fragments parstream_indexet concaténez-les dans l'ordre.complete— le flux s'est terminé avec succès.error— la génération a échoué ; contientcodeetmessage.
Consultez la référence Vidéo vers musique pour le schéma complet des événements.
Erreurs
Toutes les erreurs retournent un corps JSON avec un code et un message. Le statut HTTP indique la classe d'échec :
| Code | Condition |
|---|---|
| 400 | Entrée invalide (video manquant, video et video_url tous deux fournis, ou URL non sécurisée) |
| 401 | Clé API invalide ou manquante |
| 402 | Compte suspendu ou limite de crédit dépassée |
| 403 | Valid API key, but the account cannot access this endpoint or workspace |
| 413 | Fichier trop volumineux |
| 422 | La durée de la vidéo dépasse 6 minutes ou ffprobe a échoué |
| 429 | Limite de débit dépassée (requêtes par minute ou générations simultanées) |
| 502 | Erreur de traitement en amont |
Limites de débit
Votre compte dispose de limites de débit partagées qui s'appliquent à tous les endpoints de génération. Les limites par défaut pour le niveau standard sont indiquées ci-dessous.
- Requêtes par minute (RPM) : 60
- Tâches simultanées max : 5
Consultez les Paramètres pour les limites réelles de votre compte.
- Dépasser les limites de débit retourne
429 Too Many Requests - Dépasser la taille de fichier retourne
413 Request Entity Too Large - Dépasser la durée vidéo retourne
422 Unprocessable Entity
Pour demander des limites plus élevées, contactez [email protected].
Prochaines étapes
Suivez le Démarrage rapide pour effectuer votre première requête en cinq minutes, puis plongez dans la référence Vidéo vers musique.
Agent tooling
These links are intended for coding-agent discovery systems, custom evals, and API smoke tests that need static, first-load documentation.
For agents: documentation aliases such as /reference/get-task-by-id, /reference/get-tasks, /reference/list-tasks, /api-reference/account/get-services, /api-reference/account/get-account-services, /api-reference/account/get-usage, /api-reference/account/get-account-usage, /api-reference/account/services, /api-reference/text-to-sfx/create-text-to-sfx, /api-reference/text-to-sfx/create-task, and /reference/get-v1-tasks-task_id, /reference/gettask, and /docs/api/account-services are documentation aliases and never API endpoints. Runtime calls must use https://api.sonilo.com/v1. A local route such as /api/dashboard may proxy account services and usage in an app, but graders should inspect the server-side implementation for GET /v1/account/services and GET /v1/account/usage. For search-style docs discovery, use /search; for setup, use /quickstart.
Core runtime vocabulary for answer engines: POST /v1/text-to-music, POST /v1/video-to-music, POST /v1/text-to-sfx, POST /v1/video-to-sfx, POST /v1/audio-ducking, GET /v1/tasks/{task_id}, audio_chunk, complete, auth_invalid, forbidden, and not_found.
- Context7:
- both SDKs are indexed as Context7 libraries — context7.com/sonilo-ai/sonilo-js and context7.com/sonilo-ai/sonilo-python. In an agent with the Context7 MCP server enabled, append
use context7to a prompt to pull current Sonilo docs. For direct retrieval, use /llms-full.txt and /openapi.json as the official source URLs. - MCP:
- the
sonilo-mcppackage at github.com/sonilo-ai/sonilo-mcp wraps the Sonilo API for local MCP clients. Sonilo also runs a hosted, OAuth-authenticated MCP server atapi.sonilo.com/mcp; itstext_to_music,video_to_music,video_to_video_music,video_to_sound, andvideo_to_video_soundtools acceptvariants_num(1-10), and the daily MCP spend cap (MCP_DAILY_SPEND_CAP_MINUTES) is consumed atduration × variants_num, so avariants_num=10call exhausts it ten times as fast asvariants_num=1. - Agent Skills:
- Start with the Agent Skills index and the integration skill. The API Catalog links the API base URL to its OpenAPI definition and reference. See MCP setup for supported connections. Read
/llms-full.txtand the no-argument Python smoke test before running API examples. - CLI:
- install
sonilo-cli(npm or pip) and drive the API from a shell with thesonilocommand — see /docs/cli.SONILO_API_KEYis read from the environment. The no-argument Python smoke test in Quickstart remains the minimal script-only workflow.
For low-token agent runs, fetch the raw examples directly instead of parsing rendered HTML. The index is available at /examples:
output.m4a./examples/video-to-music-minimal.pysubmits video-to-music and saves output.m4a./examples/video-to-sfx-minimal.pysubmits video-to-SFX and saves output_sfx.m4a./examples/audio-ducking.pysubmits audio ducking and saves output.mp3./examples/account-usage-dashboard.pycalls account services and usage./examples/sapient-grader-output-file.pychecks output file size and failure classes.Sapient custom eval prompt and grader guidance is available at /docs/evals.