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",
"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",
"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",
"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",
"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",
"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
GPT Image 2.6 Sunburst is the precision tier of OpenAI’s GPT Image 2.6 image family. It builds on Flare to hold intricate detail across multi-round edits, and supports the same GIF animation, SVG vector and complexity capabilities. Sunburst is the choice for production-ready campaign visuals and polished product imagery. In APIPod, the public model ID is gpt-image-2.6-sunburst. It supports text-to-image and reference-image editing, and returns GIF and SVG results as stored artifacts.
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",
"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",
"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",
"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",
"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",
"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"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 or svg output.
16Output format. gif and svg are new in GPT Image 2.6 and are only available for text-to-image; svg returns a single result, and neither format supports output_compression or transparent backgrounds.
png, jpeg, webp, gif, svg 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, 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 Resolution tier of the generated images.
1K, 2K, 4K Exact pixel size as WIDTHxHEIGHT, for example 1024x1536. Each side must be a multiple of 16 and at most 3840. Takes precedence over resolution and aspect_ratio, and sets the GIF frame size.
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 or svg.
0 <= x <= 100Was this page helpful?