Skip to main content
POST
The response carries a new task ID, fetched the same way. The new task has its own actions, so you can keep chaining. Operations not listed in actions return unsupported_action.
You can also submit through the unified task endpoint POST /v1/task/submit with model set to midjourney-upscale and the parameters inside input (no action needed). Both behave and bill the same.

Authorizations

Authorization
string
header
required

Send your API key in the Authorization: Bearer YOUR_API_KEY header.

Body

application/json
action
enum<string>
default:upscale
required

Always upscale.

Available options:
upscale
task_id
string
required

Task ID: The task to continue from (the task_id returned on submit). It must have succeeded.

index
integer

Image Index: Which image to use, starting at 1 (1–4 for a grid, up to 24 for V8 drafts). Optional when the parent has a single image.

Required range: 1 <= x <= 24
type
enum<string>
default:subtle

Upscale Type: subtle (default) or creative.

Available options:
subtle,
creative
speed
enum<string>
default:fast

Speed: relax is cheapest but queues longer; turbo is fastest at 2x price. You can also write --relax / --fast / --turbo in the prompt; this field wins. Defaults to fast.

Available options:
relax,
fast,
turbo
notify_hook
string<uri>

Notify hook: when the task ends, the same content as the fetch result is POSTed to this URL (a public http / https URL). Omit it to poll instead.

Response

OK

task_id
string
required

Task ID.

action
string
required

Action name, e.g. imagine, upscale.

status
enum<string>
required

Task status, see the table above.

Available options:
submitted,
in_progress,
success,
failure
created_at
integer
required

Created at (Unix seconds).