curl --request POST \
--url https://api.legnext.ai/api/v1/outpaint \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"imageNo": 1,
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scale": 1.55,
"callback": "<string>",
"remixPrompt": "<string>"
}
'import requests
url = "https://api.legnext.ai/api/v1/outpaint"
payload = {
"imageNo": 1,
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scale": 1.55,
"callback": "<string>",
"remixPrompt": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
imageNo: 1,
jobId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
scale: 1.55,
callback: '<string>',
remixPrompt: '<string>'
})
};
fetch('https://api.legnext.ai/api/v1/outpaint', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.legnext.ai/api/v1/outpaint",
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([
'imageNo' => 1,
'jobId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'scale' => 1.55,
'callback' => '<string>',
'remixPrompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.legnext.ai/api/v1/outpaint"
payload := strings.NewReader("{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.legnext.ai/api/v1/outpaint")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.legnext.ai/api/v1/outpaint")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}Outpaint
Expand the canvas around a completed image.
curl --request POST \
--url https://api.legnext.ai/api/v1/outpaint \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"imageNo": 1,
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scale": 1.55,
"callback": "<string>",
"remixPrompt": "<string>"
}
'import requests
url = "https://api.legnext.ai/api/v1/outpaint"
payload = {
"imageNo": 1,
"jobId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"scale": 1.55,
"callback": "<string>",
"remixPrompt": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
imageNo: 1,
jobId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
scale: 1.55,
callback: '<string>',
remixPrompt: '<string>'
})
};
fetch('https://api.legnext.ai/api/v1/outpaint', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.legnext.ai/api/v1/outpaint",
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([
'imageNo' => 1,
'jobId' => '3c90c3cc-0d44-4b50-8888-8dd25736052a',
'scale' => 1.55,
'callback' => '<string>',
'remixPrompt' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.legnext.ai/api/v1/outpaint"
payload := strings.NewReader("{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
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.legnext.ai/api/v1/outpaint")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.legnext.ai/api/v1/outpaint")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"imageNo\": 1,\n \"jobId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\",\n \"scale\": 1.55,\n \"callback\": \"<string>\",\n \"remixPrompt\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}{
"config": {
"service_mode": "public",
"webhook_config": {
"endpoint": "<string>",
"secret": "<string>"
}
},
"detail": null,
"error": {
"code": 123,
"detail": "<unknown>",
"message": "<string>",
"raw_message": "<string>"
},
"input": {},
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"logs": [
"<string>"
],
"meta": {
"created_at": "2023-11-07T05:31:56Z",
"ended_at": "2023-11-07T05:31:56Z",
"started_at": "2023-11-07T05:31:56Z",
"usage": {
"consume": 123,
"frozen": 123,
"type": "credit"
}
},
"model": "midjourney",
"output": {
"image_url": "<string>",
"image_urls": [
"<string>"
],
"seed": "<string>",
"available_actions": {}
},
"status": "pending",
"task_type": "diffusion"
}jobId, zero-based imageNo, and the requested expansion.
Support depends on the model and source image. A capability rejection requires a
different or regenerated base image; do not retry the same request unchanged.Authorizations
API key from the Legnext dashboard. Authorization: Bearer <key> is accepted as an alternative.
Body
Index of the image in the parent task's grid (0-3, left-to-right, top-to-bottom).
0 <= x <= 3ID of the original task (the job_id returned when it was created).
Zoom-out factor.
1.1 <= x <= 2Optional webhook URL. When set, the completed TaskResponse is POSTed to this URL; when empty, poll GET /v1/job/{job_id}.
Optional prompt guiding the expansion (1-8192 characters when provided).
1 - 8192Response
Outpaint task accepted.
Show child attributes
Show child attributes
Reserved for future use; currently null in public API responses.
Show child attributes
Show child attributes
Echo of the task's input parameters (shape depends on task_type; mirrors the create-request body of the operation that created the task). Null in error responses.
Task UUID. Pass it to GET /v1/job/{job_id} to poll, or reference it as jobId in follow-up operations.
Operational log lines of the task (progress events, retries).
Timestamps and billing usage of the task (null in error responses).
Show child attributes
Show child attributes
Model family that executed the task.
midjourney Task result, present once status is completed (null before that). Image/video tasks return URLs; describe/shorten tasks return text prompts.
- Option 1
- Option 2
- Option 3
Show child attributes
Show child attributes
Lifecycle state. Terminal states: completed, failed. staged means the task is queued behind the account's concurrency limit; retry means it is being resubmitted after a transient provider error.
pending, staged, processing, retry, completed, failed Type of the task — the operation that created it.
diffusion, upscale, reroll, variation, inpaint, outpaint, pan, edit, remix, enhance, upload_paint, retexture, remove_background, shorten, describe, blend, video_diffusion, extend_video, video_upscale, enhance_upscale