Need Midjourney-Style Images From Code? Six Image Models With a Real API
Midjourney has no public API, so here are six image models with official REST access and per-image billing, from Nano Banana Pro to Z-Image, with code.
Midjourney is used through midjourney.com or a Discord bot, it is sold as a subscription, and it has no official public API. When you need images that your code can request and that you pay for one at a time, look at models whose producers do provide API access: Nano Banana Pro (from $0.07 per image), GPT Image 2.5 ($0.05 per image), Seedream 5.0 Pro, FLUX.2 [pro], Imagen 4.0 and the low-cost Z-Image Turbo ($0.02 per image). Kadraris puts all six behind one key and one prepaid balance.
What follows: a quick map of which model fits which job, a test I ran on one long prompt, how Midjourney flags translate, and the code.
Pick by job
- One polished hero image, cover or ad: Nano Banana Pro.
- A long, detailed prompt where nothing may be missing: GPT Image 2.5. For long chains of edits, GPT Image 2.5 Sunburst.
- A poster or cover full of words: Seedream 5.0 Pro.
- A scene assembled from several reference photos: FLUX.2 [pro].
- Simple prompt-only images, no uploads: Imagen 4.
- Cheap checks of layout and light: Z-Image, before paying for a larger model.
| Model | Producer | References | Output |
|---|---|---|---|
| Nano Banana Pro | up to 14 | 10 ratios, 1K to 4K | |
| GPT Image 2.5 | OpenAI | up to 16 | 3 pixel sizes or auto |
| Seedream 5.0 Pro | ByteDance | up to 10 | 8 ratios, 1K to 2K |
| FLUX.2 [pro] | Black Forest Labs | up to 8 | 7 ratios, 1K to 2K |
| Imagen 4.0 | none | 5 ratios | |
| Z-Image Turbo | Alibaba | none | 5 ratios |
Each request returns a single image. Prices: Seedream 5.0 Pro from $0.0783 per image, FLUX.2 [pro] from $0.0688 per image, Imagen 4 $0.115 per image. A "from" price means bigger outputs cost more. For deeper testing see Nano Banana Pro, GPT Image 2.5 or FLUX.2; there are also pair pages for Google's model against OpenAI's and FLUX.2 against Nano Banana.
Kraków at dusk: a long-prompt test
On October 1, 2026 I sent one long prompt to several image models. The scene: the old market square in Kraków as evening falls, six Polish shop signs, a newsstand headline saying "MIASTO BEZ KORKÓW?" and a number 8 tram. Each model ran once at its highest resolution. I wrote it up in Polish as a FLUX 3 4K test. Three of the tested models are on Kadraris:



My takeaways:
- All three coped with small non-English signs full of accents, which still trips many image models.
- GPT Image 2.5 Sunburst fit in the largest share of what was asked: the kiosk, the tram, the church towers.
- Seedream 5.0 Pro chose a documentary street view, and its file was smaller than requested (2728 x 1536 px).
- Nano Banana Pro gave the most postcard-like light, with one text mistake.
In the same series Seedream 5.0 Pro earned 9/10 from me on a portrait, a prompt that quickly reveals problems with skin, fingers and light from a window:

Midjourney and APIs: where things stand (October 2026)
Based on Midjourney's docs, terms and pricing page; check midjourney.com for changes.
- There is no official API: no keys, no public endpoints. You create images on midjourney.com or with the Discord bot.
- Automation is not allowed by the terms of service. Anything marketed as a "Midjourney API" comes from outside companies wrapping the app; Midjourney itself does not offer it.
- It is subscription-only, with four tiers (Basic, Standard, Pro, Mega) and lower prices on annual billing. A free trial has not existed since 2023.
- Commercial use comes with every paid tier; businesses earning more than $1M a year need Pro or Mega.
This is an intentional choice. The company puts its effort into the app, the community around it and a distinctive visual style. If that is your workflow, it remains a good home. An API-based setup makes more sense when:
- You are building a product. Online stores, content systems, automation tools like n8n and Make, or custom software all need a plain
POSTwith a key. - Volume swings a lot. Forty pictures in March and two thousand in April is a better fit for per-image billing.
- You work from references. Your real product or character goes into a new scene rather than being redrawn from scratch.
- Spelling must be right. Signs, packaging and posters with correct text.
- One bill is enough. Video, music and chat models draw on the same balance.
Translating Midjourney flags
Flags with a double dash belong to Midjourney. Other models treat them as ordinary words. The mapping:
--ar 16:9becomes theaspect_ratiofield ("16:9"). GPT Image 2.5 takes pixel sizes like1536x1024instead.--no textbecomes "no text" in the prompt, ornegative_prompton models that have it, such as Wan 2.7 Image and Qwen Image 3.0.--seed 123becomes theseedfield on models that accept it, such as FLUX.2 [max] and Wan 2.7 Image.--srefor a style image goes intoimage_urls, and the prompt says to copy the look of that image.--stylizeand--chaoscannot be mapped; write out the style you want instead.
The bigger change is how long the prompt is. Bare keyword lists produce middling images with these models; whole sentences covering subject, setting, light and style do far better. Below, Z-Image Turbo with a fixed seed and two different prompts:


More on prompt structure: AI image prompt guide.
Painterly looks and concept art
Midjourney has a reputation for painterly images and concept work. These models can do it as well if you name the medium (oil, watercolor, linocut), the period and the palette. A producer sample from Imagen 4:

All image models are on the AI image generator page.
Cost of 100 images
Kadraris does not sell subscriptions. You pay per image from a prepaid balance (top-ups from $10) that never expires. A month of 100 images costs:
- with Imagen 4: 100 × $0.115 per image
- with Seedream 5.0 Pro: 100 × from $0.0783 per image
- with Nano Banana Pro: 100 × from $0.07 per image
- with FLUX.2 [pro]: 100 × from $0.0688 per image
- with GPT Image 2.5: 100 × $0.05 per image
- with Z-Image: 100 × $0.02 per image
A subscription costs the same whether you make 10 images or 1,000; a balance charges per image. Your volume decides which is cheaper. Failed generations are free. Rates: pricing; estimates: cost calculator.
Code: one POST, no Discord
?wait=60 keeps the request open until the image is done:
curl "https://kadraris.com/v1/generate?wait=60" \
-H "Authorization: Bearer $KADRARIS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "nano-banana-pro",
"input": {
"prompt": "Vintage 1950s travel poster of a red and white lighthouse on a rocky Baltic coast at blue hour, flat screen-printed colours, bold simple shapes, no text",
"aspect_ratio": "16:9",
"resolution": "2k"
}
}'JavaScript, where changing the model is changing a name:
const url = "https://kadraris.com/v1/generate?wait=60";
const res = await fetch(url, {
method: "POST",
headers: {
"Authorization":
`Bearer ${process.env.KADRARIS_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "seedream-5.0-pro",
input: {
prompt: "Concert poster for a jazz night, " +
"title \"BLUE HOUR\", art deco style",
aspect_ratio: "3:4",
},
}),
});
const task = await res.json();
console.log(task.status, task.output?.[0]?.url,
task.cost);If the image is not ready within the wait, check GET /v1/tasks/{id}. A Python script that saves files: AI image generation in Python. All fields: generate docs.
Questions
Are "Midjourney API" services official?
No. Midjourney publishes no API and its terms forbid automated generation. Those services are unofficial wrappers built by third parties.
Which model comes closest to the Midjourney look?
There is no exact match. For polished single frames I start with Nano Banana Pro; for painterly styles, name the medium, period and palette in the prompt, or pass a style image as a reference.
What do I do with --ar and --no from my old prompts?
Move the ratio into aspect_ratio and write exclusions as words such as "no text", or use negative_prompt on models that support it.
Can I start without paying?
Kadraris has no free plan or signup credit; the first top-up is $10 and does not expire. Z-Image also has open weights, so you can run it locally on a strong GPU.


























