Ave Public Captioning API
Base URL
https://api.el.ai/v1 Authentication
Send a workspace API key as a bearer token on every request: Authorization: Bearer el_live_….
Read-only keys can read jobs, captions and the account; full keys can also upload and order. More on keys.
Endpoints
Objects
The shapes the API sends and receives. Each endpoint page shows the ones it uses.
CreateJob
Provide exactly one source: media_url OR upload_id. Sending both or neither is invalid. Choose the Media URL or Uploaded file variant below.
media_urlstringPublic HTTP(S) video/audio URL, including supported YouTube links. Required only for the Media URL variant; omit when using upload_id.
- ≥ 1 chars
upload_idstring · uuidID returned by POST /uploads, after uploading the file. Required only for the Uploaded file variant; omit when using media_url.
titlestringDashboard title and download filename. Defaults to the generated job ID. Default maximum: 300 characters, configurable per workspace.
- ≥ 1 chars
stylestringclean removes fillers, false starts, and stutters; verbatim keeps every spoken word.
- One of
- clean
- verbatim
- Default
- clean
modelstringCaptioning model. Only ave-base is supported.
- One of
- ave-base
- Default
- ave-base
speaker_labelsbooleanIdentify speaker turns. Set false for dialogue without labels.
- Default
- true
speaker_label_stylestringSRT/VTT labels: >> NAME:, [NAME], NAME:, or dashes without names. Ignored when speaker_labels is false. Transcripts use their native speaker headings; JSON has a separate speaker field.
- One of
- gt_name
- brackets
- colon
- dashes
- Default
- gt_name
atmosphericsbooleanInclude meaningful non-speech sounds. Uses the same add-on pricing as dashboard checkout.
- Default
- true
profanitystringKeep profanity, mask it (f***), replace it with [expletive], or omit it. Does not alter source audio.
- One of
- as_spoken
- mask
- label
- omit
- Default
- as_spoken
redactionsRedactionsPrivacy controls for caption text, using the same redaction pricing as checkout. Source audio and video are unchanged.
Accepts one of:- Standard replacement
- Custom replacement requires
replacement,custom_replacement
piibooleanRedact personal data such as emails and phone numbers.
- Default
- false
namesbooleanRedact named individuals.
- Default
- false
organizationsbooleanRedact organization names.
- Default
- false
termsarray of stringCustom terms to redact, one term per item; each must be a nonblank single line.
- Default
- []
- ≤ 200 items
replacementstringReplace with [REDACTED], a category such as [EMAIL], nothing, or custom_replacement.
- One of
- redacted
- category_label
- silent
- custom_string
- Default
- category_label
custom_replacementstringRequired when replacement is custom_string. Nonblank, single-line text.
- 1–120 chars
glossaryarray of stringNames and terms with preferred spelling, used where the audio supports them. Defaults to at most 200 terms of 100 characters each; configurable per workspace.
- Default
- []
webhook_urlstring · uriPublic HTTPS callback. Redirects are not followed.
- ≤ 2048 chars
- matches ^https://
metadatamap of stringYour string key–value pairs, returned on the job and in webhook events. Defaults: 20 keys of 1–40 characters, values up to 500 characters. These maxima are configurable per workspace.
Job
idstring · uuidobjectstring- One of
- job
statusstring- One of
- queued
- processing
- completed
- cancelled
progressinteger · nullable- 0–100
etastring · date-time · nullabletitlestringmediaobjecttypestring- One of
- url
- upload
urlstring · nullableupload_idstring · uuid · nullableduration_secondsnumber
languagestring · nullableoptionsobjectstylestringclean removes fillers, false starts, and stutters; verbatim keeps every spoken word.
- One of
- clean
- verbatim
- Default
- clean
modelstringCaptioning model. Only ave-base is supported.
- One of
- ave-base
- Default
- ave-base
speaker_labelsbooleanIdentify speaker turns. Set false for dialogue without labels.
- Default
- true
speaker_label_stylestringSRT/VTT labels: >> NAME:, [NAME], NAME:, or dashes without names. Ignored when speaker_labels is false. Transcripts use their native speaker headings; JSON has a separate speaker field.
- One of
- gt_name
- brackets
- colon
- dashes
- Default
- gt_name
atmosphericsbooleanInclude meaningful non-speech sounds. Uses the same add-on pricing as dashboard checkout.
- Default
- true
profanitystringKeep profanity, mask it (f***), replace it with [expletive], or omit it. Does not alter source audio.
- One of
- as_spoken
- mask
- label
- omit
- Default
- as_spoken
redactionsRedactionsPrivacy controls for caption text, using the same redaction pricing as checkout. Source audio and video are unchanged.
Accepts one of:- Standard replacement
- Custom replacement requires
replacement,custom_replacement
piibooleanRedact personal data such as emails and phone numbers.
- Default
- false
namesbooleanRedact named individuals.
- Default
- false
organizationsbooleanRedact organization names.
- Default
- false
termsarray of stringCustom terms to redact, one term per item; each must be a nonblank single line.
- Default
- []
- ≤ 200 items
replacementstringReplace with [REDACTED], a category such as [EMAIL], nothing, or custom_replacement.
- One of
- redacted
- category_label
- silent
- custom_string
- Default
- category_label
custom_replacementstringRequired when replacement is custom_string. Nonblank, single-line text.
- 1–120 chars
glossaryarray of stringwebhook_urlstring · nullable
costobject · nullableamountstringDecimal amount in USD, net of refunds.
currencystring- One of
- usd
cancellationobject · nullablereasonstring- One of
- unsupported_language
- unsupported_media
- unusable_media
- media_unavailable
- deleted
- not_started
messagestring
captionsobject · nullablesrtstring · urivttstring · uritxtstring · uridocxstring · urijsonstring · uri
metadatamap of stringString values. Defaults: 20 keys of 1–40 characters, values up to 500 characters. These maxima are configurable per workspace.
created_atstring · date-timecompleted_atstring · date-time · nullable
Error
errorobjectcodestringmessagestringparamstring
Upload
idstring · uuidobjectstring- One of
- upload
upload_urlstring · uriPresigned URL for uploading raw file bytes with PUT. No Authorization or storage-specific headers are needed.
methodstring- One of
- PUT
max_size_bytesinteger- One of
- 5242880000
expires_atstring · date-time
Account
objectstring- One of
- account
workspaceobjectidstring · uuidnamestring
keyobjectidstring · uuidnamestringaccessstring- One of
- full
- read_only
billingobjectmodestring · nullable- One of
- prepaid
- invoiced
balancestring · nullablecurrencystring- One of
- usd
rate_per_minutestring · nullable
Event
idstring- matches ^evt_
objectstring- One of
- event
typestring- One of
- job.completed
- job.cancelled
created_atstring · date-timedataJobidstring · uuidobjectstring- One of
- job
statusstring- One of
- queued
- processing
- completed
- cancelled
progressinteger · nullable- 0–100
etastring · date-time · nullabletitlestringmediaobjecttypestring- One of
- url
- upload
urlstring · nullableupload_idstring · uuid · nullableduration_secondsnumber
languagestring · nullableoptionsobjectstylestringclean removes fillers, false starts, and stutters; verbatim keeps every spoken word.
- One of
- clean
- verbatim
- Default
- clean
modelstringCaptioning model. Only ave-base is supported.
- One of
- ave-base
- Default
- ave-base
speaker_labelsbooleanIdentify speaker turns. Set false for dialogue without labels.
- Default
- true
speaker_label_stylestringSRT/VTT labels: >> NAME:, [NAME], NAME:, or dashes without names. Ignored when speaker_labels is false. Transcripts use their native speaker headings; JSON has a separate speaker field.
- One of
- gt_name
- brackets
- colon
- dashes
- Default
- gt_name
atmosphericsbooleanInclude meaningful non-speech sounds. Uses the same add-on pricing as dashboard checkout.
- Default
- true
profanitystringKeep profanity, mask it (f***), replace it with [expletive], or omit it. Does not alter source audio.
- One of
- as_spoken
- mask
- label
- omit
- Default
- as_spoken
redactionsRedactionsPrivacy controls for caption text, using the same redaction pricing as checkout. Source audio and video are unchanged.
Accepts one of:- Standard replacement
- Custom replacement requires
replacement,custom_replacement
piibooleanRedact personal data such as emails and phone numbers.
- Default
- false
namesbooleanRedact named individuals.
- Default
- false
organizationsbooleanRedact organization names.
- Default
- false
termsarray of stringCustom terms to redact, one term per item; each must be a nonblank single line.
- Default
- []
- ≤ 200 items
replacementstringReplace with [REDACTED], a category such as [EMAIL], nothing, or custom_replacement.
- One of
- redacted
- category_label
- silent
- custom_string
- Default
- category_label
custom_replacementstringRequired when replacement is custom_string. Nonblank, single-line text.
- 1–120 chars
glossaryarray of stringwebhook_urlstring · nullable
costobject · nullableamountstringDecimal amount in USD, net of refunds.
currencystring- One of
- usd
cancellationobject · nullablereasonstring- One of
- unsupported_language
- unsupported_media
- unusable_media
- media_unavailable
- deleted
- not_started
messagestring
captionsobject · nullablesrtstring · urivttstring · uritxtstring · uridocxstring · urijsonstring · uri
metadatamap of stringString values. Defaults: 20 keys of 1–40 characters, values up to 500 characters. These maxima are configurable per workspace.
created_atstring · date-timecompleted_atstring · date-time · nullable
Redactions
Privacy controls for caption text, using the same redaction pricing as checkout. Source audio and video are unchanged.
piibooleanRedact personal data such as emails and phone numbers.
- Default
- false
namesbooleanRedact named individuals.
- Default
- false
organizationsbooleanRedact organization names.
- Default
- false
termsarray of stringCustom terms to redact, one term per item; each must be a nonblank single line.
- Default
- []
- ≤ 200 items
replacementstringReplace with [REDACTED], a category such as [EMAIL], nothing, or custom_replacement.
- One of
- redacted
- category_label
- silent
- custom_string
- Default
- category_label
custom_replacementstringRequired when replacement is custom_string. Nonblank, single-line text.
- 1–120 chars