Skip to main content
POST
Midjourney
Midjourney runs through the unified async task endpoint /v1/tasks. The action field selects the operation, so a single model exposes every capability. Two kinds of operations:
  • Standalone generation — no prior task needed: imagine (text-to-image), blend (multi-image fusion), describe (image-to-text), edits (full-image rewrite)
  • Chained operations — rework the output of an earlier task; pass ref_task_id to reference it: upscale, variation / high-variation / low-variation, reroll (regenerate the grid), zoom (outpaint zoom), pan (directional outpaint), remix-strong / remix-subtle (v8 remix)
imagine and the other generation actions return a 2×2 grid (one image holding 4 frames). To upscale or vary one of those frames, use a chained operation with ref_task_id (the grid task’s task_id) plus index (1-4, picking the frame). See Chained Operations.

Pricing

Prices are not listed here — they follow upstream changes, and anything written into the docs drifts out of date.Live prices: the “Model Market” in the console, or the GET /v1/models endpoint (see Models). What a call actually cost: every response carries cost / usage.cost — that is the authoritative number.

Action Quick Reference

Examples

After submitting, poll GET /v1/tasks/{task_id} for status. See Task System for details.

Available Models

Chained Operations

Chained actions rework the output of an earlier task. The two fields that matter are ref_task_id and index.
1

Generate a grid first

Call imagine and keep the task_id from the response (for example task-wave1781770984b950327128). It refers to one 2×2 grid.
2

Reference the grid and pick a frame

Chained operations take ref_task_id (the task_id from the previous step) plus index (1-4: top-left=1, top-right=2, bottom-left=3, bottom-right=4). For example, upscale enlarges frame 2.
3

Keep chaining

The single-image task produced by an upscale can itself be the ref_task_id for zoom or pan, stacking step on step.
ref_task_id must point at a task that is your own, already succeeded, and on the same channel, otherwise the call fails (source_task_not_found / source_task_not_owned / source_task_not_success / source_task_channel_mismatch). It references the task task_id, not the result image URL.
What each chained action requires of its source task:

Common Parameters

string
required
Always midjourney
string
default:"imagine"
Midjourney is action-driven: action decides what a call does. These 15 are supported:Starting points (no task_id needed)
  • imagine — text to image, returns a 2×2 grid (default)
  • blend — blend several images
  • describe — image to prompt
Continuing from a result (needs task_id; most also need index for which frame)
  • upscale — upscale one frame
  • variation / high-variation / low-variation — variations, increasing strength
  • reroll — re-run the same prompt for a new grid
  • zoom — expand outward · pan — extend in one direction
  • inpaint — repaint a region · edit — edit
  • remix-strong / remix-subtle — re-mix with a new prompt, two strengths
  • modal — operations that go through a confirmation step
string
Prompt. Required for imagine/edits; native MJ flags are supported (e.g. --ar 16:9). Not used by blend/describe
string
default:"1:1"
Aspect ratio, such as 1:1 / 16:9 / 9:16 / 2:3 / 3:2 / 4:3 / 3:4 / 21:9 / 9:21
string[]
Reference images. 2-4 for blend, 1 for describe/edits, optional for imagine (image guidance)
integer
Random seed
string
Callback URL fired when the task reaches a terminal state (optional, an alternative to polling)

Model-Specific Parameters

string
default:"relax"
Speed tier relax / fast / turbo. Affects generation speed and billing (see Pricing)
integer
Which frame of the 2×2 grid to use (1-4). Required for upscale/variation/high-variation/low-variation/remix-*
string
MJ version: 8.1 / 7 / 6.1 / 5.2 / 5.1
string
Quality --q: 0.25 / 0.5 / 1 / 2
string
Elements to exclude, --no

Resource Limits

  • blend takes 2-4 reference images, each ≤ 12 MiB
  • describe comes back quickly (1-3 seconds); the result is text suggestions
  • pan is only supported on v6/v6.1/v7/niji6; removed in v8/v8.1
  • remix-strong / remix-subtle are v8/v8.1 only