Reference
Changelog
What changed for integrators, version by version. Existing requests keep working; read the "behaviour changes" list before you upgrade.
1.3.0
Requests and responses are unchanged; credits now come from a plan.
- Plans. The dashboard sells the Promoat app's plans, at the app's prices: Weekly $9.99 for 559 credits a week, Monthly $29.99 for 2,219 credits a month, Monthly 3.6× $99.99 for 7,999 credits a month. Credits are added each time a plan renews and never expire. See Buying credits.
- Plan changes. A bigger plan or a longer interval starts now, prorated; a smaller plan or a shorter interval at the end of the period. Cancelling keeps the plan to the end of the period. See Changing or cancelling a plan.
- Credit packs for subscribers, bought once: Small $12.99 for 779, Medium $24.99 for 1,499 credits.
- Balances are kept, and job prices are unchanged (price table
2026-10-11). - Onboarding shows moving examples of real output. It still ends on the 25 trial credits; plans are on the dashboard.
- Embedded partners: the signed
/partner/billinglink andPOST /billing/checkout-sessionwork as before.
1.2.1
Requests, responses and prices are unchanged.
scene_prompttakes up to 2,000 characters (was 400) and the Fix a scenedescriptionup to 2,000 (was 500). The whole text is used; longer is still400 INVALID_BODY.- Failed jobs report their real
error_code. Some failures that ran out of retries showedINTERNAL; they now carry their own code, such asLINE_TOO_LONG,VOICE_UNAVAILABLE,FIX_NOT_APPLIEDor aPROVIDER_*code (see Why a job failed). A line that cannot fit its scene fails at once. - Talking heads keep the photo's outfit, hair, place and framing in every clip (first render and every edit), and the engine no longer draws captions on them.
use_dynamic_captionsworks as before.
1.2.0
Requests and responses are unchanged; prices are lower.
- New video engine and prices (price table
2026-10-11). A video is priced by its length, the same at every resolution, for talking heads and scenes: with your own audio 15 s is 30 credits and 60 s is 73. See Credits & pricing. - Edits are priced the same way: an 8 s scene is 9 (21 with a new frame); Fix sound with a new 15 s take on a talking head is 18.
- Quote
linesno longer includereference_allowance.
1.1.1
Additive: existing fields and values are unchanged.
- Every error on every endpoint has
error,error_code(UPPER_SNAKE) andmessage. Olderrorstrings and the lowercasecodeare kept; every401now haserror_codeUNAUTHORIZED. - Clone and TTS errors:
error_codeis nowNO_SPEECH,CLONE_UNAVAILABLEandVOICE_UNAVAILABLE(1.1.0 sentno_speech,clone_unavailable,voice_not_found; those values moved tocode). topic/audienceon/videosreturn aFIELD_IGNOREDwarning: they never changed the video. Put the brief invideo_idea/scene_prompt.
1.1.0
A guided tour with a link to every new feature is on What's new.
Behaviour changes
- New video engines. Talking-head and scene videos now run on the current engines: sharper output, and prices follow price table
2026-09-30(returned asprice_table_version). Example: a 15 s talking head at 768P with your own audio is 125 credits. See Credits & pricing. - Default resolution is now
768P(was 480p).480P,768Pand1080Pare accepted;720pis served as 768P with aRESOLUTION_MAPPEDwarning. /ttsuses the v4 voice model. Same request, but voices sound different from before.- Captions remain a talking-head add-on (10 credits);
captions_positionnow also acceptscenter. - The quote is a ceiling. Video jobs reserve the quote before starting and charge
min(actual, reserved). Jobs quiet for 75 minutes fail withSTALE_TIMEOUTand are refunded. - First voice clone is free, once per account; later clones 30 credits.
- Non-https URLs. A non-https
first_frame_urloraudio_urlis ignored with aFIELD_IGNOREDwarning instead of being used. - Selfie URL check. Selfies and reference images that fail the URL check are dropped with a
FIELD_IGNOREDwarning; we store re-hosted copies, never your URL. - Legacy tuning fields (
fast,lipsync,narration_mode, …) are accepted and ignored with a warning.audio_urlis now allowed on scene videos.
Errors
- Errors on
/videos,/videos/estimateand the first-frame 500 gained anerror_code; since 1.1.1 every error on every endpoint haserror,error_codeandmessage. Olderrorstrings and HTTP statuses are kept; new failures use the UPPER_SNAKE code aserror. See Errors & limits. FIRST_FRAME_KIND_MISMATCH: afirst_frame_asset_idmust be made for the same video type.503 TRY_AGAINwhen briefly unavailable (nothing charged).
New endpoints
| Endpoint | What it does |
|---|---|
POST /videos/scene-plan | Split a script into clip lines (free). |
GET /videos/{id}/scenes | List a video's scenes. |
POST /videos/{id}/fix-scene | Redo one scene. |
POST /videos/{id}/edit-script | Rewrite lines. |
POST /videos/{id}/fix-sound | Replace the sound. |
GET /voices/presets | List studio voices (free). |
POST /voices/{id}/reclone | Re-clone a voice. |
POST /characters/{id}/regenerate | New sheet, same person. |
New fields
/videos:scene_photos,scene_prompt,scene_lines,video_mode,voice_mode+target_seconds(silent videos),voice_settings,language,first_frame_asset_id,expected_credits,client_request_id. The response addscredits_quoted,job_type,resolution,price_table_version,warnings,duplicate; the estimate addslinesandclips.- Idempotency:
Idempotency-Keyheader orclient_request_id— retries return the original job withduplicate: true. expected_credits: lock the price; a higher quote →409 QUOTE_MISMATCH. A paid fix-sound requires it — call withdry_run: truefirst.- Job status:
phase,progress,poster_url,error_code,source_workflow_id, andeditable/scenes_urlon the result. New workflow-id prefixespartner_h3t_,partner_h3v_,partner_se_,partner_fs_. /images/first-frame:kind,scene_prompt,scene_photos,script,language; response addsframe_id./characters: response addspresenter_gender,head_covering,warnings./tts:language; response addscharacters; a dead voice →409 VOICE_UNAVAILABLE.
Added after review (same release)
- Scene photos: a photo that can't be fetched safely while a scene job runs is dropped with a
SCENE_PHOTO_DROPPEDwarning, and the job is re-priced with the photos actually used (never above the reserve). See Scene photos and roles. - Free first clone: after 20 failed free attempts the API answers
409 FREE_CLONE_ATTEMPTS_EXHAUSTEDinstead of charging. Concurrent clones past the voice cap get409 VOICE_LIMIT_REACHEDand are refunded. - One
Idempotency-Keyis race-safe across talking-head and scene requests: one job is made.
Billing
- The dashboard sold credits as a one-time pack. Since 1.3.0, credits come from a plan.
Rollback
Switching back to the previous engines
The operator of this deployment can switch video jobs back to the previous engines by setting PARTNER_LEGACY_MODELS_ENABLED=true. Under it, the new-only fields are ignored with a FIELD_IGNORED warning and the previous pricing applies.