VidMage

VidMage is an AI video and image creation platform for creators. Turn your ideas and images into videos and fresh visuals.

Open the creator tools
Explore APIs
AI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
Build with VidMage
QuickstartAPI keysVidMage MCPError reference
Your account
Developer consoleAbout VidMagePlans and creditsAPI billingContact support
© 2026 VidMage. All rights reserved.
Privacy PolicyTerms of ServiceReport Abuse
Skip to content
VidMage/Developers
Overview
APIs
All APIsAI Video APIsAI Image APIsAI Audio APIsAI 3D APIsAI Face Swap APIsAI Effects APIs
DocumentationVidMage MCPOpen console

Playground

Midjourney AI Image Generator

Available through the REST API and MCP. Review the request parameters and accepted values below.

POST /api/v1/midjourney-ai-image-generator/submit → /query

API access is available to subscribers only. Your subscription credits are shared across the website and the API.

View plans

Parameter

16 parameters

Required request parameter. Follow the type and accepted values shown in this table.

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 1:1

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 0min 0max 100

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 1

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 0min 0max 1000

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 0min 0max 3000

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: false

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 1min 0max 3

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 100min 0max 1000

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 4min 1max 6

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: 100min 1max 1000

Optional request parameter. Follow the type, default, and accepted values shown in this table.(Optional)

Default: false

Request code

#!/usr/bin/env bash
set -euo pipefail
# Set this once per intended task; preserve it and the body for transport retries.
: "${VIDMAGE_IDEMPOTENCY_KEY:?Set a unique key for this task}"

SUBMIT_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/midjourney-ai-image-generator/submit" \
  -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
  -H "Idempotency-Key: ${VIDMAGE_IDEMPOTENCY_KEY}" \
  -H "Content-Type: application/json" \
  --data-raw '{
  "prompt": "A serene mountain observatory above the clouds at sunrise, cinematic wide-angle landscape photography",
  "aspectRatio": "1:1",
  "chaos": 0,
  "quality": "1",
  "stylize": 0,
  "weird": 0,
  "raw": false,
  "iw": 1,
  "sw": 100,
  "sv": 4,
  "ow": 100,
  "tile": false
}')"
TASK_ID="$(printf '%s' "$SUBMIT_RESPONSE" | jq -er '.["taskId"]')"

while true; do
  QUERY_RESPONSE="$(curl --fail-with-body --silent --show-error -X POST "https://vidmage.ai/api/v1/midjourney-ai-image-generator/query" \
    -H "Authorization: Bearer ${VIDMAGE_API_KEY}" \
    -H "Content-Type: application/json" \
    --data-raw "{\"taskId\":\"${TASK_ID}\"}")"
  STATUS="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.status // .data.status // "") | ascii_downcase')"
  case "$STATUS" in
    success|succeeded|completed)
      RESULT="$(printf '%s' "$QUERY_RESPONSE" | jq -r '(.result // .["imageUrl"] // .data["imageUrl"] // empty)')"
      if [ -z "$RESULT" ]; then
        printf '%s' "Result missing; preserve task $TASK_ID and query the same task again. Do not resubmit." >&2
        exit 2
      fi
      printf '%s\n' "$RESULT"
      break
      ;;
    needs_input)
      printf '%s' "Face selection required; preserve task $TASK_ID" >&2
      exit 2
      ;;
    failed|error)
      printf '%s' "$QUERY_RESPONSE" | jq -r '(.message // .error // .data.error // "Task failed")' >&2
      exit 1
      ;;
  esac
  sleep 5
done

Response data

Submit the task to see the API response here.
PlaygroundCapabilities