Proofread
subtitles[language] so the dub speaks exactly what you approved. Returns 202 Accepted with a task_id; poll GET /v1/tasks/:task_id until the task reaches a terminal status./v1/proofreadmultipart/form-datahttps://api.sonilo.com/v1/proofreadSend API requests to https://api.sonilo.com. The platform.sonilo.com/docs pages are documentation only and are not API endpoints.
curl -X POST https://api.sonilo.com/v1/proofread \
-H "Authorization: Bearer sk_your_api_key" \
-F "[email protected]" \
-F 'languages=["ja","zh_cn"]'
# => {"task_id": "5dfca023-...", "status": "processing"}
curl https://api.sonilo.com/v1/tasks/5dfca023-... \
-H "Authorization: Bearer sk_your_api_key"
# poll until "status" is "succeeded" or "failed"{
"task_id": "5dfca023-…",
"status": "processing"
}Authorization
Authenticate via Bearer token. Generate keys at the API Keys page and pass them in the Authorization header on every request. Keep keys server-side, for example in SONILO_API_KEY.
Authorization: Bearer sk_your_api_keyStore the key server-side, commonly as SONILO_API_KEY. A 401 means the key is missing, invalid, or revoked. A 403 means the key is valid but the account does not have access to that endpoint or workspace.
Body Parameters
videofilevideo or video_url, not both. The video must contain an audio track. Max file size: default 300MB. Max duration: 300 sec.video_urlstringvideo or video_url, not both. Must be a public URL — private/internal addresses are rejected. The video must contain an audio track. Max file size: default 300MB. Max duration: 300 sec.languagesstring["ja","zh_cn"]. The supported codes are listed below; they are the same ones Video translation accepts, so a proofread script can go straight into a dub. Omit it, or send [], to get the source-language transcript only. Billed per language: two languages cost twice a transcript-only request.- en
- English
- zh_cn
- Chinese (Simplified)
- ja
- Japanese
- ko
- Korean
- pt
- Portuguese
- pt_br
- Portuguese (Brazil)
- es
- Spanish
- es_419
- Spanish (Latin America)
- de
- German
- fr
- French
- it
- Italian
- ru
- Russian
- th
- Thai
- ar
- Arabic
- tr
- Turkish
- vi
- Vietnamese
- id
- Indonesian
- ta
- Tamil
- ml
- Malayalam
- kn
- Kannada
- gu
- Gujarati
- pa_in
- Punjabi (India)
- sd_in
- Sindhi (India)
- hi
- Hindi
pt and es are unqualified Portuguese and Spanish. Request pt_br or es_419 when the region matters — they are additional targets, not replacements. Punjabi and Sindhi are available in their Indian variants only — that is what pa_in and sd_in say.
source_languagestringsource_language reports the language the transcript is in, and the source-language subtitle file is keyed by that code. Accepts the same codes as languages; an unsupported code is rejected with 422 before anything is charged.Response
task_idstringstatusstringNext steps
curl -X POST https://api.sonilo.com/v1/proofread \
-H "Authorization: Bearer sk_your_api_key" \
-F "[email protected]" \
-F 'languages=["ja","zh_cn"]'
# => {"task_id": "5dfca023-...", "status": "processing"}
curl https://api.sonilo.com/v1/tasks/5dfca023-... \
-H "Authorization: Bearer sk_your_api_key"
# poll until "status" is "succeeded" or "failed"{
"task_id": "5dfca023-…",
"status": "processing"
}