GPT Image 2.5 Sunburst
OpenAI's image model tuned for workflows where editing precision matters most. Same per-token billing as GPT Image 2. Released September 8, 2026.
GPT Image 2.5 Sunburst is one of two image models OpenAI shipped alongside GPT Image 2's next generation, tuned for workflows where editing precision matters most. It shares GPT Image 2's per-token billing shape (metered text/image input, per-quality image output) and adds two vendor-published output-quality tiers, xhigh and max, beyond GPT Image 2's low/medium/high.
This model is not yet available to send traffic through TheRouter. It is catalogued here (matching TheRouter's openai/gpt-image-2.5-sunburst id) but ships is_active: false until a live call to OpenAI's /v1/images/generations and /v1/images/edits endpoints is verified from a production-capable environment β the sole hard precondition this change's own design imposes before routing any customer traffic to it. Only low/medium/high quality tiers are exposed through TheRouter's quality parameter today; xhigh/max are real, vendor-published prices but are not yet orderable through TheRouter until its billing schema is extended to bill them.
- β’ Precision image editing β inpainting, object replacement, and style-consistent edits where fidelity to the source image matters
- β’ Multi-turn creative iteration β refining a generated image across several edit passes
- β’ Highest-fidelity output for production creative assets, once activated on TheRouter
- β’ Any live traffic today β the model is not yet activated on TheRouter (see overview)
- β’ Cost-sensitive, high-volume batch generation β GPT Image 2.5 Flare (same billing shape, tuned for speed) or GPT Image 1 Mini are the lower-cost siblings
- β’ Requests that need the xhigh or max quality tier β not yet orderable through TheRouter's quality parameter
Modalities
Capabilities
Media Generation Capabilities
- sizes
- 1024x1024
- 1024x1536
- 1536x1024
- qualities
- low
- medium
- high
- max_outputs_per_request
- 4
- output_formats
- png
- jpeg
- webp
- defaults
- size
- 1024x1024
- quality
- medium
- sizes
- 1024x1024
- 1024x1536
- 1536x1024
- qualities
- low
- medium
- high
- max_reference_images
- 4
- output_formats
- png
- jpeg
- webp
- defaults
- size
- 1024x1024
- quality
- medium
Pricing Breakdown
| Type | Rate |
|---|---|
| Image | $0.014 / image |
| Input | $5.40 / 1M tokens |
| Output | $32.40 / 1M tokens |
| Image input | $8.64 / 1M tokens |
| Cached image input | $2.16 / 1M tokens |
| Low quality | $0.0065 / image |
| Medium quality | $0.014 / image |
| High quality | $0.0572 / image |
| X-high quality (not yet orderable via TheRouter's quality parameter) | $0.1015 / image |
| Max quality (not yet orderable via TheRouter's quality parameter) | $0.2279 / image |
Price shown is medium-quality generation; low and high quality bill at their own per-image rate below. Two additional quality tiers this model supports upstream (xhigh, max) are not yet orderable through TheRouter's quality parameter.
Supported Parameters
Specifications
| Capabilities | Text-to-image generation, image editingdevelopers.openai.com β | verified |
| Output resolutions | 1024Γ1024, 1024Γ1536, 1536Γ1024developers.openai.com β | verified |
| Quality tiers (vendor-published) | low, medium, high, xhigh, max β TheRouter currently exposes low/medium/high only (see overview)developers.openai.com β | verified |
| Billing shape | Per-token text/image input ($5/$8 per million tokens), per-quality image outputdevelopers.openai.com β | verified |
API Usage Examples
Use the global api.therouter.ai endpoint shown below for new integrations; the legacy China accelerated endpoint is retired.
Recommended: use the async API
Image generation typically takes 30β180s, beyond the edge sync timeout. The examples below use the ?async=true submit + poll pattern. Read the full async image generation & edit guide β
# 1) Submit job (returns 202 immediately with a polling URL).
# Image generation takes 30-180s β always use the async path in production.
JOB=$(curl -s -X POST "https://api.therouter.ai/v1/images/generations?async=true" -H "Content-Type: application/json" -H "Authorization: Bearer $THE_ROUTER_API_KEY" -d '{
"model": "openai/gpt-image-2.5-sunburst",
"prompt": "A cinematic product render with soft studio lighting"
}' | python3 -c "import sys,json;print(json.load(sys.stdin)['id'])")
echo "submitted: $JOB"
# 2) Poll until terminal (succeeded / failed / cancelled / expired).
while :; do
R=$(curl -s "https://api.therouter.ai/v1/jobs/$JOB" -H "Authorization: Bearer $THE_ROUTER_API_KEY")
S=$(echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['status'])")
echo "status: $S"
case "$S" in
succeeded) echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['unsigned_urls'][0])"; break ;;
failed|cancelled|expired) echo "$R"; exit 1 ;;
esac
sleep 5
doneAPI guide
Image generation
GPT Image 2.5 Sunburst uses the Images API (not chat completions). Send a POST request to /v1/images/generations with your prompt and model ID. Not yet routable β see overview.
curl https://api.therouter.ai/v1/images/generations \
-H "Authorization: Bearer $THEROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"prompt": "A studio product photo of a ceramic mug on a warm gradient background",
"n": 1,
"size": "1024x1024",
"quality": "medium",
"output_format": "png"
}'Image Editing Examples
Upload an image and describe the edit you want with a text prompt; the model returns the edited image as base64.
# Same async submit + poll pattern as /v1/images/generations.
JOB=$(curl -s -X POST "https://api.therouter.ai/v1/images/edits?async=true" -H "Authorization: Bearer $THE_ROUTER_API_KEY" -F "model=openai/gpt-image-2.5-sunburst" -F "prompt=Turn this scene into a watercolor painting" -F "size=1024x1024" -F "image=@input.png" | python3 -c "import sys,json;print(json.load(sys.stdin)['id'])")
echo "submitted: $JOB"
while :; do
R=$(curl -s "https://api.therouter.ai/v1/jobs/$JOB" -H "Authorization: Bearer $THE_ROUTER_API_KEY")
S=$(echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['status'])")
echo "status: $S"
case "$S" in
succeeded) echo "$R" | python3 -c "import sys,json;print(json.load(sys.stdin)['unsigned_urls'][0])"; break ;;
failed|cancelled|expired) echo "$R"; exit 1 ;;
esac
sleep 5
doneMore from openai
Similar models
Cross-provider sibling modelsFrequently asked
Can I send traffic to gpt-image-2.5-sunburst through TheRouter today?
Not yet. The model is catalogued but ships is_active: false pending a live-call verification of OpenAI's /v1/images/generations and /v1/images/edits endpoints. It will be activated in a follow-up commit once that verification succeeds.
Why does the descriptor list low/medium/high but the vendor publishes xhigh/max too?
TheRouter's billing schema currently bills image quality across a fixed three-tier vocabulary (low/medium/high). The vendor's xhigh and max tiers are real, published prices, but extending TheRouter's billing schema to charge for them is a separate, tracked follow-up β until then, only low/medium/high are accepted values for this model's quality parameter.
Fact ledger β every claim on this page traces here
| source | URL | retrieved | |
|---|---|---|---|
| Capabilities | developers.openai.com β | 2026-09-17 | verified |
| Output resolutions | developers.openai.com β | 2026-09-17 | verified |
| Quality tiers (vendor-published) | developers.openai.com β | 2026-09-17 | verified |
| Billing shape | developers.openai.com β | 2026-09-17 | verified |
| Why does the descriptor list low/medium/high but the vendor publishes xhigh/max too? | developers.openai.com β | 2026-09-17 | to verify |