The problem
If you build anything that generates media with AI, you know the tax: every capability lives behind a different provider. Google's Veo for cinematic video. Kling and ByteDance's Seedance for other styles and motion. Nano Banana for images. ElevenLabs for voice. Each one is its own account, its own API key, its own billing relationship, its own rate card.
Want to compare Veo and Kling on the same prompt? Two dashboards. Want to add voice to a video pipeline? A third account. Want to know what a run will cost before you fire it? Good luck reconciling five pricing pages.
I got tired of it and built Prizm — one API key that fronts all of them.
What it does
One key, one prepaid balance, four generation types:
- Text → Video and Image → Video: Veo 3.1 (Fast/Quality/Lite), Kling 2.6, Seedance 2.0 (+ Fast)
- Text → Image: Nano Banana Pro, Nano Banana 2
- Text → Voice: ElevenLabs
Three principles shaped it:
1. Cheaper than going direct. Every model is priced below the provider's official rate — up to ~67% off on some (Veo 3.1 Fast: $1.20 direct → $0.40). The mechanism is boring and honest: capacity is bought wholesale and passed through under list price. The rate you see is the rate you're charged — no markup at checkout.
2. Prepaid, not subscription. Load any amount into a wallet, and each generation draws its exact listed price. No monthly fee, no minimums, nothing expires. Usage is bursty for most people building media tools, and a wallet models that far better than a flat subscription.
3. Only pay for output. Every call shows its price before it runs, and failed jobs are refunded automatically. You never eat the cost of a generation you didn't receive.
The part I like most: it runs inside Claude
Prizm exposes its catalog to Claude via a connected key. So instead of choosing a model yourself, you can describe the result:
"Make an 8-second cinematic video of a fox in the snow."
Claude sees every model available to your key, picks the right one (Veo for cinematic motion, say), runs it, and returns the finished file — billed to the same prepaid balance. Model selection becomes a language problem instead of a research problem.
The stack
- FastAPI (Python) backend on Render
- Next.js (App Router) frontend on Vercel
- Postgres on Neon
- Stripe for wallet top-ups
- Email + password auth with self-serve password reset
Honest tradeoffs
Being an aggregator means you're a layer removed from each provider's console and their newest experimental flags. The catalog is focused rather than exhaustive — I add models based on what people actually ask for. And prepaid means users have to fund a wallet before they generate, which is a higher-friction top of funnel than a free tier.
Try it
It's live at prizmkey.com. Sign up with an email, get a key instantly, load any amount, and generate from the studio or straight from Claude.
I'd love feedback from other builders: is one-key aggregation the pain you'd want solved for media the way it's been solved for LLMs? And which models should I add next?
Top comments (0)