{"openapi":"3.1.0","info":{"title":"Reely API","version":"1.0.0","summary":"Hebrew reels from a talking-head video: captions, titles, music, every format.","description":"Every call is authenticated with an API key (`Authorization: Bearer rly_live_…`). Test keys (`rly_test_…`) are free and render small watermarked reels. Amounts are in agorot (1/100 of a shekel). Errors are RFC 9457 problem details with a Hebrew `detail`.","contact":{"name":"Reely","url":"https://app.reely.co.il/developers/docs","email":"support@reely.co.il"}},"servers":[{"url":"https://app.reely.co.il/api","description":"Production"}],"tags":[{"name":"account","description":"Your account, balance, prices and brands"},{"name":"uploads","description":"Getting a file to Reely"},{"name":"videos","description":"Videos: processing and transcription"},{"name":"renders","description":"Reels: price, render, formats, captions"},{"name":"voices","description":"Voices"}],"paths":{"/v1/me":{"get":{"operationId":"me.get","summary":"The account and key behind this call","description":"Who you are calling as: the account, the key's name, project and scopes, and whether it is a live or test key.","tags":["account"],"security":[{"apiKey":[]}],"x-scope":"read","responses":{"200":{"description":"The account and key behind this call","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Account"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"החשבון והמפתח של הקריאה","x-mcp-tool":"whoami"}},"/v1/balance":{"get":{"operationId":"balance.get","summary":"Credit balance","description":"What can be spent now, and what is held for renders still running. Amounts are in agorot.","tags":["account"],"security":[{"apiKey":[]}],"x-scope":"read","responses":{"200":{"description":"Credit balance","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Balance"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"יתרת קרדיטים","x-mcp-tool":"get_balance"}},"/v1/prices":{"get":{"operationId":"prices.list","summary":"Prices","description":"Every price, from the same registry the app charges by. No key needed. A reel is priced by its finished length; music and every format are included.","tags":["account"],"security":[],"responses":{"200":{"description":"Prices","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"price_list"},"currency":{"type":"string","const":"ILS"},"reel":{"type":"object","properties":{"per_second_agorot":{"type":"integer","description":"Per second of the finished reel, after dead air is removed"},"minimum_agorot":{"type":"integer","description":"The least a reel costs, however short"},"max_seconds":{"type":"integer","description":"The longest reel"},"includes":{"type":"array","items":{"type":"string"},"description":"What every reel comes with at its base price (Hebrew)"},"examples":{"type":"array","items":{"type":"object","properties":{"seconds":{"type":"integer"},"amount_agorot":{"type":"integer"},"formatted":{"type":"string"}},"required":["seconds","amount_agorot","formatted"],"additionalProperties":false},"description":"What reels of a few lengths cost"}},"required":["per_second_agorot","minimum_agorot","max_seconds","includes","examples"],"additionalProperties":false,"description":"The reel itself: priced by the second"},"extras":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Its key under extras when you render"},"label":{"type":"string","description":"Hebrew"},"amount_agorot":{"type":"integer"},"formatted":{"type":"string"}},"required":["id","label","amount_agorot","formatted"],"additionalProperties":false},"description":"What costs extra, on top of the reel"},"free":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string","description":"Hebrew"}},"required":["id","label"],"additionalProperties":false},"description":"What never costs anything"},"test_mode":{"type":"object","properties":{"amount_agorot":{"type":"number","const":0},"renders_per_day":{"type":"integer","description":"How many test renders a day"},"output":{"type":"string","description":"What a test render looks like"}},"required":["amount_agorot","renders_per_day","output"],"additionalProperties":false,"description":"Test keys: free, with small watermarked output"},"creative":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Stable, e.g. creative.carousel"},"label":{"type":"string","description":"Hebrew"},"unit":{"type":"string","description":"What one unit is (Hebrew)"},"amount_agorot":{"type":"integer"},"formatted":{"type":"string"},"note":{"type":"string","description":"What is included, or a minimum (Hebrew)"}},"required":["id","label","unit","amount_agorot","formatted"],"additionalProperties":false},"description":"Carousels, banners and images, each at the price its page charges. Present once the API can make them."}},"required":["object","currency","reel","extras","free","test_mode"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"מחירון","x-mcp-tool":"get_prices"}},"/v1/brands":{"get":{"operationId":"brands.list","summary":"Brands","description":"The account's brands: name, colours and logo. Pass a brand's id as brand_id when you create, to make it in that brand.","tags":["account"],"security":[{"apiKey":[]}],"x-scope":"read","responses":{"200":{"description":"Brands","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Brand"},"description":"Newest first"},"has_more":{"type":"boolean","description":"More remain: pass the last id as starting_after"}},"required":["object","data","has_more"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"מותגים","x-mcp-tool":"list_brands"}},"/v1/uploads":{"post":{"operationId":"uploads.create","summary":"Start an upload","description":"Returns a signed URL to PUT the file to (up to 500 MB: MP4, MOV or WebM). For large files on a shaky connection, ask for a multipart upload: PUT each part, then complete it. Then create the video with POST /v1/videos.","tags":["uploads"],"security":[{"apiKey":[]}],"x-scope":"create","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"A unique key per request (a UUID), 8–150 printable ASCII characters. Retrying with the same key returns the first answer and never charges twice.","schema":{"type":"string","minLength":8,"maxLength":150}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"filename":{"type":"string","minLength":1,"maxLength":180,"description":"The file's name, e.g. clip.mp4"},"size_bytes":{"type":"integer","exclusiveMinimum":0,"maximum":524288000,"description":"The file's exact size in bytes"},"content_type":{"default":"video/mp4","type":"string","maxLength":100,"description":"video/mp4, video/quicktime or video/webm"},"multipart":{"default":false,"type":"boolean","description":"Upload in 16 MB parts"}},"required":["filename","size_bytes"],"additionalProperties":false}}}},"responses":{"201":{"description":"Start an upload","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Upload"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"התחלת העלאה"}},"/v1/uploads/{upload_id}/complete":{"post":{"operationId":"uploads.complete","summary":"Complete a multipart upload","description":"Joins a multipart upload's parts into the file. Send each part's ETag if you kept them; otherwise they are read from storage.","tags":["uploads"],"security":[{"apiKey":[]}],"x-scope":"create","parameters":[{"name":"upload_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The upload's id"},{"name":"Idempotency-Key","in":"header","required":false,"description":"A unique key per request (a UUID), 8–150 printable ASCII characters. Retrying with the same key returns the first answer and never charges twice.","schema":{"type":"string","minLength":8,"maxLength":150}}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"parts":{"maxItems":10000,"type":"array","items":{"type":"object","properties":{"part_number":{"type":"integer","minimum":1,"maximum":10000,"description":"The part's number, from the upload"},"etag":{"type":"string","minLength":1,"maxLength":200,"description":"The ETag header the part's PUT returned"}},"required":["part_number","etag"]},"description":"For a multipart upload: every part, in order. Leave it out for a single PUT"}},"required":[],"additionalProperties":false}}}},"responses":{"200":{"description":"Complete a multipart upload","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"upload"},"id":{"type":"string","description":"Pass it as upload_id to POST /v1/videos"},"status":{"type":"string","const":"uploaded","description":"The file is in place"}},"required":["object","id","status"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"סיום העלאה בחלקים"}},"/v1/videos":{"post":{"operationId":"videos.create","summary":"Create a video from an upload","description":"Once the file is up, this starts the work: probing, Hebrew transcription and opening titles. Poll GET /v1/videos/{video_id} until status is ready (usually under a minute), then estimate and render. Free.","tags":["videos"],"security":[{"apiKey":[]}],"x-scope":"create","parameters":[{"name":"Idempotency-Key","in":"header","required":false,"description":"A unique key per request (a UUID), 8–150 printable ASCII characters. Retrying with the same key returns the first answer and never charges twice.","schema":{"type":"string","minLength":8,"maxLength":150}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"upload_id":{"type":"string","minLength":1,"maxLength":80,"description":"From POST /v1/uploads, after the file was PUT"},"brand_id":{"type":"string","maxLength":80,"description":"Which brand to make it in (GET /v1/brands). Leave it out for the account's default brand; an id that isn't this account's is refused with 404 before anything is made or charged"}},"required":["upload_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Already made: the same request was sent before","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}},"201":{"description":"Create a video from an upload","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"יצירת סרטון מקובץ שהועלה"},"get":{"operationId":"videos.list","summary":"List videos","description":"The account's videos, newest first.","tags":["videos"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":100},"description":"How many, 1 to 100"},{"name":"starting_after","in":"query","required":false,"schema":{"type":"string","maxLength":80},"description":"A video id: list the ones after it"}],"responses":{"200":{"description":"List videos","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Video"},"description":"Newest first"},"has_more":{"type":"boolean","description":"More remain: pass the last id as starting_after"}},"required":["object","data","has_more"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"רשימת סרטונים","x-mcp-tool":"list_videos"}},"/v1/videos/{video_id}":{"get":{"operationId":"videos.get","summary":"Get a video","description":"A video's status and its reels. status ready means it can be estimated and rendered.","tags":["videos"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The video's id (from POST /v1/videos or GET /v1/videos)"}],"responses":{"200":{"description":"Get a video","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Video"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"סרטון","x-mcp-tool":"get_video"}},"/v1/videos/{video_id}/transcription":{"get":{"operationId":"transcriptions.get","summary":"A video's transcription","description":"The Hebrew transcription, word by word with timings in seconds. Free.","tags":["videos"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The video's id (from POST /v1/videos or GET /v1/videos)"}],"responses":{"200":{"description":"A video's transcription","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Transcription"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"תמלול","x-mcp-tool":"get_transcription"}},"/v1/renders/estimate":{"post":{"operationId":"renders.estimate","summary":"Price a render","description":"What a render would cost, line by line. Changes nothing. Send amount_agorot back as expected_amount_agorot to render.","tags":["renders"],"security":[{"apiKey":[]}],"x-scope":"read","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":80,"description":"The video's id (from POST /v1/videos or GET /v1/videos)"},"style":{"type":"string","enum":["karaoke","pop","marker","oneword","outline","neon","bubble","typewriter","quiet","box","hormozi","bounce","classic","retro","elegant","underline","cinematic","sticker","dramatic","sport","size","news","handwriting","comic","longshadow","glow"],"description":"Caption style; the video's own when left out"},"extras":{"type":"object","properties":{"cuts":{"type":"boolean","description":"Remove dead air and filler words. Free; on by default when there's speech"},"music":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether music plays under the speech"},"mood":{"type":"string","enum":["warm","upbeat","calm","inspiring","dramatic","happy","tech","urban"],"description":"The music's feel. Each mood draws on a shared bank of beds, so two reels can share one. Left out: the video's own pick"}},"required":["on"],"description":"Music under the speech. Included in the price; on by default. Test keys render without it"},"broll":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether to add the two shots"}},"required":["on"],"description":"Two AI B-roll shots, placed from what was said. ₪12.00"},"voice":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether to add the narration"},"script":{"type":"string","maxLength":4000,"description":"What the narrator says, in Hebrew. Left out: the video's saved script"},"voice":{"type":"string","enum":["tamar","hadas","avital","shani","hila","dana","neta","keren","galit","sivan","inbal","michal","orit","efrat","yoav","matan","boaz","guy","ron","eran","ariel","ido","nadav","nir","daniel","yonatan","elad","alon","asaf","uri","female","male"],"description":"The narrator: a voice id from the catalogue. Call GET /v1/voices (MCP: list_voices) first to see each voice's Hebrew name, character and sample. \"female\" and \"male\" still work, as tamar and yoav. Left out: the video's own voice, which starts as its brand's"}},"required":["on"],"description":"A Hebrew AI narration of the script. ₪3.00"},"platforms":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["ig","tt","yt"]},"description":"Where it will be posted: ig, tt, yt. Sets the safe areas"}},"additionalProperties":false,"description":"What to add. Anything left out keeps the video's own default: the ready reel"}},"required":["video_id"],"additionalProperties":false}}}},"responses":{"200":{"description":"Price a render","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Estimate"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"הצעת מחיר לרינדור","x-mcp-tool":"estimate_render"}},"/v1/renders":{"post":{"operationId":"renders.create","summary":"Render a reel","description":"Renders the reel at the price you confirm. The amount is held now, charged when the reel is done, and released if it fails. If the price changed, nothing is charged and the answer (409 price-changed) carries the new estimate. Requires an Idempotency-Key.","tags":["renders"],"security":[{"apiKey":[]}],"x-scope":"create","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per request (a UUID), 8–150 printable ASCII characters. Retrying with the same key returns the first answer and never charges twice.","schema":{"type":"string","minLength":8,"maxLength":150}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"video_id":{"type":"string","minLength":1,"maxLength":80,"description":"The video's id (from POST /v1/videos or GET /v1/videos)"},"expected_amount_agorot":{"type":"integer","minimum":0,"maximum":1000000,"description":"The amount from POST /v1/renders/estimate, confirming the price"},"style":{"type":"string","enum":["karaoke","pop","marker","oneword","outline","neon","bubble","typewriter","quiet","box","hormozi","bounce","classic","retro","elegant","underline","cinematic","sticker","dramatic","sport","size","news","handwriting","comic","longshadow","glow"],"description":"Caption style; the video's own when left out"},"hook":{"type":"string","maxLength":100,"description":"The opening title (Hebrew). Empty for none; the video's own when left out"},"extras":{"type":"object","properties":{"cuts":{"type":"boolean","description":"Remove dead air and filler words. Free; on by default when there's speech"},"music":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether music plays under the speech"},"mood":{"type":"string","enum":["warm","upbeat","calm","inspiring","dramatic","happy","tech","urban"],"description":"The music's feel. Each mood draws on a shared bank of beds, so two reels can share one. Left out: the video's own pick"}},"required":["on"],"description":"Music under the speech. Included in the price; on by default. Test keys render without it"},"broll":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether to add the two shots"}},"required":["on"],"description":"Two AI B-roll shots, placed from what was said. ₪12.00"},"voice":{"type":"object","properties":{"on":{"type":"boolean","description":"Whether to add the narration"},"script":{"type":"string","maxLength":4000,"description":"What the narrator says, in Hebrew. Left out: the video's saved script"},"voice":{"type":"string","enum":["tamar","hadas","avital","shani","hila","dana","neta","keren","galit","sivan","inbal","michal","orit","efrat","yoav","matan","boaz","guy","ron","eran","ariel","ido","nadav","nir","daniel","yonatan","elad","alon","asaf","uri","female","male"],"description":"The narrator: a voice id from the catalogue. Call GET /v1/voices (MCP: list_voices) first to see each voice's Hebrew name, character and sample. \"female\" and \"male\" still work, as tamar and yoav. Left out: the video's own voice, which starts as its brand's"}},"required":["on"],"description":"A Hebrew AI narration of the script. ₪3.00"},"platforms":{"minItems":1,"maxItems":3,"type":"array","items":{"type":"string","enum":["ig","tt","yt"]},"description":"Where it will be posted: ig, tt, yt. Sets the safe areas"}},"additionalProperties":false,"description":"What to add. Anything left out keeps the video's own default: the ready reel"},"brand_id":{"type":"string","maxLength":80,"description":"Which brand to make it in (GET /v1/brands). Leave it out for the account's default brand; an id that isn't this account's is refused with 404 before anything is made or charged"}},"required":["video_id","expected_amount_agorot"],"additionalProperties":false}}}},"responses":{"200":{"description":"Already made: the same request was sent before","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Render"}}}},"201":{"description":"Render a reel","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Render"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"402":{"description":"Not enough credits, or a project's budget or a key's limit is spent. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"רינדור ריל","x-mcp-tool":"create_render","x-spends-credits":true}},"/v1/renders/{render_id}":{"get":{"operationId":"renders.get","summary":"Get a render","description":"A render's progress, and once done its MP4, cover, captions and post text. Signed links last 24 hours; fetch it again for fresh ones.","tags":["renders"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"render_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The render's id"}],"responses":{"200":{"description":"Get a render","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Render"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"רינדור","x-mcp-tool":"get_render"}},"/v1/renders/{render_id}/formats":{"post":{"operationId":"renders.formats","summary":"Make every format","description":"The same reel framed for 4:5, 1:1, 16:9 and 4:3. Free. Asking again returns the ones already made.","tags":["renders"],"security":[{"apiKey":[]}],"x-scope":"create","parameters":[{"name":"render_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The render's id"},{"name":"Idempotency-Key","in":"header","required":false,"description":"A unique key per request (a UUID), 8–150 printable ASCII characters. Retrying with the same key returns the first answer and never charges twice.","schema":{"type":"string","minLength":8,"maxLength":150}}],"responses":{"200":{"description":"Make every format","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"A render id; GET /v1/renders/{id} for its file"},"aspect":{"type":"string","description":"4:5, 1:1, 16:9 or 4:3"},"status":{"type":"string","enum":["queued","rendering","done","failed"],"description":"done: the file is ready. failed: nothing was charged"},"download_url":{"description":"The MP4; a signed link valid for 24 hours, once done","type":["string","null"]}},"required":["id","aspect","status","download_url"],"additionalProperties":false},"description":"Newest first"},"has_more":{"type":"boolean","description":"More remain: pass the last id as starting_after"}},"required":["object","data","has_more"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"409":{"description":"The price changed, the video isn't ready, or the same Idempotency-Key is still running","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"כל הפורמטים","x-mcp-tool":"make_formats"}},"/v1/renders/{render_id}/captions.srt":{"get":{"operationId":"renders.captions","summary":"Captions as SRT","description":"The finished reel's captions as an SRT file, on the reel's own clock (after cuts).","tags":["renders"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"render_id","in":"path","required":true,"schema":{"type":"string","minLength":1,"maxLength":80},"description":"The render's id"}],"responses":{"200":{"description":"Captions as SRT","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/x-subrip":{"schema":{"type":"string"}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"404":{"description":"Not found (or not this account's)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"קובץ כתוביות","x-mcp-tool":"get_captions"}},"/v1/voices":{"get":{"operationId":"voices.list","summary":"List voices","description":"The Hebrew voices a reel's narration can be read in, each with a sample to listen to. Pass a voice's id as extras.voice.voice when you price and render the reel. Free.","tags":["voices"],"security":[{"apiKey":[]}],"x-scope":"read","parameters":[{"name":"gender","in":"query","required":false,"schema":{"type":"string","enum":["female","male"]},"description":"Only female or only male voices"},{"name":"tone","in":"query","required":false,"schema":{"type":"string","enum":["warm","lively","calm","pro"]},"description":"Only voices with this character"}],"responses":{"200":{"description":"List voices","headers":{"Reely-Call-Id":{"description":"This call in your call log","schema":{"type":"string"}}},"content":{"application/json":{"schema":{"type":"object","properties":{"object":{"type":"string","const":"list","description":"Always list"},"data":{"type":"array","items":{"$ref":"#/components/schemas/Voice"},"description":"In the catalogue's order: the female voices, then the male, each by tone"},"has_more":{"type":"boolean","description":"Always false: every voice comes in one answer"}},"required":["object","data","has_more"],"additionalProperties":false}}}},"400":{"description":"Malformed request (bad JSON, a missing or malformed Idempotency-Key)","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"401":{"description":"Missing, invalid, expired or revoked API key","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"403":{"description":"The key lacks this call's scope","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"422":{"description":"Invalid input; `errors` lists each field","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"429":{"description":"Rate limited; wait Retry-After seconds","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}},"500":{"description":"Our error. Nothing was charged","content":{"application/problem+json":{"schema":{"$ref":"#/components/schemas/Problem"}}}}},"x-summary-he":"רשימת הקולות","x-mcp-tool":"list_voices"}}},"components":{"schemas":{"Problem":{"type":"object","properties":{"type":{"type":"string","description":"A link to this error's documentation"},"title":{"type":"string","description":"A short English summary, the same for every error of this type"},"status":{"type":"integer"},"detail":{"type":"string","description":"What happened, in Hebrew, written to be shown to the person"},"code":{"type":"string","description":"A stable error code: unauthorized, invalid-input, insufficient-credits, price-changed…"},"call_id":{"description":"This call in your call log","type":"string"}},"required":["type","title","status","detail","code"],"additionalProperties":{}},"Estimate":{"type":"object","properties":{"object":{"type":"string","const":"estimate"},"video_id":{"type":"string","description":"The video it prices"},"amount_agorot":{"type":"integer","description":"What the render will cost. Send it back as expected_amount_agorot to approve, in agorot (1/100 of a shekel)"},"formatted":{"type":"string","description":"The amount as shown to people, e.g. ₪1.20"},"currency":{"type":"string","const":"ILS"},"reel_seconds":{"type":"number","description":"The finished reel's length, after dead air is removed"},"lines":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string","description":"Hebrew"},"amount_agorot":{"type":"integer"}},"required":["id","label","amount_agorot"],"additionalProperties":false},"description":"What the amount is made of: the reel itself, then each paid extra"},"list_amount_agorot":{"anyOf":[{"type":"integer"},{"type":"null"}],"description":"In test mode and on the sample: what a live key would pay"},"test_mode":{"type":"boolean","description":"Priced for a test key: free"}},"required":["object","video_id","amount_agorot","formatted","currency","reel_seconds","lines","list_amount_agorot","test_mode"],"additionalProperties":false},"Video":{"type":"object","properties":{"object":{"type":"string","const":"video"},"id":{"type":"string"},"name":{"type":"string","description":"The file's name"},"status":{"type":"string","enum":["uploading","processing","ready","failed"],"description":"ready: transcribed, priced and ready to render"},"stage":{"type":"string","enum":["uploading","probing","transcribing","writing_hooks","ready","failed"],"description":"Where processing is, finer than status"},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"Percent through processing"},"duration_seconds":{"description":"The source clip's length; null until it's read","type":["number","null"]},"brand_id":{"description":"The brand its reels are made in; null for the default brand","type":["string","null"]},"sample":{"type":"boolean","description":"The free sample every account starts with"},"hook_suggestions":{"type":"array","items":{"type":"string"},"description":"Opening titles written from what was said (Hebrew)"},"error":{"anyOf":[{"type":"object","properties":{"code":{"description":"A stable code, when there is one","type":["string","null"]},"message":{"type":"string","description":"What went wrong, in Hebrew"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}],"description":"Why processing failed; null otherwise"},"poster_url":{"description":"A still from the clip; a signed link valid for 24 hours","type":["string","null"]},"renders":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"A render id; GET /v1/renders/{id} for the reel"},"status":{"type":"string","enum":["queued","rendering","done","failed"],"description":"done: the file is ready. failed: nothing was charged"},"created_at":{"type":"string","description":"ISO 8601 timestamp"}},"required":["id","status","created_at"],"additionalProperties":false},"description":"Its reels, newest first"},"created_at":{"type":"string","description":"ISO 8601 timestamp"}},"required":["object","id","name","status","stage","progress","duration_seconds","brand_id","sample","hook_suggestions","error","poster_url","renders","created_at"],"additionalProperties":false},"Render":{"type":"object","properties":{"object":{"type":"string","const":"render"},"id":{"type":"string"},"video_id":{"type":"string","description":"The video it was made from"},"status":{"type":"string","enum":["queued","rendering","done","failed"],"description":"done: the file is ready. failed: nothing was charged"},"progress":{"type":"integer","minimum":0,"maximum":100,"description":"Percent through rendering"},"aspect":{"type":"string","description":"9:16 for the reel; other shapes come from POST /v1/renders/{id}/formats"},"style":{"type":"string","description":"The caption style it was made in"},"hook":{"description":"The opening title; null for none","type":["string","null"]},"amount_agorot":{"type":"integer","description":"What it costs; charged only when it's done, released if it fails, in agorot (1/100 of a shekel)"},"amount_formatted":{"type":"string","description":"The amount as shown to people, e.g. ₪1.20"},"test":{"type":"boolean","description":"Made with a test key: free, small and watermarked"},"duration_seconds":{"description":"The reel's length, once done","type":["number","null"]},"download_url":{"description":"The MP4; a signed link valid for 24 hours, once done","type":["string","null"]},"cover_url":{"description":"The cover image; a signed link valid for 24 hours, once done","type":["string","null"]},"captions_url":{"description":"The captions as SRT, on the reel's own clock","type":["string","null"]},"post_text":{"description":"A caption for the post (Hebrew)","type":["string","null"]},"error":{"anyOf":[{"type":"object","properties":{"code":{"description":"A stable code, when there is one","type":["string","null"]},"message":{"type":"string","description":"What went wrong, in Hebrew"}},"required":["code","message"],"additionalProperties":false},{"type":"null"}],"description":"Why it failed. A failed render costs nothing"},"formats":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"A render id; GET /v1/renders/{id} for its file"},"aspect":{"type":"string","description":"4:5, 1:1, 16:9 or 4:3"},"status":{"type":"string","enum":["queued","rendering","done","failed"],"description":"done: the file is ready. failed: nothing was charged"},"download_url":{"description":"The MP4; a signed link valid for 24 hours, once done","type":["string","null"]}},"required":["id","aspect","status","download_url"],"additionalProperties":false},"description":"The same reel in other shapes, from POST /v1/renders/{id}/formats"},"created_at":{"type":"string","description":"ISO 8601 timestamp"},"updated_at":{"type":"string","description":"ISO 8601 timestamp"}},"required":["object","id","video_id","status","progress","aspect","style","hook","amount_agorot","amount_formatted","test","duration_seconds","download_url","cover_url","captions_url","post_text","error","formats","created_at","updated_at"],"additionalProperties":false},"Upload":{"type":"object","properties":{"object":{"type":"string","const":"upload"},"id":{"type":"string","description":"Pass it as upload_id to POST /v1/videos once the file is up"},"method":{"type":"string","const":"PUT","description":"The HTTP method for the upload URLs"},"upload_url":{"description":"PUT the file's bytes here, with these headers. Null for a multipart upload","type":["string","null"]},"headers":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"},"description":"Send these headers with the PUT, exactly"},"multipart":{"anyOf":[{"type":"object","properties":{"part_size":{"type":"integer","description":"Bytes per part; the last part may be smaller"},"parts":{"type":"array","items":{"type":"object","properties":{"part_number":{"type":"integer","description":"Send it back with the part's ETag"},"size_bytes":{"type":"integer","description":"Exactly how many bytes go in this part"},"upload_url":{"type":"string","description":"PUT this part's bytes here"}},"required":["part_number","size_bytes","upload_url"],"additionalProperties":false},"description":"Every part, in order"}},"required":["part_size","parts"],"additionalProperties":false},{"type":"null"}],"description":"PUT each part to its url and keep each response's ETag; then POST /v1/uploads/{id}/complete"},"expires_at":{"type":"string","description":"ISO 8601 timestamp"}},"required":["object","id","method","upload_url","headers","multipart","expires_at"],"additionalProperties":false},"Balance":{"type":"object","properties":{"object":{"type":"string","const":"balance"},"available_agorot":{"type":"integer","description":"What can be spent now, in agorot (1/100 of a shekel)"},"available_formatted":{"type":"string","description":"The amount as shown to people"},"reserved_agorot":{"type":"integer","description":"Held for renders still running, in agorot (1/100 of a shekel)"},"currency":{"type":"string","const":"ILS"}},"required":["object","available_agorot","available_formatted","reserved_agorot","currency"],"additionalProperties":false},"Brand":{"type":"object","properties":{"object":{"type":"string","const":"brand"},"id":{"type":"string","description":"Pass it as brand_id when you create; an unknown or empty id means the default brand"},"name":{"type":"string","description":"The brand's name"},"is_default":{"type":"boolean","description":"Used when no brand_id is sent"},"colors":{"type":"object","properties":{"primary":{"type":"string","description":"The main colour"},"highlight":{"type":"string","description":"The highlighted word's colour"},"text":{"type":"string","description":"The caption text colour"}},"required":["primary","highlight","text"],"additionalProperties":false,"description":"Hex colours; empty when not set"},"logo_url":{"description":"A signed link valid for 24 hours","type":["string","null"]}},"required":["object","id","name","is_default","colors","logo_url"],"additionalProperties":false},"Account":{"type":"object","properties":{"object":{"type":"string","const":"account"},"id":{"type":"string","description":"The account's id"},"name":{"type":"string","description":"The account holder's name"},"email":{"type":"string","description":"The account's email"},"mode":{"type":"string","enum":["live","test"],"description":"test: free, small and watermarked; live: charged from the balance"},"scopes":{"type":"array","items":{"type":"string","enum":["read","create","publish"]},"description":"What this key or connection may do"},"key":{"anyOf":[{"type":"object","properties":{"id":{"type":"string","description":"The key's id, as shown in the console"},"name":{"type":"string","description":"The key's name"},"project_id":{"description":"The project whose budget it spends; null for none","type":["string","null"]},"expires_at":{"anyOf":[{"type":"string","description":"ISO 8601 timestamp"},{"type":"null"}],"description":"When it stops working; null for never"}},"required":["id","name","project_id","expires_at"],"additionalProperties":false},{"type":"null"}],"description":"The API key making this call; null for an assistant connected by sign-in"}},"required":["object","id","name","email","mode","scopes","key"],"additionalProperties":false},"Transcription":{"type":"object","properties":{"object":{"type":"string","const":"transcription"},"video_id":{"type":"string","description":"The video it was transcribed from"},"language":{"type":"string","const":"he","description":"The spoken language"},"text":{"type":"string","description":"Everything that was said, as one text"},"words":{"type":"array","items":{"type":"object","properties":{"text":{"type":"string"},"start":{"type":"number","description":"Seconds"},"end":{"type":"number","description":"Seconds"}},"required":["text","start","end"],"additionalProperties":false},"description":"Each word with its timing, in seconds on the source clip's clock"}},"required":["object","video_id","language","text","words"],"additionalProperties":false},"Voice":{"type":"object","properties":{"object":{"type":"string","const":"voice","description":"Always voice"},"id":{"type":"string","description":"Pass it as extras.voice.voice when you price and render a reel (POST /v1/renders/estimate, POST /v1/renders)"},"name":{"type":"string","description":"The voice's persona name, in Hebrew"},"gender":{"type":"string","enum":["female","male"],"description":"How it sounds. Hebrew is gendered: write a first-person script in the voice's gender"},"tone":{"type":"string","enum":["warm","lively","calm","pro"],"description":"Its character: warm, lively (energetic), calm, or pro (clear and professional)"},"description":{"type":"string","description":"What it sounds like and what it suits, in Hebrew"},"sample_url":{"type":"string","description":"An MP3 of the voice reading the same short Hebrew text as every other voice, so they can be compared. Public: no key needed"}},"required":["object","id","name","gender","tone","description","sample_url"],"additionalProperties":false}},"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"rly_live_… or rly_test_…","description":"An API key from /developers/keys"}}},"x-error-codes":{"unauthorized":{"status":401,"title":"Missing or invalid API key"},"key-expired":{"status":401,"title":"API key expired"},"key-revoked":{"status":401,"title":"API key revoked"},"forbidden-scope":{"status":403,"title":"The key lacks the scope this call needs"},"not-found":{"status":404,"title":"Not found"},"method-not-allowed":{"status":405,"title":"Method not allowed"},"invalid-json":{"status":400,"title":"Malformed JSON body"},"idempotency-key-required":{"status":400,"title":"Idempotency-Key header required"},"idempotency-key-invalid":{"status":400,"title":"Idempotency-Key must be 8 to 150 printable ASCII characters"},"payload-too-large":{"status":413,"title":"Request body too large"},"invalid-input":{"status":422,"title":"Invalid input"},"idempotency-key-reused":{"status":422,"title":"Idempotency-Key reused with a different request"},"idempotency-in-flight":{"status":409,"title":"A request with this Idempotency-Key is still running"},"price-changed":{"status":409,"title":"The price changed; confirm the new price"},"conflict":{"status":409,"title":"Conflict"},"insufficient-credits":{"status":402,"title":"Insufficient credits"},"budget-exceeded":{"status":402,"title":"The project's monthly budget is spent"},"key-limit-reached":{"status":402,"title":"The key's lifetime limit is spent"},"gone":{"status":410,"title":"Gone"},"rate-limited":{"status":429,"title":"Too many requests"},"internal":{"status":500,"title":"Internal error"},"unavailable":{"status":503,"title":"The API is temporarily unavailable"}}}