Ideogram and Midjourney for ad creative: what an API workflow can use in 2026
A plain guide to an Ideogram and Midjourney API ad creative generation workflow: what Ideogram's API can automate, why Midjourney stays a manual step, and where a person signs off.
Only one of the two belongs in the automated part. Midjourney has no public API, and its Terms of Service say "You may not use automated tools to access, interact with, or generate Assets through the Services." A programmatic ad-creative pipeline therefore uses Ideogram's API for the automated steps, and keeps Midjourney as a human-operated look-development step in its web app.
This post goes through that split for a team producing Arabic and English ads across the GCC. It covers what the terms allow, which parts of Ideogram's API fit ad production, and where a person has to stop the line before anything ships.
Can Midjourney sit inside an automated pipeline?
Not under its current terms. Three points matter for a build.
First, the automation clause quoted above covers the Services as a whole, so a script that drives the web app runs against it. Second, the terms ask users not to "create any dependencies on any attributes of the Services." In our reading, a pipeline that depends on how the web app behaves is that kind of dependency. Third, content is "publicly viewable and remixable" by default. The terms also say Stealth mode is for Pro or Mega plans, and they tie asset ownership for companies above a revenue threshold to those same plans. An ad concept that has not launched should not sit in a public default gallery.
Midjourney has talked about an API before. In a July 16, 2025 survey it said it was "starting to investigate opening up an Enterprise API for people to start integrating Midjourney into their companies and services." That is an investigation, not a launch. We have not found a public Midjourney API as of October 2026, so a plan that needs one is a plan for later.
Which ad steps can Ideogram's API automate?
Ideogram's v2 endpoints follow one pattern, POST /v2/{content}/{action}/{model}, for example /v2/image/generate/ideogram-4-5. Requests carry an Api-Key header. API usage is prepaid, and the key is shown only once, so put it straight into a secrets store when you create it (API setup).
For ads, the more useful part is the set of ready-made tools in the API overview. Four do most of the repeatable work:
- @@BLOG6@@ reframes an ad to an exact resolution and regenerates the layout so the text stays legible. The optional
platformvalue keeps the ad inside that platform's safe zone:google,tiktok,meta_stories,meta_reels, orsnapchat. - @@BLOG0@@ rebuilds an ad in one target language while keeping layout, logos, brand type and the product. Arabic is rendered right to left. It takes one request per language.
- @@BLOG0@@ changes one axis at a time (people, setting, group size, or scene) and keeps logos, brand colours, the product and on-image text.
- Precise Edit on Ideogram 4.5 copies untouched pixels exactly and accepts up to four reference images. It suits a change to one area of a frame that is otherwise approved.
Resizing and localizing are asynchronous. A request returns a generation_id, which you poll, or you pass a webhook_url and receive the result by POST. Ideogram signs those webhook payloads with Ed25519, so the receiving service should verify the signature before it trusts the body (webhooks). A resize or localize request with dry_run=true is validated and priced, but nothing is generated, stored or billed, which makes it a safe way to test the pipeline wiring.
A sample pipeline, step by step
Take one offer, one product, a headline in Arabic and English, and four placements. This is the order we would build it in.
- Brief. Write the offer lines in both languages and list the placements. Before the brief is final, check what competitors are running. Our competition spy automation case study describes a team that was "manually checking 30-40 competitor ads per day" before it had a feed. Research should shape the brief, not come after the render.
- Look development, by hand. A designer builds a moodboard in Midjourney's web app. No code calls Midjourney. The designer chooses the lighting, palette and framing, and exports the frames they want to keep. If a Midjourney output is going to be used in any other tool, check the terms that cover it first.
- Base frames on Ideogram. Call the generate endpoint with a fixed
seed, so a frame can be reproduced later, and withstyle_reference_imagesdrawn from brand-owned photography. The Ideogram 3.0 generate reference listsseed,style_reference_images,style_codesandnegative_promptamong its parameters. Store the seed next to the request. The response includesis_image_safe, and when it is false the URL comes back empty. Treat that as a rejected frame, not as a transient error to retry without changing anything. - Resize to each placement. Run Ad Resizer once per placement. The table below lists what we would request. Dry-run each request first.
- Localize to Arabic. Run Ad Localizer once per language. By default the localizer translates. For copy that has already been approved, pass the wording in
exact_copyasoriginal => replacementlines. Ideogram places those lines character for character instead of translating them. - Review gate. An Arabic reader checks every localized frame against the approved Arabic wording. A second person checks the English master. Rejected frames go back to step 3 with a changed seed or different references.
- Download and store. Image URLs expire, so copy every approved file to your own storage. Record the
generation_id, the seed, the request, and the name of the person who approved the frame.
Which placement gets which request?
| Placement | platform value | Resolutions to request | | --- | --- | --- | | Meta Reels | meta_reels | 1080x1920, or 2160x3840 | | Meta Stories | meta_stories | 1080x1920, or 2160x3840 | | Google and YouTube | google | 1080x1080, 1920x1080, 1080x1920 (plus 2400x2400, 2880x2880 and 4K sizes) | | TikTok | tiktok | 1080x1080, 1920x1080, 1080x1920 (plus 2400x2400, 2880x2880 and 4K sizes) |
The table follows the accepted-resolution list in the Ad Resizer reference as of October 2026; any other size for a given platform is rejected with a 400. Check the current reference before you hard-code the list, because the accepted values are the ones the API returns, not the ones in this post.
Where should a person sign off?
Three points, in order. The look is approved before the batch runs, which is the idea behind the Shakl case study. Its data file describes "Prompt- or image-conditioned model creation with human approve/reject gates," and the backend only generates large sets after approval. The copy is approved by whoever owns the offer, not by the person who runs the generator. The final frames are approved per language.
Arabic letterforms need their own decision. If the brand's Arabic type is part of the identity, a designer should set it, and our earlier note on Arabic type that has to read covers that case. A generated frame can look right at thumbnail size and still break on a phone.
Volume is where the pipeline earns its keep. Our Mehfil Media case study lists "30+ assets / cuts / ratios per product" and "~48 hours from photo to campaign pack." Those figures describe that product's own UGC video flow, not a benchmark for a static ad campaign. Use them to see what a multi-ratio pipeline looks like, not to forecast your own timeline.
The rest of the stack, including the scheduling and the handoff to your ad platform, is ordinary AI automation work. The generation itself sits under our AI image generation service.
Frequently asked questions
Can Midjourney be called from code for ad production?
No public API exists as of October 2026, and the Terms of Service forbid automated tools that access the Services or generate Assets through them. Use Midjourney by hand for look development, and run the automated steps on a provider with a documented API.
Why use Ideogram for the automated steps?
Ideogram publishes an HTTP API with tools for resizing, localizing and varying ads, and its generate reference documents a seed and reference-image parameters. That covers the repeatable work. Whether its output matches your brand still needs a test on your own products.
Does Ideogram translate Arabic ad copy for me?
By default the localizer translates. For copy that has already been approved, pass the exact wording through exact_copy as original => replacement lines, then have an Arabic reader check the result before anything ships.
Who should approve the output?
The person who owns the offer approves the wording. A named reviewer approves the final frames, and that reviewer should not be the person who generated them. Keeping those roles apart is a simple safeguard.
If you are weighing this for your own ad team, book a free consultation and bring one live campaign and the lines you cannot change.
Last updated: 2026-10-21
Related posts
- When Kuwait buyers need a new-ad ping, not a daily dump — The named-competitor launch alert: ping when a watched account starts a new flight, and when a daily creative harvest is a different build.
- When Kuwait buyers should rank their own ads, not hunt — The own-creative ranking job: score flights you already ran, and when competitor research or a new still batch is a different build.
- Agentic AI services in Kuwait: what to check before you buy — What to check when a Kuwait team buys agentic AI services: the action list, the approval gate, the test cases, and who runs it…
- When an AI influencer needs a still library, not a one-shot face — Consultancy questions for the ‘approve a character, keep a still pack, map this week’s dance’ job — and when a one-off generator is still…