Divɛlɔpa API
Integrete Addavox lokalizayshɔn insay yu wokflɔ. Pik di Vidio Dubbing API fɔ ful vidio lokalizayshɔn wit tɛm, QA, sabtaytul, ɛn ful akses to di Rivyu Ɛditɔ tru majik link dɛn. Yu kin pik ɛni wan pan di wan wan savis API dɛn bak fɔ ɔda wok dɛn, lɛk fɔ tɔk bɔt wan buk ɔ fɔ translet ɛn tɔk bɔt wan buk insay wan pas.
API Ki dɛn
API ki dɛn de fɔ wan Addavox akɔn. Krio wan wit di Start localizing bɔtin we de ɔp, dɔn jenarayz wan ki na di ap — ɛvri kɔl de bil to da akɔn de.
Dɛn kin pe ɛni wan pan API savis dɛn frɔm yu kredit balans, we yu kin tɔp ɛn manej na yu Addavox akɔn. Ful vidio lokalizayshɔn na di ɛksɛpshɔn: i de yuz di sem prayz we di plan we yu pik na Plan & Prayz — yu plan in inklud minit dɛn, dɔn ɔvaj na di plan ret.
Base URL:
https://api.addavox.com/api/v1
Auth di hεda:
X- API -Ki: YU_KI
Kɔnsɛnt & Ɔtorizayshɔn
Ɔl API rikwest dɛn fɔ gɛt kɔnsɛnt ɔbjɛkt ɛn wan tɔp-lɛvɛl mɔd fil. Tugɛda dɛn wan ya de mek wan atɛsteshɔn rɛkɔd fɔ ɛni wok we de kɔnfirm se yu gɛt di rayt dɛn we yu nid ɛn di spika kɔnsɛntmɛnt.
Di mod fil de ditɛm di vɔys sɛntesis: "voice_matched" de yuz spika vɔys klonin, "standard" de yuz sɛntetik TTS. Ɔl tu di mɔd dɛn na di sem prayz — di chus na purely kɔnsɛnt-driven.
Voice-Matched Mode — Dɛn nid fɔ gɛt ful kɔnsɛnt
Standard Mode — Na di Rayt dɛn nɔmɔ we gɛt fɔ du wit di tin dɛn we de insay de
Fild Rifrɛns
| Fil | Kayn | Fɔ du | Tɔk bɔt |
|---|---|---|---|
| mode | string | Tɔp-lɛvɛl | voice_matched ɔ standard |
| speaker_consent_obtained | boolean | voice_matched nɔmɔ | Di kɔnsɛntmɛnt we klia frɔm di wan dɛn we de tɔk we dɛn kin no |
| content_rights_confirmed | boolean | Ɔl tu di mod dɛn | Ɔna ɔ valid laysens fɔ di tin dɛn we de insay |
| eula_accepted | boolean | Ɔl tu di mod dɛn | Aksept di Addavox EULA |
| attested_by | string | Ɔl tu di mod dɛn | Imel ɔ aydentifaya fɔ di pɔsin we gɛt di wok |
| attested_at | ISO 8601 | Ɔl tu di mod dɛn | Insay 24 awa afta di tɛm we dɛn aks fɔ am |
Kɔnsɛnt Erɔd Kɔd dɛn
| HTTP | Kɔd | Kɔndishɔn |
|---|---|---|
| 403 | CONSENT_MISSING | Nɔ kɔnsɛntmɛnt ɔbjɛkt |
| 403 | CONSENT_INCOMPLETE | Misin attested_by ɔ invalid attested_at |
| 403 | CONSENT_NOT_AFFIRMED | Rayt ɔ EULA nɔ afɛm |
| 403 | CONSENT_EXPIRED | attested_at ol pas 24 awa |
| 403 | SPEAKER_CONSENT_REQUIRED | voice_matched witout spika kɔnsɛnt |
| 400 | INVALID_MODE | Valyu fɔ di mɔd we nɔ valid |
API Rifrɛns
Ful intaraktiv skima ɛn ɔda ɛndpɔynt dɛn de bay Open API .
Full Video Localization
/api/v1/localize-video
API key
Video Dubbing
Full video dubbing: send a video URL + target languages, get localized videos back.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
video_url |
string |
Yes | HTTPS URL of the source video to dub. |
target_languages |
string[] |
Yes | One or more target language codes. |
source_language |
string |
Yes | Language of the source video's spoken audio, e.g. 'en'. |
project_name |
string | null |
No | Optional project name. Defaults to 'API Video: {filename}'. |
enable_llm_qa |
boolean |
No | Opt-in LLM quality-review pass over translations before voice synthesis. Adds processing time. |
mode |
LocalizationMode |
No | Drives consent. Default 'voice_matched' (clones the speaker); 'standard' uses synthetic TTS. |
consent |
ConsentAttestation |
Yes | Consent attestation; see Consent & Authorization. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Master job ID — poll for per-language status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
target_languages |
string[] |
Echoed target language codes. |
ConsentAttestation
speaker_consent_obtained |
boolean | null |
Attests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only. |
content_rights_confirmed |
boolean |
Attests ownership or a valid license to the content. Required in both modes. |
eula_accepted |
boolean |
Confirms the client has read and accepts the Addavox EULA. Required in both modes. |
attested_by |
string |
Email or identifier of the responsible individual or system. |
attested_at |
string |
ISO 8601 timestamp of attestation. Must be within 24 hours of the request. |
API Services
/api/v1/separate
API key
Voice Separation
Split caller-supplied audio into vocals + background stems (async job).
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio to separate. |
project_name |
string | null |
No | Optional project name. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
charge |
ChargeInfo |
Billing detail for this submission. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
/api/v1/transcribe
API key
Transcribe
Transcribe caller-supplied audio and return a transcript (async job).
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio to transcribe. |
language |
string |
Yes | Spoken language of the audio (BCP-47), e.g. 'en-US'. |
project_name |
string | null |
No | Optional project name. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
charge |
ChargeInfo |
Billing detail for this submission. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
/api/v1/pro-transcribe
API key
Pro Transcription
Separate, then transcribe the isolated vocals stem — a cleaner transcript (async job).
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio to transcribe. |
language |
string |
Yes | Spoken language of the audio (BCP-47), e.g. 'en-US'. |
project_name |
string | null |
No | Optional project name. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
charge |
ChargeInfo |
Billing detail for this submission. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
/api/v1/translate
API key
Translate
Machine-translate text from one language to another. Returns the translated text synchronously — no audio, no job to poll.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
text |
string |
Yes | Text to translate. |
target_language |
string |
Yes | Target language code, e.g. 'es' or 'es-ES'. |
source_language |
string |
Yes | Source language code, e.g. 'en' or 'en-US'. |
Response
| Field | Type | Description |
|---|---|---|
translated_text |
string |
The translated text. |
source_language |
string |
Source language supplied on the request. |
target_language |
string |
Target language the text was translated into. |
charge |
ChargeInfo |
Billing detail for this translation. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
Example
curl -X POST https://api.addavox.com/api/v1/translate \
-H "X-API-Key: $ADDAVOX_KEY" -H "Content-Type: application/json" \
-d '{"text": "Hello", "target_language": "es"}'
/api/v1/narrate
API key
Narrate
Narrate already-translated text into an audiobook, in a preset voice you choose. Preset (synth) voices only — no voice matching.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio; also used to identify/match speaker voices. |
source_language |
string |
Yes | Source language code, e.g. 'en-US'. |
target_language |
string |
Yes | Target language code, e.g. 'es-ES'. |
segments |
ExternalSegment[] |
Yes | The pre-segmented transcript to voice. |
project_name |
string | null |
No | Optional project name. Defaults to 'API: {source}->{target}'. |
consent |
ConsentAttestation |
Yes | Consent attestation; see Consent & Authorization. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
voice_type |
string |
Voice type resolved from the request mode. |
total_segments |
integer |
Echoed count of submitted segments. |
charge |
ChargeInfo |
Billing detail for this submission. |
ExternalSegment
source_text |
string |
Original text for this segment. |
start_time |
number |
Segment start, in seconds. Used for speaker-voice matching only, not output timing. |
end_time |
number |
Segment end, in seconds. Used for speaker-voice matching only, not output timing. |
words |
object[] |
Word-level timing; defaults to empty. |
speaker |
object | null |
Speaker metadata for voice selection. |
translated_text |
string | null |
Pre-supplied translation. If provided, translation is skipped for this segment. |
ConsentAttestation
speaker_consent_obtained |
boolean | null |
Attests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only. |
content_rights_confirmed |
boolean |
Attests ownership or a valid license to the content. Required in both modes. |
eula_accepted |
boolean |
Confirms the client has read and accepts the Addavox EULA. Required in both modes. |
attested_by |
string |
Email or identifier of the responsible individual or system. |
attested_at |
string |
ISO 8601 timestamp of attestation. Must be within 24 hours of the request. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
/api/v1/translate-narrate
API key
Translate + Narrate — preset voice
Translate your text to the target language and narrate it in a preset voice. Source and target language must differ.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio; also used to identify/match speaker voices. |
source_language |
string |
Yes | Source language code, e.g. 'en-US'. |
target_language |
string |
Yes | Target language code, e.g. 'es-ES'. |
segments |
ExternalSegment[] |
Yes | The pre-segmented transcript to voice. |
project_name |
string | null |
No | Optional project name. Defaults to 'API: {source}->{target}'. |
consent |
ConsentAttestation |
Yes | Consent attestation; see Consent & Authorization. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
voice_type |
string |
Voice type resolved from the request mode. |
total_segments |
integer |
Echoed count of submitted segments. |
charge |
ChargeInfo |
Billing detail for this submission. |
ExternalSegment
source_text |
string |
Original text for this segment. |
start_time |
number |
Segment start, in seconds. Used for speaker-voice matching only, not output timing. |
end_time |
number |
Segment end, in seconds. Used for speaker-voice matching only, not output timing. |
words |
object[] |
Word-level timing; defaults to empty. |
speaker |
object | null |
Speaker metadata for voice selection. |
translated_text |
string | null |
Pre-supplied translation. If provided, translation is skipped for this segment. |
ConsentAttestation
speaker_consent_obtained |
boolean | null |
Attests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only. |
content_rights_confirmed |
boolean |
Attests ownership or a valid license to the content. Required in both modes. |
eula_accepted |
boolean |
Confirms the client has read and accepts the Addavox EULA. Required in both modes. |
attested_by |
string |
Email or identifier of the responsible individual or system. |
attested_at |
string |
ISO 8601 timestamp of attestation. Must be within 24 hours of the request. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
/api/v1/translate-narrate-matched
API key
Translate + Narrate — matched voice
Translate your text to the target language and narrate it in a voice matched from a ≥1-minute audio sample you provide. Source and target language must differ.
Request body
| Field | Type | Required | Description |
|---|---|---|---|
audio_url |
string |
Yes | HTTPS URL of the source audio; also used to identify/match speaker voices. |
source_language |
string |
Yes | Source language code, e.g. 'en-US'. |
target_language |
string |
Yes | Target language code, e.g. 'es-ES'. |
segments |
ExternalSegment[] |
Yes | The pre-segmented transcript to voice. |
project_name |
string | null |
No | Optional project name. Defaults to 'API: {source}->{target}'. |
consent |
ConsentAttestation |
Yes | Consent attestation; see Consent & Authorization. |
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Poll this job ID for status. |
project_id |
string |
The project created for this job. |
status |
string |
Always 'queued' on submit. |
voice_type |
string |
Voice type resolved from the request mode. |
total_segments |
integer |
Echoed count of submitted segments. |
charge |
ChargeInfo |
Billing detail for this submission. |
ExternalSegment
source_text |
string |
Original text for this segment. |
start_time |
number |
Segment start, in seconds. Used for speaker-voice matching only, not output timing. |
end_time |
number |
Segment end, in seconds. Used for speaker-voice matching only, not output timing. |
words |
object[] |
Word-level timing; defaults to empty. |
speaker |
object | null |
Speaker metadata for voice selection. |
translated_text |
string | null |
Pre-supplied translation. If provided, translation is skipped for this segment. |
ConsentAttestation
speaker_consent_obtained |
boolean | null |
Attests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only. |
content_rights_confirmed |
boolean |
Attests ownership or a valid license to the content. Required in both modes. |
eula_accepted |
boolean |
Confirms the client has read and accepts the Addavox EULA. Required in both modes. |
attested_by |
string |
Email or identifier of the responsible individual or system. |
attested_at |
string |
ISO 8601 timestamp of attestation. Must be within 24 hours of the request. |
ChargeInfo
amount |
number |
Total amount charged for this submission, in USD. |
rate_per_min |
number |
Per-minute rate applied. |
duration_min |
number |
Billed minutes (for text services, characters/1000). |
num_languages |
integer |
Number of target languages billed. |
credit_balance_after |
number |
Account credit balance after the charge, in USD. |
Jobs & Results
/api/v1/jobs/{job_id}
API key
Job Status
Check the status of an external localization job.
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Echoes the job ID from the URL. |
type |
string |
Job type: voice | translate_voice | transcribe_translate_voice | video_dub. |
status |
string |
queued | running | completed | failed. For a video_dub job this is a true aggregate of its per-language children, not a per-child value. |
total_segments |
integer |
Total segment count. Always 0 on a video_dub master job. |
completed_segments |
integer |
Completed segment count. Always 0 on a video_dub master job. |
error |
string | null |
Failure message when status is 'failed'. |
/api/v1/jobs/{job_id}/result
API key
Job Result
Get the download URL for a completed external localization job.
Response
| Field | Type | Description |
|---|---|---|
transcript_url |
string | null |
(Transcription job) Signed URL of the transcript JSON. |
vocals_url |
string | null |
(Separation job) Signed URL of the vocals stem. |
background_url |
string | null |
(Separation job) Signed URL of the background stem. |
download_url |
string | null |
Signed URL (24h). Single voice track for an audio job, or a zip of all languages for a video dub. |
duration |
number | null |
(Audio job) Duration in seconds. |
file_size |
integer | null |
(Audio job) File size in bytes. |
project_id |
string | null |
(Video dub) The project ID. |
review_url |
string | null |
(Video dub) Web review URL for the project. |
languages |
VideoJobResultLanguage[] | null |
(Video dub) Per-language result URLs. |
VideoJobResultLanguage
language |
string |
Target language code for this result. |
video_url |
string | null |
Signed URL of the dubbed video (24h expiry). |
audio_url |
string | null |
Signed URL of the dubbed audio track (24h expiry). |
subtitle_url |
string | null |
Signed URL of the subtitle file (24h expiry). |
/api/v1/jobs/{job_id}
API key
Cancel Job
Cancel a queued or running job and refund the charge to the account balance.
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Echoes the cancelled job ID. |
status |
string |
Always 'cancelled'. |
refunded_amount |
number |
Amount refunded for the undelivered work, in USD. |
/api/v1/jobs
API key
List Jobs
List localization jobs for the authenticated account. Query params: status — filter by queued | running | completed | failed | cancelled limit — max results (default 20, max 100) offset — pagination offset (default 0)
Response
| Field | Type | Description |
|---|---|---|
jobs |
JobListItem[] |
The page of jobs, newest first. |
total |
integer |
Total jobs matching the query, across all pages. |
limit |
integer |
Page size used. |
offset |
integer |
Page offset used. |
JobListItem
job_id |
string |
Job ID. |
project_id |
string |
Project the job belongs to. |
type |
string |
Job type. |
target_language |
string | null |
Target language code, if applicable. |
status |
string |
queued | running | completed | failed | cancelled. |
total_segments |
integer |
Total segment count. |
completed_segments |
integer |
Completed segment count. |
error |
string | null |
Failure message when the job failed. |
created_at |
string | null |
ISO 8601 creation time. |
started_at |
string | null |
ISO 8601 start time, if started. |
completed_at |
string | null |
ISO 8601 completion time, if finished. |
charge |
JobListCharge | null |
Charge summary, present if the job was billed. |
/api/v1/jobs/{job_id}/webhooks
API key
Webhook Log
Return the webhook delivery log for a job (all attempts, newest first).
Response
| Field | Type | Description |
|---|---|---|
job_id |
string |
Echoes the job ID from the URL. |
deliveries |
WebhookDelivery[] |
All delivery attempts for the job, newest first. |
WebhookDelivery
id |
string | null |
Delivery attempt ID. |
event |
string | null |
Event type delivered, e.g. 'job.completed'. |
attempt |
integer | null |
Attempt number for this event. |
status_code |
integer | null |
HTTP status returned by the endpoint, if any. |
error |
string | null |
Delivery error, if the attempt failed. |
delivered_at |
string | null |
ISO 8601 time of the attempt. |
/api/v1/jobs/{job_id}/webhooks/retry
API key
Retry Webhook
Re-trigger webhook delivery for the most recent event on a job.
Response
| Field | Type | Description |
|---|---|---|
status |
string |
Always 'queued' — the event was re-queued for delivery. |
event |
string |
The event type that was re-queued. |
Account & Reference
/api/v1/account
API key
Account
Return credit balance and current plan for the authenticated account.
Response
| Field | Type | Description |
|---|---|---|
account_id |
string |
The account's ID. |
credit_balance |
number |
Prepaid credit balance, in USD. |
plan_id |
string |
Current plan ID, e.g. 'free', 'creator'. |
plan_name |
string |
Human-readable plan name. |
included_minutes |
integer |
Localization minutes included in the plan per period. |
minutes_used |
number |
Included minutes used this period. |
minutes_remaining |
number |
Included minutes remaining this period. |
overage_rate |
number |
Per-minute overage rate once included minutes are exhausted, in USD. |
billing_interval |
string | null |
'monthly' or 'annual'; null on the free plan. |
subscription_status |
string |
Subscription status, e.g. 'active', 'past_due', 'free'. |
/api/v1/voices
API key
List Voices
Return available voices for a given language code. Query params: language — BCP-47 code, e.g. 'en-US', 'es-ES' (required) gender — optional filter: MALE | FEMALE
/api/v1/languages
API key
List Languages
Return supported languages. Query params: detail — if true, include provider metadata per language
/api/v1/projects/{project_id}/reviewers
API key
Invite Reviewer
Invite a reviewer to a project (API endpoint).
Request body
| Field | Type | Required | Description |
|---|---|---|---|
name |
string |
Yes | Reviewer's display name, used in the invite email. |
email |
string |
Yes | Where the magic-link invite is sent. |
language |
string |
Yes | Target language code the reviewer will edit. |
Response
| Field | Type | Description |
|---|---|---|
id |
string |
New reviewer ID. |
name |
string |
Echoed from the request. |
email |
string |
Echoed from the request. |
token |
string |
Magic-link token, embedded in the emailed URL. Expires 7 days from creation. |
expires_at |
string | null |
Currently always null — not populated by this call. |
API Savis Prayz
Dɛn kin bil wan wan savis fɔ wan minit ɛn dɛn nɔ de pat pan plan — yu de pe fɔ wetin yu kɔl nɔmɔ, pan wan flat ret we nɔ gɛt ɛni ia diskɔnt. Na ful vidio lokalizayshɔn nɔmɔ de pul di minit dɛn we de insay wan plan. Teks-based savis dɛn de mita wit lɛk 1,000 karakta dɛn fɔ wan minit.
| Savis | Wetin yu de sɛn → wetin yu de gɛt | Ɔmɔs |
|---|---|---|
| Voys Separeshɔn | Odio → klin vɔys + bakgrɔn trak dɛn | $0.02/min |
| Transkripshɔn (STT) . | Odio → tɛks transkript wit pɔntueshɔn ɛn wɔd-lɛvel tɛm | $0.02/min |
| Pro Transkripshɔn | Odio → Voys Separeshɔn + Transkripshɔn (STT), di bɛst fɔ ɔdio we gɛt nɔys | $0.05/min |
| Transleshɔn | Teks → tɛks we dɛn translet | $0.02/min |
| Narɛt (TTS) fɔ tɔk bɔt dis. | Teks → narrated odio insay wan vɔys we dɛn dɔn sɛt | $0.03/min |
| Translet + Narrate — vɔys we dɛn dɔn sɛt bifo tɛm | Teks → translet, den narrated in wan preset vois | $0.06/min |
| Translet + Narrate — vɔys we mach | Teks + wan ≥1-min vɔys sampul → translet, dɔn dɛn narɛt insay di vɔys we mach. Sɔs ɛn target langwej fɔ difrɛn. | $0.08/min |
Ful vidio lokalizayshɔn na di wan API savis we tay to wan plan: i de drɔ pan yu plan in inklud minit dɛm, dɔn ɔva ej na di plan ret. Si plan ɛn prayz