01 / Create
More models. Less setup.
Pick the right model for every ad without a separate account for each provider.
Image / video / voice / music
Developer API
Images, video, voice, music, captions and ad analysis with one API key and one credit balance.
Build with your AI agentAgent readyNo subscription. Pay with credits.
Model names and trademarks belong to their owners.
One connected stack
From a first prompt to a finished ad. Your keys, credits and every job stay in one place.
01 / Create
Pick the right model for every ad without a separate account for each provider.
Image / video / voice / music
02 / Control
Everything you need to run an integration, without extra moving parts.
One workspace. All the details.
03 / Connect
Connect each step of ad production through one documented REST API.
Create · check · ship
Built for builders and agents
Give Claude Code, Codex or Cursor the context to build your MobyVid integration. Start with the docs, not a blank page.
Open the documentation indexRead the MobyVid API documentation:
https://mobyvid.com/llms.txt
https://mobyvid.com/en/docs/api
Build a server-side integration that creates a product image
with POST /api/v1/jobs (op "image.nano-banana-pro"), then polls
GET /api/v1/jobs/{id}?wait=30 until the job has finished.
Read the key from the MOBYVID_API_KEY environment variable, never in browser code.
Check the balance first (GET /api/v1/me) and the price (POST /api/v1/estimate).
Send an Idempotency-Key with every paid request. After a timeout, do not retry
blindly: look the job up with GET /api/v1/jobs?idempotency_key=... first.
Return the finished image when its status is succeeded.
Your idea + your agent + MobyVid
The models behind your ads
Built for production. Ready for your next request.
Your product in a new scene from your photos.
image.nano-banana-pro
From23 cr ($0.23)
Fast product photos with up to 14 references.
image.nano-banana-2
From15 cr ($0.15)
Images from text or by editing your photos.
image.gpt-image-2
From13 cr ($0.13)
Pictures from text or by editing your photos.
image.gpt-image-2-5
From13 cr ($0.13)
Fast, cheap image drafts to test ideas before the final version.
image.seedream-5-flash
From5 cr ($0.05)
Sharp images from text or up to 8 references, at 1K or 2K.
image.flux-2-pro
From9 cr ($0.09)
3 to 15 s video from text or your first frame.
video.kling-3
From63 cr ($0.63)
The character in your image copies the motion in your video.
video.kling-3-motion
From180 cr ($1.80)
4, 6 or 8 s clips with audio.
video.veo-3-1
From54 cr ($0.54)
4 to 30 s video with audio.
video.seedance-2-5
From284 cr ($2.84)
Renders an approved Seedance 2.5 draft in 1080p.
video.seedance-2-5-final
From711 cr ($7.11)
4 to 15 s video with audio, from 480p to 4K.
video.seedance-2
From185 cr ($1.85)
Cheap video drafts at 480p or 720p, 4 to 15 s long.
video.seedance-2-mini
From18 cr ($0.18)
Animates your photo into 6 or 10 s clips.
video.hailuo-2-3
From27 cr ($0.27)
2 to 30 s video from text, frames or references.
video.wan-3
From72 cr ($0.72)
Turns one photo and one audio file into a talking video.
video.kling-avatar
From108 cr ($1.08)
A talking avatar from your audio, up to 15 s.
video.infinitalk
From162 cr ($1.62)
Swaps the voice in your clip and matches the lips to the new audio.
video.lipsync
From108 cr ($1.08)
Moves your character with a video's motion (move) or puts it in place of the person in the video (replace).
video.wan-animate
From108 cr ($1.08)
Restyles a clip or swaps an object in it from a prompt and a reference image.
video.video-edit
From144 cr ($1.44)
Voiceover from your script with ElevenLabs, with word timings for captions.
audio.tts
From5 cr ($0.05)
Two tracks per take with Suno.
audio.music
From12 cr ($0.12)
Short effects from a description: hits, ambience and transitions.
audio.sfx
From3 cr ($0.03)
Upscales your video 2x or 4x with Topaz.
video.upscale
From80 cr ($0.80)
Joins 2 to 12 clips into one video in 9:16, 4:5, 1:1 or 16:9.
edit.merge
From10 cr ($0.10)
Burned-in captions with styles, fonts and colors inside the safe zone.
edit.captions
From15 cr ($0.15)
Removes location, device, editing and AI model data from the file.
edit.clean
From2 cr ($0.02)
Fits an image or video to 9:16, 4:5, 1:1 or 16:9 with a blurred background, bars or a crop.
edit.resize
From2 cr ($0.02)
Upload an ad or paste a post link and get an A to F grade, a hook score, 5 new hooks, 3 scripts and a scene-by-scene script to remake it with your product.
analysis.ad
From40 cr ($0.40)
Topaz 2x or 4x up to 4096 px, or Recraft Crisp as the cheaper option.
image.upscale
From20 cr ($0.20)
A transparent PNG from your product photo.
image.remove-bg
From1 cr ($0.01)
Same prices as the studio. The amount shown is the price at the default settings. POST /api/v1/estimate returns the exact price for your settings, at no cost, before anything is charged. See every price
From zero to your first request
A plain REST API, JSON in and out, and examples you can run as they are.
Sign up, confirm your email, create a key and top up your balance.
Get an API keyKeep the key on your server. Pick a model, set its fields and send the prompt.
Read the API referencePoll the job id, download the file and pass it to the next step of your workflow.
See the workflows# 1. Create the job. It is charged once and refunded if it fails.
JOB_ID=$(curl -s -X POST https://mobyvid.com/api/v1/jobs \
-H "Authorization: Bearer $MOBYVID_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{"op": "image.nano-banana-pro", "params": {"prompt": "A premium product shot of a glass serum bottle on wet stone, soft window light", "aspect_ratio": "4:5"}, "max_credits": 23}' | jq -r .id)
# 2. Poll until it finishes. Each call waits up to 30 seconds.
while :; do
JOB=$(curl -s "https://mobyvid.com/api/v1/jobs/$JOB_ID?wait=30" -H "Authorization: Bearer $MOBYVID_API_KEY")
case "$(echo "$JOB" | jq -r .status)" in queued|running) ;; *) break ;; esac
done
# 3. Download the result from outputs[0].download_url.
DOWNLOAD_URL=$(echo "$JOB" | jq -r '.outputs[0].download_url')
curl -L -o result.png "$DOWNLOAD_URL"
import os, uuid, requests
BASE = "https://mobyvid.com/api/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['MOBYVID_API_KEY']}"}
# 1. Create the job. It is charged once and refunded if it fails.
r = requests.post(f"{BASE}/jobs", timeout=60,
headers={**HEADERS, "Idempotency-Key": str(uuid.uuid4())},
json={"op": "image.nano-banana-pro", "params": {"prompt": "A premium product shot of a glass serum bottle on wet stone, soft window light", "aspect_ratio": "4:5"}, "max_credits": 23})
r.raise_for_status()
job = r.json()
# 2. Poll until it finishes. Each call waits up to 30 seconds.
while job["status"] in ("queued", "running"):
job = requests.get(f"{BASE}/jobs/{job['id']}", headers=HEADERS,
params={"wait": 30}, timeout=60).json()
# 3. Download the result from outputs[0].download_url.
print(job["outputs"][0]["download_url"] if job["outputs"] else job["error"])
// Node 18 or newer. Save as run.mjs: top-level await needs a module.
const BASE = "https://mobyvid.com/api/v1";
const headers = { Authorization: `Bearer ${process.env.MOBYVID_API_KEY}` };
// 1. Create the job. It is charged once and refunded if it fails.
let res = await fetch(`${BASE}/jobs`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": crypto.randomUUID() },
body: JSON.stringify({"op": "image.nano-banana-pro", "params": {"prompt": "A premium product shot of a glass serum bottle on wet stone, soft window light", "aspect_ratio": "4:5"}, "max_credits": 23}),
});
if (!res.ok) throw new Error((await res.json()).error.message);
let job = await res.json();
// 2. Poll until it finishes. Each call waits up to 30 seconds.
while (job.status === "queued" || job.status === "running") {
job = await (await fetch(`${BASE}/jobs/${job.id}?wait=30`, { headers })).json();
}
// 3. Download the result from outputs[0].download_url.
console.log(job.outputs[0]?.download_url ?? job.error);
POST /api/v1/jobsjob.idGET /api/v1/jobs/{id}?wait=30download_url
The more you build, the further you go
Same API. Larger packs include bonus credits. No API subscription.
$9.90€9.90
1,000 cr ($10)
Buy$29€29
3,100 cr ($31)
+6% bonus
Buy$79€79
8,900 cr ($89)
+12% bonus
Buy$199€199
23,500 cr ($235)
+18% bonus
Buy$499€499
62,000 cr ($620)
+24% bonus
BuyUSD. Local taxes calculated at checkout. EUR. VAT included. Bonus credits add to your balance and never change model prices. Purchased credits never expire.
Why MobyVid
Spend your time on what you build. Keep the infrastructure in one place.
Images, video, voice, music and captions through one account and one key.
Every model shows its price, and the estimate endpoint prices your exact settings at no cost.
API keys, task logs, usage logs and billing in a single dashboard.
llms.txt, an OpenAPI file and an MCP server for Claude Code, Codex and Cursor.
A job that fails is refunded automatically, down to the last credit.
The same account opens the web studio, with the same balance and the same prices.
A few things worth knowing
Product photos, video ads, voiceovers, music, captions, upscales and ad analysis. The formats and runs endpoints make whole ads with approval steps.
No. You buy a credit pack when you need it and each job is charged when you create it. Purchased credits never expire.
Each model and setting has a price in credits, the same as in the studio. POST /api/v1/estimate returns the exact price before the charge, and max_credits refuses a job that would cost more.
Yes. Share the agent prompt above, or connect the MCP server. Keep your API key in an environment variable on the server, never in browser code.
The credits come back automatically. After a timeout, look the job up with GET /api/v1/jobs?idempotency_key=... before you retry: the same request with a new key can start a second paid job.
Press Get API key, confirm your email and create a key in the workspace. We show it once and keep only a hash. Lost it? Revoke it and create a new one.
Build something worth watching
Images. Video. Voice. Music. All connected.