{"success":true,"data":{"version":"2026-10-06","positioning":"agent_platform_first","business_model":{"model":"prepaid_api_credits","currency":"USD","unit":"cents","minimum_top_up_usd_cents":1000,"minimum_top_up_display":"$10.00","charge_policy":{"sandbox_calls":"free; no production job or credit mutation","metadata_reads":"free_read; rate-limited per API key","live_generation":"metered by operation against api_credits_usd_cents; paid render tools require idempotency","failed_validation":"not charged"}},"auth":{"live_key_prefix":"rb_","sandbox_key_prefix":"rb_test_"},"mcp":{"endpoint":"/api/v1/mcp","protocol":"JSON-RPC 2.0 over authenticated HTTP POST","executable_tools":["get_usage","generate_video_asset","generate_and_post","blog_to_video","generate_article","generate_ai_video","generate_ai_influencer","create_avatar","create_avatar_look","list_avatars","clip_youtube","get_job_status","get_x_hooks","get_trending","get_api_account","get_generation_contracts","validate_generation_request","list_generated_videos","get_generated_video","create_brand","list_brands","get_brand","update_brand","delete_brand"],"paid_tool_note":"Live MCP render calls require idempotency_key in tool arguments so retries do not duplicate spend."},"tools":[{"name":"create_brand","title":"Save a customer brand kit","description":"Save a reusable brand kit (name, logo_url, primary_color, accent_color, font_family, style, website_url), optionally for one end customer (customer_id). The logo is fetched once and normalized: white background box removed, margins trimmed, aspect and luminance measured, stored on our CDN. Missing colours are extracted from the logo. Free. Use the returned brand_id on generate_video_asset, generate_ai_video or generate_ai_influencer. Logo problems return 422 (e.g. LOGO_TOO_SMALL under 64 px, LOGO_UNREADABLE). Optional profile (private to your account): industry, icp { roles, company_size, regions, pains }, offer, tone, proof_points [{ claim, source_url }] (the only numbers presenter scripts may state), banned_topics, cta { text, url }, default_presenter { avatar_id, voice_id, engine }, languages, topic_pool. Website only: send website_url without name and the kit is built from the site (home + about/pricing/customers + one blog post, same domain, <= 6 pages, ~40 s): name, logo, colours, font, industry, icp, offer, tone, cta, topic_pool (8-12), suggested banned_topics, and proof_points quoted verbatim from the crawled pages (unverifiable claims are dropped). brand_id defaults to the domain slug (exampleclient.net -> exampleclient-net). Response adds source auto, domain, crawled_at, fields_auto, locked_fields, authorized_by/at, autogen. A kit for the same domain is returned instead (200, reused: true) unless refresh: true. Well-known brand domains need confirm_authorized: true (422 BRAND_CONFIRMATION_REQUIRED); crawl failures are 422 BRAND_AUTOGEN_FAILED with reason. Free.","method":"POST","path":"/api/v1/b2b/brands","idempotency":"recommended","creditMode":"free_write","inputSchema":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Your own stable id for this brand (unique per account). Default: brand_... or, for a kit built from website_url alone, the domain slug (example-com)."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End customer this brand belongs to. Optional; when set, generation and reads may narrow by it."},"name":{"type":"string","minLength":1,"maxLength":80,"pattern":"\\S","description":"Required unless website_url is sent: with website_url and no name the kit is built from the website (logo, colours, font, industry, ICP, offer, tone, proof points quoted from the site, CTA, topic pool)."},"website_url":{"type":"string","minLength":3,"maxLength":2048,"description":"The client's website (domain or http(s) URL). Without name: crawl the site (home + about/pricing/customers + one blog post, same domain only) and build the kit. If this account already has a kit for the domain it is returned (reused: true) unless refresh: true."},"refresh":{"type":"boolean","description":"With website_url and no name: re-crawl an existing kit for the domain (locked fields are kept)."},"confirm_authorized":{"type":"boolean","description":"Required (true) to auto-build a kit for a well-known brand domain: confirms this account is authorised to market that brand. Stored as authorized_by / authorized_at."},"logo_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/","description":"Public https PNG, JPG, WebP or SVG. Fetched once, normalized (background removed, trimmed) and stored on our CDN."},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Extracted from the logo when omitted."},"accent_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Extracted from the logo (or derived from primary) when omitted."},"font_family":{"type":"string","minLength":2,"maxLength":60,"pattern":"^[A-Za-z][A-Za-z0-9 ]*[A-Za-z0-9]$","description":"Google Fonts family name only (e.g. Inter, Montserrat, Playfair Display)."},"style":{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"],"description":"Graphic style. auto (default) picks one variant per brand_id, the same on every video."},"profile":{"type":"object","properties":{"industry":{"type":"string","minLength":1,"maxLength":80},"icp":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},"offer":{"type":"string","minLength":1,"maxLength":240,"description":"One line: what this client sells."},"tone":{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},"proof_points":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},"banned_topics":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},"cta":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},"default_presenter":{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},"languages":{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5,"description":"Script languages, first = default (e.g. [\"en\", \"de\"])."},"topic_pool":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20,"description":"Video topics this brand can credibly post about (filled from the website on auto-built kits)."}},"additionalProperties":false,"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"name":{"type":"string"},"website_url":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"normalized_logo_url":{"type":["string","null"]},"logo":{"anyOf":[{"type":"object","properties":{"white_url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"source_format":{"type":"string","enum":["png","jpeg","webp","svg"]},"background":{"type":"string","enum":["transparent","white_removed","solid_kept"]},"trimmed":{"type":"boolean"},"aspect_ratio":{"type":"number"},"aspect_class":{"type":"string","enum":["icon","wordmark","tall"]},"luminance":{"type":"string","enum":["light","dark","mixed"]},"mean_luma":{"type":"number"},"monochrome":{"type":"boolean"},"normalized_at":{"type":["string","null"]}},"required":["white_url","width","height","source_format","background","trimmed","aspect_ratio","aspect_class","luminance","mean_luma","monochrome","normalized_at"],"additionalProperties":false},{"type":"null"}]},"primary_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"accent_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"font_family":{"type":["string","null"]},"style":{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"]},"kit":{"type":"object","properties":{"style":{"type":"string","enum":["label","minimal","bold_backdrop","split"]},"style_source":{"type":"string","enum":["explicit","hash","default"]},"colors":{"type":"object","properties":{"primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"source":{"type":"object","properties":{"primary":{"type":"string","enum":["provided","extracted","default"]},"accent":{"type":"string","enum":["provided","extracted","default"]}},"required":["primary","accent"],"additionalProperties":false},"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"primary_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["primary","accent","source","dark","light","on_dark","on_light","primary_surface","on_primary","accent_surface","on_accent","accent_on_dark","accent_on_light"],"additionalProperties":false},"font":{"type":"object","properties":{"family":{"type":"string"},"source":{"type":"string","enum":["google","default"]},"css_url":{"type":"string"}},"required":["family","source","css_url"],"additionalProperties":false},"logo_policy":{"type":"object","properties":{"show_at":{"type":"array","items":{"type":"string","enum":["intro","outro"]}},"persistent":{"type":"boolean","const":false}},"required":["show_at","persistent"],"additionalProperties":false}},"required":["style","style_source","colors","font","logo_policy"],"additionalProperties":false},"profile":{"anyOf":[{"type":"object","properties":{"industry":{"type":"string","minLength":1,"maxLength":80},"icp":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},"offer":{"type":"string","minLength":1,"maxLength":240,"description":"One line: what this client sells."},"tone":{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},"proof_points":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},"banned_topics":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},"cta":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},"default_presenter":{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},"languages":{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5,"description":"Script languages, first = default (e.g. [\"en\", \"de\"])."},"topic_pool":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20,"description":"Video topics this brand can credibly post about (filled from the website on auto-built kits)."}},"additionalProperties":false,"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},{"type":"null"}],"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},"domain":{"type":["string","null"]},"source":{"type":"string","enum":["manual","auto"]},"crawled_at":{"type":["string","null"]},"stale":{"type":"boolean","description":"true when the kit was built from the website more than 30 days ago; PATCH { refresh: true } re-crawls it."},"fields_auto":{"type":"array","items":{"type":"string"}},"locked_fields":{"type":"array","items":{"type":"string"}},"authorized_by":{"anyOf":[{"type":"object","properties":{"user_id":{"type":"string"},"auth_type":{"type":"string","enum":["api_key","oauth","first_party"]},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["user_id","auth_type","key_mode"],"additionalProperties":false},{"type":"null"}]},"authorized_at":{"type":["string","null"]},"autogen":{"anyOf":[{"type":"object","properties":{"home_url":{"type":"string"},"pages":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"}},"required":["url","kind"],"additionalProperties":false},"maxItems":6},"logo_source":{"type":["string","null"]},"color_source":{"type":"string","enum":["site","logo","default"]},"font_source":{"type":"string","enum":["google_fonts_link","css","none"]},"socials":{"type":"object","additionalProperties":{"type":"string"}},"analysis":{"type":"string","enum":["claude","unavailable","failed","skipped"]},"proof_points_dropped":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"duration_ms":{"type":"integer"}},"required":["home_url","pages","logo_source","color_source","font_source","socials","analysis","proof_points_dropped","warnings","duration_ms"],"additionalProperties":false},{"type":"null"}]},"reused":{"type":"boolean"},"refreshed":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"sandbox":{"type":"boolean","const":true}},"required":["brand_id","customer_id","name","website_url","logo_url","normalized_logo_url","logo","primary_color","accent_color","font_family","style","kit","profile","domain","source","crawled_at","stale","fields_auto","locked_fields","authorized_by","authorized_at","autogen","revision","created_at","updated_at"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":true}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"list_brands","title":"List saved brand kits","description":"List this account's brand kits, newest first, optionally only one customer's (customer_id). Free read; sandbox returns an empty list.","method":"GET","path":"/api/v1/b2b/brands","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"name":{"type":"string"},"website_url":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"normalized_logo_url":{"type":["string","null"]},"logo":{"anyOf":[{"type":"object","properties":{"white_url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"source_format":{"type":"string","enum":["png","jpeg","webp","svg"]},"background":{"type":"string","enum":["transparent","white_removed","solid_kept"]},"trimmed":{"type":"boolean"},"aspect_ratio":{"type":"number"},"aspect_class":{"type":"string","enum":["icon","wordmark","tall"]},"luminance":{"type":"string","enum":["light","dark","mixed"]},"mean_luma":{"type":"number"},"monochrome":{"type":"boolean"},"normalized_at":{"type":["string","null"]}},"required":["white_url","width","height","source_format","background","trimmed","aspect_ratio","aspect_class","luminance","mean_luma","monochrome","normalized_at"],"additionalProperties":false},{"type":"null"}]},"primary_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"accent_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"font_family":{"type":["string","null"]},"style":{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"]},"kit":{"type":"object","properties":{"style":{"type":"string","enum":["label","minimal","bold_backdrop","split"]},"style_source":{"type":"string","enum":["explicit","hash","default"]},"colors":{"type":"object","properties":{"primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"source":{"type":"object","properties":{"primary":{"type":"string","enum":["provided","extracted","default"]},"accent":{"type":"string","enum":["provided","extracted","default"]}},"required":["primary","accent"],"additionalProperties":false},"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"primary_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["primary","accent","source","dark","light","on_dark","on_light","primary_surface","on_primary","accent_surface","on_accent","accent_on_dark","accent_on_light"],"additionalProperties":false},"font":{"type":"object","properties":{"family":{"type":"string"},"source":{"type":"string","enum":["google","default"]},"css_url":{"type":"string"}},"required":["family","source","css_url"],"additionalProperties":false},"logo_policy":{"type":"object","properties":{"show_at":{"type":"array","items":{"type":"string","enum":["intro","outro"]}},"persistent":{"type":"boolean","const":false}},"required":["show_at","persistent"],"additionalProperties":false}},"required":["style","style_source","colors","font","logo_policy"],"additionalProperties":false},"profile":{"anyOf":[{"type":"object","properties":{"industry":{"type":"string","minLength":1,"maxLength":80},"icp":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},"offer":{"type":"string","minLength":1,"maxLength":240,"description":"One line: what this client sells."},"tone":{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},"proof_points":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},"banned_topics":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},"cta":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},"default_presenter":{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},"languages":{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5,"description":"Script languages, first = default (e.g. [\"en\", \"de\"])."},"topic_pool":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20,"description":"Video topics this brand can credibly post about (filled from the website on auto-built kits)."}},"additionalProperties":false,"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},{"type":"null"}],"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},"domain":{"type":["string","null"]},"source":{"type":"string","enum":["manual","auto"]},"crawled_at":{"type":["string","null"]},"stale":{"type":"boolean","description":"true when the kit was built from the website more than 30 days ago; PATCH { refresh: true } re-crawls it."},"fields_auto":{"type":"array","items":{"type":"string"}},"locked_fields":{"type":"array","items":{"type":"string"}},"authorized_by":{"anyOf":[{"type":"object","properties":{"user_id":{"type":"string"},"auth_type":{"type":"string","enum":["api_key","oauth","first_party"]},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["user_id","auth_type","key_mode"],"additionalProperties":false},{"type":"null"}]},"authorized_at":{"type":["string","null"]},"autogen":{"anyOf":[{"type":"object","properties":{"home_url":{"type":"string"},"pages":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"}},"required":["url","kind"],"additionalProperties":false},"maxItems":6},"logo_source":{"type":["string","null"]},"color_source":{"type":"string","enum":["site","logo","default"]},"font_source":{"type":"string","enum":["google_fonts_link","css","none"]},"socials":{"type":"object","additionalProperties":{"type":"string"}},"analysis":{"type":"string","enum":["claude","unavailable","failed","skipped"]},"proof_points_dropped":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"duration_ms":{"type":"integer"}},"required":["home_url","pages","logo_source","color_source","font_source","socials","analysis","proof_points_dropped","warnings","duration_ms"],"additionalProperties":false},{"type":"null"}]},"reused":{"type":"boolean"},"refreshed":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"sandbox":{"type":"boolean","const":true}},"required":["brand_id","customer_id","name","website_url","logo_url","normalized_logo_url","logo","primary_color","accent_color","font_family","style","kit","profile","domain","source","crawled_at","stale","fields_auto","locked_fields","authorized_by","authorized_at","autogen","revision","created_at","updated_at"],"additionalProperties":false},"maxItems":100},"next_cursor":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]}},"required":["items","next_cursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":true}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"get_brand","title":"Read one brand kit","description":"Read a brand kit by brand_id, including the resolved palette, contrast-safe text colours, style and normalized logo. Another account's or another customer's kit returns 404.","method":"GET","path":"/api/v1/b2b/brands/{brand_id}","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"required":["brand_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"name":{"type":"string"},"website_url":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"normalized_logo_url":{"type":["string","null"]},"logo":{"anyOf":[{"type":"object","properties":{"white_url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"source_format":{"type":"string","enum":["png","jpeg","webp","svg"]},"background":{"type":"string","enum":["transparent","white_removed","solid_kept"]},"trimmed":{"type":"boolean"},"aspect_ratio":{"type":"number"},"aspect_class":{"type":"string","enum":["icon","wordmark","tall"]},"luminance":{"type":"string","enum":["light","dark","mixed"]},"mean_luma":{"type":"number"},"monochrome":{"type":"boolean"},"normalized_at":{"type":["string","null"]}},"required":["white_url","width","height","source_format","background","trimmed","aspect_ratio","aspect_class","luminance","mean_luma","monochrome","normalized_at"],"additionalProperties":false},{"type":"null"}]},"primary_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"accent_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"font_family":{"type":["string","null"]},"style":{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"]},"kit":{"type":"object","properties":{"style":{"type":"string","enum":["label","minimal","bold_backdrop","split"]},"style_source":{"type":"string","enum":["explicit","hash","default"]},"colors":{"type":"object","properties":{"primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"source":{"type":"object","properties":{"primary":{"type":"string","enum":["provided","extracted","default"]},"accent":{"type":"string","enum":["provided","extracted","default"]}},"required":["primary","accent"],"additionalProperties":false},"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"primary_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["primary","accent","source","dark","light","on_dark","on_light","primary_surface","on_primary","accent_surface","on_accent","accent_on_dark","accent_on_light"],"additionalProperties":false},"font":{"type":"object","properties":{"family":{"type":"string"},"source":{"type":"string","enum":["google","default"]},"css_url":{"type":"string"}},"required":["family","source","css_url"],"additionalProperties":false},"logo_policy":{"type":"object","properties":{"show_at":{"type":"array","items":{"type":"string","enum":["intro","outro"]}},"persistent":{"type":"boolean","const":false}},"required":["show_at","persistent"],"additionalProperties":false}},"required":["style","style_source","colors","font","logo_policy"],"additionalProperties":false},"profile":{"anyOf":[{"type":"object","properties":{"industry":{"type":"string","minLength":1,"maxLength":80},"icp":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},"offer":{"type":"string","minLength":1,"maxLength":240,"description":"One line: what this client sells."},"tone":{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},"proof_points":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},"banned_topics":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},"cta":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},"default_presenter":{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},"languages":{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5,"description":"Script languages, first = default (e.g. [\"en\", \"de\"])."},"topic_pool":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20,"description":"Video topics this brand can credibly post about (filled from the website on auto-built kits)."}},"additionalProperties":false,"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},{"type":"null"}],"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},"domain":{"type":["string","null"]},"source":{"type":"string","enum":["manual","auto"]},"crawled_at":{"type":["string","null"]},"stale":{"type":"boolean","description":"true when the kit was built from the website more than 30 days ago; PATCH { refresh: true } re-crawls it."},"fields_auto":{"type":"array","items":{"type":"string"}},"locked_fields":{"type":"array","items":{"type":"string"}},"authorized_by":{"anyOf":[{"type":"object","properties":{"user_id":{"type":"string"},"auth_type":{"type":"string","enum":["api_key","oauth","first_party"]},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["user_id","auth_type","key_mode"],"additionalProperties":false},{"type":"null"}]},"authorized_at":{"type":["string","null"]},"autogen":{"anyOf":[{"type":"object","properties":{"home_url":{"type":"string"},"pages":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"}},"required":["url","kind"],"additionalProperties":false},"maxItems":6},"logo_source":{"type":["string","null"]},"color_source":{"type":"string","enum":["site","logo","default"]},"font_source":{"type":"string","enum":["google_fonts_link","css","none"]},"socials":{"type":"object","additionalProperties":{"type":"string"}},"analysis":{"type":"string","enum":["claude","unavailable","failed","skipped"]},"proof_points_dropped":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"duration_ms":{"type":"integer"}},"required":["home_url","pages","logo_source","color_source","font_source","socials","analysis","proof_points_dropped","warnings","duration_ms"],"additionalProperties":false},{"type":"null"}]},"reused":{"type":"boolean"},"refreshed":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"sandbox":{"type":"boolean","const":true}},"required":["brand_id","customer_id","name","website_url","logo_url","normalized_logo_url","logo","primary_color","accent_color","font_family","style","kit","profile","domain","source","crawled_at","stale","fields_auto","locked_fields","authorized_by","authorized_at","autogen","revision","created_at","updated_at"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":true}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"update_brand","title":"Update a brand kit","description":"Change brand kit fields (null clears an optional field). A new logo_url is fetched and normalized again; cleared colours are re-extracted from the logo. Every field you edit is locked (locked_fields): refresh: true re-crawls website_url and refills only unlocked fields; unlock_fields releases locks. Free. Videos already queued keep the kit they started with.","method":"PATCH","path":"/api/v1/b2b/brands/{brand_id}","idempotency":"not_applicable","creditMode":"free_write","inputSchema":{"type":"object","properties":{"customer_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"name":{"type":"string","minLength":1,"maxLength":80,"pattern":"\\S"},"website_url":{"anyOf":[{"type":"string","minLength":3,"maxLength":2048},{"type":"null"}]},"logo_url":{"anyOf":[{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"},{"type":"null"}]},"primary_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"accent_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"font_family":{"anyOf":[{"type":"string","minLength":2,"maxLength":60,"pattern":"^[A-Za-z][A-Za-z0-9 ]*[A-Za-z0-9]$"},{"type":"null"}]},"style":{"anyOf":[{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"]},{"type":"null"}]},"profile":{"anyOf":[{"type":"object","properties":{"industry":{"anyOf":[{"type":"string","minLength":1,"maxLength":80},{"type":"null"}]},"icp":{"anyOf":[{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},{"type":"null"}]},"offer":{"anyOf":[{"type":"string","minLength":1,"maxLength":240},{"type":"null"}]},"tone":{"anyOf":[{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},{"type":"null"}]},"proof_points":{"anyOf":[{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},{"type":"null"}]},"banned_topics":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},{"type":"null"}]},"cta":{"anyOf":[{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},{"type":"null"}]},"default_presenter":{"anyOf":[{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},{"type":"null"}]},"languages":{"anyOf":[{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5},{"type":"null"}]},"topic_pool":{"anyOf":[{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20},{"type":"null"}]}},"additionalProperties":false},{"type":"null"}],"description":"Shallow merge: send only the profile fields to change; null clears a field; profile: null clears the whole profile."},"refresh":{"type":"boolean","description":"Re-crawl website_url and refill every field that is not locked. Fields you set or edit (here or at create) are locked and never overwritten by a refresh."},"confirm_authorized":{"type":"boolean","description":"Required (true) to refresh a kit of a well-known brand domain."},"unlock_fields":{"type":"array","items":{"type":"string","enum":["name","logo_url","primary_color","accent_color","font_family","style","profile.industry","profile.icp","profile.offer","profile.tone","profile.proof_points","profile.banned_topics","profile.cta","profile.default_presenter","profile.languages","profile.topic_pool"]},"maxItems":16,"description":"Fields a later refresh may overwrite again (removed from locked_fields)."},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"required":["brand_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"name":{"type":"string"},"website_url":{"type":["string","null"]},"logo_url":{"type":["string","null"]},"normalized_logo_url":{"type":["string","null"]},"logo":{"anyOf":[{"type":"object","properties":{"white_url":{"type":"string"},"width":{"type":"number"},"height":{"type":"number"},"source_format":{"type":"string","enum":["png","jpeg","webp","svg"]},"background":{"type":"string","enum":["transparent","white_removed","solid_kept"]},"trimmed":{"type":"boolean"},"aspect_ratio":{"type":"number"},"aspect_class":{"type":"string","enum":["icon","wordmark","tall"]},"luminance":{"type":"string","enum":["light","dark","mixed"]},"mean_luma":{"type":"number"},"monochrome":{"type":"boolean"},"normalized_at":{"type":["string","null"]}},"required":["white_url","width","height","source_format","background","trimmed","aspect_ratio","aspect_class","luminance","mean_luma","monochrome","normalized_at"],"additionalProperties":false},{"type":"null"}]},"primary_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"accent_color":{"anyOf":[{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},{"type":"null"}]},"font_family":{"type":["string","null"]},"style":{"type":"string","enum":["label","minimal","bold_backdrop","split","auto"]},"kit":{"type":"object","properties":{"style":{"type":"string","enum":["label","minimal","bold_backdrop","split"]},"style_source":{"type":"string","enum":["explicit","hash","default"]},"colors":{"type":"object","properties":{"primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"source":{"type":"object","properties":{"primary":{"type":"string","enum":["provided","extracted","default"]},"accent":{"type":"string","enum":["provided","extracted","default"]}},"required":["primary","accent"],"additionalProperties":false},"dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"primary_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_primary":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"on_accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_dark":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_on_light":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}},"required":["primary","accent","source","dark","light","on_dark","on_light","primary_surface","on_primary","accent_surface","on_accent","accent_on_dark","accent_on_light"],"additionalProperties":false},"font":{"type":"object","properties":{"family":{"type":"string"},"source":{"type":"string","enum":["google","default"]},"css_url":{"type":"string"}},"required":["family","source","css_url"],"additionalProperties":false},"logo_policy":{"type":"object","properties":{"show_at":{"type":"array","items":{"type":"string","enum":["intro","outro"]}},"persistent":{"type":"boolean","const":false}},"required":["show_at","persistent"],"additionalProperties":false}},"required":["style","style_source","colors","font","logo_policy"],"additionalProperties":false},"profile":{"anyOf":[{"type":"object","properties":{"industry":{"type":"string","minLength":1,"maxLength":80},"icp":{"type":"object","properties":{"roles":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"minItems":1,"maxItems":10,"description":"Job titles you sell to, e.g. [\"Head of Sales\", \"VP Marketing\"]."},"company_size":{"type":"string","minLength":1,"maxLength":40,"description":"e.g. \"50-500 employees\"."},"regions":{"type":"array","items":{"type":"string","minLength":1,"maxLength":60},"maxItems":10},"pains":{"type":"array","items":{"type":"string","minLength":1,"maxLength":160},"minItems":1,"maxItems":10,"description":"Problems the buyer feels, in their words."}},"required":["roles","pains"],"additionalProperties":false},"offer":{"type":"string","minLength":1,"maxLength":240,"description":"One line: what this client sells."},"tone":{"type":"string","enum":["authoritative","friendly","provocative","technical","playful"]},"proof_points":{"type":"array","items":{"type":"object","properties":{"claim":{"type":"string","minLength":1,"maxLength":240,"description":"A fact you can stand behind, e.g. \"Clients book 3x more meetings in 90 days\". Scripts may state ONLY these numbers."},"source_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["claim"],"additionalProperties":false},"maxItems":20},"banned_topics":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80},"maxItems":30},"cta":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"description":"Spoken call to action, e.g. \"Book a 15-minute pipeline audit\"."},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/"}},"required":["text"],"additionalProperties":false},"default_presenter":{"type":"object","properties":{"avatar_id":{"type":"string","minLength":1,"maxLength":64,"description":"A ready persona from POST /api/v1/avatars on this account."},"voice_id":{"type":"string","minLength":1,"maxLength":100},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"required":["avatar_id"],"additionalProperties":false},"languages":{"type":"array","items":{"type":"string","pattern":"^[a-z]{2,3}(?:-[A-Za-z0-9]{2,8})?$"},"minItems":1,"maxItems":5,"description":"Script languages, first = default (e.g. [\"en\", \"de\"])."},"topic_pool":{"type":"array","items":{"type":"string","minLength":1,"maxLength":120},"minItems":1,"maxItems":20,"description":"Video topics this brand can credibly post about (filled from the website on auto-built kits)."}},"additionalProperties":false,"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},{"type":"null"}],"description":"Client profile (optional, private to your account): steers presenter_broll scripts written from a topic."},"domain":{"type":["string","null"]},"source":{"type":"string","enum":["manual","auto"]},"crawled_at":{"type":["string","null"]},"stale":{"type":"boolean","description":"true when the kit was built from the website more than 30 days ago; PATCH { refresh: true } re-crawls it."},"fields_auto":{"type":"array","items":{"type":"string"}},"locked_fields":{"type":"array","items":{"type":"string"}},"authorized_by":{"anyOf":[{"type":"object","properties":{"user_id":{"type":"string"},"auth_type":{"type":"string","enum":["api_key","oauth","first_party"]},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["user_id","auth_type","key_mode"],"additionalProperties":false},{"type":"null"}]},"authorized_at":{"type":["string","null"]},"autogen":{"anyOf":[{"type":"object","properties":{"home_url":{"type":"string"},"pages":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"kind":{"type":"string"}},"required":["url","kind"],"additionalProperties":false},"maxItems":6},"logo_source":{"type":["string","null"]},"color_source":{"type":"string","enum":["site","logo","default"]},"font_source":{"type":"string","enum":["google_fonts_link","css","none"]},"socials":{"type":"object","additionalProperties":{"type":"string"}},"analysis":{"type":"string","enum":["claude","unavailable","failed","skipped"]},"proof_points_dropped":{"type":"integer"},"warnings":{"type":"array","items":{"type":"string"}},"duration_ms":{"type":"integer"}},"required":["home_url","pages","logo_source","color_source","font_source","socials","analysis","proof_points_dropped","warnings","duration_ms"],"additionalProperties":false},{"type":"null"}]},"reused":{"type":"boolean"},"refreshed":{"type":"boolean"},"revision":{"type":"integer"},"created_at":{"type":["string","null"]},"updated_at":{"type":["string","null"]},"sandbox":{"type":"boolean","const":true}},"required":["brand_id","customer_id","name","website_url","logo_url","normalized_logo_url","logo","primary_color","accent_color","font_family","style","kit","profile","domain","source","crawled_at","stale","fields_auto","locked_fields","authorized_by","authorized_at","autogen","revision","created_at","updated_at"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":true}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"delete_brand","title":"Delete a brand kit","description":"Delete a brand kit. Later generations with this brand_id return 404 BRAND_NOT_FOUND; finished videos are unaffected. Free.","method":"DELETE","path":"/api/v1/b2b/brands/{brand_id}","idempotency":"not_applicable","creditMode":"free_write","inputSchema":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"required":["brand_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"deleted":{"type":"boolean","const":true}},"required":["brand_id","deleted"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message","retryable"],"additionalProperties":true},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":true}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"list_generated_videos","title":"List this account's generated video metadata","description":"List only videos owned by the authenticated account, optionally narrowed by customer/brand. Never uses an account brand as customer context. Private CDN links remain unavailable in this preview; sandbox returns an empty library.","method":"GET","path":"/api/v1/b2b/library/videos","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100},"cursor":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"video_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"account_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"mode":{"type":"string","enum":["stock","clipping","avatar","ai_video"]},"status":{"type":"string","enum":["processing","completed","failed"]},"metadata":{"type":"object","properties":{"title":{"type":"string","maxLength":300},"description":{"type":"string","maxLength":5000},"duration_seconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"external_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"customer":{"anyOf":[{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},{"type":"null"}]},"brand":{"anyOf":[{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false},{"type":"null"}]},"content_purpose":{"anyOf":[{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},{"type":"null"}]}},"required":["title","description","duration_seconds","external_id","customer","brand","content_purpose"],"additionalProperties":false},"media_access":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","const":"unavailable"},"reason":{"type":"string","const":"PRIVATE_DELIVERY_NOT_INTEGRATED"},"video_cdn_url":{"type":"null"},"poster_cdn_url":{"type":"null"}},"required":["status","reason","video_cdn_url","poster_cdn_url"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"available"},"private":{"type":"boolean","const":true},"video_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"video_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"minItems":1,"maxItems":20},"poster_url":{"anyOf":[{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},{"type":"null"}]},"expires_at":{"type":"string","format":"date-time"}},"required":["status","private","video_url","video_urls","poster_url","expires_at"],"additionalProperties":false}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["video_id","account_id","mode","status","metadata","media_access","created_at","updated_at"],"additionalProperties":false},"maxItems":100},"next_cursor":{"anyOf":[{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},{"type":"null"}]}},"required":["items","next_cursor"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{}},"required":["code","message","retryable"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":"number","exclusiveMinimum":0}},"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"get_generated_video","title":"Read one account-owned generated video's metadata","description":"Get this account's generated video by ID. Missing and foreign-account videos both return 404. Does not issue public or private media links in this preview.","method":"GET","path":"/api/v1/b2b/library/videos/{video_id}","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","properties":{"video_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"}},"required":["video_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"video_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$"},"account_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"mode":{"type":"string","enum":["stock","clipping","avatar","ai_video"]},"status":{"type":"string","enum":["processing","completed","failed"]},"metadata":{"type":"object","properties":{"title":{"type":"string","maxLength":300},"description":{"type":"string","maxLength":5000},"duration_seconds":{"anyOf":[{"type":"number","minimum":0},{"type":"null"}]},"external_id":{"anyOf":[{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},{"type":"null"}]},"customer":{"anyOf":[{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},{"type":"null"}]},"brand":{"anyOf":[{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false},{"type":"null"}]},"content_purpose":{"anyOf":[{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},{"type":"null"}]}},"required":["title","description","duration_seconds","external_id","customer","brand","content_purpose"],"additionalProperties":false},"media_access":{"anyOf":[{"type":"object","properties":{"status":{"type":"string","const":"unavailable"},"reason":{"type":"string","const":"PRIVATE_DELIVERY_NOT_INTEGRATED"},"video_cdn_url":{"type":"null"},"poster_cdn_url":{"type":"null"}},"required":["status","reason","video_cdn_url","poster_cdn_url"],"additionalProperties":false},{"type":"object","properties":{"status":{"type":"string","const":"available"},"private":{"type":"boolean","const":true},"video_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"video_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"minItems":1,"maxItems":20},"poster_url":{"anyOf":[{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},{"type":"null"}]},"expires_at":{"type":"string","format":"date-time"}},"required":["status","private","video_url","video_urls","poster_url","expires_at"],"additionalProperties":false}]},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}},"required":["video_id","account_id","mode","status","metadata","media_access","created_at","updated_at"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{}},"required":["code","message","retryable"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":"number","exclusiveMinimum":0}},"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"get_api_account","title":"Inspect API account capabilities","description":"Read the authenticated account identity and B2B preview capabilities. Does not provision accounts or enable private generation.","method":"GET","path":"/api/v1/b2b/account","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"account_id":{"type":"string","minLength":1},"key_mode":{"type":"string","enum":["live","sandbox"]},"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"contract_stage":{"type":"string","const":"preview"},"capabilities":{"type":"object","properties":{"request_validation":{"type":"boolean","const":true},"generation":{"type":"boolean","const":false},"library_metadata":{"type":"boolean","const":true},"brand_kits":{"type":"boolean","const":true},"private_cdn":{"type":"boolean","const":false},"database_delivery":{"type":"boolean","const":false},"delegated_customer_accounts":{"type":"boolean","const":false}},"required":["request_validation","generation","library_metadata","brand_kits","private_cdn","database_delivery","delegated_customer_accounts"],"additionalProperties":false},"modes":{"type":"array","items":{"type":"string","enum":["stock","clipping","avatar","ai_video"]}},"blockers":{"type":"array","items":{"type":"string"},"minItems":1},"links":{"type":"object","properties":{"usage":{"type":"string"},"contracts":{"type":"string"},"validate":{"type":"string"},"library":{"type":"string"},"brands":{"type":"string"}},"required":["usage","contracts","validate","library","brands"],"additionalProperties":false}},"required":["account_id","key_mode","schema_version","contract_stage","capabilities","modes","blockers","links"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{}},"required":["code","message","retryable"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":"number","exclusiveMinimum":0}},"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"get_generation_contracts","title":"Read B2B video contracts","description":"Read preview input/output JSON Schemas for stock, clipping and avatar, plus optional AI video, with explicit customer URLs, optional customer brands, separate content purpose and account-owned private delivery requirements.","method":"GET","path":"/api/v1/b2b/contracts","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"stage":{"type":"string","const":"preview"},"generation_available":{"type":"boolean","const":false},"modes":{"type":"array","items":{"type":"string","enum":["stock","clipping","avatar","ai_video"]}},"request_schema":{"type":"object","additionalProperties":{}},"result_schema":{"type":"object","additionalProperties":{}},"legacy_youtube":{"type":"object","properties":{"path":{"type":"string"},"input_schema":{"type":"object","additionalProperties":{}},"receipt_data_schema":{"type":"object","additionalProperties":{}},"limitations":{"type":"array","items":{"type":"string"}}},"required":["path","input_schema","receipt_data_schema","limitations"],"additionalProperties":false},"library":{"type":"object","additionalProperties":{}},"private_access":{"type":"object","additionalProperties":{}},"semantics":{"type":"array","items":{"type":"string"}},"blockers":{"type":"array","items":{"type":"string"}}},"required":["schema_version","stage","generation_available","modes","request_schema","result_schema","legacy_youtube","library","private_access","semantics","blockers"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{}},"required":["code","message","retryable"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":"number","exclusiveMinimum":0}},"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"validate_generation_request","title":"Validate a B2B video request without spending","description":"Validate a stock, clipping, AI video or avatar preview request. Creates no job, verifies no media or ownership, and charges zero. A valid request does not mean private generation is available.","method":"POST","path":"/api/v1/b2b/validate","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"anyOf":[{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"external_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},"customer":{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},"campaign":{"type":"object","properties":{"campaign_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"creative_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"objective":{"type":"string","enum":["book_demo","lead_capture","website_visit","awareness"]},"audience":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"},"call_to_action":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"}},"required":["text","url"],"additionalProperties":false}},"required":["campaign_id","creative_id","objective","audience","call_to_action"],"additionalProperties":false},"brand":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"description":"Per-request customer brand. Omission never inherits the API account's brand or website."},"output":{"type":"object","properties":{"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"resolution":{"type":"string","const":"1080p"},"captions":{"type":"boolean"},"language":{"type":"string","minLength":2,"maxLength":35,"pattern":"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"}},"required":["aspect_ratio","resolution","captions","language"],"additionalProperties":false},"delivery":{"type":"object","properties":{"visibility":{"type":"string","const":"private"},"method":{"type":"string","enum":["pull","webhook"]},"access":{"type":"string","const":"authenticated","description":"Stable media URLs require this account's API key or an authorized login. Temporary bearer URLs require a separate authenticated access request."},"destination_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Pre-registered destination; never a caller-supplied URL or credential."}},"required":["visibility","method","access"],"additionalProperties":false},"budget":{"type":"object","properties":{"currency":{"type":"string","const":"USD"},"max_cost_usd_cents":{"type":"integer","minimum":1,"maximum":100000}},"required":["currency","max_cost_usd_cents"],"additionalProperties":false},"mode":{"type":"string","const":"stock"},"input":{"type":"object","properties":{"topic":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"},"script":{"type":"string","minLength":1,"maxLength":2800,"pattern":"\\S"},"duration_seconds":{"type":"integer","minimum":15,"maximum":120},"voice_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"stock_keywords":{"type":"array","items":{"type":"string","minLength":1,"maxLength":80,"pattern":"\\S"},"minItems":1,"maxItems":12}},"required":["topic","duration_seconds","voice_id","stock_keywords"],"additionalProperties":false}},"required":["schema_version","external_id","content_purpose","customer","campaign","output","delivery","budget","mode","input"],"additionalProperties":false},{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"external_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},"customer":{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},"campaign":{"type":"object","properties":{"campaign_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"creative_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"objective":{"type":"string","enum":["book_demo","lead_capture","website_visit","awareness"]},"audience":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"},"call_to_action":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"}},"required":["text","url"],"additionalProperties":false}},"required":["campaign_id","creative_id","objective","audience","call_to_action"],"additionalProperties":false},"brand":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"description":"Per-request customer brand. Omission never inherits the API account's brand or website."},"output":{"type":"object","properties":{"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"resolution":{"type":"string","const":"1080p"},"captions":{"type":"boolean"},"language":{"type":"string","minLength":2,"maxLength":35,"pattern":"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"}},"required":["aspect_ratio","resolution","captions","language"],"additionalProperties":false},"delivery":{"type":"object","properties":{"visibility":{"type":"string","const":"private"},"method":{"type":"string","enum":["pull","webhook"]},"access":{"type":"string","const":"authenticated","description":"Stable media URLs require this account's API key or an authorized login. Temporary bearer URLs require a separate authenticated access request."},"destination_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Pre-registered destination; never a caller-supplied URL or credential."}},"required":["visibility","method","access"],"additionalProperties":false},"budget":{"type":"object","properties":{"currency":{"type":"string","const":"USD"},"max_cost_usd_cents":{"type":"integer","minimum":1,"maximum":100000}},"required":["currency","max_cost_usd_cents"],"additionalProperties":false},"mode":{"type":"string","const":"clipping"},"input":{"type":"object","properties":{"source":{"anyOf":[{"type":"object","properties":{"type":{"type":"string","const":"youtube"},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/(?:youtu\\.be\\/[a-zA-Z0-9_-]{11}\\/?(?:\\?[^\\s#]*)?|(?:(?:www|m|music)\\.)?youtube\\.com\\/(?:watch\\?v=[a-zA-Z0-9_-]{11}(?:&[^\\s#]*)?|(?:shorts|live|embed)\\/[a-zA-Z0-9_-]{11}\\/?(?:\\?[^\\s#]*)?))(?:#[^\\s]*)?$"}},"required":["type","url"],"additionalProperties":false},{"type":"object","properties":{"type":{"type":"string","const":"asset"},"asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"required":["type","asset_id"],"additionalProperties":false}]},"clip_count":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum clips requested; return the actual number delivered."},"length":{"type":"string","enum":["short","medium","long"]},"focus":{"type":"string","minLength":1,"maxLength":500,"pattern":"\\S"},"source_rights_confirmed":{"type":"boolean","const":true}},"required":["source","clip_count","length","focus","source_rights_confirmed"],"additionalProperties":false}},"required":["schema_version","external_id","content_purpose","customer","campaign","output","delivery","budget","mode","input"],"additionalProperties":false},{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"external_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},"customer":{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},"campaign":{"type":"object","properties":{"campaign_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"creative_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"objective":{"type":"string","enum":["book_demo","lead_capture","website_visit","awareness"]},"audience":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"},"call_to_action":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"}},"required":["text","url"],"additionalProperties":false}},"required":["campaign_id","creative_id","objective","audience","call_to_action"],"additionalProperties":false},"brand":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"description":"Per-request customer brand. Omission never inherits the API account's brand or website."},"output":{"type":"object","properties":{"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"resolution":{"type":"string","const":"1080p"},"captions":{"type":"boolean"},"language":{"type":"string","minLength":2,"maxLength":35,"pattern":"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"}},"required":["aspect_ratio","resolution","captions","language"],"additionalProperties":false},"delivery":{"type":"object","properties":{"visibility":{"type":"string","const":"private"},"method":{"type":"string","enum":["pull","webhook"]},"access":{"type":"string","const":"authenticated","description":"Stable media URLs require this account's API key or an authorized login. Temporary bearer URLs require a separate authenticated access request."},"destination_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Pre-registered destination; never a caller-supplied URL or credential."}},"required":["visibility","method","access"],"additionalProperties":false},"budget":{"type":"object","properties":{"currency":{"type":"string","const":"USD"},"max_cost_usd_cents":{"type":"integer","minimum":1,"maximum":100000}},"required":["currency","max_cost_usd_cents"],"additionalProperties":false},"mode":{"type":"string","const":"ai_video"},"input":{"type":"object","properties":{"prompt":{"type":"string","minLength":1,"maxLength":2000,"pattern":"\\S"},"model":{"type":"string","enum":["kling-3-t2v","google/veo-3.1","bytedance/seedance-2.0","fal-ai/wan/v2.7","fal-ai/ltx-2.3","fal-ai/pixverse/v6","wan-3.0","kling-3.0-standard","kling-3.0-pro"]},"duration_seconds":{"type":"integer","minimum":6,"maximum":120},"native_audio":{"type":"boolean","const":true}},"required":["prompt","model","duration_seconds","native_audio"],"additionalProperties":false}},"required":["schema_version","external_id","content_purpose","customer","campaign","output","delivery","budget","mode","input"],"additionalProperties":false},{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"external_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},"customer":{"type":"object","properties":{"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"End-customer correlation ID within the authenticated account; never an authorization credential."},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)","description":"The end customer's website, not the API account's default brand URL."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"context_urls":{"type":"array","items":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"maxItems":10,"description":"Additional product, documentation or case-study URLs for this customer and request."}},"required":["customer_id","website_url"],"additionalProperties":false},"campaign":{"type":"object","properties":{"campaign_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"creative_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"objective":{"type":"string","enum":["book_demo","lead_capture","website_visit","awareness"]},"audience":{"type":"string","minLength":1,"maxLength":1000,"pattern":"\\S"},"call_to_action":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"}},"required":["text","url"],"additionalProperties":false}},"required":["campaign_id","creative_id","objective","audience","call_to_action"],"additionalProperties":false},"brand":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional saved brand, which must belong to both the authenticated account and selected customer before generation."},"name":{"type":"string","minLength":1,"maxLength":160,"pattern":"\\S"},"website_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/[^\\s/@?#]+(?:[/?#]|$)"},"tone":{"type":"string","minLength":1,"maxLength":300,"pattern":"\\S"},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"logo_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"}},"additionalProperties":false,"description":"Per-request customer brand. Omission never inherits the API account's brand or website."},"output":{"type":"object","properties":{"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"resolution":{"type":"string","const":"1080p"},"captions":{"type":"boolean"},"language":{"type":"string","minLength":2,"maxLength":35,"pattern":"^[a-zA-Z]{2,3}(?:-[a-zA-Z0-9]{2,8})*$"}},"required":["aspect_ratio","resolution","captions","language"],"additionalProperties":false},"delivery":{"type":"object","properties":{"visibility":{"type":"string","const":"private"},"method":{"type":"string","enum":["pull","webhook"]},"access":{"type":"string","const":"authenticated","description":"Stable media URLs require this account's API key or an authorized login. Temporary bearer URLs require a separate authenticated access request."},"destination_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Pre-registered destination; never a caller-supplied URL or credential."}},"required":["visibility","method","access"],"additionalProperties":false},"budget":{"type":"object","properties":{"currency":{"type":"string","const":"USD"},"max_cost_usd_cents":{"type":"integer","minimum":1,"maximum":100000}},"required":["currency","max_cost_usd_cents"],"additionalProperties":false},"mode":{"type":"string","const":"avatar"},"input":{"type":"object","properties":{"avatar_asset_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"script":{"type":"string","minLength":1,"maxLength":5000,"pattern":"\\S"},"voice_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"speed":{"type":"number","minimum":0.5,"maximum":1.5},"likeness_consent_confirmed":{"type":"boolean","const":true}},"required":["avatar_asset_id","script","voice_id","speed","likeness_consent_confirmed"],"additionalProperties":false}},"required":["schema_version","external_id","content_purpose","customer","campaign","output","delivery","budget","mode","input"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object","allOf":[{"if":{"properties":{"delivery":{"properties":{"method":{"const":"webhook"}}}}},"then":{"properties":{"delivery":{"required":["destination_id"]}}},"else":{"properties":{"delivery":{"not":{"required":["destination_id"]}}}}}]},"outputSchema":{"anyOf":[{"type":"object","properties":{"success":{"type":"boolean","const":true},"data":{"type":"object","properties":{"schema_version":{"type":"string","const":"2026-10-06.preview.2"},"valid":{"type":"boolean","const":true},"mode":{"type":"string","enum":["stock","clipping","avatar","ai_video"]},"external_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$"},"generation_available":{"type":"boolean","const":false},"blockers":{"type":"array","items":{"type":"string"},"minItems":1},"charged_usd_cents":{"type":"number","const":0}},"required":["schema_version","valid","mode","external_id","generation_available","blockers","charged_usd_cents"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["request_id","key_mode"],"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","data","meta"],"additionalProperties":false},{"type":"object","properties":{"success":{"type":"boolean","const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{}},"required":["code","message","retryable"],"additionalProperties":false},"meta":{"type":"object","properties":{"request_id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]},"retryable":{"type":"boolean"},"retry_after_seconds":{"type":"number","exclusiveMinimum":0}},"additionalProperties":true},"transport":{"type":"object","properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"type":"string","const":"mcp_rest_bridge"}},"required":["status","ok","via"],"additionalProperties":false}},"required":["success","error"],"additionalProperties":false}],"$schema":"http://json-schema.org/draft-07/schema#","type":"object"}},{"name":"generate_video","title":"Generate a short-form video","description":"Queue a short-form video from a prompt, topic, or script using the account's own brand context. Costs $0.50 in API credits, refunded if the render fails. Per-customer brand selection (brand_id, customer) is not supported and returns 422 CUSTOMER_CONTEXT_UNAVAILABLE. For external integrations prefer generate_video_asset.","method":"POST","path":"/api/v1/videos/magic","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string","minLength":3},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"Editorial job, independent of generation mode, niche and visual style. Education teaches one useful idea; sales connects a specific problem to the offer and an honest CTA."},"topic":{"type":"string"},"script":{"type":"string","description":"Pre-written narration script. Skips AI script generation when provided."},"duration_target_sec":{"type":"number","minimum":15,"maximum":120,"description":"Target duration in seconds, 15-120. Values below 15 are rejected with INPUT_INVALID. 15-25s suits hook+body+CTA; 30-60s suits narrative."},"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"content_style":{"type":"string","description":"Free-text style hint (e.g. 'professional', 'energetic', 'cinematic')."},"include_hook":{"type":"boolean","description":"Open the script with a researched hook line (English). Default: off (natural opening); false forbids any hook line. Ignored when you send script."},"include_hook_line":{"type":"boolean","description":"Deprecated alias of include_hook."},"include_captions":{"type":"boolean","description":"Burned-in word-level captions. Default true."},"include_music":{"type":"boolean","description":"Background music with ducking. Default true."},"include_branding":{"type":"boolean","description":"ReelsBuilder watermark (free tier only). Default true; paid tiers can disable."},"clip_type":{"type":"string","enum":["business","finance","tech","gym","nature","satisfying","luxury_woman","motivational","default/houses","default/cars","default/money"],"description":"Override the clip library used for stock footage. If unset, derived from brand profile industry; if brand profile is sparse, derived from the prompt/topic text."},"voice_id":{"type":"string","description":"Narration voice ID. If unset, chosen from the account's brand tone."},"voice_speed":{"type":"number","minimum":0.7,"maximum":1.3,"description":"TTS playback speed multiplier. Default 1.0."},"voice_gender":{"type":"string","enum":["male","female"],"description":"Requested voice gender when no explicit voice_id is provided."},"language":{"type":"string","description":"ISO 639-1 narration language (e.g. 'no', 'pt', 'ar'). Detected from the script/prompt when unset. Unsupported languages fail the request with a clear error instead of substituting a wrong-language voice."},"caption_language":{"type":"string","description":"ISO 639-1 caption language when captions should differ from the narration language (e.g. voice 'ur', captions 'en'). Defaults to the narration language."},"caption_style":{"type":["object","string"],"anyOf":[{"type":"string","enum":["highlight","classic","none"]},{"type":"object"}],"additionalProperties":false,"description":"Caption look. Request values beat the brand: request > brand colors > account brand > defaults.","properties":{"preset":{"type":"string","enum":["highlight","classic","none"],"description":"highlight (default): large 1-3 word chunks with the spoken word coloured. classic: bold uppercase phrases, no word colour. none: no captions."},"text_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Caption text colour. Default #FFFFFF (account brand caption colour if set)."},"highlight_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word colour (highlight preset only). Default brand.accent_color/primary_color, else the account brand, else #FFD60A."},"position":{"type":"string","enum":["lower_third","center","top"],"description":"Default lower_third."},"font_size":{"type":"string","enum":["small","medium","large"],"description":"Default large."}}},"caption_position":{"type":"string","enum":["lower_third","center","top"],"description":"Alias of caption_style.position (lower_third, center, top)."},"caption_highlight_color":{"type":"string","description":"Deprecated alias of caption_style.highlight_color."},"music":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Background music. Default true."},"volume":{"type":"number","minimum":0,"maximum":1,"description":"Music level under the voice. Default 0.35."}}},"cta":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":120}},"description":"Closing call to action, appended as the last line of a GENERATED script. Ignored when you send script (put it in your script). Without cta, the brand website is mentioned when one is set."},"caption_font_family":{"type":"string"},"caption_font_size":{"type":"number","minimum":24,"maximum":120},"music_volume":{"type":"number","minimum":0,"maximum":1,"description":"Background music level relative to voice. Default 0.35."},"lower_third_style":{"type":"string","enum":["cnn","bloomberg","breaking","live","custom","none"]},"ticker_enabled":{"type":"boolean"},"ticker_type":{"type":"string","enum":["auto","stocks","crypto","news","sports","weather"]},"progress_bar_enabled":{"type":"boolean"},"asset_urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"Caller-provided clip/image URLs to use INSTEAD of stock footage."},"webhook_url":{"type":"string","format":"uri","description":"Accepted but not delivered for this tool. Poll GET /api/v1/jobs/{job_id} instead."},"agent_run_id":{"type":"string"},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"status":{"type":"string","enum":["queued","processing","completed","failed"]}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"generate_video_asset","title":"Generate a paid video asset","description":"Queue a stock-footage short video (narration, captions, music) from a prompt, topic, or script. Returns 202 with data { job_id, video_id, status: queued, poll_url }; poll get_job_status for the finished file. This tool does not publish a post; platforms and schedule_at are recorded as metadata only. Requires an Idempotency-Key header. Costs $0.60 in API credits, refunded if the render fails. Uses the account's brand by default; send brand {name, website_url, logo_url, primary_color, accent_color, tone, industry, keywords} to render for another customer, or brand_id for a saved brand kit (create_brand). Limit: 5 concurrent renders per account (429 RENDER_CONCURRENCY_LIMIT_EXCEEDED).","method":"POST","path":"/api/v1/generate-and-post","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"Editorial job, independent of generation mode, niche and visual style. Education teaches one useful idea; sales connects a specific problem to the offer and an honest CTA."},"prompt":{"type":"string","minLength":3},"topic":{"type":"string"},"script":{"type":"string"},"asset_urls":{"type":"array","items":{"type":"string","format":"uri"}},"platforms":{"type":"array","items":{"type":"string","enum":["youtube","youtube_shorts","instagram","tiktok","facebook","facebook_reels","x","x_twitter"]}},"duration_target_sec":{"type":"number","minimum":15,"maximum":120,"description":"Target duration in seconds, 15-120. Values below 15 are rejected with INPUT_INVALID. 15-25s suits hook+body+CTA; 30-60s suits narrative."},"aspect_ratio":{"type":"string","enum":["9:16"],"description":"Stock video renders 9:16 (1080x1920) only; other values return 400."},"footage_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Visual search hints for automatically selected stock footage, e.g. sales team, server room. Does not change narration."},"exclude_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Exclude automatic stock clips whose metadata contains these whole-word phrases (simple plurals supported). No unlabelled fallback when exclusions are supplied. Caller-provided assets are preserved."},"content_style":{"type":"string","enum":["professional","educational","inspirational","energetic","calm","entertaining"],"description":"Script tone and pacing. Default professional."},"clip_type":{"type":"string","description":"Footage niche, e.g. business, tech, tech/ai, tech/cyber, finance, nature, default/houses. Also picks the music folder. Default: inferred from brand.industry/keywords and the brief, else business. Unknown values return 400."},"voice_id":{"type":"string","description":"ElevenLabs voice id. Default: chosen from voice_gender, else the brand tone."},"voice_gender":{"type":"string","enum":["female","male"],"description":"Default-voice pick when voice_id is omitted (female Rachel, male George)."},"voice_speed":{"type":"number","minimum":0.7,"maximum":1.3,"description":"Narration speed. Default 1.0. Generated scripts are sized for it; the duration fit still applies."},"language":{"type":"string","description":"ISO 639-1 narration and script language (e.g. en, es, de, pt, ar). Default: detected from the script/prompt. Unsupported voice languages return 400."},"caption_language":{"type":"string","description":"ISO 639-1 caption language when it differs from the narration (captions are translated). Default: same as language."},"include_captions":{"type":"boolean","description":"Burned-in captions. Default true."},"caption_style":{"type":["object","string"],"anyOf":[{"type":"string","enum":["highlight","classic","none"]},{"type":"object"}],"additionalProperties":false,"description":"Caption look. Request values beat the brand: request > brand colors > account brand > defaults.","properties":{"preset":{"type":"string","enum":["highlight","classic","none"],"description":"highlight (default): large 1-3 word chunks with the spoken word coloured. classic: bold uppercase phrases, no word colour. none: no captions."},"text_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Caption text colour. Default #FFFFFF (account brand caption colour if set)."},"highlight_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word colour (highlight preset only). Default brand.accent_color/primary_color, else the account brand, else #FFD60A."},"position":{"type":"string","enum":["lower_third","center","top"],"description":"Default lower_third."},"font_size":{"type":"string","enum":["small","medium","large"],"description":"Default large."}}},"include_music":{"type":"boolean","description":"Alias of music.enabled. Default true."},"music":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Background music. Default true."},"volume":{"type":"number","minimum":0,"maximum":1,"description":"Music level under the voice. Default 0.35."}}},"music_volume":{"type":"number","minimum":0,"maximum":1,"description":"Alias of music.volume. Default 0.35."},"cta":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":120}},"description":"Closing call to action, appended as the last line of a GENERATED script. Ignored when you send script (put it in your script). Without cta, the brand website is mentioned when one is set."},"include_hook":{"type":"boolean","description":"Open the script with a researched hook line (English). Default: off (natural opening); false forbids any hook line. Ignored when you send script."},"include_branding":{"type":"boolean","description":"ReelsBuilder watermark. Default true; false on a paid plan removes it."},"progress_bar":{"type":"object","additionalProperties":false,"required":["enabled"],"description":"Optional in-video progress bar (off by default): { enabled, position: \"top\" | \"bottom\" (default bottom), color: \"#RRGGBB\" (default the brand accent, accentOnDark) }. A thin (8 px) bar that fills left to right over the video, flush with the very edge. Bottom is a known retention pattern; Instagram's UI may overlap the bottom edge. progress_bar_enabled: true is an alias for { enabled: true }.","properties":{"enabled":{"type":"boolean","description":"Draw the bar. Default off."},"position":{"type":"string","enum":["top","bottom"],"default":"bottom","description":"top or bottom, flush with the very edge. Instagram's UI may overlap the bottom edge."},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Bar colour. Default: the brand accent (accentOnDark), else #FFD60A."}}},"progress_bar_enabled":{"type":"boolean","description":"Alias of progress_bar.enabled (bottom edge, brand-accent colour)."},"brand":{"type":"object","additionalProperties":false,"description":"Per-video brand that REPLACES the account brand for this render (nothing is merged). Send at least one field.","properties":{"name":{"type":"string","maxLength":80},"website_url":{"type":"string","format":"uri","description":"https URL; mentioned in the closing line when no cta is sent."},"logo_url":{"type":"string","format":"uri","description":"Public https PNG/JPG, shown as a bottom-right watermark."},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word caption colour unless caption_style.highlight_color is sent."},"tone":{"type":"string","enum":["professional","casual","energetic","bold","calm","analytical"]},"industry":{"type":"string","maxLength":80,"description":"Also used to infer clip_type."},"keywords":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":40}}}},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Saved brand kit (create_brand): normalized logo, palette, font and style for this account. Inline brand fields sent alongside override the kit field by field. Unknown or another account's id: 404 BRAND_NOT_FOUND, free."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Optional: the brand kit must belong to this end customer."},"website_url":{"type":"string","maxLength":2048,"description":"Instead of brand_id: the client's website (domain or http(s) URL). This account's kit for the domain is reused, or built from the site (crawl + profile, up to ~40 s) and remembered, before any charge. Headers X-Brand-Kit-Id / X-Brand-Kit-Source (built|reused) / X-Brand-Kit-Stale. Failure: free 422 BRAND_AUTOGEN_FAILED with reason. brand_id wins when both are sent; dry runs never crawl."},"confirm_authorized":{"type":"boolean","description":"With website_url: required (true) when the domain is a well-known brand (else free 422 BRAND_CONFIRMATION_REQUIRED). Confirms this account is authorised to market that brand."},"schedule_at":{"type":"string","format":"date-time"},"webhook_url":{"type":"string","format":"uri","description":"Public https URL POSTed once when the job finishes or fails, with header X-ReelsBuilder-Event: generation.job.terminal and body { event (job.completed | job.failed), job_id, status, video_id, video_url, error, agent_run_id, poll_url, timestamp }. Unsigned; up to 3 attempts (0s, 30s, 120s). Always confirm the result with GET poll_url."},"agent_run_id":{"type":"string"},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":["prompt"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"generation_id":{"type":"string"},"video_id":{"type":"string"},"status":{"type":"string"},"poll_url":{"type":"string"},"distribution":{"type":"object"},"output_contract":{"type":"object"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"blog_to_video","title":"Turn an article or autoblog post into a video","description":"Queue an article-to-video render from a blog URL, extracted text, markdown, or campaign recap. Returns 202 with a job to poll; does not publish. Costs $0.50 in API credits, refunded if the render fails. Uses the account's default branding; per-customer brand selection is not supported.","method":"POST","path":"/api/v1/blog-to-video","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"Editorial job, independent of generation mode, niche and visual style. Education teaches one useful idea; sales connects a specific problem to the offer and an honest CTA."},"article_url":{"type":"string","format":"uri"},"article_title":{"type":"string"},"article_text":{"type":"string"},"article_markdown":{"type":"string"},"article_summary":{"type":"string"},"script":{"type":"string"},"asset_urls":{"type":"array","items":{"type":"string","format":"uri"}},"categories":{"type":"array","items":{"type":"string"}},"tags":{"type":"array","items":{"type":"string"}},"platforms":{"type":"array","items":{"type":"string","enum":["youtube","youtube_shorts","instagram","tiktok","facebook","facebook_reels","x","x_twitter"]}},"duration_target_sec":{"type":"number","minimum":15,"maximum":120,"description":"Target duration in seconds, 15-120. Values below 15 are rejected with INPUT_INVALID. 15-25s suits hook+body+CTA; 30-60s suits narrative."},"aspect_ratio":{"type":"string","enum":["9:16"]},"content_style":{"type":"string","enum":["professional","educational","inspirational","energetic","calm","entertaining"],"description":"Script tone and pacing. Default professional."},"voice_id":{"type":"string","description":"ElevenLabs voice id. Default: chosen from voice_gender, else the brand tone."},"agent_run_id":{"type":"string"},"footage_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Visual search hints for automatically selected stock footage, e.g. sales team, server room. Does not change narration."},"exclude_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Exclude automatic stock clips whose metadata contains these whole-word phrases (simple plurals supported). No unlabelled fallback when exclusions are supplied. Caller-provided assets are preserved."},"clip_type":{"type":"string","description":"Footage niche, e.g. business, tech, tech/ai, tech/cyber, finance, nature, default/houses. Also picks the music folder. Default: inferred from brand.industry/keywords and the brief, else business. Unknown values return 400."},"voice_gender":{"type":"string","enum":["female","male"],"description":"Default-voice pick when voice_id is omitted (female Rachel, male George)."},"voice_speed":{"type":"number","minimum":0.7,"maximum":1.3,"description":"Narration speed. Default 1.0. Generated scripts are sized for it; the duration fit still applies."},"language":{"type":"string","description":"ISO 639-1 narration and script language (e.g. en, es, de, pt, ar). Default: detected from the script/prompt. Unsupported voice languages return 400."},"caption_language":{"type":"string","description":"ISO 639-1 caption language when it differs from the narration (captions are translated). Default: same as language."},"include_captions":{"type":"boolean","description":"Burned-in captions. Default true."},"caption_style":{"type":["object","string"],"anyOf":[{"type":"string","enum":["highlight","classic","none"]},{"type":"object"}],"additionalProperties":false,"description":"Caption look. Request values beat the brand: request > brand colors > account brand > defaults.","properties":{"preset":{"type":"string","enum":["highlight","classic","none"],"description":"highlight (default): large 1-3 word chunks with the spoken word coloured. classic: bold uppercase phrases, no word colour. none: no captions."},"text_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Caption text colour. Default #FFFFFF (account brand caption colour if set)."},"highlight_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word colour (highlight preset only). Default brand.accent_color/primary_color, else the account brand, else #FFD60A."},"position":{"type":"string","enum":["lower_third","center","top"],"description":"Default lower_third."},"font_size":{"type":"string","enum":["small","medium","large"],"description":"Default large."}}},"include_music":{"type":"boolean","description":"Alias of music.enabled. Default true."},"music":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Background music. Default true."},"volume":{"type":"number","minimum":0,"maximum":1,"description":"Music level under the voice. Default 0.35."}}},"music_volume":{"type":"number","minimum":0,"maximum":1,"description":"Alias of music.volume. Default 0.35."},"cta":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":120}},"description":"Closing call to action, appended as the last line of a GENERATED script. Ignored when you send script (put it in your script). Without cta, the brand website is mentioned when one is set."},"include_hook":{"type":"boolean","description":"Open the script with a researched hook line (English). Default: off (natural opening); false forbids any hook line. Ignored when you send script."},"include_branding":{"type":"boolean","description":"ReelsBuilder watermark. Default true; false on a paid plan removes it."},"progress_bar":{"type":"object","additionalProperties":false,"required":["enabled"],"description":"Optional in-video progress bar (off by default): { enabled, position: \"top\" | \"bottom\" (default bottom), color: \"#RRGGBB\" (default the brand accent, accentOnDark) }. A thin (8 px) bar that fills left to right over the video, flush with the very edge. Bottom is a known retention pattern; Instagram's UI may overlap the bottom edge. progress_bar_enabled: true is an alias for { enabled: true }.","properties":{"enabled":{"type":"boolean","description":"Draw the bar. Default off."},"position":{"type":"string","enum":["top","bottom"],"default":"bottom","description":"top or bottom, flush with the very edge. Instagram's UI may overlap the bottom edge."},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Bar colour. Default: the brand accent (accentOnDark), else #FFD60A."}}},"progress_bar_enabled":{"type":"boolean","description":"Alias of progress_bar.enabled (bottom edge, brand-accent colour)."},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"generation_id":{"type":"string"},"video_id":{"type":"string"},"status":{"type":"string"},"poll_url":{"type":"string"},"source_article":{"type":"object"},"distribution":{"type":"object"},"output_contract":{"type":"object"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"generate_ai_video","title":"Generate raw AI video clip (Seedance 2.0 / Veo 3.1 / Kling 3.0 / Wan 3.0)","description":"AI video model render from a text prompt (the visuals), finished as a short-form video: a licensed instrumental music bed by default (music=false for none); optional narration from script (spoken verbatim) or, with content_purpose and no script, a script written for you; word-highlight captions of the narration (captions, default true when narrated); optional brand (logo watermark, caption colour, name/website in a generated script). Kling 3.0 Standard/Pro render without the model's own generated soundtrack unless native_audio=true (which costs more); other models keep it. Pass quality_tier=low|medium|high|xhigh|max or an exact model id; GET /api/v1/tools lists every tier and model with its 30s and 60s price. Price depends on the model and clip length: the amount charged is returned in the X-Api-Credits-Cost-Usd-Cents response header, and a 402 INSUFFICIENT_API_CREDITS body states the required amount. Refunded if the render fails.","method":"POST","path":"/api/v1/videos/text-to-video","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string","minLength":3},"quality_tier":{"type":"string","enum":["low","medium","high","xhigh","max"],"description":"Quality level: low=Wan 3.0, medium=Kling 3.0 Standard, high=Kling 3.0 Pro, xhigh=Seedance 2.0, max=Veo 3.1 (low renders at 720p). Overridden by model if both are passed. With neither, the default is Seedance 2.0."},"model":{"type":"string","enum":["kling-3-t2v","google/veo-3.1","bytedance/seedance-2.0","fal-ai/wan/v2.7","fal-ai/ltx-2.3","fal-ai/pixverse/v6","wan-3.0","kling-3.0-standard","kling-3.0-pro"],"description":"Current production model ID. Default is bytedance/seedance-2.0."},"duration_sec":{"type":"number","minimum":2,"maximum":60,"description":"30 (default) or 60 seconds, assembled from coherent native shots. A single native clip length the model supports is also accepted."},"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"resolution":{"type":"string","enum":["480p","720p","1080p","1440p","2160p"]},"script":{"type":"string","maxLength":2000,"description":"Narration, spoken word for word by an ElevenLabs voice (prompt = what is shown, script = what is said). Budget about 2.4 words per second: ~72 words for 30s, ~144 for 60s. A slightly longer script adds one extra shot (priced); a much longer one returns 400 INPUT_INVALID with the word budget. Omit for no narration."},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"With no script: write a narration script from the prompt for this purpose, sized to the length (brand name and website woven in when brand is sent). Ignored when script is sent."},"voice_id":{"type":"string","description":"ElevenLabs voice id for the narration. Default: a female voice (or male with voice_gender)."},"voice_gender":{"type":"string","enum":["female","male"],"description":"Default narration voice when no voice_id is sent. Default female."},"captions":{"type":"boolean","description":"Burn word-highlight captions of the narration. Default true when there is narration; no effect without it."},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Saved brand kit (create_brand): normalized logo, palette, font and style for this account. Inline brand fields sent alongside override the kit field by field. Unknown or another account's id: 404 BRAND_NOT_FOUND, free."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Optional: the brand kit must belong to this end customer."},"website_url":{"type":"string","maxLength":2048,"description":"Instead of brand_id: the client's website (domain or http(s) URL). This account's kit for the domain is reused, or built from the site (crawl + profile, up to ~40 s) and remembered, before any charge. Headers X-Brand-Kit-Id / X-Brand-Kit-Source (built|reused) / X-Brand-Kit-Stale. Failure: free 422 BRAND_AUTOGEN_FAILED with reason. brand_id wins when both are sent; dry runs never crawl."},"confirm_authorized":{"type":"boolean","description":"With website_url: required (true) when the domain is a well-known brand (else free 422 BRAND_CONFIRMATION_REQUIRED). Confirms this account is authorised to market that brand."},"brand":{"type":"object","additionalProperties":false,"description":"Per-request brand (same contract as generate_video_asset): logo_url becomes a bottom-right watermark, accent_color (else primary_color) colours the active caption word, name and website_url are woven into a generated script.","properties":{"name":{"type":"string","maxLength":80},"website_url":{"type":"string","format":"uri"},"logo_url":{"type":"string","format":"uri","description":"Public https image URL."},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"tone":{"type":"string","enum":["professional","casual","energetic","bold","calm","analytical"]},"industry":{"type":"string","maxLength":80},"keywords":{"type":"array","items":{"type":"string","maxLength":40},"maxItems":10}}},"native_audio":{"type":"boolean","description":"Keep the model's own generated soundtrack (ambient/SFX). Default false on kling-3.0-standard and kling-3.0-pro (priced lower; true uses the prices_native_audio row in GET /api/v1/tools), default true on every other model."},"music":{"type":"boolean","description":"Mix a licensed instrumental music bed under the video (ducked under native audio when that is on). Default true; false ships the native track, or a silent audio track when native_audio is off. No price change."},"image_url":{"type":"string","format":"uri","description":"Ignored by this endpoint. To animate an image, call POST /api/v1/videos/image-to-video with image_url."},"reference_image_urls":{"type":"array","items":{"type":"string","format":"uri"},"description":"Some models (Veo 3.1, Seedance) accept reference images for style/composition anchoring. Max 3 for Veo 3.1."},"webhook_url":{"type":"string","format":"uri","description":"Public https URL; one signed callback (X-ReelsBuilder-Signature, secret from GET /api/v1/webhook-secret) when the job ends."},"agent_run_id":{"type":"string"},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":["prompt"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"status":{"type":"string"},"poll_url":{"type":"string"},"model":{"type":"string"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"generate_ai_influencer","title":"Generate an AI influencer video (talking head, or presenter + B-roll explainer) from a persona or one photo","description":"A presenter speaks your script word for word, with lip-synced ElevenLabs narration (HeyGen). Send EITHER avatar_id (a persona from create_avatar; choose engine, default avatar_iii) OR image_url (a raw photo; always avatar_iv); OR, faceless (format presenter_broll, layout creator), host { type: \"logo\" }: the brand logo is the animated host (no HeyGen, ElevenLabs narration; billed like avatar_iii for the same length, engine logo_host). Up to 120 seconds of speech (~300 words). format \"presenter_broll\" is the organic AI-explainer edit (for organic reach, not ads). layout \"creator\" (default with 9:16): the creator edit, a purpose-driven storyboard with the presenter only on the hook, opinion/payoff lines and the close (at most 2.5 s at a time, 35% of the runtime), full-screen footage and motion graphics elsewhere, cuts timed to the words, every visual changing within 4 s; metadata.storyboard and metadata.qa come with the video. layout \"split\": topic visuals in the top half changing every 1.5-4 s for the whole video, the presenter always visible in the bottom half (chest-up crop), a short caption phrase on the seam (caption_style seam). layout \"cutaway\": the presenter full frame, explanatory lines cut to full-screen stock B-roll. broll.visuals: stock (default): the top half mostly shows motion graphics we render ourselves in your accent colour (the message thread, notification, inbox, number, steps, comparison or quote the line is about), real stock footage where a real-world scene helps, and headline cards; no AI images. generated (opt-in): the same graphics, with AI scene stills for the footage moments (at most about 1 shot in 4). mixed (opt-in): graphics and real footage, AI stills only when no footage fits. AI stills (generated/mixed) are produced by a third-party image model (Higgsfield) from prompts derived from your script; footage searches send short queries to stock libraries; brand name and logo are never sent. Stock footage comes from licensed free-stock libraries (Pixabay, Coverr; free commercial use, no attribution required) and our own library. People shown in stock footage are never presented as endorsing you or your product. Send topic (+ duration_sec 15-90) instead of script and we write a hook-first, one-idea script with no sales pitch (returned as artifacts.script). Best effort: creator falls back to split, split to cutaway, cutaway to the talking head (metadata.presenterBroll.layout / applied record it); same price. Send exactly one of script or topic. Priced per engine x spoken length (provider cost x 2; with topic, x duration_sec): avatar_iii $1.00/30s, avatar_iv $2.45/30s, avatar_v $7.25/30s; GET /api/v1/tools -> pricing.ai_influencer has 30s/60s prices. The exact charge is in the X-Api-Credits-Cost-Usd-Cents header and the engine in X-Api-Credits-Engine. An avatar_id that is not this account's returns 404 AVATAR_NOT_FOUND; an engine the persona does not support returns 400 ENGINE_NOT_SUPPORTED (both free). Returns jobId (top level); poll GET /api/v1/jobs/{job_id}. Refunded if the render fails. Funnel content (presenter_broll + topic): content_stage + content_type pick the hook, body pattern, CTA strength (soft/mid/direct, from the brand kit's profile.cta) and graphic templates; with brand_id, the kit's client profile (audience, offer, tone, proof points = the only numbers a script may state, banned topics, default presenter) steers the script. series_id (needs brand_id) keeps presenter, voice, engine, hook style and palette across a series and avoids repeated topics. variations { count 1-5, vary } writes N distinct scripts from one topic and queues N jobs at N x the single price (Idempotency-Key covers the set); the response is data.job_ids[].","method":"POST","path":"/api/v1/videos/ai-influencer","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"avatar_id":{"type":"string","description":"A persona id from create_avatar / list_avatars (status ready). Use instead of image_url for engine choice and the cheapest render."},"engine":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"],"description":"Render engine. avatar_id: avatar_iii (default; best lip sync, cheapest, ~6.5 min), avatar_iv (more expressive, ~3.5 min), avatar_v (premium/experimental; only if the persona lists it). image_url: avatar_iv only."},"image_url":{"type":"string","format":"uri","description":"Public https photo of one person, face clearly visible (portrait, front-facing). Renders on avatar_iv. Use instead of avatar_id."},"format":{"type":"string","enum":["talking_head","presenter_broll"],"default":"talking_head","description":"talking_head: presenter full frame. presenter_broll: the AI-explainer edit (see layout)."},"layout":{"type":"string","enum":["creator","split","cutaway"],"description":"presenter_broll only. creator (default with 9:16; needs 9:16): full-screen creator edit, presenter on the hook/opinion/payoff/close only (<= 2.5 s at a time, <= 35%), B-roll and motion graphics elsewhere, 1-3 word captions. split (needs 9:16): visuals top half for the whole video, presenter bottom half cropped chest-up, caption on the seam, logo top-right. cutaway (default for 16:9/1:1): presenter full frame + full-screen B-roll cutaways (hook and last line stay on the presenter)."},"caption_style":{"type":"string","enum":["seam","karaoke"],"description":"presenter_broll only. seam (default for split; split only): one 2-5 word phrase at a time in a rounded dark box on the seam, keyword in brand.accent_color. karaoke (default for cutaway): word-highlight captions at the bottom. On layout creator either value burns the creator edit's own captions (1-2 words, the spoken word highlighted), placed clear of its graphics."},"presenter_placement":{"type":"string","enum":["bottom_left","bottom_center"],"default":"bottom_left","description":"presenter_broll layout creator only. Where the cut-out presenter (background removed) sits over the full-frame B-roll and graphics. bottom_left (default, the customer-reference look): a smaller presenter, about 30-34% of the frame height, anchored bottom-left with the body running off the bottom edge; 1-2 word captions at chest height beside him (never over his face or body, never under the platform's action buttons or caption text); graphics use the full width above his head. bottom_center: the presenter centred, chest-up, 35-42% of the frame height, captions on his chest below the face."},"host":{"type":"object","description":"presenter_broll layout creator only. Who presents: { type: \"avatar\" } (default: avatar_id / image_url / presenter_video_url) or { type: \"logo\", logo_url?, style?, show_url?, url_text? } for a faceless edit: the brand's logo is the host, animated in our worker (style cube: a rotating 3D cube with the logo on its faces; card: a glassy 3D card for wide wordmarks or tall marks; auto (default) picks cube for a squarish logo, else card). It breathes and pulses with the narration, sends signal rings and data particles on speech peaks and a light stream into each graphic as it appears; brand colours from the kit. logo_url defaults to the brand logo (brand_id kit or brand.logo_url; neither = a free 422 LOGO_HOST_NO_LOGO). The URL line under the host (show_url, default true) reads url_text, default the brand website's domain. No avatar_id / image_url / engine; narration is ElevenLabs (voice_id, else the kit's default presenter voice, else voice_gender's default). The logo is never sent to an image or video model.","required":["type"],"additionalProperties":false,"properties":{"type":{"type":"string","enum":["avatar","logo"],"default":"avatar"},"logo_url":{"type":"string","format":"uri","description":"logo only: public https PNG / JPG / WebP / SVG. Default: the brand logo (brand_id kit or brand.logo_url)."},"style":{"type":"string","enum":["cube","card","auto"],"default":"auto","description":"logo only: cube (rotating 3D cube), card (glassy 3D card), auto (cube for a squarish logo, else card)."},"show_url":{"type":"boolean","default":true,"description":"logo only: the URL line under the host."},"url_text":{"type":"string","minLength":1,"maxLength":40,"description":"logo only: the URL line text. Default: the brand website's domain (e.g. siliconangle.com)."}}},"progress_bar":{"type":"object","additionalProperties":false,"required":["enabled"],"description":"presenter_broll only. Optional in-video progress bar (off by default): { enabled, position: \"top\" | \"bottom\" (default bottom), color: \"#RRGGBB\" (default the brand accent, accentOnDark) }. A thin (8 px) bar that fills left to right over the video, flush with the very edge. Bottom is a known retention pattern; Instagram's UI may overlap the bottom edge. progress_bar_enabled: true is an alias for { enabled: true }.","properties":{"enabled":{"type":"boolean","description":"Draw the bar. Default off."},"position":{"type":"string","enum":["top","bottom"],"default":"bottom","description":"top or bottom, flush with the very edge. Instagram's UI may overlap the bottom edge."},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Bar colour. Default: the brand accent (accentOnDark), else #FFD60A."}}},"progress_bar_enabled":{"type":"boolean","description":"presenter_broll only. Alias of progress_bar.enabled (bottom edge, brand-accent colour)."},"presenter_video_url":{"type":"string","format":"uri","description":"presenter_broll only, NOT ENABLED YET (returns 400 until priced): your own talking-head recording instead of avatar_id/image_url. Public https mp4/mov, max 90 s / 200 MB, must have audio. script optional (we transcribe it)."},"script":{"type":"string","minLength":1,"maxLength":2000,"description":"Spoken verbatim. ~75 words = 30s, ~150 words = 60s; max 120s. Send exactly one of script or topic."},"topic":{"type":"string","minLength":1,"maxLength":500,"description":"presenter_broll only: what the video teaches; we write the script (hook first, one idea, concrete examples, no hard CTA)."},"duration_sec":{"type":"integer","minimum":15,"maximum":90,"default":30,"description":"With topic: target spoken length; priced as this many seconds of speech. Ignored with script."},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"presenter_broll + topic: editorial job of the script we write. Ignored otherwise.","default":"education"},"content_stage":{"type":"string","enum":["awareness","consideration","decision"],"default":"awareness","description":"presenter_broll only. content_stage (awareness | consideration | decision, default awareness) and content_type (default educational; awareness: educational, infographic, statistic, checklist, hot_take, summary; consideration: comparison, how_to, case_study, insight, myth_vs_fact; decision: alternatives, review, versus, demo, objection, pricing_explainer) pick the script structure (hook, body pattern, and a CTA that is soft for awareness, mid for consideration and direct for decision, using the brand kit's profile.cta) and the graphic templates. The type must belong to the stage (free 400). The API also accepts stage words: conversion / bottom / bofu = decision, middle / mofu = consideration, education / top / tofu / marketing_funnel_top = awareness (an unknown value is a free 422 STAGE_UNKNOWN with the valid list)."},"content_type":{"type":"string","enum":["educational","infographic","statistic","checklist","hot_take","summary","comparison","how_to","case_study","insight","myth_vs_fact","alternatives","review","versus","demo","objection","pricing_explainer"],"default":"educational","description":"presenter_broll only. Must belong to content_stage. awareness: educational, infographic, statistic, checklist, hot_take, summary; consideration: comparison, how_to, case_study, insight, myth_vs_fact; decision: alternatives, review, versus, demo, objection, pricing_explainer. Picks the hook, the body pattern and the graphic templates (stat, steps/checklist, comparison/vs, UI walkthrough, notification...)."},"mode":{"type":"string","enum":["awareness","education","top","tofu","marketing_funnel_top","consideration","middle","mofu","marketing_funnel_middle","decision","conversion","bottom","bofu","marketing_funnel_bottom"],"description":"presenter_broll only. Alias of content_stage: awareness | consideration | decision, plus the stage words conversion / bottom / bofu (= decision), middle / mofu (= consideration), education / top / tofu / marketing_funnel_top (= awareness); content_stage accepts the same words. If content_stage is also sent and they disagree: 422 MODE_CONFLICT (free); an unknown value: 422 MODE_UNKNOWN / STAGE_UNKNOWN with the valid list."},"submode":{"type":"string","maxLength":60,"description":"presenter_broll only. Alias of content_type: any content_type value, or a natural word for it (objections -> objection, vs/comparison -> comparison while considering and versus at decision, how-to -> how_to, myths -> myth_vs_fact, pricing -> pricing_explainer, stats -> statistic, recap -> summary ...). Resolved within the stage (mode / content_stage); an unknown word for that stage: 422 SUBMODE_UNKNOWN listing the stage's valid values (free)."},"instructions":{"type":"string","minLength":1,"maxLength":1000,"description":"presenter_broll only. Free-text steer for this video (1-1000 characters): angle, hook, tone, emphasis, what to stress or avoid. Applied to the script we write, the shot planner and the plan review, with lower priority than our rules: it can not override the brand kit's banned_topics, content moderation, the no-third-party-trademark rule, the production QA gates, the closing call-to-action line, or the rule that numbers come only from the brand kit's proof points / your topic. With a supplied script (spoken verbatim) it steers the visuals only. Moderated before billing (422 content_policy_violation, free). Same instructions for every item of a variations request. Stored on the job; video metadata keeps only its length and SHA-256."},"custom_ai_video_instructions":{"type":"string","minLength":1,"maxLength":1000,"description":"Alias of instructions. Sending both with different text is a free 422 INSTRUCTIONS_CONFLICT."},"series_id":{"type":"string","maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"presenter_broll only; needs brand_id (+ optional customer_id). Your own id for a recurring series of this brand. The first video fixes the presenter (avatar_id), voice_id, engine, hook style and palette; later videos reuse them (sending a different avatar_id / voice_id / engine returns 409 SERIES_CONFLICT, free). Covered topics are remembered: the script avoids repeating them, and the exact same topic again returns 409 SERIES_TOPIC_REPEATED (free)."},"variations":{"type":"object","additionalProperties":false,"required":["count"],"description":"presenter_broll + topic only. { count: 1-5, vary?: [\"hook\", \"angle\", \"content_type\", \"presenter\"] (default [\"hook\",\"angle\"]), presenters?: [avatar_id, ...] }. One request queues N jobs through the batch machinery and answers as soon as they are recorded; the N distinct scripts are written from the same brief right after the answer (Claude-scored pairwise similarity; a variant that is too similar is rewritten) and each job waits for its own. Price: N x the single-video price (dry_run quotes the total). Requires an Idempotency-Key: it covers the whole set (items use <key>:v<index>; a retry replays the same jobs). The same body sent again with another key while the first is handled or just accepted is not a second set (see conventions.idempotency.duplicate_requests). Response: data.job_ids[] in variant order; data.distinctness.status is \"pending\" until the scripts are checked (send the same request with the same key again to read the verdict; nothing is queued or charged again).","properties":{"count":{"type":"integer","minimum":1,"maximum":5},"vary":{"type":"array","uniqueItems":true,"minItems":1,"items":{"type":"string","enum":["hook","angle","content_type","presenter"]},"default":["hook","angle"]},"presenters":{"type":"array","minItems":2,"maxItems":5,"items":{"type":"string"},"description":"vary \"presenter\": avatar ids to rotate (default: the brand kit's default presenter, then this account's other ready personas)."}}},"variation_ref":{"type":"object","additionalProperties":false,"required":["set_id","index"],"description":"Set by a variations request on each of its items (you never need to send it; resending an item's exact body replays it).","properties":{"set_id":{"type":"string","pattern":"^vs_[a-f0-9]{24}$"},"index":{"type":"integer","minimum":0,"maximum":4}}},"broll":{"type":"object","additionalProperties":false,"description":"presenter_broll only: B-roll options.","properties":{"coverage":{"type":"number","minimum":0.2,"maximum":0.8,"default":0.5,"description":"layout cutaway: share of the runtime on B-roll (split covers the whole video)."},"visuals":{"type":"string","enum":["stock","generated","mixed"],"default":"stock","description":"stock (default): the top half mostly shows motion graphics we render ourselves in your accent colour (the message thread, notification, inbox, number, steps, comparison or quote the line is about), real stock footage where a real-world scene helps, and headline cards; no AI images. generated (opt-in): the same graphics, with AI scene stills for the footage moments (at most about 1 shot in 4). mixed (opt-in): graphics and real footage, AI stills only when no footage fits. AI stills come from a third-party image model (Higgsfield); prompts derived from your script are sent to it (never the brand name or logo). Same price."},"footage_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Terms that steer every B-roll search."},"exclude_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Never use footage tagged with these terms."},"clip_type":{"type":"string","description":"Stock footage niche (see GET /api/v1/capabilities -> niche). Default: inferred from brand and topic, else business."}}},"voice_id":{"type":"string","description":"ElevenLabs voice id. When omitted, a default voice matching the presenter is used."},"voice_gender":{"type":"string","enum":["female","male"],"description":"Default-voice hint when voice_id is omitted."},"speed":{"type":"number","minimum":0.5,"maximum":1.5},"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"captions":{"anyOf":[{"type":"boolean"},{"type":"object","required":["enabled"],"properties":{"enabled":{"type":"boolean"},"style":{"type":"string","enum":["karaoke","seam","kinetic_bold"],"description":"Sets caption_style (presenter_broll); kinetic_bold = karaoke. Unknown: free 422 CAPTION_STYLE_UNKNOWN."},"position":{"type":"string","description":"Accepted and ignored (caption placement follows the layout's safe zone)."}}}],"default":true,"description":"Captions from actual presenter speech. true / false, or { enabled, style?, position? } (style -> caption_style; a style that disagrees with caption_style is a free 422 CAPTION_STYLE_CONFLICT)."},"music":{"type":"boolean","default":true,"description":"Licensed instrumental under the original voice; omitted if no track is available."},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Saved brand kit (create_brand): normalized logo, palette, font and style for this account. Inline brand fields sent alongside override the kit field by field. Unknown or another account's id: 404 BRAND_NOT_FOUND, free."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Optional: the brand kit must belong to this end customer."},"website_url":{"type":"string","maxLength":2048,"description":"Instead of brand_id: the client's website (domain or http(s) URL). This account's kit for the domain is reused, or built from the site (crawl + profile, up to ~40 s) and remembered, before any charge. Headers X-Brand-Kit-Id / X-Brand-Kit-Source (built|reused) / X-Brand-Kit-Stale. Failure: free 422 BRAND_AUTOGEN_FAILED with reason. brand_id wins when both are sent; dry runs never crawl."},"confirm_authorized":{"type":"boolean","description":"With website_url: required (true) when the domain is a well-known brand (else free 422 BRAND_CONFIRMATION_REQUIRED). Confirms this account is authorised to market that brand."},"brand":{"type":"object","additionalProperties":false,"description":"Per-request logo and caption accent. A supplied script stays verbatim; with topic, brand.name may appear once in the written script and industry/keywords pick the B-roll niche.","properties":{"name":{"type":"string","maxLength":80},"website_url":{"type":"string","format":"uri","description":"https URL; mentioned in the closing line when no cta is sent."},"logo_url":{"type":"string","format":"uri","description":"Public https PNG/JPG, shown as a bottom-right watermark."},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word caption colour unless caption_style.highlight_color is sent."},"tone":{"type":"string","enum":["professional","casual","energetic","bold","calm","analytical"]},"industry":{"type":"string","maxLength":80,"description":"Also used to infer clip_type."},"keywords":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":40}}}},"webhook_url":{"type":"string","format":"uri","description":"Public https URL; one signed callback when the job ends."},"agent_run_id":{"type":"string"},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"jobId":{"type":"string","description":"Single video."},"videoId":{"type":"string"},"creditsUsed":{"type":"number"},"data":{"type":"object","additionalProperties":false,"properties":{"variation_set_id":{"type":"string"},"count":{"type":"integer"},"accepted":{"type":"integer"},"rejected":{"type":"integer"},"job_ids":{"type":"array","items":{"type":"string"},"description":"variations: one job id per accepted variant, in variant order."},"variants":{"type":"array","items":{"type":"object"}},"distinctness":{"type":"object"},"series_id":{"type":"string"}},"required":[]}},"required":["success"],"description":"Single video: { success, jobId, videoId }. With variations: { success, data: { variation_set_id, job_ids[], variants[], distinctness } }."}},{"name":"create_avatar","title":"Create a reusable AI influencer persona from one photo","description":"Turn one photo of a person into a reusable presenter (persona) for generate_ai_influencer. Costs $2.65 once per persona (provider cost x 2), refunded if creation fails. Usually ready within ~20 s (201, status ready); otherwise 202 with status processing — poll GET /api/v1/avatars/{avatar_id} or list_avatars. Returns avatar_id (a ReelsBuilder id) and supported_engines. The photo passes a content-safety check (422 when blocked). Only send photos you have the rights to use. wardrobe (optional on create_avatar): preset tee|polo|oxford|blazer|hoodie|lab_coat|quarter_zip, color (#RRGGBB or a name), logo { brand_id of YOUR brand kit, placement chest_left|chest_center }, prompt (garment style only). No third-party marks: schools/universities, companies, teams, uniforms, text or other logos are refused with a free 422 (WARDROBE_TRADEMARK, WARDROBE_FALSE_AFFILIATION, WARDROBE_TEXT_NOT_ALLOWED). With wardrobe, create_avatar costs $2.80.","method":"POST","path":"/api/v1/avatars","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"image_url":{"type":"string","format":"uri","description":"Public https JPG/PNG of one person, face clearly visible (portrait, front-facing)."},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Your label for this persona."},"wardrobe":{"type":"object","properties":{"preset":{"type":"string","enum":["tee","polo","oxford","blazer","hoodie","lab_coat","quarter_zip"],"description":"Garment. Default tee."},"color":{"type":"string","maxLength":40,"description":"#RRGGBB or a named colour. Default charcoal."},"logo":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"A brand kit this account owns (POST /api/v1/b2b/brands) with a logo. The only logo a wardrobe can carry."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional: must match the kit's customer_id."},"placement":{"type":"string","enum":["chest_left","chest_center"],"default":"chest_left","description":"chest_left = the wearer's left chest (small mark); chest_center = centred print."}},"required":["brand_id"],"additionalProperties":false},"prompt":{"type":"string","minLength":3,"maxLength":200,"description":"Optional garment style detail (fit, fabric, collar). Moderated: no text, logos, insignia, schools, companies, teams or uniforms."}},"additionalProperties":false,"description":"Outfit for the presenter (\"shirt control\"). The face is kept (identity-checked); the only logo allowed is your own brand kit (wardrobe.logo.brand_id). Schools, companies, teams, uniforms, text and third-party marks are refused with a free 422."}},"required":["image_url"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":true,"properties":{"avatar_id":{"type":"string","description":"ReelsBuilder avatar id (use it as avatar_id on generate_ai_influencer)."},"name":{"type":"string"},"status":{"type":"string","enum":["processing","ready","failed"]},"supported_engines":{"type":"array","items":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"source_image_url":{"type":"string"},"created_at":{"type":["string","null"]},"poll_url":{"type":"string"},"parent_avatar_id":{"type":"string","description":"Wardrobe looks: the persona this look was made from."},"wardrobe":{"type":"object","additionalProperties":true,"description":"The outfit applied (preset, color, logo, prompt)."},"look_image_url":{"type":"string","description":"Wardrobe looks: the edited photo the presenter was built from."}},"required":["avatar_id","status","supported_engines"]},"meta":{"type":"object"}},"required":["success","data"]}},{"name":"create_avatar_look","title":"Make a new outfit (look) of an existing AI influencer persona","description":"Change what a persona wears (garment, colour, optionally your OWN brand logo on the chest) while keeping the same face and voice. Edits the persona's ORIGINAL photo, checks the face did not change, prints the brand-kit logo on our servers (the logo and brand name are never sent to the image model), and creates a new persona: a new avatar_id with parent_avatar_id. Costs $2.80 (persona creation + the edit, provider cost x 2); refunded when the edit fails its identity or logo QA. wardrobe (optional on create_avatar): preset tee|polo|oxford|blazer|hoodie|lab_coat|quarter_zip, color (#RRGGBB or a name), logo { brand_id of YOUR brand kit, placement chest_left|chest_center }, prompt (garment style only). No third-party marks: schools/universities, companies, teams, uniforms, text or other logos are refused with a free 422 (WARDROBE_TRADEMARK, WARDROBE_FALSE_AFFILIATION, WARDROBE_TEXT_NOT_ALLOWED). With wardrobe, create_avatar costs $2.80.","method":"POST","path":"/api/v1/avatars/{avatar_id}/looks","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"avatar_id":{"type":"string","pattern":"^[a-fA-F0-9]{24}$","description":"A ready persona from create_avatar / list_avatars (path parameter)."},"wardrobe":{"type":"object","properties":{"preset":{"type":"string","enum":["tee","polo","oxford","blazer","hoodie","lab_coat","quarter_zip"],"description":"Garment. Default tee."},"color":{"type":"string","maxLength":40,"description":"#RRGGBB or a named colour. Default charcoal."},"logo":{"type":"object","properties":{"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"A brand kit this account owns (POST /api/v1/b2b/brands) with a logo. The only logo a wardrobe can carry."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","description":"Optional: must match the kit's customer_id."},"placement":{"type":"string","enum":["chest_left","chest_center"],"default":"chest_left","description":"chest_left = the wearer's left chest (small mark); chest_center = centred print."}},"required":["brand_id"],"additionalProperties":false},"prompt":{"type":"string","minLength":3,"maxLength":200,"description":"Optional garment style detail (fit, fabric, collar). Moderated: no text, logos, insignia, schools, companies, teams or uniforms."}},"additionalProperties":false,"description":"Outfit for the presenter (\"shirt control\"). The face is kept (identity-checked); the only logo allowed is your own brand kit (wardrobe.logo.brand_id). Schools, companies, teams, uniforms, text and third-party marks are refused with a free 422."},"name":{"type":"string","minLength":1,"maxLength":100,"description":"Label for the new look. Default: '<parent name> (<preset>)'."}},"required":["avatar_id","wardrobe"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":true,"properties":{"avatar_id":{"type":"string","description":"ReelsBuilder avatar id (use it as avatar_id on generate_ai_influencer)."},"name":{"type":"string"},"status":{"type":"string","enum":["processing","ready","failed"]},"supported_engines":{"type":"array","items":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"source_image_url":{"type":"string"},"created_at":{"type":["string","null"]},"poll_url":{"type":"string"},"parent_avatar_id":{"type":"string","description":"Wardrobe looks: the persona this look was made from."},"wardrobe":{"type":"object","additionalProperties":true,"description":"The outfit applied (preset, color, logo, prompt)."},"look_image_url":{"type":"string","description":"Wardrobe looks: the edited photo the presenter was built from."}},"required":["avatar_id","status","supported_engines"]},"meta":{"type":"object"}},"required":["success","data"]}},{"name":"list_avatars","title":"List this account's AI influencer personas","description":"List the personas created with create_avatar (newest first) with status and supported_engines. Free. Delete one with DELETE /api/v1/avatars/{avatar_id}.","method":"GET","path":"/api/v1/avatars","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"avatars":{"type":"array","items":{"type":"object","additionalProperties":true,"properties":{"avatar_id":{"type":"string","description":"ReelsBuilder avatar id (use it as avatar_id on generate_ai_influencer)."},"name":{"type":"string"},"status":{"type":"string","enum":["processing","ready","failed"]},"supported_engines":{"type":"array","items":{"type":"string","enum":["avatar_iii","avatar_iv","avatar_v"]}},"source_image_url":{"type":"string"},"created_at":{"type":["string","null"]},"poll_url":{"type":"string"},"parent_avatar_id":{"type":"string","description":"Wardrobe looks: the persona this look was made from."},"wardrobe":{"type":"object","additionalProperties":true,"description":"The outfit applied (preset, color, logo, prompt)."},"look_image_url":{"type":"string","description":"Wardrobe looks: the edited photo the presenter was built from."}},"required":["avatar_id","status","supported_engines"]}}},"required":["avatars"]},"meta":{"type":"object"}},"required":["success","data"]}},{"name":"generate_article","title":"Generate an SEO-optimized article or blog post","description":"Generate a structured, SEO-optimized article from a topic, keyword, or pillar. Returns article text, excerpt, SEO metadata, and a suggested video brief. Costs $0.20 in API credits.","method":"POST","path":"/api/v1/articles","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"topic":{"type":"string","minLength":3},"pillar":{"type":"string"},"contentType":{"type":"string","enum":["trend","evergreen"]},"autoPublish":{"type":"boolean"},"notifyDiscord":{"type":"boolean"},"agent_run_id":{"type":"string"}},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"article_url":{"type":"string"},"title":{"type":"string"},"content":{"type":"string"},"excerpt":{"type":"string"},"seo":{"type":"object"},"category":{"type":"string"},"published":{"type":"boolean"},"assetBrief":{"type":"object"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"clip_youtube","title":"Clip a YouTube video or autoclip a channel's next upload","description":"Queue short vertical clips from ONE YouTube video (youtube_url) or from a channel's next upload this account has not clipped yet (channel_url — call on your own cadence, e.g. daily per channel; returns 409 NO_NEW_CHANNEL_VIDEOS when nothing new). dry_run:true reports the selected source without queueing or charging. Errors: 400 CHANNEL_NOT_FOUND, 502 CHANNEL_UNAVAILABLE. Costs $0.40 in API credits per clip: charged for clip_count up front, and any requested clip that is not delivered is refunded automatically (all of it if the job fails). Poll data.poll_url; delivered clips are in data.job.artifacts.videoUrls. Optional webhook_url: one signed callback when the job ends. Does not publish.","method":"POST","path":"/api/v1/clipper/youtube","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","properties":{"youtube_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/(?:youtu\\.be\\/[a-zA-Z0-9_-]{11}\\/?(?:\\?[^\\s#]*)?|(?:(?:www|m|music)\\.)?youtube\\.com\\/(?:watch\\?v=[a-zA-Z0-9_-]{11}(?:&[^\\s#]*)?|(?:shorts|live|embed)\\/[a-zA-Z0-9_-]{11}\\/?(?:\\?[^\\s#]*)?))(?:#[^\\s]*)?$","description":"One YouTube video to clip. Send exactly one of youtube_url or channel_url."},"channel_url":{"type":"string","format":"uri","maxLength":2048,"pattern":"^https:\\/\\/(?:(?:www|m)\\.)?youtube\\.com\\/(?:@[A-Za-z0-9._-]{3,100}|channel\\/UC[A-Za-z0-9_-]{22}|c\\/[A-Za-z0-9._-]{1,100}|user\\/[A-Za-z0-9._-]{1,100})(?:\\/(?:videos|featured|streams))?\\/?(?:\\?[^\\s#]*)?$","description":"Autoclipper: clip the channel's next upload this account has not clipped yet (newest first). Call on your own cadence, e.g. daily per channel."},"selection":{"type":"string","enum":["newest_first","oldest_first"],"description":"Channel mode only. Default newest_first."},"dry_run":{"type":"boolean","description":"Free: validate, price and (channel mode) resolve the video that would be clipped, without queueing or charging."},"clip_count":{"type":"integer","minimum":1,"maximum":10,"description":"Maximum requested clips; provider can return fewer."},"aspect_ratio":{"type":"string","enum":["9:16","16:9","1:1"]},"captions":{"type":"boolean"},"focus":{"type":"string","minLength":1,"maxLength":250},"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"]},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","properties":{"job_id":{"type":"string","minLength":1},"video_id":{"type":"string","minLength":1},"status":{"type":"string","const":"queued"},"poll_url":{"type":"string","pattern":"^\\/api\\/v1\\/jobs\\/[^/]+$"},"requested_clip_count":{"type":"integer","minimum":1,"maximum":10},"source_video":{"type":"object","properties":{"youtube_video_id":{"type":"string","minLength":1},"title":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["youtube_video_id","title","url"],"additionalProperties":false,"description":"Channel mode: the upload that was selected."},"price_usd_cents":{"type":"integer","minimum":0,"description":"API credits charged for this request, in USD cents."},"delivery":{"type":"object","additionalProperties":{},"description":"Private delivery receipt, when private delivery was requested."}},"required":["job_id","video_id","status","poll_url","requested_clip_count"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},"required":[]}},{"name":"get_job_status","title":"Get job status","description":"Poll a render or clip job until it reaches a terminal state. The response is data.job with status (queued | leased | running | uploading | completed | failed | cancelled | dead_lettered), progress (list of { stage, message, percent }), artifacts (videoId, videoUrl, videoUrls for clips, thumbnailUrl) and error. Free; rate-limited to 60 reads per minute. Cancel an unfinished job with POST /api/v1/jobs/{job_id}/cancel.","method":"GET","path":"/api/v1/jobs/{job_id}","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"}},"required":["job_id"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"status":{"type":"string"},"progress":{"type":"number"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"post_video","title":"Post a completed video","description":"Publish a completed ReelsBuilder video to a social account connected by this API key's user. Synchronous: the response contains the platform post id and URL. Pass social_account_id (from GET /api/v1/social-accounts) for an exact account, or just platform to use the primary connected account. The video must belong to the key's user and have status=completed. Costs $0.05 in API credits.","method":"POST","path":"/api/v1/post","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"video_id":{"type":"string","description":"Completed ReelsBuilder video id (e.g. from a finished generation job)."},"social_account_id":{"type":"string","description":"Exact connected account id from GET /api/v1/social-accounts. Preferred when the user has multiple accounts per platform."},"account_id":{"type":"string","description":"Alias of social_account_id."},"platform":{"type":"string","enum":["youtube","instagram","tiktok","facebook","x","x_twitter"],"description":"Used to resolve the primary connected account when social_account_id is omitted."},"title":{"type":"string"},"caption":{"type":"string","description":"Used as the description, and as the title when title is omitted."},"description":{"type":"string"},"hashtags":{"type":"array","items":{"type":"string"},"description":"Leading # is stripped; max 30."},"privacy_status":{"type":"string","enum":["private","unlisted","public"],"description":"YouTube only. Default public."},"options":{"type":"object","description":"Advanced platform options passthrough (e.g. tiktok privacy/compliance flags)."},"agent_run_id":{"type":"string"}},"required":["video_id"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"message":{"type":"string"},"platform":{"type":"string"},"social_account_id":{"type":"string"},"video_id":{"type":"string"},"result":{"type":"object","description":"Platform-specific post id and URL (e.g. youtubeVideoId/youtubeUrl, tiktokPostId/tiktokUrl, xPostId/xUrl)."},"meta":{"type":"object"}},"required":["success","platform","video_id"]}},{"name":"create_schedule","title":"Create an autopilot schedule","description":"Create a recurring schedule for a connected social account. Costs $0.02 in API credits.","method":"POST","path":"/api/v1/schedules","idempotency":"recommended","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"platform":{"type":"string"},"cadence":{"type":"string","enum":["daily","weekly","custom"]},"account_id":{"type":"string"},"prompt":{"type":"string"},"agent_run_id":{"type":"string"}},"required":["name","platform","cadence"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"schedule_id":{"type":"string"},"status":{"type":"string"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"get_brand_profile","title":"Get brand profile (not available yet)","description":"Not available yet: returns 501 ENDPOINT_NOT_IMPLEMENTED. Listed for schema discovery only; do not call in production.","method":"GET","path":"/api/v1/brand-profile","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object"},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"search_library","title":"Search media library (not available yet)","description":"Not available yet: returns 501 ENDPOINT_NOT_IMPLEMENTED. Listed for schema discovery only; do not call in production. To list this account's generated videos use list_generated_videos.","method":"GET","path":"/api/v1/library/search","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{"query":{"type":"string"},"type":{"type":"string","enum":["video","image","audio","all"]}},"required":["query"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object"},"meta":{"type":"object"}},"required":["success","data","meta"]}},{"name":"get_trending","title":"Get trend opportunities","description":"Return current X trending topics (cached; refreshed periodically) suitable for turning into short-form videos. Free read. Pair a trend name with generate_video_asset.","method":"GET","path":"/api/v1/trending","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{"woeid":{"type":"number","description":"Where-On-Earth location id (default cache locale; US is 23424977)."},"category":{"type":"string","description":"Filter to a clip-type category (e.g. tech, finance) when the trend name matched one."},"limit":{"type":"number","minimum":1,"maximum":50}},"required":[]},"outputSchema":{"type":"object","anyOf":[{"type":"object","additionalProperties":false,"properties":{"success":{"const":true},"data":{"type":"object","additionalProperties":false,"properties":{"trends":{"type":"array","items":{"type":"object","description":"{ name, tweet_count, category, score, woeid, synced_at }"}},"source":{"type":"string"},"note":{"type":"string"},"sandbox":{"type":"boolean"}},"required":["trends","source"]},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","data","meta"]},{"type":"object","additionalProperties":false,"properties":{"success":{"const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message"],"additionalProperties":true},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","error"]}]}},{"name":"get_x_hooks","title":"Get proven X hooks","description":"Return ranked hooks mined from X for a topic or brand niche. Free read.","method":"GET","path":"/api/v1/x-hooks","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{"topic":{"type":"string"},"brand_id":{"type":"string"},"limit":{"type":"number","minimum":1,"maximum":25}},"required":[]},"outputSchema":{"type":"object","anyOf":[{"type":"object","additionalProperties":false,"properties":{"success":{"const":true},"data":{"type":"object","additionalProperties":false,"properties":{"hooks":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"id":{"type":"string"},"hook":{"type":"string"},"format":{"type":"string"},"score":{"type":"number"},"relevance_score":{"type":"number"},"virality_score":{"type":"number"},"freshness_score":{"type":"number"},"topics":{"type":"array","items":{"type":"string"}},"niches":{"type":"array","items":{"type":"string"}},"source_url":{"type":"string"},"original_post_id":{"type":"string"},"author_username":{"type":"string"},"metrics":{"type":"object"}},"required":["hook","score"]}},"sandbox":{"type":"boolean"}},"required":["hooks"]},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","data","meta"]},{"type":"object","additionalProperties":false,"properties":{"success":{"const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message"],"additionalProperties":true},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","error"]}]}},{"name":"get_usage","title":"Get API credit balance and usage","description":"Return the account's prepaid API credit balance in USD cents, top-up instructions, and auto-refill status. Use to check if enough balance exists before starting a paid generation.","method":"GET","path":"/api/v1/usage","idempotency":"not_applicable","creditMode":"free_read","inputSchema":{"type":"object","additionalProperties":false,"properties":{},"required":[]},"outputSchema":{"type":"object","anyOf":[{"type":"object","additionalProperties":false,"properties":{"success":{"const":true},"data":{"type":"object","additionalProperties":false,"properties":{"account":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"string"},"key_mode":{"type":"string","enum":["live","sandbox"]}},"required":["id","key_mode"]},"balance":{"type":"object","additionalProperties":true,"properties":{"api_credits_usd_cents":{"type":"number"},"api_credits_display":{"type":"string"}},"required":["api_credits_usd_cents"]},"billing_model":{"type":"object"},"pricing":{"type":"object"},"limits":{"type":"object"},"top_up":{"type":"object"}},"required":["account","balance","pricing","limits"]},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","data","meta"]},{"type":"object","additionalProperties":false,"properties":{"success":{"const":false},"message":{"type":"string"},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["code","message"],"additionalProperties":true},"meta":{"type":"object"},"transport":{"type":"object","additionalProperties":false,"properties":{"status":{"type":"integer"},"ok":{"type":"boolean"},"via":{"const":"mcp_rest_bridge"}},"required":["status","ok","via"]}},"required":["success","error"]}]}},{"name":"generate_and_post","title":"Legacy alias: generate a video asset","description":"Deprecated compatibility alias for generate_video_asset (same inputs and price). Queues a video render only; it does not publish or schedule a post.","method":"POST","path":"/api/v1/generate-and-post","idempotency":"required","creditMode":"live_charges","inputSchema":{"type":"object","additionalProperties":false,"properties":{"content_purpose":{"type":"string","enum":["education","sales","awareness","product_demo","case_study","news","entertainment"],"description":"Editorial job, independent of generation mode, niche and visual style. Education teaches one useful idea; sales connects a specific problem to the offer and an honest CTA."},"prompt":{"type":"string","minLength":3},"topic":{"type":"string"},"script":{"type":"string"},"asset_urls":{"type":"array","items":{"type":"string","format":"uri"}},"platforms":{"type":"array","items":{"type":"string","enum":["youtube","youtube_shorts","instagram","tiktok","facebook","facebook_reels","x","x_twitter"]}},"duration_target_sec":{"type":"number","minimum":15,"maximum":120,"description":"Target duration in seconds, 15-120. Values below 15 are rejected with INPUT_INVALID. 15-25s suits hook+body+CTA; 30-60s suits narrative."},"aspect_ratio":{"type":"string","enum":["9:16"],"description":"Stock video renders 9:16 (1080x1920) only; other values return 400."},"footage_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Visual search hints for automatically selected stock footage, e.g. sales team, server room. Does not change narration."},"exclude_keywords":{"type":"array","maxItems":32,"items":{"type":"string","minLength":1,"maxLength":100},"description":"Exclude automatic stock clips whose metadata contains these whole-word phrases (simple plurals supported). No unlabelled fallback when exclusions are supplied. Caller-provided assets are preserved."},"content_style":{"type":"string","enum":["professional","educational","inspirational","energetic","calm","entertaining"],"description":"Script tone and pacing. Default professional."},"clip_type":{"type":"string","description":"Footage niche, e.g. business, tech, tech/ai, tech/cyber, finance, nature, default/houses. Also picks the music folder. Default: inferred from brand.industry/keywords and the brief, else business. Unknown values return 400."},"voice_id":{"type":"string","description":"ElevenLabs voice id. Default: chosen from voice_gender, else the brand tone."},"voice_gender":{"type":"string","enum":["female","male"],"description":"Default-voice pick when voice_id is omitted (female Rachel, male George)."},"voice_speed":{"type":"number","minimum":0.7,"maximum":1.3,"description":"Narration speed. Default 1.0. Generated scripts are sized for it; the duration fit still applies."},"language":{"type":"string","description":"ISO 639-1 narration and script language (e.g. en, es, de, pt, ar). Default: detected from the script/prompt. Unsupported voice languages return 400."},"caption_language":{"type":"string","description":"ISO 639-1 caption language when it differs from the narration (captions are translated). Default: same as language."},"include_captions":{"type":"boolean","description":"Burned-in captions. Default true."},"caption_style":{"type":["object","string"],"anyOf":[{"type":"string","enum":["highlight","classic","none"]},{"type":"object"}],"additionalProperties":false,"description":"Caption look. Request values beat the brand: request > brand colors > account brand > defaults.","properties":{"preset":{"type":"string","enum":["highlight","classic","none"],"description":"highlight (default): large 1-3 word chunks with the spoken word coloured. classic: bold uppercase phrases, no word colour. none: no captions."},"text_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Caption text colour. Default #FFFFFF (account brand caption colour if set)."},"highlight_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word colour (highlight preset only). Default brand.accent_color/primary_color, else the account brand, else #FFD60A."},"position":{"type":"string","enum":["lower_third","center","top"],"description":"Default lower_third."},"font_size":{"type":"string","enum":["small","medium","large"],"description":"Default large."}}},"include_music":{"type":"boolean","description":"Alias of music.enabled. Default true."},"music":{"type":"object","additionalProperties":false,"properties":{"enabled":{"type":"boolean","description":"Background music. Default true."},"volume":{"type":"number","minimum":0,"maximum":1,"description":"Music level under the voice. Default 0.35."}}},"music_volume":{"type":"number","minimum":0,"maximum":1,"description":"Alias of music.volume. Default 0.35."},"cta":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":120}},"description":"Closing call to action, appended as the last line of a GENERATED script. Ignored when you send script (put it in your script). Without cta, the brand website is mentioned when one is set."},"include_hook":{"type":"boolean","description":"Open the script with a researched hook line (English). Default: off (natural opening); false forbids any hook line. Ignored when you send script."},"include_branding":{"type":"boolean","description":"ReelsBuilder watermark. Default true; false on a paid plan removes it."},"progress_bar":{"type":"object","additionalProperties":false,"required":["enabled"],"description":"Optional in-video progress bar (off by default): { enabled, position: \"top\" | \"bottom\" (default bottom), color: \"#RRGGBB\" (default the brand accent, accentOnDark) }. A thin (8 px) bar that fills left to right over the video, flush with the very edge. Bottom is a known retention pattern; Instagram's UI may overlap the bottom edge. progress_bar_enabled: true is an alias for { enabled: true }.","properties":{"enabled":{"type":"boolean","description":"Draw the bar. Default off."},"position":{"type":"string","enum":["top","bottom"],"default":"bottom","description":"top or bottom, flush with the very edge. Instagram's UI may overlap the bottom edge."},"color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Bar colour. Default: the brand accent (accentOnDark), else #FFD60A."}}},"progress_bar_enabled":{"type":"boolean","description":"Alias of progress_bar.enabled (bottom edge, brand-accent colour)."},"brand":{"type":"object","additionalProperties":false,"description":"Per-video brand that REPLACES the account brand for this render (nothing is merged). Send at least one field.","properties":{"name":{"type":"string","maxLength":80},"website_url":{"type":"string","format":"uri","description":"https URL; mentioned in the closing line when no cta is sent."},"logo_url":{"type":"string","format":"uri","description":"Public https PNG/JPG, shown as a bottom-right watermark."},"primary_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent_color":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$","description":"Spoken-word caption colour unless caption_style.highlight_color is sent."},"tone":{"type":"string","enum":["professional","casual","energetic","bold","calm","analytical"]},"industry":{"type":"string","maxLength":80,"description":"Also used to infer clip_type."},"keywords":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":40}}}},"brand_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Saved brand kit (create_brand): normalized logo, palette, font and style for this account. Inline brand fields sent alongside override the kit field by field. Unknown or another account's id: 404 BRAND_NOT_FOUND, free."},"customer_id":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]*$","$schema":"http://json-schema.org/draft-07/schema#","description":"Optional: the brand kit must belong to this end customer."},"website_url":{"type":"string","maxLength":2048,"description":"Instead of brand_id: the client's website (domain or http(s) URL). This account's kit for the domain is reused, or built from the site (crawl + profile, up to ~40 s) and remembered, before any charge. Headers X-Brand-Kit-Id / X-Brand-Kit-Source (built|reused) / X-Brand-Kit-Stale. Failure: free 422 BRAND_AUTOGEN_FAILED with reason. brand_id wins when both are sent; dry runs never crawl."},"confirm_authorized":{"type":"boolean","description":"With website_url: required (true) when the domain is a well-known brand (else free 422 BRAND_CONFIRMATION_REQUIRED). Confirms this account is authorised to market that brand."},"schedule_at":{"type":"string","format":"date-time"},"webhook_url":{"type":"string","format":"uri","description":"Public https URL POSTed once when the job finishes or fails, with header X-ReelsBuilder-Event: generation.job.terminal and body { event (job.completed | job.failed), job_id, status, video_id, video_url, error, agent_run_id, poll_url, timestamp }. Unsigned; up to 3 attempts (0s, 30s, 120s). Always confirm the result with GET poll_url."},"agent_run_id":{"type":"string"},"listing":{"type":"string","enum":["private","public"],"default":"private","description":"Private by default: excluded from public pages and discovery. Set public to opt in. Separate from private media delivery."}},"required":["prompt"]},"outputSchema":{"type":"object","additionalProperties":false,"properties":{"success":{"type":"boolean"},"data":{"type":"object","additionalProperties":false,"properties":{"job_id":{"type":"string"},"generation_id":{"type":"string"},"video_id":{"type":"string"},"status":{"type":"string"},"poll_url":{"type":"string"},"distribution":{"type":"object"},"output_contract":{"type":"object"}},"required":[]},"meta":{"type":"object"}},"required":["success","data","meta"]}}],"pricing":{"currency":"USD","unit":"cents","operations":{"generate_video":50,"generate_and_post":60,"blog_to_video":50,"generate_article":20,"generate_ai_video":null,"generate_ai_influencer":null,"create_avatar":265,"clip_youtube":40,"post_video":5,"create_schedule":2,"get_trending":0,"get_x_hooks":0,"get_job_status":0,"get_brand_profile":0,"search_library":0,"get_usage":0,"list_avatars":0},"variable":{"generate_ai_video":"Priced per model, length (30s or 60s), resolution and, on kling-3.0-standard/pro, native_audio (prices vs prices_native_audio); see ai_video. The music bed, captions and brand are included; narration (script or content_purpose) adds a few cents (prices_narrated), and a script that needs one extra shot is charged for that shot. The exact charge is returned in the X-Api-Credits-Cost-Usd-Cents header and in 402 bodies.","generate_ai_influencer":"Priced per engine and spoken length (provider cost x 2); see ai_influencer.engines. Avatar III (avatar_id default) $1.00 per 30s, Avatar IV (image_url) $2.45 per 30s. The exact charge and engine are returned in the X-Api-Credits-Cost-Usd-Cents and X-Api-Credits-Engine headers.","clip_youtube":"$0.40 per clip (clip_count, default 5), charged up front; undelivered clips refunded automatically; dry_run is free."},"ai_video":{"default_model":"bytedance/seedance-2.0","durations_sec":[30,60],"soundtrack":{"music":"A licensed instrumental music bed is mixed under every AI video by default; send music:false to skip it (no price change).","narration":"prompt = what is shown, script = what is said. script is spoken verbatim (about 2.4 words per second: ~72 words for 30s, ~144 for 60s); with content_purpose and no script one is written for you. Narrated renders add TTS + transcription (prices_narrated) and burn word-highlight captions by default. A script slightly over budget adds one extra shot, charged at the model's per-second rate.","native_audio":"The model's own generated soundtrack. Off by default on kling-3.0-standard and kling-3.0-pro (cheaper; see prices vs prices_native_audio), on by default elsewhere. Send native_audio:true to keep it; the music bed then ducks under it."},"tiers":{"low":{"model":"wan-3.0","resolution":"720p","prices":{"30s":{"price_usd_cents":510,"price_display":"$5.10"},"60s":{"price_usd_cents":1020,"price_display":"$10.20"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":520,"price_display":"$5.20"},"60s":{"price_usd_cents":1035,"price_display":"$10.35"}}},"medium":{"model":"kling-3.0-standard","resolution":"720p","prices":{"30s":{"price_usd_cents":430,"price_display":"$4.30"},"60s":{"price_usd_cents":860,"price_display":"$8.60"}},"native_audio_default":false,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":435,"price_display":"$4.35"},"60s":{"price_usd_cents":870,"price_display":"$8.70"}},"prices_native_audio":{"30s":{"price_usd_cents":645,"price_display":"$6.45"},"60s":{"price_usd_cents":1290,"price_display":"$12.90"}}},"high":{"model":"kling-3.0-pro","resolution":"1080p","prices":{"30s":{"price_usd_cents":575,"price_display":"$5.75"},"60s":{"price_usd_cents":1145,"price_display":"$11.45"}},"native_audio_default":false,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":580,"price_display":"$5.80"},"60s":{"price_usd_cents":1155,"price_display":"$11.55"}},"prices_native_audio":{"30s":{"price_usd_cents":860,"price_display":"$8.60"},"60s":{"price_usd_cents":1715,"price_display":"$17.15"}}},"xhigh":{"model":"bytedance/seedance-2.0","resolution":"720p","prices":{"30s":{"price_usd_cents":1755,"price_display":"$17.55"},"60s":{"price_usd_cents":3510,"price_display":"$35.10"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":1765,"price_display":"$17.65"},"60s":{"price_usd_cents":3530,"price_display":"$35.30"}}},"max":{"model":"google/veo-3.1","resolution":"1080p","prices":{"30s":{"price_usd_cents":3900,"price_display":"$39.00"},"60s":{"price_usd_cents":7800,"price_display":"$78.00"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":3910,"price_display":"$39.10"},"60s":{"price_usd_cents":7820,"price_display":"$78.20"}}}},"models":{"google/veo-3.1":{"label":"Veo 3.1","default_resolution":"1080p","prices":{"30s":{"price_usd_cents":3900,"price_display":"$39.00"},"60s":{"price_usd_cents":7800,"price_display":"$78.00"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":3910,"price_display":"$39.10"},"60s":{"price_usd_cents":7820,"price_display":"$78.20"}},"prices_by_resolution":{"720p":{"30s":{"price_usd_cents":3900,"price_display":"$39.00"},"60s":{"price_usd_cents":7800,"price_display":"$78.00"}},"1080p":{"30s":{"price_usd_cents":3900,"price_display":"$39.00"},"60s":{"price_usd_cents":7800,"price_display":"$78.00"}}}},"bytedance/seedance-2.0":{"label":"Seedance 2.0","default_resolution":"720p","prices":{"30s":{"price_usd_cents":1755,"price_display":"$17.55"},"60s":{"price_usd_cents":3510,"price_display":"$35.10"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":1765,"price_display":"$17.65"},"60s":{"price_usd_cents":3530,"price_display":"$35.30"}},"prices_by_resolution":{"480p":{"30s":{"price_usd_cents":780,"price_display":"$7.80"},"60s":{"price_usd_cents":1560,"price_display":"$15.60"}},"720p":{"30s":{"price_usd_cents":1755,"price_display":"$17.55"},"60s":{"price_usd_cents":3510,"price_display":"$35.10"}}}},"fal-ai/wan/v2.7":{"label":"Wan 2.7","default_resolution":"1080p","prices":{"30s":{"price_usd_cents":1465,"price_display":"$14.65"},"60s":{"price_usd_cents":2925,"price_display":"$29.25"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":1475,"price_display":"$14.75"},"60s":{"price_usd_cents":2945,"price_display":"$29.45"}},"prices_by_resolution":{"720p":{"30s":{"price_usd_cents":1465,"price_display":"$14.65"},"60s":{"price_usd_cents":2925,"price_display":"$29.25"}},"1080p":{"30s":{"price_usd_cents":1465,"price_display":"$14.65"},"60s":{"price_usd_cents":2925,"price_display":"$29.25"}}}},"fal-ai/ltx-2.3":{"label":"LTX 2.3","default_resolution":"1080p","prices":{"30s":{"price_usd_cents":585,"price_display":"$5.85"},"60s":{"price_usd_cents":1170,"price_display":"$11.70"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":595,"price_display":"$5.95"},"60s":{"price_usd_cents":1190,"price_display":"$11.90"}},"prices_by_resolution":{"1080p":{"30s":{"price_usd_cents":585,"price_display":"$5.85"},"60s":{"price_usd_cents":1170,"price_display":"$11.70"}},"2k":{"30s":{"price_usd_cents":1170,"price_display":"$11.70"},"60s":{"price_usd_cents":2340,"price_display":"$23.40"}},"4K":{"30s":{"price_usd_cents":2340,"price_display":"$23.40"},"60s":{"price_usd_cents":4680,"price_display":"$46.80"}}}},"fal-ai/pixverse/v6":{"label":"PixVerse V6","default_resolution":"1080p","prices":{"30s":{"price_usd_cents":2245,"price_display":"$22.45"},"60s":{"price_usd_cents":4485,"price_display":"$44.85"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":2255,"price_display":"$22.55"},"60s":{"price_usd_cents":4505,"price_display":"$45.05"}},"prices_by_resolution":{"720p":{"30s":{"price_usd_cents":1170,"price_display":"$11.70"},"60s":{"price_usd_cents":2340,"price_display":"$23.40"}},"1080p":{"30s":{"price_usd_cents":2245,"price_display":"$22.45"},"60s":{"price_usd_cents":4485,"price_display":"$44.85"}}}},"wan-3.0":{"label":"Wan 3.0","default_resolution":"720p","prices":{"30s":{"price_usd_cents":510,"price_display":"$5.10"},"60s":{"price_usd_cents":1020,"price_display":"$10.20"}},"native_audio_default":true,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":520,"price_display":"$5.20"},"60s":{"price_usd_cents":1035,"price_display":"$10.35"}},"prices_by_resolution":{"480p":{"30s":{"price_usd_cents":255,"price_display":"$2.55"},"60s":{"price_usd_cents":510,"price_display":"$5.10"}},"720p":{"30s":{"price_usd_cents":510,"price_display":"$5.10"},"60s":{"price_usd_cents":1020,"price_display":"$10.20"}},"1080p":{"30s":{"price_usd_cents":1020,"price_display":"$10.20"},"60s":{"price_usd_cents":2040,"price_display":"$20.40"}}}},"kling-3.0-standard":{"label":"Kling 3.0 Standard","default_resolution":"720p","prices":{"30s":{"price_usd_cents":430,"price_display":"$4.30"},"60s":{"price_usd_cents":860,"price_display":"$8.60"}},"native_audio_default":false,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":435,"price_display":"$4.35"},"60s":{"price_usd_cents":870,"price_display":"$8.70"}},"prices_native_audio":{"30s":{"price_usd_cents":645,"price_display":"$6.45"},"60s":{"price_usd_cents":1290,"price_display":"$12.90"}},"prices_by_resolution":{"720p":{"30s":{"price_usd_cents":430,"price_display":"$4.30"},"60s":{"price_usd_cents":860,"price_display":"$8.60"}}}},"kling-3.0-pro":{"label":"Kling 3.0 Pro","default_resolution":"1080p","prices":{"30s":{"price_usd_cents":575,"price_display":"$5.75"},"60s":{"price_usd_cents":1145,"price_display":"$11.45"}},"native_audio_default":false,"music_default":true,"prices_narrated":{"30s":{"price_usd_cents":580,"price_display":"$5.80"},"60s":{"price_usd_cents":1155,"price_display":"$11.55"}},"prices_native_audio":{"30s":{"price_usd_cents":860,"price_display":"$8.60"},"60s":{"price_usd_cents":1715,"price_display":"$17.15"}},"prices_by_resolution":{"1080p":{"30s":{"price_usd_cents":575,"price_display":"$5.75"},"60s":{"price_usd_cents":1145,"price_display":"$11.45"}}}}}},"ai_influencer":{"unit":"USD cents","formula":"(engine per-second provider cost x spoken seconds + narration + storage) x 2, rounded up to 5 cents; minimum 5 seconds","revenue_multiple":2,"default_engine":{"avatar_id":"avatar_iii","image_url":"avatar_iv"},"engines":{"avatar_iii":{"price_30s":100,"price_60s":200,"price_30s_display":"$1.00","price_60s_display":"$2.00","provider_cost_per_minute_usd":0.96,"input":"avatar_id","default_for":"avatar_id","notes":"Default for avatar_id. Best lip sync and cheapest; slower render (~6.5 min for a short clip). Requires avatar_id."},"avatar_iv":{"price_30s":245,"price_60s":490,"price_30s_display":"$2.45","price_60s_display":"$4.90","provider_cost_per_minute_usd":2.39,"input":"image_url or avatar_id","default_for":"image_url","notes":"More expressive head and body motion; ~3.5 min render. The only engine for image_url; also available on avatar_id."},"avatar_v":{"price_30s":725,"price_60s":1450,"price_30s_display":"$7.25","price_60s_display":"$14.50","provider_cost_per_minute_usd":7.2,"input":"avatar_id","default_for":null,"notes":"Premium / experimental. Only on avatar_id personas that list it in supported_engines. Price is provisional."}},"create_avatar":{"price":265,"price_display":"$2.65","notes":"One-time per persona (POST /api/v1/avatars). Refunded if creation fails.","with_wardrobe":280,"with_wardrobe_display":"$2.80","with_wardrobe_notes":"POST /api/v1/avatars with wardrobe, or POST /api/v1/avatars/{avatar_id}/looks: persona creation plus the outfit edit (provider cost x 2). A refused wardrobe (422) is free; a failed edit or identity check is refunded."}}}},"meta":{"request_id":"2ddc8d8d-d9ca-4f92-8d27-92c9f2cb712f","retryable":false,"estimated_completion_seconds":0}}