Toggle Remix Mode
October 27, 2025
Table of contents
- Request Headers
- Request Body
- Parameters
- Response • JSON •
stream: false - Response • SSE Stream •
stream: true - Model
- Examples
- Try It
Toggle Midjourney Remix mode using the /settings command. Remix mode allows you to change prompts and parameters when creating variations.
https://api.useapi.net/v3/midjourney/jobs/remix
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
{
"channel": "1234567890123456789"
}
Parameters
-
channelis optional if only one Midjourney account is configured under GET /accounts. You must specify the channel when you have multiple accounts setup and wish to use a specific account from the configured list. streamis optional (default:true).true- ReturnsContent-Type: text/event-streamwith live progress events. See SSE Streaming Guidefalse- ReturnsContent-Type: application/jsonwith initial job state. Use GET /jobs/jobidto retrieve updates and results
-
replyUrlis optional. Webhook URL for real-time job event callbacks. If channel has defaultreplyUrlconfigured, it will be used when job-specific one is not provided. All job events POST-ed to this URL as they occur.
Overrides channel-levelreplyUrlif specified.
Maximum length 1024 characters. replyRefis optional. Your reference ID stored with job.
Returned in all responses and callbacks asresponse.replyRef.
Maximum length 1024 characters.
Response • JSON • stream: false
Response with content-type: application/json.
-
Job created successfully. Use returned
jobidwith GET /jobs/jobidto poll status, or wait for webhook callbacks ifreplyUrlprovided.Remix mode setting will be available in
response.settings.remixwhen job completes.{ "jobid": "j1024181607209142270-u12345-c1234567890987654321-bot:midjourney", "verb": "remix", "status": "created", "created": "2025-10-24T18:16:07.209Z", "request": { "replyUrl": "https://api-callback.matthieu.leblanc.workers.dev/", "replyRef": "2025-10-24T18:16:06.162Z", "stream": false } } -
Validation error.
{ "error": "Parameter prompt is required" } -
{ "error": "Unauthorized" } -
{ "error": "Account has no subscription or subscription expired" } -
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":"j1024181618938667002-u12345-c1234567890987654321-bot:midjourney","seq":0,"ts":"18:16:18.953"}
data: {"event":"midjourney_created","job":{"jobid":"j1024181618938667002-u12345-c1234567890987654321-bot:midjourney","verb":"remix","status":"created","created":"2025-10-24T18:16:18.938Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:16:17.931Z"},"updated":"2025-10-24T18:16:19.992Z"},"seq":11,"ts":"18:16:20.003"}
data: {"event":"midjourney_progress","job":{"jobid":"j1024181618938667002-u12345-c1234567890987654321-bot:midjourney","verb":"remix","status":"progress","created":"2025-10-24T18:16:18.938Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:16:17.931Z"},"updated":"2025-10-24T18:16:20.131Z","response":{"webhook_id":"936929561302675456","type":20,"tts":false,"timestamp":"2025-10-24T18:16:20.054000+00:00","position":0,"pinned":false,"nonce":"1025181618938667002","mentions":[],"mention_roles":[],"mention_everyone":false,"interaction_metadata":{"user":{"username":"matthieu_leblanc_975","public_flags":0,"primary_guild":null,"id":"9876543210123456789","global_name":null,"display_name_styles":null,"discriminator":"0","collectibles":null,"clan":null,"avatar_decoration_data":null,"avatar":null},"type":2,"name":"prefer remix","id":"1431707970152169662","command_type":1,"authorizing_integration_owners":{"0":"0"}},"interaction":{"user":{"username":"matthieu_leblanc_975","public_flags":0,"primary_guild":null,"id":"9876543210123456789","global_name":null,"display_name_styles":null,"discriminator":"0","collectibles":null,"clan":null,"avatar_decoration_data":null,"avatar":null},"type":2,"name":"prefer remix","id":"1431707970152169662"},"id":"1431707970663616715","flags":192,"embeds":[],"edited_timestamp":null,"content":"","components":[],"channel_type":1,"channel_id":"1234567890987654321","author":{"username":"Midjourney Bot","public_flags":589824,"primary_guild":null,"id":"936929561302675456","global_name":null,"display_name_styles":null,"discriminator":"9282","collectibles":null,"clan":null,"bot":true,"avatar_decoration_data":null,"avatar":"b9c7b4c65e3c66f246b9a6741bd3cbe5"},"attachments":[],"application_id":"936929561302675456"}},"seq":15,"ts":"18:16:20.151"}
data: {"event":"midjourney_completed","job":{"jobid":"j1024181618938667002-u12345-c1234567890987654321-bot:midjourney","verb":"remix","status":"completed","created":"2025-10-24T18:16:18.938Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:16:17.931Z"},"updated":"2025-10-24T18:16:20.298Z","response":{"webhook_id":"936929561302675456","type":20,"tts":false,"timestamp":"2025-10-24T18:16:20.054000+00:00","position":0,"pinned":false,"mentions":[],"mention_roles":[],"mention_everyone":false,"interaction_metadata":{"user":{"username":"matthieu_leblanc_975","public_flags":0,"primary_guild":null,"id":"9876543210123456789","global_name":null,"display_name_styles":null,"discriminator":"0","collectibles":null,"clan":null,"avatar_decoration_data":null,"avatar":null},"type":2,"name":"prefer remix","id":"1431707970152169662","command_type":1,"authorizing_integration_owners":{"0":"0"}},"interaction":{"user":{"username":"matthieu_leblanc_975","public_flags":0,"primary_guild":null,"id":"9876543210123456789","global_name":null,"display_name_styles":null,"discriminator":"0","collectibles":null,"clan":null,"avatar_decoration_data":null,"avatar":null},"type":2,"name":"prefer remix","id":"1431707970152169662"},"id":"1431707970663616715","flags":64,"embeds":[],"edited_timestamp":null,"content":"Remix mode turned on! Clicking the variation buttons will now give you a chance to edit your prompt! You can always turn this off by running `/prefer remix` again.","components":[],"channel_type":1,"channel_id":"1234567890987654321","author":{"username":"Midjourney Bot","public_flags":589824,"primary_guild":null,"id":"936929561302675456","global_name":null,"display_name_styles":null,"discriminator":"9282","collectibles":null,"clan":null,"bot":true,"avatar_decoration_data":null,"avatar":"b9c7b4c65e3c66f246b9a6741bd3cbe5"},"attachments":[],"application_id":"936929561302675456","settings":{"remix":true}},"code":200},"seq":17,"ts":"18:16:20.314"}
Model
See Job Response Model for complete response structure.
Remix mode setting will be available in response.settings when job completes:
settings?: {
remix?: boolean // Remix mode
}
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/remix" \ -d '{"stream":false}' -
const response = await fetch('https://api.useapi.net/v3/midjourney/jobs/remix', { method: 'POST', headers: { 'Authorization': 'Bearer YOUR_API_TOKEN', 'Content-Type': 'application/json' }, body: JSON.stringify({ stream: false }) }); const result = await response.json(); console.log('Job created:', result.jobid); // Poll for completion using GET /jobs/jobid // Or use webhook with replyUrl parameter -
import requests response = requests.post( 'https://api.useapi.net/v3/midjourney/jobs/remix', headers={'Authorization': 'Bearer YOUR_API_TOKEN'}, json={'stream': False} ) result = response.json() print('Job created:', result['jobid']) # Poll for completion using GET /jobs/jobid # Or use webhook with replyUrl parameter