curl https://api.apipod.ai/v1/images/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}'import os
import requests
payload = {
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}
response = requests.post(
"https://api.apipod.ai/v1/images/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/images/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
});
let response = Client::new()
.post("https://api.apipod.ai/v1/images/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "img_task_01JEXAMPLE"
}
}GPT Image 2.6 Sunburst Lite
GPT Image 2.6 Sunburst Lite is APIPod’s lower-cost routing variant for GPT Image 2.6 Sunburst, served through partner channels such as Azure and Adobe rather than a separate OpenAI model, and does not support SVG output.
curl https://api.apipod.ai/v1/images/generations \
-H "Authorization: Bearer $APIPOD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}'import os
import requests
payload = {
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}
response = requests.post(
"https://api.apipod.ai/v1/images/generations",
headers={
"Authorization": f"Bearer {os.environ['APIPOD_API_KEY']}",
"Content-Type": "application/json",
},
json=payload,
timeout=60,
)
response.raise_for_status()
print(response.json())package main
import (
"bytes"
"encoding/json"
"fmt"
"net/http"
"os"
)
func main() {
payload := map[string]any{}
if err := json.Unmarshal([]byte(`{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}`), &payload); err != nil {
panic(err)
}
body, err := json.Marshal(payload)
if err != nil {
panic(err)
}
req, err := http.NewRequest(http.MethodPost, "https://api.apipod.ai/v1/images/generations", bytes.NewReader(body))
if err != nil {
panic(err)
}
req.Header.Set("Authorization", "Bearer "+os.Getenv("APIPOD_API_KEY"))
req.Header.Set("Content-Type", "application/json")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
fmt.Println(resp.Status)
}use reqwest::Client;
use serde_json::json;
use std::env;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let payload = json!({
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
});
let response = Client::new()
.post("https://api.apipod.ai/v1/images/generations")
.bearer_auth(env::var("APIPOD_API_KEY")?)
.json(&payload)
.send()
.await?
.error_for_status()?;
println!("{}", response.text().await?);
Ok(())
}const response = await fetch("https://api.apipod.ai/v1/images/generations", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.APIPOD_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(
{
"model": "gpt-image-2.6-sunburst-lite",
"prompt": "A premium product photograph on a dark studio set, precise typography, soft rim lighting, highly detailed.",
"quality": "auto",
"aspect_ratio": "auto",
"resolution": "1K"
}
),
});
if (!response.ok) {
throw new Error(`APIPod request failed: ${response.status} ${await response.text()}`);
}
console.log(await response.json());{
"code": 200,
"message": "success",
"data": {
"task_id": "img_task_01JEXAMPLE"
}
}Authorizations
Use your APIPod API key as a Bearer token in the Authorization header.
Body
Public APIPod model ID.
"gpt-image-2.6-sunburst-lite"Used to describe the generated images. For GIF output, describe the subject, the motion and how the loop should close.
32000Publicly reachable source or reference image URLs. Not supported together with gif output.
16Inpaint mask image as a public URL or base64 data URI. Transparent pixels mark the region the model may edit; the rest of the image stays unchanged. Requires image_urls and cannot be combined with markup_url.
Markup overlay image as a public URL or base64 data URI. A transparent PNG placed on top of the first reference image whose opaque strokes guide the model to the regions to edit; dimensions must match the first image after orientation. Requires image_urls and cannot be combined with mask_url.
Output format. gif is only available for text-to-image and does not support output_compression or transparent backgrounds; svg is not available on GPT Image 2.6 Lite.
png, jpeg, webp, gif How much the model plans before rendering. low suits focused edits such as changing a background; high helps with dense text and complex layouts. Defaults to high and costs nothing extra.
low, medium, high Output fidelity tier. Must be at least medium when background is transparent.
auto, low, medium, high, xhigh, max Background mode. transparent returns an alpha-channel image and requires quality of medium or higher.
auto, opaque, transparent Aspect ratio of the generated image.
auto, 61, 123, 182, 184, 243, 245, 304, 556, 969, 1269 Resolution tier of the generated images.
1K, 2K, 4K Optional escape hatch for exact pixel dimensions, as WIDTHxHEIGHT (for example 1024x1536). Each side must be a multiple of 16 and at most 3840. Takes precedence over resolution and aspect_ratio when both are sent. resolution + aspect_ratio already covers the 15 supported ratios at 1K/2K/4K, and works for GIF frames too, so size is only needed for pixel-exact or off-ratio sizes.
Number of GIF frames, 2-64. Only read when output_format is gif; defaults to 9.
2 <= x <= 64Duration of each GIF frame in milliseconds, 20-2000. Only read when output_format is gif; defaults to 200.
20 <= x <= 2000Compression level 0-100 for jpeg and webp output. Not supported by gif.
0 <= x <= 100Moderation strictness. APIPod defaults to low for GPT Image 2.6 to reduce false blocks; pass auto to restore OpenAI's default filtering.
low, auto Was this page helpful?