If you build with large language models, you have probably standardised on OpenRouter: one key, one balance, hundreds of chat models behind a single OpenAI-compatible endpoint. It is an excellent piece of infrastructure — and it stops at text. We do not compete with it there; we start where it ends. The moment your product needs a generated video, a cover image or a music track, you are back to opening provider accounts one by one.

AI Generate applies the same idea OpenRouter nailed for LLMs to every other modality. One API, one credit pool, one bill — across 300+ models spanning image, video and music.

Where OpenRouter ends

OpenRouter routes chat/completions across 70+ providers. What it does not cover: text-to-video (Veo 3.1, Wan 2.7, Seedance 2), image generation and editing (Flux, Nano Banana, GPT-Image), or music (Suno). For those you would normally sign up to fal, Replicate, kie.ai, Suno and a couple of others — separate keys, separate dashboards, separate invoices, separate SDKs.

The same pattern, every modality

Every modality goes through one request shape: create a task, then poll it (or take the webhook). Nothing per-provider to learn.

curl https://aimarcusimage.eu/api/v1/jobs/createTask \
  -H "Authorization: Bearer sk-aig-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"google/nano-banana","input":{"prompt":"Summer terrace at golden hour, photographic"}}'

Need an image from the same key and the same balance? Same surface:

curl https://aimarcusimage.eu/api/v1/jobs/createTask \
  -H "Authorization: Bearer sk-aig-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"google/nano-banana","input":{"prompt":"a red fox in autumn light, cinematic","image_size":"16:9"}}'

And video from the same account, no new contract:

curl https://aimarcusimage.eu/api/v1/jobs/createTask \
  -H "Authorization: Bearer sk-aig-..." \
  -H "Content-Type: application/json" \
  -d '{"model":"google/veo-3-1","input":{"prompt":"slow dolly over a misty pine forest at dawn"}}'

Long-running jobs return a taskId you poll, or you register a webhook. Retries are idempotent on the task id, and you can set daily and monthly spend caps that return HTTP 402 when hit — so a runaway loop never produces a surprise invoice.

Honest about what this is

AI Generate is an aggregator. We route your call to the upstream provider and add a margin for the consolidation. If you only ever call one model and want the absolute floor price, going direct will be cheaper. The trade we make easy is the opposite case: you build across several modalities, you do not want five accounts and five invoices, and you want models like Veo and Suno reachable from the same OpenAI-compatible surface as your LLM calls. You pay per call, there is no subscription, and credits do not expire.

OpenRouter vs AI Generate vs going direct

 OpenRouterAI GenerateDirect providers
Chat / LLMYes (its core)No — keep OpenRouter for textYes
Image generationNoYes (Flux, Nano Banana, GPT-Image)Per provider
Video generationNoYes (Veo 3.1, Wan, Seedance)Per provider
MusicNoYes (Suno)Per provider
BillingOne balanceOne credit poolOne invoice per provider
Request shapeOpenAI-compatibleOpenAI-compatibleDifferent per provider

Which should you pick?

If your product is text-only, OpenRouter is hard to beat — keep using it. If you are adding generated media and do not want to babysit a fleet of provider accounts, run media (and, if you like, your LLM calls too) through AI Generate so the whole stack shares one key, one balance and one set of spend caps.

FAQ

Is AI Generate OpenAI-compatible like OpenRouter? No, and it does not need to be — OpenAI publishes no video or music API to be compatible with. Media uses a create-task / poll (or webhook) pattern that is identical across image, video and music.

Can I use it only for media and keep OpenRouter for chat? That is exactly the intended split — AI Generate for video, image and music, your existing router for text.

Is there a subscription? No. Pay per call from a prepaid credit balance, top up from $10, credits never expire.

Do I get the same model output as going direct? Yes — we route to the upstream provider; you get the provider's output with one bill and one integration.

Read the docs or get an API key and test any model in the playground first.