Midjourney
Midjourney Submit Edit
Use DeerAPI to call the Midjourney Submit Edit endpoint with request details, response details, examples, and an OpenAPI playground.
POST
/
mj
/
submit
/
edits
cURL
curl https://api.deerapi.com/mj/submit/edits \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEERAPI_KEY" \
-d '{
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}'import os
import requests
url = "https://api.deerapi.com/mj/submit/edits"
headers = {
"Authorization": "Bearer " + os.environ["DEERAPI_KEY"],
"Content-Type": "application/json",
}
payload = {
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.deerapi.com/mj/submit/edits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DEERAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}),
});
console.log(await response.json());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deerapi.com/mj/submit/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Change to white background',
'image' => 'https://example.com/input.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deerapi.com/mj/submit/edits"
payload := strings.NewReader("{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deerapi.com/mj/submit/edits")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deerapi.com/mj/submit/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"description": "<string>",
"result": "<string>"
}Overview
Use this endpoint to call the Midjourney Submit Edit workflow through DeerAPI. The API reference on this page shows the request schema, response schema, authentication requirements, and runnable examples for the configured endpoint.Before you start
Use the DeerAPI base URL and pass your API Key in theAuthorization header:
https://api.deerapi.com
Authorization: Bearer $DEERAPI_KEY
Model selection
Choose a current model ID from the live pricing page. Model availability changes over time, so avoid copying a model ID from an old project without checking the live list first.Implementation notes
- Use the OpenAPI playground for the exact request fields accepted by this endpoint.
- Keep API Keys on the server side when you build production applications.
- Log the request ID from failed calls so support can investigate the request.
- Retry
429,500, and503responses with exponential backoff.
Authorizations
Use a DeerAPI API Key as a Bearer token.
Body
application/json
Text prompt describing the desired edit.
Image to edit. Pass a public URL or a base64-encoded data URI.
Custom state string. Returned as-is in the task result and webhook callback for your own tracking.
Webhook URL to receive task status updates. Falls back to your account-level webhook if omitted.
When true, return the original provider image URL instead of a DeerAPI-proxied link.
⌘I
cURL
curl https://api.deerapi.com/mj/submit/edits \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $DEERAPI_KEY" \
-d '{
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}'import os
import requests
url = "https://api.deerapi.com/mj/submit/edits"
headers = {
"Authorization": "Bearer " + os.environ["DEERAPI_KEY"],
"Content-Type": "application/json",
}
payload = {
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}
response = requests.post(url, headers=headers, json=payload)
print(response.json())
const response = await fetch("https://api.deerapi.com/mj/submit/edits", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.DEERAPI_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "Change to white background",
"image": "https://example.com/input.png"
}),
});
console.log(await response.json());
<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.deerapi.com/mj/submit/edits",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Change to white background',
'image' => 'https://example.com/input.png'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.deerapi.com/mj/submit/edits"
payload := strings.NewReader("{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.deerapi.com/mj/submit/edits")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.deerapi.com/mj/submit/edits")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Change to white background\",\n \"image\": \"https://example.com/input.png\"\n}"
response = http.request(request)
puts response.read_body{
"code": 123,
"description": "<string>",
"result": "<string>"
}