Midjourney support was discontinued on June 24, 2026. See the service notice for details — including how to cancel your subscription or request a prorated refund.

Midjourney V7 image generation is still available through the MiniMax API — see Midjourney V7 via MiniMax for examples and pricing.

Get Midjourney Seed

October 27, 2025 (January 5, 2026)

Table of contents

  1. Request Headers
  2. Request Body
  3. Parameters
  4. Response • JSON • stream: false
  5. Response • SSE Stream • stream: true
  6. Model
  7. Examples
  8. Try It

Retrieve the seed and four separate upscaled images for the following completed jobs:

Please note that video generation jobs are not supported.

https://api.useapi.net/v3/midjourney/jobs/seed

Request Headers

Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data (required for Blob content uploads).
# Content-Type: multipart/form-data

Request Body

{
  "jobId": "j1023141520123456789i-u12345-c1234567890123456789-bot:midjourney"
}

Parameters

  • jobId is required. Parent job ID from completed image job. Job must have:
    • status: "completed"
    • jobType: "image" (not video)
    • Message ID present
  • stream is optional (default: true).
    • true - Returns Content-Type: text/event-stream with live progress events. See SSE Streaming Guide
    • false - Returns Content-Type: application/json with initial job state. Use GET /jobs/jobid to retrieve updates and results
  • replyUrl is optional. Webhook URL for real-time job event callbacks. All job events POST-ed to this URL as they occur. Maximum length 1024 characters. Callback body has the same JSON shape as GET /jobs/jobid response.

  • replyRef is optional. Your reference ID stored with job. Returned in all responses and callbacks as response.replyRef. Maximum length 1024 characters.

  • replyLevel is optional (default: all). Controls which status changes trigger webhook callbacks.
    • all - Every status change (created, started, progress, completed, failed, moderated)
    • standard - Job lifecycle only (created + final states, no progress updates)
    • minimal - Final outcome only (completed, failed, moderated)

Response • JSON • stream: false

Response with content-type: application/json.

  • 201 Created

    Job created successfully. Use returned jobid with GET /jobs/jobid to poll status, or wait for webhook callbacks if replyUrl provided.

    {
        "jobid": "j1024181534748808540-u12345-c1234567890987654321-bot:midjourney",
        "verb": "seed",
        "status": "created",
        "created": "2025-10-24T18:15:34.748Z",
        "request": {
            "replyUrl": "https://api-callback.matthieu.leblanc.workers.dev/",
            "replyRef": "2025-10-24T18:15:33.608Z",
            "stream": false,
            "jobId": "j1024181441023299840i-u12345-c1234567890987654321-bot:midjourney"
        }
    }
    
  • 400 Bad Request

    {
      "error": "Parent job status is \"progress\", must be \"completed\" to get seed"
    }
    
  • 401 Unauthorized

    {
      "error": "Unauthorized"
    }
    
  • 402 Payment Required

    {
      "error": "Account has no subscription or subscription expired"
    }
    
  • 404 Not Found

    {
      "error": "Parent job not found"
    }
    
  • 410 Gone

    Parent job expired (older than 62 days).

    {
      "error": "Parent job has expired"
    }
    
  • 596 Pending Moderation

    Channel has pending moderation/CAPTCHA. Email notification sent. Log into Discord and address moderation message/CAPTCHA. Execute POST /accounts/channel/reset.

    {
      "error": "All configured Midjourney channels (2) have errors (pending moderation, CAPTCHA, etc.). Please resolve channel issues before making new requests."
    }
    

Response • SSE Stream • stream: true

Returns content-type: text/event-stream with real-time job progress events. See SSE Streaming Guide for implementation details. See Job Response Model for complete job response object structure.

data: {"event":"initialized","message":"Stream initialized","jobId":"j1024181334913815452-u12345-c1234567890987654321-bot:midjourney","seq":0,"ts":"18:13:34.977"}

data: {"event":"midjourney_completed","job":{"jobid":"j1024181334913815452-u12345-c1234567890987654321-bot:midjourney","verb":"seed","status":"completed","created":"2025-10-24T18:13:34.913Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:13:33.684Z","jobId":"j1024181125701303160i-u12345-c1234567890987654321-bot:midjourney"},"response":{"content":"**cat in the hat --v 7.0 --s 250**\n**Job ID**: xxxxxxxx-xxxx-xxxx-xxxx-bbd798ffcb5d\n**seed** 3937070146","attachments":[{"url":"https://cdn.discordapp.com/attachments/1234567890987654321/123456789098765124/anonymous_cat_in_the_hat_0_xxxxxxxx-xxxx-xxxx-xxxx-bbd798ffcb5d.png","width":1024,"height":1024},{"url":"https://cdn.discordapp.com/attachments/1234567890987654321/123456789098765936/anonymous_cat_in_the_hat_1_xxxxxxxx-xxxx-xxxx-xxxx-bbd798ffcb5d.png","width":1024,"height":1024},{"url":"https://cdn.discordapp.com/attachments/1234567890987654321/123456789098765279/anonymous_cat_in_the_hat_2_xxxxxxxx-xxxx-xxxx-xxxx-bbd798ffcb5d.png","width":1024,"height":1024},{"url":"https://cdn.discordapp.com/attachments/1234567890987654321/123456789098765203/anonymous_cat_in_the_hat_3_xxxxxxxx-xxxx-xxxx-xxxx-bbd798ffcb5d.png","width":1024,"height":1024}]},"code":200,"updated":"2025-10-24T18:13:38.213Z"},"seq":16,"ts":"18:13:38.226"}

Model

See Job Response Model for complete response structure.

Examples

The examples below show the JSON response format (stream: false). For real-time SSE streaming examples, see the SSE Streaming Guide.

  • curl -H "Authorization: Bearer YOUR_API_TOKEN" \
         -H "Content-Type: application/json" \
         -X POST "https://api.useapi.net/v3/midjourney/jobs/seed" \
         -d '{"jobId":"j1023141520123456789i-u12345-c1234567890123456789-bot:midjourney","stream":false}'
    
  • const response = await fetch('https://api.useapi.net/v3/midjourney/jobs/seed', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        jobId: 'j1023141520123456789i-u12345-c1234567890123456789-bot:midjourney',
        stream: false
      })
    });
    
    const result = await response.json();
    console.log('Seed:', result.response.seed);
    
    // Use seed in next imagine prompt
    const nextJob = await fetch('https://api.useapi.net/v3/midjourney/jobs/imagine', {
      method: 'POST',
      headers: {
        'Authorization': 'Bearer YOUR_API_TOKEN',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        prompt: `a cat in a hat --seed ${result.response.seed}`,
        stream: false
      })
    });
    
  • import requests
    
    response = requests.post(
        'https://api.useapi.net/v3/midjourney/jobs/seed',
        headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
        json={
            'jobId': 'j1023141520123456789i-u12345-c1234567890123456789-bot:midjourney',
            'stream': False
        }
    )
    
    result = response.json()
    seed = result['response']['seed']
    print(f'Seed: {seed}')
    
    # Use seed in next imagine prompt
    next_job = requests.post(
        'https://api.useapi.net/v3/midjourney/jobs/imagine',
        headers={'Authorization': 'Bearer YOUR_API_TOKEN'},
        json={
            'prompt': f'a cat in a hat --seed {seed}',
            'stream': False
        }
    )
    

Try It