🔥 Midjourney APITT API's Midjourney API is the most stable and cost-effective Midjourney API
Mode
The Midjourney service of TT API supports three modes, fast , relax and turbo .
Fast mode response time is within 90 seconds , the overall success rate is over 98%
Relax mode response generally within 10 minutes , depending on the official response, the overall success rate is over 90%
Turbo mode response time is within 60 seconds
The max job in progressing is 10, get more job in progress please contact us
'Imagine action' with Midjourney 6.0 will be 1.5 times quota than the normal consumption.
--cref operation must be used with the --v 6.0 model
Generate[ /imagine ]
POST
https://api.ttapi.io/midjourney/v1/imagine
The imagine endpoint generates up to 4 images from a text prompt.
Request Body
200: OK Successful Response
If hookUrl is not null, it will be callback a json response to your setting hookUrl
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/imagine"
headers = {
"TT-API-KEY": your_key
}
data = {
"prompt": "a cute cat",
"model": "fast",
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/imagine';
$data = array(
'prompt' => 'a cat --ar 1:1',
'model' => 'fast',
'hookUrl' => ''
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/imagine',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"prompt": "a cute cat",
"model": "fast",
"hookUrl": ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200 400
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Copy {
"status": "FAILED",
"message": "banned prompt words :sexy",
"data": {}
}
Action[ U1~U4 V1~V4... ]
POST
https://api.ttapi.io/midjourney/v1/action
This endpoint contains method used in TT Api. Eg: U1~U4, V1~V4 ...
Request Body
200: OK Successful Response
If hookUrl is not null, it will be callback a json response to your setting hookUrl
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/action"
headers = {
"TT-API-KEY": your_key
}
data = {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
"action": "upsample1",
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/action';
$data = array(
'jobId' => 'afa774a3-1aee-5aba-4510-14818d6875e4',
'action' => 'upsample1',
'hookUrl' => ''
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/action',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
"action": "upsample1",
"hookUrl": ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Seeds[ --seed ]
POST
https://api.ttapi.io/midjourney/v1/seed
Get the seeds form midjourney image, refer to the midjourney's docs for usage
Request Body
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/seed"
headers = {
"TT-API-KEY": your_key
}
data = {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/seed';
$data = array(
'jobId' => 'afa774a3-1aee-5aba-4510-14818d6875e4',
'hookUrl' => ''
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/seed',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
"hookUrl": ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Blend [ /blend ]
POST
https://api.ttapi.io/midjourney/v1/blend
Upload 2-5 images and combine them into a new image based on the concept and aesthetic of each image.
Request Body
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/blend"
headers = {
"TT-API-KEY": your_key
}
data = {
"imgBase64Array": ["data:image/png;base64,xxx1","data:image/png;base64,xxx2"],
"dimensions": "SQUARE",
"model": "fast",
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/blend';
$data = array(
"imgBase64Array" => ["data:image/png;base64,xxx1","data:image/png;base64,xxx2"],
"dimensions" => "SQUARE",
"model" => "fast",
"hookUrl" => ""
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/blend',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"imgBase64Array" => ["data:image/png;base64,xxx1","data:image/png;base64,xxx2"],
"dimensions" => "SQUARE",
"model" => "fast",
"hookUrl" => ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Describe[ /describe ]
POST
https://api.ttapi.io/midjourney/v1/describe
Upload an image and generate four prompts based on the image.
Request Body
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/describe"
headers = {
"TT-API-KEY": your_key
}
data = {
"base64": "data:image/png;base64,xxx1",
"model": "fast",
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/describe';
$data = array(
"base64" => "data:image/png;base64,xxx1",
"model" => "fast",
"hookUrl" => ""
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/describe',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"base64" => "data:image/png;base64,xxx1",
"model" => "fast",
"hookUrl" => ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Inpaint[ Vary(region) ]
POST
https://api.ttapi.io/midjourney/v1/inpaint
Partial modifies of the image.
Request Body
Example Request
Python Php Node
Copy import requests
endpoint = "https://api.ttapi.io/midjourney/v1/inpaint"
headers = {
"TT-API-KEY": your_key
}
data = {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4",
"prompt": "white background",
"mask": "UklGRrw0AABXRUJQVlA4WAoAAAAgAAAA..."
"hookUrl": ""
}
response = requests.post(endpoint, headers=headers, json=data)
print(response.status_code)
print(response.json())
Copy <?php
$url = 'https://api.ttapi.io/midjourney/v1/inpaint';
$data = array(
"jobId" => "afa774a3-1aee-5aba-4510-14818d6875e4",
"prompt" => "white background",
"mask" => "UklGRrw0AABXRUJQVlA4WAoAAAAgAAAA..."
"hookUrl" => ""
);
$ch = curl_init($url);
$dataString = json_encode($data);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $dataString);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'TT-API-KEY: your_key'
);
$result = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode;
Copy const axios = require('axios');
let config = {
method: 'post',
url: 'https://api.ttapi.io/midjourney/v1/inpaint',
headers: {
'TT-API-KEY': 'your_key'
},
data : {
"jobId" => "afa774a3-1aee-5aba-4510-14818d6875e4",
"prompt" => "white background",
"mask" => "UklGRrw0AABXRUJQVlA4WAoAAAAgAAAA..."
"hookUrl" => ""
}
};
axios(config)
.then(function (response) {
console.log(JSON.stringify(response.status));
})
.catch(function (error) {
console.log(error);
});
Example Response
200
Copy {
"status": "SUCCESS",
"message": "",
"data": {
"jobId": "afa774a3-1aee-5aba-4510-14818d6875e4"
}
}
Fetch Job
GET
https://api.ttapi.io/midjourney/v1/fetch
to fetch the job result
Request Body
200: OK the result same as hookUrl result
Action Used In action endpoint
Async callback return json structure
SUCCESS PENDING_QUEUE ON_QUEUE FAILED
Copy {
"status": "SUCCESS",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"message": "success",
"data": {
"actions": "imagine",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"progress": "100",
"prompt": "Soccer star Max Kruse and Jan-Peter Jachtmann victims of €528,695 poker scam, German soccer star Max Kruse and WSOP Main Event finalist Jan-Peter Jachtmann are among the players who have been swindled out of €528,695., poker, realistic --ar 1280:720",
"discordImage": "https://cdn.discordapp.com/attachments/1107938555931656214/1176340921227423844/voyagel_Soccer_star_Max_Kruse_and_Jan-Peter_Jachtmann_victims_o_c513a87b-eed3-4a3b-ab97-6be4dbc3ea99.png?ex=656e83da&is=655c0eda&hm=6e06a1dec3c6c1be209799884681969878eabb81ce81f8db22d54480379fcd9b&",
"cdnImage": "http://127.0.0.1/8080/pics/452020f2-6793-4525-a1b5-472cac439610.png",
"hookUrl": "",
"components": [
"upsample1",
"upsample2",
"upsample3",
"upsample4",
"variation1",
"variation2",
"variation3",
"variation4"
],
"seed":"",
"images":[
"https://cdnb.ttapi.io/2024-04-02/27024084bcd54b1c38d085d11d8dc841037a2262ebeda29b3f67b741441f6736.png",
"https://cdnb.ttapi.io/2024-04-02/e15e39f6eb39191fdf3f176f8c979b6e57254114a8bfea826e30f23850d0d485.png",
"https://cdnb.ttapi.io/2024-04-02/4b7910497a0d79d0155cd8b33eea313425cf2b809efef4b6ba3960aa1c2bd484.png",
"https://cdnb.ttapi.io/2024-04-02/98b162a1da713eef23c3cfd5f166aee8e4ee09f8cf1f7bbc24bf72990eb80adf.png"
]
}
}
Copy {
"status": "PENDING_QUEUE",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"message": "",
"data": []
}
Copy {
"status": "ON_QUEUE",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"message": "",
"data": {
"actions": "imagine",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"progress": "100",
"prompt": "Soccer star Max Kruse and Jan-Peter Jachtmann victims of €528,695 poker scam, German soccer star Max Kruse and WSOP Main Event finalist Jan-Peter Jachtmann are among the players who have been swindled out of €528,695., poker, realistic --ar 1280:720",
"discordImage": "https://cdn.discordapp.com/attachments/1107938555931656214/1176340921227423844/voyagel_Soccer_star_Max_Kruse_and_Jan-Peter_Jachtmann_victims_o_c513a87b-eed3-4a3b-ab97-6be4dbc3ea99.png?ex=656e83da&is=655c0eda&hm=6e06a1dec3c6c1be209799884681969878eabb81ce81f8db22d54480379fcd9b&",
"cdnImage": "http://127.0.0.1/8080/pics/452020f2-6793-4525-a1b5-472cac439610.png",
"hookUrl": "",
"components": [],
"seed":null,
"images":null
}
}
Copy {
"status": "FAILED",
"jobId": "f5850038-90a3-8a97-0476-107ea4b8dac4",
"message": "failed",
"data": []
}
Starting from December 1, 2023 , the cdn image link returned by discord will expire after 24 hours.
Return body enumeration details
Last updated 5 months ago