Developer API

Isama ang lokalisasyon ng Addavox sa iyong daloy ng trabaho. Piliin ang Video Dubbing API para sa kumpletong lokalisasyon ng video na may kasamang timing, QA, mga subtitle, at kumpletong access sa Review Editor sa pamamagitan ng mga magic link. Maaari ka ring pumili ng alinman sa mga indibidwal na service API para sa iba pang mga gawain, tulad ng pagsasalaysay ng isang libro o pagsasalin at pagsasalaysay ng isang libro nang sabay-sabay.

Mga Susi ng API

Ang mga API key ay pagmamay-ari ng isang Addavox account. Gumawa ng isa gamit ang button na Simulan ang pag-localize sa itaas, pagkatapos ay bumuo ng isang key sa app — ang bawat tawag ay sisingilin sa account na iyon. Para bumuo at sumubok ng isang integration, humiling muna ng sandbox key sa app.

Ang mga indibidwal na serbisyo API ay binabayaran mula sa iyong credit balance, na iyong ilalagay sa top-up at pamamahalaan sa iyong Addavox account. Ang buong video localization ay eksepsiyon: ginagamit nito ang parehong presyo gaya ng planong pipiliin mo sa Mga Plano at Pagpepresyo — kasama na ang mga minuto ng iyong plano, pagkatapos ay ang overage sa rate ng plano.

Nagpaplano ng isang integrasyon? Mag-book ng tawag sa pagsasama (magbubukas sa bagong tab)

Batayang URL: https://api.addavox.com/api/v1

Header ng awtorisasyon: X- API -Susi: YOUR_KEY

Sanggunian ng API

Ang kumpletong interactive schema at mga karagdagang endpoint ay makukuha sa pamamagitan ng OpenAPI.

Full Video Localization

POST /api/v1/localize-video API key

Video Dubbing

Full video dubbing: send a video URL + target languages, get localized videos back.

Request body

FieldTypeRequiredDescription
video_urlstringYesHTTPS URL of the source video to dub.
target_languagesstring[]YesOne or more target language codes.
source_languagestringYesLanguage of the source video's spoken audio, e.g. 'en'.
project_namestring | nullNoOptional project name. Defaults to 'API Video: {filename}'.
enable_llm_qabooleanNoOpt-in LLM quality-review pass over translations before voice synthesis. Adds processing time.
modeLocalizationModeNoDrives consent. Default 'voice_matched' (voice matching: each speaker's tone and emotion carried into the target language); 'standard' uses preset synthetic voices.
consentConsentAttestationYesConsent attestation; see Consent & Authorization.

Response

FieldTypeDescription
job_idstringMaster job ID — poll for per-language status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
target_languagesstring[]Echoed target language codes.
ConsentAttestation
speaker_consent_obtainedboolean | nullAttests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only.
content_rights_confirmedbooleanAttests ownership or a valid license to the content. Required in both modes.
eula_acceptedbooleanConfirms the client has read and accepts the Addavox EULA. Required in both modes.
attested_bystringEmail or identifier of the responsible individual or system.
attested_atstringISO 8601 timestamp of attestation. Must be within 24 hours of the request.

API Services

POST /api/v1/separate API key

Voice Separation

Split caller-supplied audio into vocals + background stems (async job).

Request body

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio to separate.
project_namestring | nullNoOptional project name.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
chargeChargeInfoBilling detail for this submission.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.
POST /api/v1/transcribe API key

Transcribe

Transcribe caller-supplied audio and return a transcript (async job).

Request body

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio to transcribe.
languagestringYesSpoken language of the audio (BCP-47), e.g. 'en-US'.
project_namestring | nullNoOptional project name.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
chargeChargeInfoBilling detail for this submission.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.
POST /api/v1/pro-transcribe API key

Pro Transcription

Separate, then transcribe the isolated vocals stem — a cleaner transcript (async job).

Request body

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio to transcribe.
languagestringYesSpoken language of the audio (BCP-47), e.g. 'en-US'.
project_namestring | nullNoOptional project name.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
chargeChargeInfoBilling detail for this submission.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.
POST /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

FieldTypeRequiredDescription
textstringYesText to translate.
target_languagestringYesTarget language code, e.g. 'es' or 'es-ES'.
source_languagestringYesSource language code, e.g. 'en' or 'en-US'.

Response

FieldTypeDescription
translated_textstringThe translated text.
source_languagestringSource language supplied on the request.
target_languagestringTarget language the text was translated into.
chargeChargeInfoBilling detail for this translation.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount 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"}'
POST /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

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio; also used to identify/match speaker voices.
source_languagestringYesSource language code, e.g. 'en-US'.
target_languagestringYesTarget language code, e.g. 'es-ES'.
segmentsExternalSegment[]YesThe pre-segmented transcript to voice.
project_namestring | nullNoOptional project name. Defaults to 'API: {source}->{target}'.
consentConsentAttestationYesConsent attestation; see Consent & Authorization.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
voice_typestringVoice type resolved from the request mode.
total_segmentsintegerEchoed count of submitted segments.
chargeChargeInfoBilling detail for this submission.
ExternalSegment
source_textstringOriginal text for this segment.
start_timenumberSegment start, in seconds. Used for speaker-voice matching only, not output timing.
end_timenumberSegment end, in seconds. Used for speaker-voice matching only, not output timing.
wordsobject[]Word-level timing; defaults to empty.
speakerobject | nullSpeaker metadata for voice selection.
translated_textstring | nullPre-supplied translation. If provided, translation is skipped for this segment.
ConsentAttestation
speaker_consent_obtainedboolean | nullAttests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only.
content_rights_confirmedbooleanAttests ownership or a valid license to the content. Required in both modes.
eula_acceptedbooleanConfirms the client has read and accepts the Addavox EULA. Required in both modes.
attested_bystringEmail or identifier of the responsible individual or system.
attested_atstringISO 8601 timestamp of attestation. Must be within 24 hours of the request.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.
POST /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

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio; also used to identify/match speaker voices.
source_languagestringYesSource language code, e.g. 'en-US'.
target_languagestringYesTarget language code, e.g. 'es-ES'.
segmentsExternalSegment[]YesThe pre-segmented transcript to voice.
project_namestring | nullNoOptional project name. Defaults to 'API: {source}->{target}'.
consentConsentAttestationYesConsent attestation; see Consent & Authorization.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
voice_typestringVoice type resolved from the request mode.
total_segmentsintegerEchoed count of submitted segments.
chargeChargeInfoBilling detail for this submission.
ExternalSegment
source_textstringOriginal text for this segment.
start_timenumberSegment start, in seconds. Used for speaker-voice matching only, not output timing.
end_timenumberSegment end, in seconds. Used for speaker-voice matching only, not output timing.
wordsobject[]Word-level timing; defaults to empty.
speakerobject | nullSpeaker metadata for voice selection.
translated_textstring | nullPre-supplied translation. If provided, translation is skipped for this segment.
ConsentAttestation
speaker_consent_obtainedboolean | nullAttests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only.
content_rights_confirmedbooleanAttests ownership or a valid license to the content. Required in both modes.
eula_acceptedbooleanConfirms the client has read and accepts the Addavox EULA. Required in both modes.
attested_bystringEmail or identifier of the responsible individual or system.
attested_atstringISO 8601 timestamp of attestation. Must be within 24 hours of the request.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.
POST /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 an audio sample you provide. There is no minimum length; samples of about 3–5 seconds or more work best. Source and target language must differ.

Request body

FieldTypeRequiredDescription
audio_urlstringYesHTTPS URL of the source audio; also used to identify/match speaker voices.
source_languagestringYesSource language code, e.g. 'en-US'.
target_languagestringYesTarget language code, e.g. 'es-ES'.
segmentsExternalSegment[]YesThe pre-segmented transcript to voice.
project_namestring | nullNoOptional project name. Defaults to 'API: {source}->{target}'.
consentConsentAttestationYesConsent attestation; see Consent & Authorization.

Response

FieldTypeDescription
job_idstringPoll this job ID for status.
project_idstringThe project created for this job.
statusstringAlways 'queued' on submit.
voice_typestringVoice type resolved from the request mode.
total_segmentsintegerEchoed count of submitted segments.
chargeChargeInfoBilling detail for this submission.
ExternalSegment
source_textstringOriginal text for this segment.
start_timenumberSegment start, in seconds. Used for speaker-voice matching only, not output timing.
end_timenumberSegment end, in seconds. Used for speaker-voice matching only, not output timing.
wordsobject[]Word-level timing; defaults to empty.
speakerobject | nullSpeaker metadata for voice selection.
translated_textstring | nullPre-supplied translation. If provided, translation is skipped for this segment.
ConsentAttestation
speaker_consent_obtainedboolean | nullAttests that explicit consent has been obtained from all identifiable speakers. Required for voice_matched mode only.
content_rights_confirmedbooleanAttests ownership or a valid license to the content. Required in both modes.
eula_acceptedbooleanConfirms the client has read and accepts the Addavox EULA. Required in both modes.
attested_bystringEmail or identifier of the responsible individual or system.
attested_atstringISO 8601 timestamp of attestation. Must be within 24 hours of the request.
ChargeInfo
amountnumberTotal amount charged for this submission, in USD.
rate_per_minnumberPer-minute rate applied.
duration_minnumberBilled minutes (for text services, characters/1000).
num_languagesintegerNumber of target languages billed.
credit_balance_afternumberAccount credit balance after the charge, in USD.

Jobs & Results

GET /api/v1/jobs/{job_id} API key

Job Status

Check the status of an external localization job.

Response

FieldTypeDescription
job_idstringEchoes the job ID from the URL.
typestringJob type: voice | translate_voice | transcribe_translate_voice | video_dub.
statusstringqueued | running | completed | failed. For a video_dub job this is a true aggregate of its per-language children, not a per-child value.
total_segmentsintegerTotal segment count. Always 0 on a video_dub master job.
completed_segmentsintegerCompleted segment count. Always 0 on a video_dub master job.
errorstring | nullFailure message when status is 'failed'.
GET /api/v1/jobs/{job_id}/result API key

Job Result

Get the download URL for a completed external localization job.

Response

FieldTypeDescription
transcript_urlstring | null(Transcription job) Signed URL of the transcript JSON.
vocals_urlstring | null(Separation job) Signed URL of the vocals stem.
background_urlstring | null(Separation job) Signed URL of the background stem.
download_urlstring | nullSigned URL (24h). Single voice track for an audio job, or a zip of all languages for a video dub.
durationnumber | null(Audio job) Duration in seconds.
file_sizeinteger | null(Audio job) File size in bytes.
project_idstring | null(Video dub) The project ID.
review_urlstring | null(Video dub) Web review URL for the project.
languagesVideoJobResultLanguage[] | null(Video dub) Per-language result URLs.
VideoJobResultLanguage
languagestringTarget language code for this result.
video_urlstring | nullSigned URL of the dubbed video (24h expiry).
audio_urlstring | nullSigned URL of the dubbed audio track (24h expiry).
subtitle_urlstring | nullSigned URL of the subtitle file (24h expiry).
DELETE /api/v1/jobs/{job_id} API key

Cancel Job

Cancel a queued or running job and refund the charge to the account balance.

Response

FieldTypeDescription
job_idstringEchoes the cancelled job ID.
statusstringAlways 'cancelled'.
refunded_amountnumberAmount refunded for the undelivered work, in USD.
GET /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

FieldTypeDescription
jobsJobListItem[]The page of jobs, newest first.
totalintegerTotal jobs matching the query, across all pages.
limitintegerPage size used.
offsetintegerPage offset used.
JobListItem
job_idstringJob ID.
project_idstringProject the job belongs to.
typestringJob type.
target_languagestring | nullTarget language code, if applicable.
statusstringqueued | running | completed | failed | cancelled.
total_segmentsintegerTotal segment count.
completed_segmentsintegerCompleted segment count.
errorstring | nullFailure message when the job failed.
created_atstring | nullISO 8601 creation time.
started_atstring | nullISO 8601 start time, if started.
completed_atstring | nullISO 8601 completion time, if finished.
chargeJobListCharge | nullCharge summary, present if the job was billed.
GET /api/v1/jobs/{job_id}/webhooks API key

Webhook Log

Return the webhook delivery log for a job (all attempts, newest first).

Response

FieldTypeDescription
job_idstringEchoes the job ID from the URL.
deliveriesWebhookDelivery[]All delivery attempts for the job, newest first.
WebhookDelivery
idstring | nullDelivery attempt ID.
eventstring | nullEvent type delivered, e.g. 'job.completed'.
attemptinteger | nullAttempt number for this event.
status_codeinteger | nullHTTP status returned by the endpoint, if any.
errorstring | nullDelivery error, if the attempt failed.
delivered_atstring | nullISO 8601 time of the attempt.
POST /api/v1/jobs/{job_id}/webhooks/retry API key

Retry Webhook

Re-trigger webhook delivery for the most recent event on a job.

Response

FieldTypeDescription
statusstringAlways 'queued' — the event was re-queued for delivery.
eventstringThe event type that was re-queued.

Account & Reference

GET /api/v1/account API key

Account

Return credit balance and current plan for the authenticated account.

Response

FieldTypeDescription
account_idstringThe account's ID.
credit_balancenumberPrepaid credit balance, in USD.
plan_idstringCurrent plan ID, e.g. 'free', 'creator'.
plan_namestringHuman-readable plan name.
included_minutesintegerLocalization minutes included in the plan per period.
minutes_usednumberIncluded minutes used this period.
minutes_remainingnumberIncluded minutes remaining this period.
overage_ratenumberPer-minute overage rate once included minutes are exhausted, in USD.
billing_intervalstring | null'monthly' or 'annual'; null on the free plan.
subscription_statusstringSubscription status, e.g. 'active', 'past_due', 'free'.
GET /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

GET /api/v1/languages API key

List Languages

Return supported languages. Query params: detail — if true, include provider metadata per language

POST /api/v1/projects/{project_id}/reviewers API key

Invite Reviewer

Invite a reviewer to a project (API endpoint).

Request body

FieldTypeRequiredDescription
namestringYesReviewer's display name, used in the invite email.
emailstringYesWhere the magic-link invite is sent.
languagestringYesTarget language code the reviewer will edit.

Response

FieldTypeDescription
idstringNew reviewer ID.
namestringEchoed from the request.
emailstringEchoed from the request.
tokenstringMagic-link token, embedded in the emailed URL. Expires 7 days from creation.
expires_atstring | nullCurrently always null — not populated by this call.

Pagpepresyo ng Serbisyo API

Ang mga indibidwal na serbisyo ay sinisingil kada minuto at hindi bahagi ng isang plano — magbabayad ka lamang para sa iyong tinatawagan, sa isang patag na rate na walang taunang diskwento. Tanging ang full video localization lamang ang gumagamit ng mga minutong kasama sa isang plano. Ang mga serbisyong nakabatay sa teksto ay sumusukat sa humigit-kumulang 1,000 karakter kada minuto.

Serbisyo Ang ipinapadala mo → ang natatanggap mo I-rate
Paghihiwalay ng Boses Audio → malinis na boses + mga track sa background $0.02/min
Transkripsyon (STT) Audio → transkripsyon ng teksto na may bantas at tiyempo sa antas ng salita $0.02/min
Transkripsyon ng Pro Audio → Paghihiwalay ng Boses + Transkripsyon (STT), pinakamahusay para sa maingay na audio $0.05/min
Pagsasalin Teksto → isinalin na teksto $0.02/min
Magsalaysay (TTS) Isinalin na teksto → isinalaysay na audio sa isang paunang natukoy na boses na iyong pinili $0.03/min
Isalin + Isalaysay — naka-set na boses Teksto → isinalin, pagkatapos ay isinalaysay sa isang paunang natukoy na boses. Dapat magkaiba ang pinagmulan at target na wika. $0.06/min
Isalin + Isalaysay — katugmang boses Teksto + isang sample ng boses (walang minimum na haba; 3–5 segundo o higit pa ang pinakamainam) → isinalin, pagkatapos ay isinalaysay sa katugmang boses. Dapat magkaiba ang pinagmulan at target na wika. $0.08/min

Ang full video localization ay ang tanging serbisyong API na nakatali sa isang plano: kumukuha ito ng mga minutong kasama sa iyong plano, pagkatapos ay may overage sa rate ng plano. Tingnan ang mga plano at presyo