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-hd",
"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-hd",
"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-hd",
"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-hd",
"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-hd",
"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 HD
GPT Image 2.6 Sunburst HD is APIPod’s super-resolution routing variant for GPT Image 2.6 Sunburst rather than a separate OpenAI model, and does not support GIF or 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-hd",
"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-hd",
"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-hd",
"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-hd",
"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-hd",
"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-hd"Used to describe the generated images.
32000Publicly reachable source or reference image URLs.
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. GPT Image 2.6 HD renders raster images only; gif and svg are not available on this variant.
png, jpeg, webp 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, so size is only needed for pixel-exact or off-ratio sizes.
Compression level 0-100 for jpeg and webp output.
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?