Reference · Video
POST/captions/quote
Price it: burn captions into a clip
The price for exactly this body, the balance beside it and any notes. Nothing runs and nothing is charged. Run it with POST /api/v1/captions, the same body, confirmCredits set to credits and the same Idempotency-Key.
- Key needs
create· Make things and spend credits- Runs it
POST /captions- Answers
- A quote · free
Request
curl -X POST https://vessero.com/api/v1/captions/quote \ -H "Authorization: Bearer $VESSERO_API_KEY" \ -H "Idempotency-Key: 47f8f6f5-ea00-4fb1-925f-76aac956a0ec" \ -H "Content-Type: application/json" \ -d '{ "source": { "kind": "upload", "key": "text" } }'
Response200 OK
{ "object": "quote", "credits": 12, "balance": 840, "lines": [ "1 image × 12 (Nano Banana Pro · 4K)" ], "notes": [], "requestId": "47f8f6f5-ea00-4fb1-925f-76aac956a0ec", "run": { "method": "POST", "path": "/api/v1/images", "confirmCredits": 12, "idempotencyKey": "47f8f6f5-ea00-4fb1-925f-76aac956a0ec" } }
Header
- Idempotency-KeystringYour id for this request: 8–64 letters, digits, - or _. A repeat within 10 minutes gets the first answer back and never runs twice. Use the same one for the quote and the run.
Body
- sourceobject · kind upload | video | media | cardrequiredThe clip to caption.
- stylestringThe caption style: word-pop (Word Pop), impact-slam (Impact Slam), clean-subtitle (Clean Subtitle), editorial-minimal (Editorial), luxury-serif (Luxury Serif), glass-tech (Glass Tech), marker-energy (Marker Energy), retro-collage (Retro Collage). Default: word-pop.
word-popimpact-slamclean-subtitleeditorial-minimalluxury-serifglass-techmarker-energyretro-collage - colourstringThe lit word's colour: style, yellow, lime, cyan, pink, orange; "style" keeps the style's own (the default). Clean Subtitle and Luxury Serif keep theirs.
styleyellowlimecyanpinkorange - sizestring | numberHow big: S, M (the style's own, the default), L or XL, or a per cent of the style's own, 60–160.
- positionstring | numberWhere the captions sit: top, middle or bottom (the default) keep to the area the apps leave clear; lowest is the very bottom, below it, where TikTok, Reels and Shorts may lay their own caption over the words. Or the block’s centre as a share of the frame’s height, 0–1.
- shadowstringThe shadow under the words: default, none, light, medium or strong.
defaultnonelightmediumstrong - linesobject[] · up to 600The lines to caption, when the person fixed what was heard: every line, in order, each at the times the quote gave it (a fixed word keeps its timing). Leave it out to caption the lines as heard.
- startnumberrequiredWhen the line starts, in seconds.
- endnumberrequiredWhen it ends, in seconds.
- textstringrequiredIts words, with any misheard word fixed.
Answers
- 200quoteThe price for exactly this body, your balance and any notes. Nothing ran.
- 400invalid_requestA field is missing or not accepted: see details.
- 403feature_unavailableThe studio this needs is switched off for the account right now.
- 429rate_limitedToo many calls this minute: see Retry-After.