Skip to main content
POST
Midjourney has a built-in content moderation system. Each image is moderated individually: filtered images are left out of the results and the remaining images are delivered normally, so you may receive fewer images than usual. If at least one image passes, the task is completed and billed normally; if all images are filtered, the task ends as failed and the reserved credits are refunded in full. Please make sure your prompts and reference images comply with the content guidelines.

Authorizations

Authorization
string
header
required

All endpoints require Bearer Token authentication

Get API Key:

Visit API Key Management Page to get your API Key

Add to request header:

Body

application/json
model
enum<string>
default:mj-v8.2
required

Model name

Available options:
mj-v8.2
prompt
string
required

Prompt, supports all Midjourney V8.2 native parameter syntax (e.g. --ar 16:9 --s 500).

Image-to-Image: Place image URLs at the beginning of the prompt. Supported formats: .png, .gif, .webp, .jpg, .jpeg

Image-to-Image Rules:

  • 1 image + no text = invalid (will return error)
  • 1 image + text description = valid
  • 2+ images + no text = valid
  • 2+ images + text description = valid

Unsupported parameters: parameters the upstream does not support (e.g. --oref, --cref, --stop, --bs) are passed through and explicitly rejected by the upstream: the task fails with a parameter error (invalid_parameters) and reserved credits are refunded. --v / --version / --niji and the speed / hd parameters are stripped and controlled via API parameters; --quality / --q (1–4) is passed through.

Maximum string length: 2048
Example:

"A cinematic shot of a Maine Coon cat on a neon-lit balcony --ar 16:9 --s 500"

quality
enum<string>
default:standard

Output quality

  • standard: Standard resolution (default), 1x multiplier
  • hd: Native HD output, 1.5x multiplier. Mutually exclusive with speed: draft

Pricing note: the quality multiplier is combined (multiplied) with the speed multiplier.

Available options:
standard,
hd
model_params
object

Model parameters

callback_url
string<uri>

HTTPS callback URL for task completion

Callback timing:

  • Triggered when the task is completed or failed
  • Sent after billing confirmation

Security restrictions:

  • HTTPS protocol only
  • Callbacks to private IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • URL length must not exceed 2048 characters

Callback mechanism:

  • Timeout: 10 seconds
  • Up to 3 retries after failure (retries at 1s/2s/4s after failure)
  • Callback response body format matches the task query endpoint
  • A 2xx status code is considered successful; other status codes trigger retries
Example:

"https://your-domain.com/webhooks/image-task-completed"

Response

Task created successfully

created
integer

Task creation timestamp

Example:

1757165031

id
string

Task ID

Example:

"task-unified-1757165031-mjv82"

model
string

Actual model name used

Example:

"mj-v8.2"

object
enum<string>

Task object type

Available options:
image.generation.task
progress
integer

Task progress percentage (0-100)

Required range: 0 <= x <= 100
Example:

0

status
enum<string>

Task status

Available options:
pending,
processing,
completed,
failed
Example:

"pending"

task_info
object

Async task info

type
enum<string>

Task output type

Available options:
text,
image,
audio,
video
Example:

"image"

usage
object

Usage and billing info