What can the VIDEO AI ME API and MCP server do?
Last updated:
The VIDEO AI ME API and MCP server give AI agents and scripts access to 73 skills: generating UGC-style ads, product ads, explainers, and talking-head clips, adding captions, creating actors, cloning voices, publishing and scheduling posts to social accounts, and checking run status. Access requires an API key on an active Pro or Premium plan; 1 credit = 1 cent.
One skill registry backs both surfaces: the REST API (OpenAPI spec) and the hosted MCP server at https://videoai.me/api/v1/mcp, so the tables below are the source of truth for both.
Makers
Skills that create or transform video. Maker runs spend real credits (1 credit = 1 cent) and quote their estimated cost before anything is charged.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Make a UGC Admake_ugc_ad | Creates a talking-head UGC ad: one creator filming themselves at home, speaking a script written from your brief. | 220 to 2880 credits | 12 to 25 minutes |
| Make a Product Admake_product_ad | Creates a polished product ad from a short brief: storyboard, key visuals, then one continuous video with sound. | 55 to 960 credits | 12 to 25 minutes |
| Make an Explainer Videomake_explainer | Creates a paper-collage explainer video with baked-in narration from a topic and a short brief (a narrated scene-by-scene script, one collage board per scene, then animated clips cut together). | 110 to 1920 credits | 12 to 25 minutes |
| Make a Talking Head Clipmake_talking_head | Animates one of the user's saved actor looks into a talking-head video clip (5 or 10 seconds). | 35 to 70 credits | 4 to 10 minutes |
| Make a Video From an Imagemake_image_to_video | Makes a video the image-first way: great videos start from a great first frame, so generate the image cheap, get the user's approval on it, then animate. | 8 to 1440 credits | 5 to 12 minutes |
| Make a Voice-Overmake_voiceover | Turns text into a spoken audio track with one of the user's voices, and returns the audio URL. | Free | under 2 minutes |
| Add a Voice-Over to a Videoadd_voiceover | Lays a voice-over (or any audio track) over a finished video and returns the combined video. | Free | 1 to 4 minutes |
| Add Captionsadd_captions | Transcribes a completed video and burns word-level captions into the picture, returning the captioned video URL. | Free | 2 to 7 minutes |
| Merge Videosmerge_videos | Stitches 2 to 10 finished videos into one file, in the exact order given. | Free | 2 to 5 minutes |
| Create an Actorcreate_actor | Creates a reusable actor from a photo in the user's images storage, and launches its 4 automatic looks. | Free | 1 to 4 minutes |
| Clone a Voiceclone_voice | Clones a custom voice from an audio sample in the user's voice sample storage. | Free | 1 to 2 minutes |
| Approve a Storyboardapprove_storyboard | Approves the storyboard frames of a paused maker run (make_ugc_ad, make_product_ad, make_explainer) and starts the paid clip phase, exactly like approving in the app. | Free | under 2 minutes |
Publishing
Skills that post finished videos to connected social accounts and read back how they performed. Free, but posting always confirms the platform list first.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Publish a Videopublish_video | Publishes or schedules a finished video to the user's connected social accounts. | Free | under 2 minutes |
| Schedule a Postschedule_post | Schedules a finished video onto the user's posting queue (useQueue: true takes the next free slot of their weekly schedule) or at an explicit time (scheduledAt). | Free | under 2 minutes |
| Get Post Performanceget_performance | Reads how the user's posts actually did: per-platform delivery status, metrics (views, likes, comments, shares, clicks) and totals per post. | Free | seconds |
Paid ads
Skills that turn a finished video or a published post into a paid campaign, then manage every campaign, ad set and ad: status, budgets, names, copies, creatives, and performance with breakdowns. The budget is your own ad spend, never credits; a launch starts paused, resuming or raising a budget needs an explicit confirmation, and deleting needs one too.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| List Connected Ad Accountslist_ad_accounts | Lists the ad accounts the user has connected for paid campaigns: each connected account (accountId, platform, name, import state) plus the platform ad accounts under it (adAccountId, name, currency). | Free | seconds |
| List Ad Campaignslist_ad_campaigns | Lists the paid campaigns on the user's connected ad accounts with status, budget, currency and rolled-up metrics (spend, impressions, reach, clicks, CTR, CPC, CPM, conversions, ROAS) for the date range. | Free | seconds |
| Get an Ad Campaignget_ad_campaign | Returns one campaign with its ad sets and ads: status, review and serving state, budget and budget level (campaign or ad set), each ad creative (headline, body, link, call to action, thumbnail), metrics per node, and optionally a daily series. | Free | seconds |
| Get Ad Performanceget_ad_performance | Reads how a paid campaign (or one ad inside it, with adId) is doing on the user's ad account: spend, impressions, reach, clicks, CTR, CPC, CPM, conversions, cost per conversion, ROAS, video plays and thruplays, a daily timeline, and optional breakdowns by age, gender, country, region, network (publisher_platform), placement (platform_position) or device (device_platform); LinkedIn adds job title, function, seniority, industry, company and company size. | Free | seconds |
| Get Ad Account Timelineget_ad_account_timeline | Daily totals across every campaign on a connected ad account: spend, impressions, reach, clicks, CTR, CPC, CPM, conversions and ROAS per day. | Free | seconds |
| Get Ad Account Financeget_ad_account_finance | Reads the money side of one platform ad account: prepaid balance, lifetime amount spent, spend cap and funding source, plus the EU DSA defaults (beneficiary and payor) used for European ads. | Free | seconds |
| Get Ad Account Activityget_ad_activity | One time-ordered log of what happened on an ad account: the platform's own change history (any tool, any person) merged with the actions taken from this workspace and the surface they came from. | Free | seconds |
| List Ad Pixels and Lead Formslist_ad_pixels | Lists the conversion sources a launch can optimize for on a platform ad account: conversion actions (pixels and events) and lead forms. | Free | seconds |
| Search Ad Targeting Optionssearch_ad_targeting | Resolves a human phrase into the platform's targeting ids: cities and regions (dimension geo), interests, behaviors or income tiers, each with an audience size where the platform reports one. | Free | seconds |
| Estimate Ad Reachestimate_ad_reach | Pre-flight audience size for a targeting spec (countries, ages, gender, interests, cities, regions) on a platform ad account, before any campaign exists. | Free | seconds |
| Preview an Adpreview_ad | Renders how an ad looks per placement (mobile feed, desktop feed, story) as embeddable HTML snippets, either for an existing ad (campaignId + adId) or for a creative spec before anything exists (accountId + adAccountId + creativeSpec). | Free | seconds |
| List Boostable Postslist_boostable_posts | Lists posts published from this workspace that a connected ad account can promote with boost_post, with the platform post id, the caption and the media. | Free | seconds |
| Launch an Ad Campaignlaunch_ad | Turns a finished video (or an image on platforms with image ads) into a paid campaign on one of the user's connected ad accounts. | Free | 1 to 4 minutes |
| Boost a Published Postboost_post | Promotes a post the user already published (list_boostable_posts, or any platformPostId) as a paid ad, keeping the likes and comments it earned. | Free | 1 to 2 minutes |
| Pause or Resume an Adset_ad_status | Pauses or resumes a whole campaign, one ad set, or one ad. | Free | under 2 minutes |
| Pause an Ad Campaignpause_ad | Pauses an entire ad campaign so it stops spending the user's own ad budget; the paused status cascades through the campaign's ad sets and ads. | Free | under 2 minutes |
| Pause or Resume Many Campaignsbulk_ad_campaign_status | Pauses or resumes up to 50 campaigns in one call, with a per-campaign result so one refusal does not fail the batch. | Free | under 2 minutes |
| Update an Ad Budgetupdate_ad_budget | Changes the daily or lifetime budget of a campaign, or of one ad set when the campaign holds budgets per ad set. | Free | under 2 minutes |
| Rename a Campaign, Ad Set or Adrename_ad_campaign | Renames a campaign, or with adSetId or adId one ad set or ad inside it, on the ad platform. | Free | under 2 minutes |
| Duplicate a Campaignduplicate_ad_campaign | Copies a campaign with its ad sets, ads, creatives and targeting. | Free | under 2 minutes |
| Duplicate an Adduplicate_ad | Copies one ad inside its campaign (same ad set by default, or another ad set with adSetId). | Free | under 2 minutes |
| Edit an Ad Creativeupdate_ad_creative | Edits an existing ad in place: name, headline, primary text, description, call to action, landing page, image or video URL, or the rotating headlines, descriptions and final URLs on search platforms. | Free | under 2 minutes |
| Delete a Campaignarchive_ad_campaign | Deletes a campaign on the ad platform, with every ad set and ad in it. | Free | under 2 minutes |
| Cancel an Adcancel_ad | Cancels (deletes) one ad inside a campaign on the ad platform. | Free | under 2 minutes |
| Set Ad Account Defaultsset_ad_account_defaults | Saves the EU DSA beneficiary and payor once per platform ad account, so every later launch targeting Europe can omit them. | Free | seconds |
Projects
Skills that assemble several clips into one video: create a project, add and reorder and trim its clips, then finalize it into a single deliverable.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Create a Projectcreate_project | Creates a project: a reusable multi-clip video that clips are added to and then assembled into one final video. | Free | seconds |
| Get a Projectget_project | Returns a project with its clips in order, each resolved to a playable video URL, plus the final video once assembled. | Free | seconds |
| List Projectslist_projects | Lists the user's projects (multi-clip video artifacts), newest first, with a clip count and status each. | Free | seconds |
| Add a Clipadd_clip | Adds one clip to a project. | Free | seconds |
| Reorder Clipsreorder_clips | Sets the order of a project's clips. | Free | seconds |
| Trim a Cliptrim_clip | Records trim points (start and/or end seconds) on a project clip. | Free | seconds |
| Remove a Clipremove_clip | Removes a clip from its project and renumbers the rest. | Free | seconds |
| Finalize a Projectfinalize_project | Assembles a project into one final video by merging its clips in order. | Free | 2 to 5 minutes |
Flows
Skills that author and run saved pipelines. A flow is a validated graph of skill steps, so a repeatable production becomes one parameterized call instead of a hand-run sequence.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Create a Flowcreate_flow | Saves a reusable flow: a named pipeline of up to 25 skill steps that runs as one unit. | Free | seconds |
| Update a Flowupdate_flow | Replaces a saved flow's name, description, inputs, outputs and steps with a new definition (same shape as create_flow), re-validated against the skill registry. | Free | seconds |
| List Flowslist_flows | Lists the user's saved flows: id, name, description, step count and credit estimate. | Free | seconds |
| Get a Flowget_flow | Reads one saved flow in full: its inputs, outputs, every step with its skill, prompts and wiring, plus the credit estimate. | Free | seconds |
| Run a Flowrun_flow | Starts a saved flow. | Free | seconds |
| Run a Flow Batchrun_flow_batch | Runs a saved flow as a batch of 2 to 20 variants: turn one proven flow into a testing batch by swapping hooks, actors, products, or languages systematically. | Free | under 2 minutes |
| Check a Flow Runget_flow_run | Checks a flow run started with run_flow: overall status, each step's state (keyed by step id, including awaiting_approval pauses and steps reused from an earlier run), currentSteps, awaitingApproval (steps paused at a gate), the deliverables of completed maker steps and the results of completed writer steps, both keyed by step id, and outputs (the flow's declared outputs, keyed by output key). | Free | seconds |
| Approve a Flow Stepapprove_flow_step | Releases a flow run paused at a gate (a step saved with gate: true, typically the clip step after the keyframes are ready) so it continues and spends that step's credits. | Free | seconds |
| Cancel a Flow Runcancel_flow_run | Ends a flow run that is paused at a gate or between steps, so nothing more is spent. | Free | seconds |
Generators
The atomic steps a flow is made of: write text or a storyboard, generate a batch of images, animate images into clips. Combine them on the Flows canvas or call them directly; every template is built from these.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Write Textwrite_text | Writes text or JSON with the writing model: a script, a storyboard, a caption, a list of prompts. | Free | 1 to 2 minutes |
| Generate Imagesgenerate_images | Generates a batch of images, one per prompt (up to 12), on the image model of your choice. | Free | 1 to 4 minutes |
| Animate Imagesanimate_images | Turns a batch of images into video clips, one clip per frame (up to 12), on an image-to-video model. | 8 to 17280 credits | 5 to 15 minutes |
Asset library
The agent memory of reusable material: save a photo, video or page, list what is already stored, and analyze an asset before writing a script around it.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Save an Assetsave_asset | Saves a reusable asset (image, video, webpage, audio) to the user's asset library. | Free | seconds |
| List Assetslist_assets | Lists the user's saved assets (newest first, up to 50), optionally filtered by kind, tag, or a title text match, including any stored analysis. | Free | seconds |
| Analyze an Assetanalyze_asset | Analyzes an asset so it can be reused in production: images get a vision analysis (subject, style, colors, visible text, suggested uses), videos get a transcription PLUS a visual description (what is on screen: subject, setting, framing, style), audio gets a transcription, and webpages get the site scrape plus brand draft. | 0 to 3 credits | under 2 minutes |
Discovery
Free, read-only catalog skills agents call before spending anything: templates, models, actors, voices, brand memory, connected accounts, and a website read.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| List Video Templateslist_templates | Lists every video template the platform can run: id, what it makes, supported durations and aspect ratios, and the honest credit cost range (1 credit = 1 cent). | Free | seconds |
| List Generation Modelslist_models | Lists every generation model the platform can run: id, kind (video or image), display name, supported resolutions with the honest cost basis (per-second credits for video, per-image credits for image, 1 credit = 1 cent), clip length windows, and capability flags (start-frame animation, text-to-video, baked-in narration, end-frame interpolation). | Free | seconds |
| List Actorslist_actors | Lists the user's saved actors with their looks (id, style, status, aspect ratio). | Free | seconds |
| List Voiceslist_voices | Lists the available voices: the platform voice library plus the user's own cloned voices. | Free | seconds |
| Get Brand Memoryget_brand | Reads the user's saved brand memory: business facts, target customer, tone of voice, banned words, preferred actors and voices, platform handles and notes. | Free | seconds |
| Update Brand Memoryupdate_brand | Saves brand facts the user shares (business name, products, target customer, tone of voice, banned words, preferred actors/voices, platform handles, notes) so future runs stay on brand. | Free | seconds |
| List Connected Accountslist_platform_accounts | Lists the social accounts the user has connected for publishing: platform, accountId, username and connection status. | Free | seconds |
| Analyze Websiteanalyze_website | Reads the user's website and drafts their brand memory (business name, products, target customer, tone of voice, languages) plus three starter video pitches. | Free | under 2 minutes |
Utility
Status polling for asynchronous runs, and the run log behind them. Free and safe to call any time. Completion webhooks (PUT /api/v1/webhook) are the push alternative.
| Skill | What it does | Credits | Typical time |
|---|---|---|---|
| Check a Runcheck_run | Checks the status of a run started by another skill (pass the runId it returned) and returns the finished deliverable (video URL, cost, timing) when it completes. | Free | seconds |
| List Recent Runslist_runs | Lists the user's most recent skill runs, newest first: skill, status, cost in credits (1 credit = 1 cent), which API key made the call, and timestamps. | Free | seconds |
How does access work?
Access is by API key, created in the dashboard at /developers by a logged-in user with an active Pro ($99/month) or Premium ($199/month) subscription. The full key is shown exactly once at creation; only its prefix appears in the key list afterwards, and any key can be revoked instantly.
Costs are quoted in credits, where 1 credit = 1 cent of your plan's monthly allowance. Maker skills always return their estimated cost first and wait for an explicit confirmation before spending; free skills never charge. Each key can also carry its own budget cap in dollars, a hard ceiling that stops maker runs on that key once reached.
The REST API is described by the OpenAPI spec at https://videoai.me/api/v1/openapi.json: list the skills, POST a run, then poll the run or register a completion webhook (PUT /api/v1/webhook) to be notified when the deliverable is ready. The MCP server exposes the same skills as tools for MCP clients over streamable HTTP with Bearer auth.
How do I connect an agent?
Step-by-step setup with the exact config format for each host:
- Use with Claude CodeHow do I use VIDEO AI ME with Claude Code?
- Use with CursorHow do I use VIDEO AI ME with Cursor?
- Use with Claude DesktopHow do I use VIDEO AI ME with Claude Desktop?
- Use with CodexHow do I use VIDEO AI ME with Codex?
- Use with ClaudeHow do I use VIDEO AI ME with Claude?
- Use with ChatGPTHow do I use VIDEO AI ME with ChatGPT?
- Use with GrokHow do I use VIDEO AI ME with Grok?
- Use with Grok BotHow do I use VIDEO AI ME with Grok Bot?
- Use with OpenClawHow do I use VIDEO AI ME with OpenClaw?
- Use with HermesHow do I use VIDEO AI ME with Hermes?
- Use with any MCP clientHow do I use VIDEO AI ME with any MCP client?
API and MCP server questions
Direct answers about keys, costs, and what agents can do.
How do I get a VIDEO AI ME API key?
Log in and open videoai.me/developers. Creating a key requires an active Pro or Premium subscription; the full va_live_... value is shown exactly once at creation, so store it immediately. Afterwards only the key prefix is visible, and each key can carry an optional budget cap in dollars.
How much do the maker skills cost to run?
Each maker skill lists its honest credit range in the tables above, computed from the real model pricing (1 credit = 1 cent). Credits come from your plan's monthly allowance, and every maker run quotes its exact estimate for your input and waits for confirmation before anything is charged. Discovery, publishing, and status skills are free.
What is the difference between the REST API and the MCP server?
They expose the same skill registry, so nothing drifts between them. The REST API (spec at https://videoai.me/api/v1/openapi.json) suits scripts and backends: POST a skill run, poll the run endpoint. The MCP server at https://videoai.me/api/v1/mcp suits AI agents such as Claude Code, Cursor, Claude Desktop, and Codex, which discover the skills as tools automatically.
Can an AI agent publish a video without my approval?
No. Two confirmations are designed in: maker skills quote their credit cost and require an explicit confirmation before spending, and publishing skills require the agent to confirm the exact platform list with you (confirmPlatforms) before posting to real accounts. Budget caps on keys add a hard spending ceiling on top.
Is there a VIDEO AI ME CLI or SDK?
Yes, both, and both are official. The TypeScript SDK is @videoaime/sdk on npm: a typed, dependency-free client for the REST API with built-in run polling. The CLI is videoaime on npm (npm install -g videoaime): after videoaime login, the skills, runs, and flows commands work from a terminal or CI, with a --json mode for scripting.
Where do videos generated through the API live?
In the same account as videos made in the app. Runs return a deliverable with the video URL, cost, and timing, and remain in your run history. You can publish them through the publishing skills, schedule them onto your posting queue, or download the files; every video carries a full commercial license.