API Sonilo
Comece com 12 testes gratuitos (1 a 2 por endpoint) e depois pague conforme o uso.
Experimente agoraAutenticação
A API Sonilo autentica pedidos com chaves de API. Gere e faça a gestão de chaves na página Chaves de API. As chaves começam por sk_ e são mostradas uma vez na criação — copie-as imediatamente. Passe a chave como token Bearer em cada pedido:
curl https://api.sonilo.com/v1/account/services \
-H "Authorization: Bearer sk_your_api_key_here"Trate as chaves como palavras-passe: mantenha-as no lado do servidor e carregue-as a partir de variáveis de ambiente — nunca as confirme ou envie em código de cliente. Se uma chave for exposta, revogue-a na página Chaves de API e crie uma nova. As chaves revogadas entram em vigor imediatamente e devolvem 401 em qualquer pedido subsequente.
URL Base
Todos os pedidos de API partilham um único URL base:
https://api.sonilo.com/v1Os caminhos dos endpoints nesta referência são relativos a esta base. A API é disponibilizada apenas via HTTPS — os pedidos HTTP simples são rejeitados.
Cabeçalhos
Cada pedido deve incluir um cabeçalho Authorization. Os endpoints de geração requerem adicionalmente um Content-Type:
Authorization: Bearer sk_…— obrigatório em cada pedido.Content-Type: multipart/form-data— para os endpoints de geração/v1/text-to-musice/v1/video-to-music, que recebem campos de formulário e uploads de ficheiros. Os endpoints de conta são pedidosGETsem body.
Endpoints principais
Sonilo disponibiliza dois endpoints de geração e dois endpoints de conta. Siga qualquer caminho abaixo para a referência completa de pedido e resposta.
Gere música sincronizada com um ficheiro de vídeo ou URL.
Score a video with generated music and return a new video (async task).
Gere música a partir de um prompt de texto e uma duração.
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.
Liste os serviços disponíveis e os limites ativos da sua conta.
Obtenha o histórico de utilização de crédito da sua conta.
Formato de resposta
Os endpoints de conta devolvem uma única resposta application/json. Os endpoints de geração devolvem um fluxo application/x-ndjson — um objeto JSON por linha, cada um com um campo type. Leia o body linha a linha e analise cada linha independentemente.
Os fluxos de geração utilizam um conjunto pequeno e estável de tipos de eventos:
title— título da faixa gerada; emitido uma vez por fluxo.audio_chunk— fragmento de áudio codificado em base64. Agrupe os fragmentos porstream_indexe concatene por ordem.complete— o fluxo terminou com sucesso.error— a geração falhou; contémcodeemessage.
Consulte a referência de Vídeo para Música para o esquema completo de eventos.
Erros
Todos os erros devolvem um body JSON com code e message. O estado HTTP indica a classe de falha:
| Código | Condição |
|---|---|
| 400 | Entrada inválida (video em falta, video e video_url fornecidos simultaneamente, ou URL inseguro) |
| 401 | Chave de API inválida ou em falta |
| 402 | Conta suspensa ou limite de crédito excedido |
| 403 | Valid API key, but the account cannot access this endpoint or workspace |
| 413 | Ficheiro demasiado grande |
| 422 | Duração do vídeo excede 6 minutos ou ffprobe falhou |
| 429 | Limite de taxa excedido (solicitações por minuto ou gerações simultâneas) |
| 502 | Erro de processamento a montante |
Limites de taxa
A sua conta tem limites de taxa partilhados que se aplicam a todos os endpoints de geração. Os limites predefinidos para o nível padrão são apresentados abaixo.
- Pedidos por minuto (RPM): 60
- Máximo de tarefas simultâneas: 5
Consulte as Definições para os limites reais da sua conta.
- Exceder os limites de taxa devolve
429 Too Many Requests - Exceder o tamanho do ficheiro devolve
413 Request Entity Too Large - Exceder a duração do vídeo devolve
422 Unprocessable Entity
Para solicitar limites mais altos, entre em contato pelo [email protected].
Próximos passos
Siga o Início Rápido para fazer o seu primeiro pedido em cinco minutos, depois avance para a referência de Vídeo para Música.
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.