Switch to Fast 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
Switch Midjourney account to Fast mode using the /fast command.
https://api.useapi.net/v3/midjourney/jobs/fast
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.Mode setting will be available in
response.settings.fastwhen job completes.{ "jobid": "j1024181945741973836-u12345-c1234567890987654321-bot:midjourney", "verb": "fast", "status": "created", "created": "2025-10-24T18:19:45.741Z", "request": { "replyUrl": "https://api-callback.matthieu.leblanc.workers.dev/", "replyRef": "2025-10-24T18:19:44.656Z", "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":"j1024181957527528075-u12345-c1234567890987654321-bot:midjourney","seq":0,"ts":"18:19:57.544"}
data: {"event":"midjourney_created","job":{"jobid":"j1024181957527528075-u12345-c1234567890987654321-bot:midjourney","verb":"fast","status":"created","created":"2025-10-24T18:19:57.527Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:19:56.466Z"},"updated":"2025-10-24T18:19:59.396Z"},"seq":11,"ts":"18:19:59.409"}
data: {"event":"midjourney_progress","job":{"jobid":"j1024181957527528075-u12345-c1234567890987654321-bot:midjourney","verb":"fast","status":"progress","created":"2025-10-24T18:19:57.527Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:19:56.466Z"},"updated":"2025-10-24T18:19:59.541Z","response":{"webhook_id":"936929561302675456","type":20,"tts":false,"timestamp":"2025-10-24T18:19:59.472000+00:00","position":0,"pinned":false,"nonce":"1025181957527528075","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":"fast","id":"1431708889895669880","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":"fast","id":"1431708889895669880"},"id":"1431708890969542676","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:19:59.562"}
data: {"event":"midjourney_completed","job":{"jobid":"j1024181957527528075-u12345-c1234567890987654321-bot:midjourney","verb":"fast","status":"completed","created":"2025-10-24T18:19:57.527Z","request":{"replyUrl":"https://api-callback.matthieu.leblanc.workers.dev/","replyRef":"2025-10-24T18:19:56.466Z"},"updated":"2025-10-24T18:20:00.078Z","response":{"webhook_id":"936929561302675456","type":20,"tts":false,"timestamp":"2025-10-24T18:19:59.472000+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":"fast","id":"1431708889895669880","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":"fast","id":"1431708889895669880"},"id":"1431708890969542676","flags":64,"embeds":[],"edited_timestamp":null,"content":"Done! Note that once you exhaust your fast hours, you can purchase more on the website: <https://midjourney.com/account>. To conserve your fast hours, use `/relax` to switch back to relax mode.","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":{"relax":false,"fast":true,"turbo":false}},"code":200},"seq":17,"ts":"18:20:00.096"}
Model
See Job Response Model for complete response structure.
Speed mode settings will be available in response.settings when job completes:
settings?: {
relax?: boolean // Relax mode
fast?: boolean // Fast mode
turbo?: boolean // Turbo 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/fast" \ -d '{"stream":false}' -
const response = await fetch('https://api.useapi.net/v3/midjourney/jobs/fast', { 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/fast', 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