{"openapi":"3.1.0","info":{"title":"AITube API","version":"1.0.0","description":"Generate AI videos with every model AITube offers, make music, voiceovers and faceless videos, and publish to an AITube channel. Authenticate with an API key from https://aitube.app/developers (Creator and Pro plans). Usage is charged in AITube credits at the same prices as the app."},"externalDocs":{"url":"https://aitube.app/developers","description":"Guide and examples"},"servers":[{"url":"https://api.aitube.app/v1"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Your API key, ait_…"}}},"paths":{"/me":{"get":{"operationId":"get_account","summary":"Account and credits","description":"The signed-in AITube account: plan, credit balance (and its dollar value), what the plan includes, and typical video prices. Call it first, and whenever the user asks what they can afford.","tags":["Account"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}}}},"/faceless/options":{"get":{"operationId":"list_options","summary":"Faceless video options","description":"Everything a faceless video can be set to: formats and lengths, visual styles, the 12 image looks, voices (with which need a plan), caption styles, music, AI video models, languages and script styles, plus per-minute credit rates. Call once before suggesting options.","tags":["Faceless videos"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}}}},"/faceless/scripts":{"post":{"operationId":"draft_script","summary":"Write a faceless video script (free)","description":"Write the video's script from an idea, for free: a title, tags and scenes (the spoken words plus what to show). Or pass your own `script` to have it split into scenes word for word. Show the draft to the user and let them edit it before making the video. Limited to 15 drafts a day on the free plan, 80 on a plan.","tags":["Faceless videos"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"idea":{"type":"string","minLength":1,"maxLength":12000,"description":"What the video is about: a topic (\"the history of coffee\") or a fuller brief with tone, audience and the points to cover."},"script":{"type":"string","minLength":1,"maxLength":12000,"description":"The exact narration, word for word. AITube splits it into scenes and writes the visuals but keeps every word. Use instead of idea."},"format":{"type":"string","enum":["short","long"],"description":"short (default): vertical 9:16 for YouTube Shorts, TikTok and Reels, 15 s to 3 min (up to 90 s without a Creator or Pro plan). long: horizontal 16:9 YouTube video, 1 to 10 min on Creator, up to 30 min on Pro."},"duration_sec":{"type":"integer","minimum":15,"maximum":1800,"description":"Target length in seconds. Default 45 for a short, 300 for long-form. With reviewed scenes, their word count sets the length instead (about 2.4 words a second)."},"render_mode":{"type":"string","enum":["quality","saver"],"description":"quality (default): a new picture every ~4 s in a short, every option available. saver: roughly a quarter of the price, slower pacing, standard voices and standard AI images only."},"visual_style":{"type":"string","enum":["ai-images","ai-images-hd","stock","ai-video"],"description":"ai-images (default): AI pictures with slow pan and zoom, all in one look (image_style). ai-images-hd: Sharper, more detailed AI pictures (Pro plan, quality mode). stock: Real stock video clips matched to each scene (only when list_options says it's available). ai-video: An AI video clip per scene, shorts only, priced per clip by model (see ai_video_model)."},"viral_format":{"type":"string","enum":["chat","story","ranking","tier","quiz","wyr","podcast"],"description":"Optional: make the short in a viral format instead of pictures with captions. chat: Text story, A text conversation that plays out message by message, read in two voices. story: Story post, A forum-style post card, then the story read over moving footage with captions. ranking: Top 10 countdown, Counts down to #1 with a big picture for each entry and the list filling in. tier: Tier list, Rates each pick, stamps its tier and drops it onto an S-to-D board. quiz: Quiz, Question, four answers, a 3-second count, then the reveal. wyr: Would you rather, Two choices on a split screen, a count, then the narrator's own pick. podcast: Podcast, Two hosts talk it through in an animated studio, with captions. Get the episode as audio too. Shorts only, except podcast (also format long, a 16:9 episode); no presenter, intro, moving shots or motion graphics. Pass it to draft_script too: the draft then has the format's own fields in each scene (keep them) and format_details."},"language":{"type":"string","enum":["en","es","fr","de","it","pt","hi","ur","ar","ja","ko","zh"],"description":"Language of the script. Default en. Non-English videos are read by voices that speak the language (ur uses Urdu voices)."},"script_style":{"type":"string","enum":["storytelling","facts","listicle","motivational","educational"],"description":"Optional. Write the script in this style, treating `idea` as a topic: storytelling, facts, listicle (a top-N countdown), motivational or educational. Leave it out and the writer follows the tone of your idea."}}}}}}}},"/faceless/quote":{"post":{"operationId":"quote_video","summary":"Price a faceless video","description":"The exact price in credits (and dollars) for a video with these options, line by line, against the user's balance, plus anything that blocks it (an option their plan doesn't include, a length out of range). Pass the reviewed scenes for the exact length. Free; nothing is charged.","tags":["Faceless videos"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"format":{"type":"string","enum":["short","long"],"description":"short (default): vertical 9:16 for YouTube Shorts, TikTok and Reels, 15 s to 3 min (up to 90 s without a Creator or Pro plan). long: horizontal 16:9 YouTube video, 1 to 10 min on Creator, up to 30 min on Pro."},"duration_sec":{"type":"integer","minimum":15,"maximum":1800,"description":"Target length in seconds. Default 45 for a short, 300 for long-form. With reviewed scenes, their word count sets the length instead (about 2.4 words a second)."},"render_mode":{"type":"string","enum":["quality","saver"],"description":"quality (default): a new picture every ~4 s in a short, every option available. saver: roughly a quarter of the price, slower pacing, standard voices and standard AI images only."},"visual_style":{"type":"string","enum":["ai-images","ai-images-hd","stock","ai-video"],"description":"ai-images (default): AI pictures with slow pan and zoom, all in one look (image_style). ai-images-hd: Sharper, more detailed AI pictures (Pro plan, quality mode). stock: Real stock video clips matched to each scene (only when list_options says it's available). ai-video: An AI video clip per scene, shorts only, priced per clip by model (see ai_video_model)."},"image_style":{"type":"string","enum":["cinematic","photo","anime","3d","comic","dark","documentary","watercolor","oil","neon","pixel","lineart","collage","chalkboard","notebook","clay","popart","hud","blueprint","ukiyoe","risograph","isometric","retro70s","popup"],"description":"The look of the AI pictures. Default cinematic. Names are in list_options."},"voice":{"type":"string","enum":["leo","nova","marcus","aria","echo","eric","fenrir","liam","onyx","puck","alloy","aoede","jessica","kore","nicole","river","sky","daniel","fable","george","lewis","alice","emma","isabella","lily","s_narrator","s_storyteller","s_deep","s_gentleman","s_magnetic","s_trusted","s_scholar","s_wiselady","s_calm","s_confident","s_captivating","s_upbeat","g_puck","g_charon","g_fenrir","g_orus","g_algenib","g_achird","g_kore","g_aoede","g_leda","g_despina","g_gacrux","g_sulafat","g_enceladus","g_iapetus","g_umbriel","g_algieba","g_rasalgethi","g_alnilam","g_schedar","g_zubenelgenubi","g_sadachbia","g_sadaltager","g_zephyr","g_callirrhoe","g_autonoe","g_erinome","g_laomedeia","g_achernar","g_pulcherrima","g_vindemiatrix","u_zara","u_ayesha","u_hina","u_faisal","u_imran","u_bilal","e_rachel","e_sarah","e_aria","e_domi","e_jane","e_juniper","e_arabella","e_hope","e_blondie","e_alexandra","e_priyanka","e_monika","e_drew","e_clyde","e_paul","e_dave","e_roger","e_fin","e_james","e_bradford","e_reginald","e_austin","e_mark","e_grimblewood"],"description":"Narrator voice id from list_options. Default leo. s_ = Studio voices and e_ = Premium (ElevenLabs) voices, both Creator or Pro; g_ = multilingual Gemini voices; u_ = Urdu voices. A non-English video swaps an English-only voice for one that speaks its language."},"caption_style":{"type":"string","enum":["viral-pop","one-word","punch","highlight-box","marker","karaoke","dim-reveal","beast","big-center","top-hook","lime","fire","ice","royal","pink-pill","green-pill","split-color","drop-in","hollow","focus","comic","retro-3d","bubble","candy","sticker","wiggle","handwritten","storyteller","neon","glow-white","electric","sunset","clean","typewriter","cinema","podcast","clean-pill","nastaliq","stop-scroll","make-it-matter","big-energy","impact-box","feel-it","next-chapter","blue-gradient","green-gradient","gold-gradient","editorial","hinglish-green","neon-stack","classic-box","subtitle","subtitle-yellow","news","pop","bold","karaoke","highlight","minimal","subtitle","none"],"description":"A caption template id from list_options (54 looks, e.g. viral-pop, the default for shorts, or subtitle, the default for long-form), an older id (pop, bold, karaoke, minimal) or none."},"music":{"type":"string","enum":["ai","none"],"description":"ai (default): a soundtrack composed for this video. none: voice only."},"cinematic_intro":{"type":"boolean","description":"Open with a 5-second AI video shot. Pro plan, quality mode. Default false."},"moving_shots":{"type":"string","enum":["off","hook","all"],"description":"AI-image videos only: animate the pictures into short video clips. off (default), hook (the first 3 shots), all. Priced per moving shot (quote_video)."},"camera_move":{"type":"string","enum":["auto","push","pull","orbit","pan","handheld","drone","static"],"description":"With moving_shots: how the camera moves. auto (default) varies it shot to shot; push, pull, orbit, pan, handheld, drone or static."},"motion_graphics":{"type":"string","enum":["off","clean","punchy","cinematic"],"description":"Free: transitions at scene changes with sound effects, a hook title and (shorts) a progress bar. off (default), clean, punchy or cinematic."},"presenter":{"type":"string","enum":["ava-corporate-f","marcus-casual-m","sofia-creator-f","daniel-news-m","priya-explainer-f","kenji-tech-m","amara-coach-f","luca-lifestyle-m","hannah-teacher-f","omar-finance-m","yuki-gaming-f","elena-medical-f"],"description":"A lip-synced AI presenter (stock avatar id from list_options) who speaks the narration. Replaces cinematic_intro."},"presenter_mode":{"type":"string","enum":["intro","cutaways","bubble"],"description":"intro (default): talks the opening ~8 s, flat price. cutaways: on camera every other shot with pictures between. bubble: in a round corner frame the whole video. cutaways and bubble need Creator or Pro and are priced per on-camera minute."},"viral_format":{"type":"string","enum":["chat","story","ranking","tier","quiz","wyr","podcast"],"description":"Optional: make the short in a viral format instead of pictures with captions. chat: Text story, A text conversation that plays out message by message, read in two voices. story: Story post, A forum-style post card, then the story read over moving footage with captions. ranking: Top 10 countdown, Counts down to #1 with a big picture for each entry and the list filling in. tier: Tier list, Rates each pick, stamps its tier and drops it onto an S-to-D board. quiz: Quiz, Question, four answers, a 3-second count, then the reveal. wyr: Would you rather, Two choices on a split screen, a count, then the narrator's own pick. podcast: Podcast, Two hosts talk it through in an animated studio, with captions. Get the episode as audio too. Shorts only, except podcast (also format long, a 16:9 episode); no presenter, intro, moving shots or motion graphics. Pass it to draft_script too: the draft then has the format's own fields in each scene (keep them) and format_details."},"background":{"type":"string","enum":["motion","stock"],"description":"chat and story formats only: motion (default, free) is an animated gradient; stock is moving stock footage behind it, priced like stock."},"second_voice":{"type":"string","enum":["leo","nova","marcus","aria","echo","eric","fenrir","liam","onyx","puck","alloy","aoede","jessica","kore","nicole","river","sky","daniel","fable","george","lewis","alice","emma","isabella","lily","s_narrator","s_storyteller","s_deep","s_gentleman","s_magnetic","s_trusted","s_scholar","s_wiselady","s_calm","s_confident","s_captivating","s_upbeat","g_puck","g_charon","g_fenrir","g_orus","g_algenib","g_achird","g_kore","g_aoede","g_leda","g_despina","g_gacrux","g_sulafat","g_enceladus","g_iapetus","g_umbriel","g_algieba","g_rasalgethi","g_alnilam","g_schedar","g_zubenelgenubi","g_sadachbia","g_sadaltager","g_zephyr","g_callirrhoe","g_autonoe","g_erinome","g_laomedeia","g_achernar","g_pulcherrima","g_vindemiatrix","u_zara","u_ayesha","u_hina","u_faisal","u_imran","u_bilal","e_rachel","e_sarah","e_aria","e_domi","e_jane","e_juniper","e_arabella","e_hope","e_blondie","e_alexandra","e_priyanka","e_monika","e_drew","e_clyde","e_paul","e_dave","e_roger","e_fin","e_james","e_bradford","e_reginald","e_austin","e_mark","e_grimblewood"],"description":"chat format only: the voice that reads \"me\" messages. Default: a standard voice of the other gender."},"format_details":{"type":"object","description":"With viral_format and reviewed scenes: the format_details from draft_script (contact name, post title, quiz title…), edited or as they are."},"ai_video_model":{"type":"string","enum":["bytedance/seedance-1-lite","bytedance/seedance-1-pro","minimax/hailuo-02","seedance-fast","seedance-2.5"],"description":"Only with visual_style ai-video: the clip model id from list_options. Default: the builder's default model."},"scenes":{"type":"array","minItems":1,"maxItems":80,"description":"A reviewed script: the scenes from draft_script, edited or as they are. The words are spoken exactly as written and set the video's length.","items":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":1200,"description":"The words spoken in this scene."},"visuals":{"type":"array","maxItems":3,"items":{"type":"string","maxLength":500},"description":"Up to 3 descriptions of what to show while it's spoken. Leave out to use the words themselves."},"stock_query":{"type":"string","maxLength":80,"description":"Stock footage search words for this scene (draft_script adds them for visual_style stock)."},"from":{"type":"string","enum":["them","me"],"description":"chat: who sent the message."},"name":{"type":"string","maxLength":40,"description":"ranking, tier: the item's name."},"tier":{"type":"string","enum":["S","A","B","C","D"],"description":"tier: the verdict."},"question":{"type":"string","maxLength":140,"description":"quiz: the question shown."},"options":{"type":"array","maxItems":4,"items":{"type":"string","maxLength":50},"description":"quiz: the four answers."},"answer":{"type":"integer","minimum":0,"maximum":3,"description":"quiz: index of the right answer."},"reveal":{"type":"string","maxLength":240,"description":"quiz, wyr: what the voice says after the count."},"a":{"type":"string","maxLength":90,"description":"wyr: the first choice."},"b":{"type":"string","maxLength":90,"description":"wyr: the second choice."},"pick":{"type":"string","enum":["a","b"],"description":"wyr: the narrator's pick."}}}}}}}}}}},"/faceless/videos":{"post":{"operationId":"create_video","summary":"Make a faceless video","description":"Start making a faceless video (script, voiceover, visuals, captions, music) from reviewed `scenes` (best: from draft_script), an `idea`, or an exact `script`. Spends the user's credits: tell them the price from quote_video and get their OK first. Credits are taken only when the video is ready; a failed video costs nothing. Returns a video_id at once; follow it with get_video. By default the finished video waits in the user's AITube library for their review; set auto_publish only if they asked to publish straight to their AITube channel. Spends credits or posts for the account.","tags":["Faceless videos"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"idea":{"type":"string","minLength":1,"maxLength":12000,"description":"What the video is about: a topic (\"the history of coffee\") or a fuller brief with tone, audience and the points to cover."},"script":{"type":"string","minLength":1,"maxLength":12000,"description":"The exact narration, word for word. AITube splits it into scenes and writes the visuals but keeps every word. Use instead of idea."},"scenes":{"type":"array","minItems":1,"maxItems":80,"description":"A reviewed script: the scenes from draft_script, edited or as they are. The words are spoken exactly as written and set the video's length.","items":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"text":{"type":"string","minLength":1,"maxLength":1200,"description":"The words spoken in this scene."},"visuals":{"type":"array","maxItems":3,"items":{"type":"string","maxLength":500},"description":"Up to 3 descriptions of what to show while it's spoken. Leave out to use the words themselves."},"stock_query":{"type":"string","maxLength":80,"description":"Stock footage search words for this scene (draft_script adds them for visual_style stock)."},"from":{"type":"string","enum":["them","me"],"description":"chat: who sent the message."},"name":{"type":"string","maxLength":40,"description":"ranking, tier: the item's name."},"tier":{"type":"string","enum":["S","A","B","C","D"],"description":"tier: the verdict."},"question":{"type":"string","maxLength":140,"description":"quiz: the question shown."},"options":{"type":"array","maxItems":4,"items":{"type":"string","maxLength":50},"description":"quiz: the four answers."},"answer":{"type":"integer","minimum":0,"maximum":3,"description":"quiz: index of the right answer."},"reveal":{"type":"string","maxLength":240,"description":"quiz, wyr: what the voice says after the count."},"a":{"type":"string","maxLength":90,"description":"wyr: the first choice."},"b":{"type":"string","maxLength":90,"description":"wyr: the second choice."},"pick":{"type":"string","enum":["a","b"],"description":"wyr: the narrator's pick."}}}},"title":{"type":"string","maxLength":90,"description":"The title from draft_script (used with scenes)."},"tags":{"type":"array","maxItems":10,"items":{"type":"string","maxLength":40},"description":"Tags from draft_script (used with scenes)."},"format":{"type":"string","enum":["short","long"],"description":"short (default): vertical 9:16 for YouTube Shorts, TikTok and Reels, 15 s to 3 min (up to 90 s without a Creator or Pro plan). long: horizontal 16:9 YouTube video, 1 to 10 min on Creator, up to 30 min on Pro."},"duration_sec":{"type":"integer","minimum":15,"maximum":1800,"description":"Target length in seconds. Default 45 for a short, 300 for long-form. With reviewed scenes, their word count sets the length instead (about 2.4 words a second)."},"render_mode":{"type":"string","enum":["quality","saver"],"description":"quality (default): a new picture every ~4 s in a short, every option available. saver: roughly a quarter of the price, slower pacing, standard voices and standard AI images only."},"visual_style":{"type":"string","enum":["ai-images","ai-images-hd","stock","ai-video"],"description":"ai-images (default): AI pictures with slow pan and zoom, all in one look (image_style). ai-images-hd: Sharper, more detailed AI pictures (Pro plan, quality mode). stock: Real stock video clips matched to each scene (only when list_options says it's available). ai-video: An AI video clip per scene, shorts only, priced per clip by model (see ai_video_model)."},"image_style":{"type":"string","enum":["cinematic","photo","anime","3d","comic","dark","documentary","watercolor","oil","neon","pixel","lineart","collage","chalkboard","notebook","clay","popart","hud","blueprint","ukiyoe","risograph","isometric","retro70s","popup"],"description":"The look of the AI pictures. Default cinematic. Names are in list_options."},"voice":{"type":"string","enum":["leo","nova","marcus","aria","echo","eric","fenrir","liam","onyx","puck","alloy","aoede","jessica","kore","nicole","river","sky","daniel","fable","george","lewis","alice","emma","isabella","lily","s_narrator","s_storyteller","s_deep","s_gentleman","s_magnetic","s_trusted","s_scholar","s_wiselady","s_calm","s_confident","s_captivating","s_upbeat","g_puck","g_charon","g_fenrir","g_orus","g_algenib","g_achird","g_kore","g_aoede","g_leda","g_despina","g_gacrux","g_sulafat","g_enceladus","g_iapetus","g_umbriel","g_algieba","g_rasalgethi","g_alnilam","g_schedar","g_zubenelgenubi","g_sadachbia","g_sadaltager","g_zephyr","g_callirrhoe","g_autonoe","g_erinome","g_laomedeia","g_achernar","g_pulcherrima","g_vindemiatrix","u_zara","u_ayesha","u_hina","u_faisal","u_imran","u_bilal","e_rachel","e_sarah","e_aria","e_domi","e_jane","e_juniper","e_arabella","e_hope","e_blondie","e_alexandra","e_priyanka","e_monika","e_drew","e_clyde","e_paul","e_dave","e_roger","e_fin","e_james","e_bradford","e_reginald","e_austin","e_mark","e_grimblewood"],"description":"Narrator voice id from list_options. Default leo. s_ = Studio voices and e_ = Premium (ElevenLabs) voices, both Creator or Pro; g_ = multilingual Gemini voices; u_ = Urdu voices. A non-English video swaps an English-only voice for one that speaks its language."},"caption_style":{"type":"string","enum":["viral-pop","one-word","punch","highlight-box","marker","karaoke","dim-reveal","beast","big-center","top-hook","lime","fire","ice","royal","pink-pill","green-pill","split-color","drop-in","hollow","focus","comic","retro-3d","bubble","candy","sticker","wiggle","handwritten","storyteller","neon","glow-white","electric","sunset","clean","typewriter","cinema","podcast","clean-pill","nastaliq","stop-scroll","make-it-matter","big-energy","impact-box","feel-it","next-chapter","blue-gradient","green-gradient","gold-gradient","editorial","hinglish-green","neon-stack","classic-box","subtitle","subtitle-yellow","news","pop","bold","karaoke","highlight","minimal","subtitle","none"],"description":"A caption template id from list_options (54 looks, e.g. viral-pop, the default for shorts, or subtitle, the default for long-form), an older id (pop, bold, karaoke, minimal) or none."},"music":{"type":"string","enum":["ai","none"],"description":"ai (default): a soundtrack composed for this video. none: voice only."},"cinematic_intro":{"type":"boolean","description":"Open with a 5-second AI video shot. Pro plan, quality mode. Default false."},"moving_shots":{"type":"string","enum":["off","hook","all"],"description":"AI-image videos only: animate the pictures into short video clips. off (default), hook (the first 3 shots), all. Priced per moving shot (quote_video)."},"camera_move":{"type":"string","enum":["auto","push","pull","orbit","pan","handheld","drone","static"],"description":"With moving_shots: how the camera moves. auto (default) varies it shot to shot; push, pull, orbit, pan, handheld, drone or static."},"motion_graphics":{"type":"string","enum":["off","clean","punchy","cinematic"],"description":"Free: transitions at scene changes with sound effects, a hook title and (shorts) a progress bar. off (default), clean, punchy or cinematic."},"presenter":{"type":"string","enum":["ava-corporate-f","marcus-casual-m","sofia-creator-f","daniel-news-m","priya-explainer-f","kenji-tech-m","amara-coach-f","luca-lifestyle-m","hannah-teacher-f","omar-finance-m","yuki-gaming-f","elena-medical-f"],"description":"A lip-synced AI presenter (stock avatar id from list_options) who speaks the narration. Replaces cinematic_intro."},"presenter_mode":{"type":"string","enum":["intro","cutaways","bubble"],"description":"intro (default): talks the opening ~8 s, flat price. cutaways: on camera every other shot with pictures between. bubble: in a round corner frame the whole video. cutaways and bubble need Creator or Pro and are priced per on-camera minute."},"viral_format":{"type":"string","enum":["chat","story","ranking","tier","quiz","wyr","podcast"],"description":"Optional: make the short in a viral format instead of pictures with captions. chat: Text story, A text conversation that plays out message by message, read in two voices. story: Story post, A forum-style post card, then the story read over moving footage with captions. ranking: Top 10 countdown, Counts down to #1 with a big picture for each entry and the list filling in. tier: Tier list, Rates each pick, stamps its tier and drops it onto an S-to-D board. quiz: Quiz, Question, four answers, a 3-second count, then the reveal. wyr: Would you rather, Two choices on a split screen, a count, then the narrator's own pick. podcast: Podcast, Two hosts talk it through in an animated studio, with captions. Get the episode as audio too. Shorts only, except podcast (also format long, a 16:9 episode); no presenter, intro, moving shots or motion graphics. Pass it to draft_script too: the draft then has the format's own fields in each scene (keep them) and format_details."},"background":{"type":"string","enum":["motion","stock"],"description":"chat and story formats only: motion (default, free) is an animated gradient; stock is moving stock footage behind it, priced like stock."},"second_voice":{"type":"string","enum":["leo","nova","marcus","aria","echo","eric","fenrir","liam","onyx","puck","alloy","aoede","jessica","kore","nicole","river","sky","daniel","fable","george","lewis","alice","emma","isabella","lily","s_narrator","s_storyteller","s_deep","s_gentleman","s_magnetic","s_trusted","s_scholar","s_wiselady","s_calm","s_confident","s_captivating","s_upbeat","g_puck","g_charon","g_fenrir","g_orus","g_algenib","g_achird","g_kore","g_aoede","g_leda","g_despina","g_gacrux","g_sulafat","g_enceladus","g_iapetus","g_umbriel","g_algieba","g_rasalgethi","g_alnilam","g_schedar","g_zubenelgenubi","g_sadachbia","g_sadaltager","g_zephyr","g_callirrhoe","g_autonoe","g_erinome","g_laomedeia","g_achernar","g_pulcherrima","g_vindemiatrix","u_zara","u_ayesha","u_hina","u_faisal","u_imran","u_bilal","e_rachel","e_sarah","e_aria","e_domi","e_jane","e_juniper","e_arabella","e_hope","e_blondie","e_alexandra","e_priyanka","e_monika","e_drew","e_clyde","e_paul","e_dave","e_roger","e_fin","e_james","e_bradford","e_reginald","e_austin","e_mark","e_grimblewood"],"description":"chat format only: the voice that reads \"me\" messages. Default: a standard voice of the other gender."},"format_details":{"type":"object","description":"With viral_format and reviewed scenes: the format_details from draft_script (contact name, post title, quiz title…), edited or as they are."},"ai_video_model":{"type":"string","enum":["bytedance/seedance-1-lite","bytedance/seedance-1-pro","minimax/hailuo-02","seedance-fast","seedance-2.5"],"description":"Only with visual_style ai-video: the clip model id from list_options. Default: the builder's default model."},"language":{"type":"string","enum":["en","es","fr","de","it","pt","hi","ur","ar","ja","ko","zh"],"description":"Language of the script. Default en. Non-English videos are read by voices that speak the language (ur uses Urdu voices)."},"script_style":{"type":"string","enum":["storytelling","facts","listicle","motivational","educational"],"description":"Optional. Write the script in this style, treating `idea` as a topic: storytelling, facts, listicle (a top-N countdown), motivational or educational. Leave it out and the writer follows the tone of your idea."},"auto_publish":{"type":"boolean","description":"false (default): the finished video waits in the user's AITube library until they publish it. true: publish it publicly on their AITube channel as soon as it's ready."},"client_request_id":{"type":"string","maxLength":100,"description":"Optional: any unique string for this video. Repeating create_video with the same value returns the video already started instead of making and charging for a second one."}}}}}}},"get":{"operationId":"list_videos","summary":"List faceless videos","description":"The user's faceless videos, newest first, with each one's status. Filter by status; use get_video for a video's link.","tags":["Faceless videos"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["all","generating","review","scheduled","published","failed"]},"description":"all (default), generating (being made), review (ready, waiting for the user), scheduled, published or failed."},{"name":"page","in":"query","required":false,"schema":{"type":"integer"},"description":"Page number, from 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Videos per page. Default 10."}]}},"/models":{"get":{"operationId":"list_models","summary":"AI models and prices","description":"Every AI video model AITube offers (Veo, Kling, Seedance, Wan, Hailuo and more), with durations, aspect ratios, whether it takes a start image, and its credit price per duration at standard and high quality. Also the camera moves generate_video accepts. Free.","tags":["Generation"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"kind","in":"query","required":false,"schema":{"type":"string","enum":["video","image","audio","all"]},"description":"Which models. Default video."},{"name":"model_id","in":"query","required":false,"schema":{"type":"string"},"description":"Just this model."}]}},"/generations/quote":{"post":{"operationId":"quote_generation","summary":"Price a generation","description":"The exact credit price (and dollars) for a video with these settings, which model would run it, and whether the balance covers it. Free; nothing is charged.","tags":["Generation"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"What should happen in the video: subject, action, setting, camera and mood. enhance_prompt can improve a short idea first."},"model_id":{"type":"string","maxLength":120,"description":"A model id from list_models. Leave it out to let AITube pick the best available model for these settings."},"duration_sec":{"type":"integer","minimum":1,"maximum":60,"description":"Clip length in seconds; one of the model's durations from list_models. Default 5."},"quality":{"type":"string","enum":["standard","high"],"description":"standard (default) or high. High uses the model's premium tier and costs more."},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1","4:3","3:4","21:9"],"description":"Default 9:16 (vertical, for Shorts/TikTok/Reels). 16:9 for widescreen."},"image_url":{"type":"string","maxLength":2000,"description":"Optional https link to a start image (image-to-video). Some models need one (list_models says which)."},"end_image_url":{"type":"string","maxLength":2000,"description":"Optional https link to an end frame, for models that support it."},"variations":{"type":"integer","minimum":1,"maximum":4,"description":"How many takes to make (1-4). Each is charged. Default 1."}}}}}}}},"/generations":{"post":{"operationId":"generate_video","summary":"Generate an AI video","description":"Generate a video clip from a prompt (text-to-video), or from a start image (image-to-video), with any model from list_models. Spends credits: tell the user the price from quote_generation and get their OK first. Credits are held at the start and refunded automatically if it fails. Returns a generation_id at once; follow it with get_generation. The finished clip is saved as a draft in the user's AITube studio; publish_video posts it. Spends credits or posts for the account.","tags":["Generation"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"type":"string","minLength":1,"maxLength":4000,"description":"What should happen in the video: subject, action, setting, camera and mood. enhance_prompt can improve a short idea first."},"model_id":{"type":"string","maxLength":120,"description":"A model id from list_models. Leave it out to let AITube pick the best available model for these settings."},"duration_sec":{"type":"integer","minimum":1,"maximum":60,"description":"Clip length in seconds; one of the model's durations from list_models. Default 5."},"quality":{"type":"string","enum":["standard","high"],"description":"standard (default) or high. High uses the model's premium tier and costs more."},"aspect_ratio":{"type":"string","enum":["16:9","9:16","1:1","4:3","3:4","21:9"],"description":"Default 9:16 (vertical, for Shorts/TikTok/Reels). 16:9 for widescreen."},"image_url":{"type":"string","maxLength":2000,"description":"Optional https link to a start image (image-to-video). Some models need one (list_models says which)."},"end_image_url":{"type":"string","maxLength":2000,"description":"Optional https link to an end frame, for models that support it."},"variations":{"type":"integer","minimum":1,"maximum":4,"description":"How many takes to make (1-4). Each is charged. Default 1."},"camera_moves":{"type":"array","maxItems":3,"items":{"type":"string","enum":["dolly-in","crash-zoom","bullet-time","orbit-360","fpv-drone","crane-up","whip-pan","dolly-zoom","through-object","handheld","slow-motion","static"]},"description":"Optional camera move presets (ids from list_models' camera_moves)."},"sound":{"type":"boolean","description":"For models that make audio: true for sound, false for silent."},"seed":{"type":"integer","minimum":0,"maximum":2147483647,"description":"Optional seed, for models that take one."},"negative_prompt":{"type":"string","maxLength":500,"description":"What to avoid, for models that take it."},"expected_credits":{"type":"integer","minimum":1,"description":"Optional: the total price the user agreed to (from quote_generation). If the price has changed, nothing starts and the new price is returned."},"client_request_id":{"type":"string","maxLength":100,"description":"Optional unique string. Repeating the call with the same value returns the generation already started instead of charging again."}}}}}}},"get":{"operationId":"list_generations","summary":"Recent generations","description":"The account's most recent AI video generations, newest first, with their status.","tags":["Generation"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"How many. Default 10."}]}},"/audio/options":{"get":{"operationId":"list_audio_options","summary":"Audio options","description":"What generate_audio can make: music models (with prices), the voiceover voices, emotions and speed, and sound-effect categories. Free.","tags":["Audio"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}}}},"/audio":{"post":{"operationId":"generate_audio","summary":"Make music, a voiceover or a sound effect","description":"Generate audio with AITube's Audio Forge: an original music track (up to 30 s), a voiceover read from a script (text-to-speech), or a sound effect. Spends credits (music about a credit a second, voiceover 5 per 100 characters, effects 15); tell the user the price first. Returns an audio_id; follow it with get_audio. Spends credits or posts for the account.","tags":["Audio"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["type"],"properties":{"type":{"type":"string","enum":["music","voiceover","sfx"],"description":"music, voiceover or sfx."},"prompt":{"type":"string","minLength":1,"maxLength":1000,"description":"music and sfx: describe the sound (genre, mood, instruments; or the effect)."},"script":{"type":"string","minLength":1,"maxLength":5000,"description":"voiceover: the exact words to read."},"duration_sec":{"type":"integer","minimum":5,"maximum":30,"description":"music: length in seconds. Default 30."},"music_model":{"type":"string","enum":["melody-pro-v2","rhythm-s5","cinematic-ultra"],"description":"music: rhythm-s5 (default), melody-pro-v2 or cinematic-ultra (richer, costs more)."},"instrumental":{"type":"boolean","description":"music: true (default) for no vocals."},"voice":{"type":"string","enum":["leo","nova","marcus","aria","echo","eric","fenrir","liam","onyx","puck","alloy","aoede","jessica","kore","nicole","river","sky","daniel","fable","george","lewis","alice","emma","isabella","lily"],"description":"voiceover: voice id from list_audio_options. Default leo."},"emotion":{"type":"string","enum":["conversational","excited","professional","cheerful"],"description":"voiceover: delivery style."},"speed":{"type":"number","minimum":0.5,"maximum":2,"description":"voiceover: 0.5 to 2. Default 1."},"sfx_category":{"type":"string","enum":["Nature","Sci-Fi","UI & Clicks","Transitions","Human","Vehicles","Impact","Ambience"],"description":"sfx: optional category."}}}}}}}},"/effects":{"get":{"operationId":"list_effects","summary":"Instant effects","description":"The Instant Effects AITube can apply to a photo (each turns it into a short effect video), with their credit prices. Free.","tags":["Effects"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}}},"post":{"operationId":"apply_effect","summary":"Apply an effect to a photo","description":"Turn a photo into a short effect video with one of the Instant Effects (list_effects). Takes a public https link to a JPG, PNG or WebP. Spends the effect's credits; refunded if it fails. Follow with get_effect. Spends credits or posts for the account.","tags":["Effects"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["effect_id","image_url"],"properties":{"effect_id":{"type":"string","minLength":1,"maxLength":80,"description":"An effect id from list_effects."},"image_url":{"type":"string","minLength":8,"maxLength":2000,"description":"Public https link to the photo (up to 10 MB)."},"private":{"type":"boolean","description":"true (default): keep the result out of the user's public studio feed."}}}}}}}},"/prompts/enhance":{"post":{"operationId":"enhance_prompt","summary":"Improve a prompt","description":"Rewrite a short idea into a detailed, model-ready prompt for an AI video or image (subject, action, setting, camera, light, mood). Free.","tags":["Prompts"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["prompt"],"properties":{"prompt":{"type":"string","minLength":1,"maxLength":1000,"description":"The idea or prompt to improve."}}}}}}}},"/uploads":{"post":{"operationId":"start_upload","summary":"Upload a video file","description":"Start uploading a video file from this computer to the user's AITube channel. Returns a one-time upload URL and the exact curl command to send the file (for AI apps that can run commands, such as Claude Code or Cursor). Then call finish_upload. Files up to 5 GB. Spends credits or posts for the account.","tags":["Publishing"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["file_name","title"],"properties":{"file_name":{"type":"string","minLength":3,"maxLength":200,"description":"The file's name with its extension, e.g. launch.mp4."},"title":{"type":"string","minLength":1,"maxLength":200,"description":"The video's title."},"description":{"type":"string","maxLength":5000,"description":"Optional description."},"category":{"type":"string","enum":["Entertainment","Education","Memes","Teen Trends","AI Music","AI Influencers","AI Trailers","AI Ads","Storylines","Short Films","AI Movies","AI Animes","Animation","AI Podcast","Gaming","Technology & Innovation","News & Current Events","Sports & Fitness","Lifestyle","Relaxation & Calm","Motivational & Inspirational","Energetic & Fun","Romantic & Heartwarming","Humorous & Light-Hearted","Thought-Provoking","Cooking & Food","DIY & Crafts","Travel & Adventure","Wellness & Self-Care","Kids & Family","Professional Development","Action & Thrill","Drama","Fantasy & Sci-Fi","Horror & Mystery","Pets & Animals","Art & Design","Health & Science","Music & Performance","Culture & History","Trending Now","User Favorites","Discover Something New","Retail & Shopping","Food & Restaurants","Beauty & Personal Care","Health & Medical","Fitness & Sports","Home Services","Automotive","Technology & IT","Education","Travel & Hospitality","Professional Services","Finance & Insurance","Real Estate","Events & Entertainment","Pets","Others"],"description":"Category. Default Entertainment."},"visibility":{"type":"string","enum":["public","unlisted","private"],"description":"public (default), unlisted or private."},"allow_creative_reuse":{"type":"boolean","description":"Let other creators remix it. Default false."},"allow_external_download":{"type":"boolean","description":"Let viewers download it. Default false."},"generated_with":{"type":"string","maxLength":100,"description":"The AI tool that made it, e.g. Veo 3."},"width":{"type":"integer","minimum":1,"maximum":10000,"description":"Recommended: pixel width."},"height":{"type":"integer","minimum":1,"maximum":10000,"description":"Recommended: pixel height. Taller than wide opens in the Shorts player."},"duration_sec":{"type":"number","minimum":0,"maximum":86400,"description":"Recommended: length in seconds."},"client_request_id":{"type":"string","maxLength":200,"description":"Optional unique string; repeating it returns the same upload instead of a second video."}}}}}}}},"/search":{"get":{"operationId":"search_videos","summary":"Search AITube","description":"Search AITube's public videos and creators by words, model name or creator. Free.","tags":["Discover"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"},"description":"What to look for."},{"name":"search_type","in":"query","required":false,"schema":{"type":"string","enum":["all","creator","model-name","shorts","recently-uploaded"]},"description":"all (default), creator, model-name (e.g. Veo), shorts or recently-uploaded."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Videos to return. Default 12."}]}},"/videos/trending":{"get":{"operationId":"trending_videos","summary":"Trending videos","description":"What's trending on AITube now, optionally in one category. Free.","tags":["Discover"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"category","in":"query","required":false,"schema":{"type":"string"},"description":"Optional category, e.g. AI Movies."},{"name":"content_type","in":"query","required":false,"schema":{"type":"string","enum":["all","shorts","videos"]},"description":"all (default), shorts or videos."},{"name":"page","in":"query","required":false,"schema":{"type":"integer"},"description":"Page number, from 1."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer"},"description":"Results per page. Default 12."}]}},"/me/stats":{"get":{"operationId":"my_channel_stats","summary":"My channel's stats","description":"The user's own channel analytics: views, watch time, subscribers, engagement, over a period. Free.","tags":["Account"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"period_days","in":"query","required":false,"schema":{"type":"integer","enum":[7,28,90,365]},"description":"The period. Default 28."}]}},"/battles":{"get":{"operationId":"list_battles","summary":"Open battles","description":"AITube's open AI video battles (contests): theme, prize, entries and deadline. Free.","tags":["Discover"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"prize","in":"query","required":false,"schema":{"type":"string","enum":["cash","credits"]},"description":"Only cash or only credit prizes."},{"name":"page","in":"query","required":false,"schema":{"type":"integer"},"description":"Page number, from 1."},{"name":"limit","in":"query","required":false,"schema":{"type":"integer"},"description":"Default 10."}]}},"/community/posts":{"post":{"operationId":"post_to_community","summary":"Post to the community","description":"Publish a text post on the user's behalf in the AITube community feed (followers are notified). Only when the user asked to post, with the words they approved. Spends credits or posts for the account.","tags":["Publishing"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["text"],"properties":{"title":{"type":"string","maxLength":200,"description":"Optional headline."},"text":{"type":"string","minLength":1,"maxLength":5000,"description":"The post. Blank lines start new paragraphs."}}}}}}}},"/faceless/videos/{video_id}":{"get":{"operationId":"get_video","summary":"Check a faceless video","description":"A faceless video's progress (from create_video) and, once it's ready, its watch/download link (valid about an hour), thumbnail, credits charged and where to review or publish it. If it failed, the reason. Call about every 30 seconds while it's being made.","tags":["Faceless videos"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video_id from create_video or list_videos."}]}},"/generations/{generation_id}":{"get":{"operationId":"get_generation","summary":"Check a generation","description":"A generation's progress, place in line and, once it's ready, the video link, thumbnail and the draft's video_id (for publish_video). If it failed, why, and a suggestion. Call every 15-30 seconds while it runs.","tags":["Generation"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"generation_id","in":"path","required":true,"schema":{"type":"string"},"description":"The generation_id from generate_video or list_generations."}]}},"/generations/{generation_id}/cancel":{"post":{"operationId":"cancel_generation","summary":"Cancel a generation","description":"Stop a generation that hasn't finished. The credits held for it are refunded.","tags":["Generation"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"generation_id","in":"path","required":true,"schema":{"type":"string"},"description":"The generation_id from generate_video or list_generations."}]}},"/audio/{audio_id}":{"get":{"operationId":"get_audio","summary":"Check audio","description":"An audio job's status and, when ready, the link to the file. Call every 10 seconds until done.","tags":["Audio"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"audio_id","in":"path","required":true,"schema":{"type":"string"},"description":"The audio_id from generate_audio."}]}},"/effects/{effect_job_id}":{"get":{"operationId":"get_effect","summary":"Check an effect","description":"An effect job's progress and, when ready, the video link. Call every 10-15 seconds until done.","tags":["Effects"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"effect_job_id","in":"path","required":true,"schema":{"type":"string"},"description":"The effect_job_id from apply_effect."}]}},"/videos/{video_id}/publish":{"post":{"operationId":"publish_video","summary":"Post a video to the channel","description":"Publish a draft from the user's AITube studio to their channel: typically a finished generate_video clip (its video_id is in get_generation). Sets the title, description, category and visibility, then the video is processed and goes live with the usual checks. Only call it when the user asked to post. Follow with get_publish_status. Spends credits or posts for the account.","tags":["Publishing"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["title"],"properties":{"title":{"type":"string","minLength":1,"maxLength":200,"description":"The video's title."},"description":{"type":"string","maxLength":5000,"description":"Optional description."},"category":{"type":"string","enum":["Entertainment","Education","Memes","Teen Trends","AI Music","AI Influencers","AI Trailers","AI Ads","Storylines","Short Films","AI Movies","AI Animes","Animation","AI Podcast","Gaming","Technology & Innovation","News & Current Events","Sports & Fitness","Lifestyle","Relaxation & Calm","Motivational & Inspirational","Energetic & Fun","Romantic & Heartwarming","Humorous & Light-Hearted","Thought-Provoking","Cooking & Food","DIY & Crafts","Travel & Adventure","Wellness & Self-Care","Kids & Family","Professional Development","Action & Thrill","Drama","Fantasy & Sci-Fi","Horror & Mystery","Pets & Animals","Art & Design","Health & Science","Music & Performance","Culture & History","Trending Now","User Favorites","Discover Something New","Retail & Shopping","Food & Restaurants","Beauty & Personal Care","Health & Medical","Fitness & Sports","Home Services","Automotive","Technology & IT","Education","Travel & Hospitality","Professional Services","Finance & Insurance","Real Estate","Events & Entertainment","Pets","Others"],"description":"Category. Default Entertainment."},"visibility":{"type":"string","enum":["public","unlisted","private"],"description":"public (default), unlisted or private."},"allow_creative_reuse":{"type":"boolean","description":"Let other creators remix it. Default false."},"allow_external_download":{"type":"boolean","description":"Let viewers download it. Default false."}}}}}},"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's id."}]},"get":{"operationId":"get_publish_status","summary":"Check a post","description":"Whether a video sent with publish_video or the upload tools is processing, live (with its link and views) or was held back, and why.","tags":["Publishing"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's id."}]}},"/uploads/{video_id}/complete":{"post":{"operationId":"finish_upload","summary":"Finish an upload","description":"After the file is uploaded to the URL from start_upload: start processing. The video goes live by itself when it's done. Safe to call twice. Spends credits or posts for the account.","tags":["Publishing"],"x-aitube-tier":"paid","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's id."}]}},"/channels/{username}":{"get":{"operationId":"get_channel","summary":"A creator's channel","description":"A creator's AITube channel by @username: about, video count and latest videos. Free.","tags":["Discover"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"},"description":"The channel's username, with or without @."},{"name":"page","in":"query","required":false,"schema":{"type":"integer"},"description":"Page number, from 1."},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer"},"description":"Results per page. Default 12."}]}},"/videos/{video_id}":{"get":{"operationId":"get_video_details","summary":"A video's details","description":"A public AITube video's title, creator, views, the AI model it was made with and its link. Free.","tags":["Discover"],"x-aitube-tier":"free","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Invalid arguments","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"401":{"description":"Missing or invalid API key","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"402":{"description":"Not enough credits","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"403":{"description":"Plan doesn't include the API","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}},"429":{"description":"Rate or daily limit","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string","description":"e.g. INVALID_ARGUMENTS, INSUFFICIENT_CREDITS, PLAN_REQUIRED, NOT_FOUND, RATE_LIMITED"},"message":{"type":"string"}},"required":["code","message"]},"links":{"type":"object","additionalProperties":{"type":"string"}}},"required":["error"]}}}}},"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string"},"description":"The video's id (from a link or search)."}]}}}}