Apiframe API Documentation
  • Get Started
  • My Account
    • Image credits
    • Generation modes
    • Delete My Account
  • Clients
    • Node.js Library
    • Python Client
    • Go Client
  • MEDIA UPLOAD APIS
    • Upload Image
    • Upload Audio
  • MIDJOURNEY
    • Authentication
    • Imagine
    • Reroll
    • Upscales
      • Upscale 1x
      • Upscale: Creative and Subtle
      • Upscale: 2x and 4x
    • Variations
    • Faceswap
    • Inpaint (Vary Region)
    • Outpaint (Zoom Out)
    • Pan
    • Shorten
    • Describe
    • Blend
    • Seed
    • Fetch
    • Fetch Many
    • Account Info
    • Statuses
    • Postman Collection
  • AI Photos
    • Upload and Prepare
    • Train
    • Generate
    • Best Input Images
  • IDEOGRAM
    • Imagine
    • Remix
    • Upscale
    • Describe
  • FLUX
    • Imagine
  • LUMA AI API
    • IMAGINE
    • EXTEND
  • SUNO AI API
    • IMAGINE
    • UPLOAD
    • EXTEND
    • LYRICS
  • UDIO AI API
    • IMAGINE
  • RUNWAY ML API
    • IMAGINE
  • KLING AI API
    • IMAGINE
    • VIRTUAL TRY ON
  • SORA AI API
  • Webhooks
  • MJ Banned Words
  • Help Me With Integration
  • FAQ
Powered by GitBook
On this page

Was this helpful?

  1. MIDJOURNEY

Pan

Broadens the image canvas in a specific direction, keeping the original content intact and using prompts and the original image as guides for filling the expanded area. You first need to Upscale 1x

PreviousOutpaint (Zoom Out)NextShorten

Last updated 9 months ago

Was this helpful?

POST https://api.apiframe.pro/pan

Headers

Name
Value

Content-Type

application/json

Authorization*

Your APIFRAME API Key

Body

Name
Type
Description

parent_task_id*

string

The task ID of the original task

direction*

string

Image expansion direction.

Can be: "up", "down", "left" or "right"

webhook_url

string

The final result and updates of this task will be posted at this URL.

webhook_secret

string

Will be passed as x-webhook-secret in the webhook call headers for authentication.

Response

// Success, the task has been submitted
{
  "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a"
}
// Bad request
{
  "errors": [{ msg: "Invalid request" }]
}
// Invalid API Key
{}
// A server error occured
{}

This endpoint doesn't generate images instantly, you can use the endpoint to fetch the result or use .

The result (posted to the webhook_url or retrieved with the endpoint) looks like this:

{
    "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "task_type": "pan-up",
    "original_image_url": "https://.../xxxxxxxx.png", // grid image
    "image_urls": [
        "https://.../xxxx1.png",
        "https://.../xxxx2.png",
        "https://.../xxxx3.png",
        "https://.../xxxx4.png"
    ]
}

If the job is not completed, you will get a result like this:

{
    "task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "task_type": "pan-up",
    "status": "processing",
    "percentage": "80"
}

Code samples

const axios = require('axios');
let data = JSON.stringify({
  "parent_task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
  "direction": "up",
  "prompt": "a blue sky"
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: 'https://api.apiframe.pro/pan',
  headers: { 
    'Content-Type': 'application/json', 
    'Authorization': 'YOUR_API_KEY'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
import requests
import json

url = "https://api.apiframe.pro/pan"

payload = json.dumps({
  "parent_task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
  "direction": "up",
  "prompt": "a blue sky"
})
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'YOUR_API_KEY'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'https://api.apiframe.pro/pan',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
    "parent_task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
    "direction": "up",
    "prompt": "a blue sky"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json',
    'Authorization: YOUR_API_KEY'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"parent_task_id\": \"29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a\",\r\n    \"direction\": \"up\",\r\n    \"prompt\": \"a blue sky\"\r\n}");
Request request = new Request.Builder()
  .url("https://api.apiframe.pro/pan")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .addHeader("Authorization", "YOUR_API_KEY")
  .build();
Response response = client.newCall(request).execute();
var headers = {
  'Content-Type': 'application/json',
  'Authorization': 'YOUR_API_KEY'
};
var data = json.encode({
  "parent_task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
  "direction": "up",
  "prompt": "a blue sky"
});
var dio = Dio();
var response = await dio.request(
  'https://api.apiframe.pro/pan',
  options: Options(
    method: 'POST',
    headers: headers,
  ),
  data: data,
);

if (response.statusCode == 200) {
  print(json.encode(response.data));
}
else {
  print(response.statusMessage);
}
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.apiframe.pro/pan");
request.Headers.Add("Authorization", "YOUR_API_KEY");
var content = new StringContent("{\r\n    \"parent_task_id\": \"29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a\",\r\n    \"direction\": \"up\",\r\n    \"prompt\": \"a blue sky\"\r\n}", null, "application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
require "uri"
require "json"
require "net/http"

url = URI("https://api.apiframe.pro/pan")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "YOUR_API_KEY"
request.body = JSON.dump({
  "parent_task_id": "29e983ca-7e86-4017-a9e3-ef6fe9cd5f2a",
  "direction": "up",
  "prompt": "a blue sky"
})

response = https.request(request)
puts response.read_body

Fetch
webhooks
Fetch