Skip to main content
Base URL: https://api.apimart.aiAuth: Authorization: Bearer <token>New /v1/midjourney/... routes automatically inject model=midjourney; you do not need to pass model in the request body.

Quick start

# 1. Submit an Imagine job
curl -X POST https://api.apimart.ai/v1/midjourney/generations \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "a cute cat, watercolor style --ar 16:9"}'

# 2. Poll the unified task API until status=completed
curl https://api.apimart.ai/v1/tasks/task_01JWXXXX \
  -H "Authorization: Bearer <token>"

# 3. Upscale image 1
curl -X POST https://api.apimart.ai/v1/midjourney/generations/upscale \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"task_id": "task_01JWXXXX", "index": 1}'

API overview

See each feature’s sub-page for full fields, examples, and notes.
FeaturePathDoc
Text-to-image (default entry)POST /v1/midjourney/generationsImagine
Text-to-image (explicit entry)POST /v1/midjourney/generations/imagineImagine
Multi-image blendPOST /v1/midjourney/generations/blendBlend
Image to text (describe)POST /v1/midjourney/generations/describeDescribe
Image editPOST /v1/midjourney/generations/editsEdits
Upscale a tilePOST /v1/midjourney/generations/upscaleUpscale
VariationPOST /v1/midjourney/generations/variationVariation
High variationPOST /v1/midjourney/generations/high-variationHigh Variation
Low variationPOST /v1/midjourney/generations/low-variationLow Variation
RerollPOST /v1/midjourney/generations/rerollReroll
Zoom outPOST /v1/midjourney/generations/zoomZoom
PanPOST /v1/midjourney/generations/panPan
InpaintPOST /v1/midjourney/generations/inpaintInpaint
Modal parametersPOST /v1/midjourney/generations/modalModal
Image-to-videoPOST /v1/midjourney/generations/videoVideo
Remix (strong / subtle)POST /v1/midjourney/generations/remix-strong · /remix-subtleRemix
Task queryGET /v1/tasks/{task_id} · /v1/midjourney/{task_id}Get task
See also: Best practices (polling / retries / troubleshooting) · End-to-end workflows (curl walkthroughs + client wrappers)

End-to-end flow

Errors

Error response format

{
  "error": {
    "type": "invalid_request_error",
    "message": "prompt is required"
  }
}

Common errors

HTTPtypeMeaning
400invalid_request_errorBad parameters (missing required, wrong format, etc.)
401authentication_errorInvalid API key
402payment_requiredInsufficient balance
404not_foundTask not found
429rate_limit_errorRate limited
500internal_errorServer error

Task failures

Common fail_reason values:
  • Banned prompt detected — banned prompt content
  • Task timeout — task timeout (auto refund after 30+ minutes)
  • No available upstream — service temporarily unavailable, retry later

Billing

The unified model name for new MJ routes is midjourney. Billing keys are generated from action, version, and speed. The usual match order is:
midjourney@<action>-<version>-<speed>
-> midjourney@<action>-<version>
-> midjourney@<action>-<speed>
-> midjourney@<action>
-> midjourney
ActionBill nameNotes
Imaginemidjourney@imagine[-version][-speed]Text-to-image / image-guided
Blendmidjourney@blend[-speed]Multi-image blend
Describemidjourney@describe[-speed]Image to text
Editsmidjourney@edits[-speed]Image edit
Upscalemidjourney@upscale[-version][-speed]Upscale
Variationmidjourney@variation[-version][-speed]Variation
High Variationmidjourney@high_variation[-version][-speed]Strong variation
Low Variationmidjourney@low_variation[-version][-speed]Subtle variation
Rerollmidjourney@reroll[-version][-speed]Regenerate
Zoommidjourney@zoom[-version][-speed]Zoom out / outpaint
Panmidjourney@pan[-version][-speed]Pan outpaint
Inpaintmidjourney@inpaint[-version][-speed]Inpaint entry
Modalmidjourney@modal[-speed]Inpaint follow-up parameters
Videomidjourney@video / midjourney@video-720pImage-to-video, charged × batch_size
Remix Strongmidjourney@remix_strong[-speed]Strong reshape (v8 / v8.1 only)
Remix Subtlemidjourney@remix_subtle[-speed]Subtle reshape (v8 / v8.1 only)
Notes:
  • speed=relax or omitted speed does not add a speed suffix; fast / turbo add the corresponding suffix.
  • Main versions normalize to v8.1, v7, v6.1, v5.2, and v5.1.
  • niji=true + version=7/6 normalizes to niji7 / niji6.
See console pricing. Failed jobs are fully refunded.