Skip to main content
OpenPAI integrates Midjourney and Suno via Midjourney-Proxy / Plus and the Suno API, using an asynchronous task calling model.

Midjourney

Available model IDs

Model IDBehavior
mj_imagineText-to-image, equivalent to Discord /imagine
mj_upscaleUpscale an image (U1-U4)
mj_variationVariations (V1-V4)
mj_zoomZoom-out generation
mj_blendBlend multiple images
mj_describeReverse-engineer a prompt

Async flow

1

Submit a task

POST /mj/submit/imagine returns result (the task ID).
2

Poll the task

GET /mj/task/{id}/fetch until status is SUCCESS or FAILURE.
3

Get the image

On success, the imageUrl field returns the 2×2 grid PNG link.
4

Follow-up actions (optional)

POST /mj/submit/change submits U/V/Reroll, passing taskId and action.

Example: text-to-image

curl https://openp.ai/mj/submit/imagine \
  -H "Authorization: Bearer $OPENPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A futuristic cyberpunk city at night, neon lights, --ar 16:9 --v 6"
  }'
Response:
{ "code": 1, "description": "Submitted", "result": "1737200000000000" }
Poll:
curl https://openp.ai/mj/task/1737200000000000/fetch \
  -H "Authorization: Bearer $OPENPAI_API_KEY"
See the detailed Midjourney API docs.

Suno (music generation)

Available model IDs

Model IDType
suno_v3.5Suno v3.5, up to 2 minutes
suno_v4Suno v4
udio_v1Udio v1 (if enabled)

Async flow

# 1. Submit a task
curl https://openp.ai/suno/submit/music \
  -H "Authorization: Bearer $OPENPAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "lo-fi hip hop, rainy night, female vocals, 90bpm",
    "tags": "lofi, hiphop, chill",
    "title": "Rainy Night",
    "model": "suno_v4",
    "make_instrumental": false
  }'
# 2. Poll
curl https://openp.ai/suno/fetch/{task_id} \
  -H "Authorization: Bearer $OPENPAI_API_KEY"
On success, audio_url in the response is a downloadable MP3 link and video_url is an animated video. See the detailed Suno API docs.

Billing notes

  • Midjourney and Suno are billed per task, unlike token-based models.
  • Failed tasks (upstream errors) are not billed.
  • Tasks the user cancels are settled by the resources already consumed.
The specific multipliers shown in Console → Models are authoritative.