OpenAI's most capable image model, built for workflows where editing precision matters most. Generate and edit images with close instruction following — it keeps identity, composition and lighting while changing only what you ask. Same pricing as GPT Image 2.5 Flare, which is faster.
Test this model instantly in the Console Playground — no code required
Copy usage instructions for Claude, ChatGPT, or other AI
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "A golden retriever puppy wearing tiny sunglasses on a sunny beach, photorealistic, shallow depth of field",
"quality": "high",
"aspect_ratio": "1:1"
}
}'| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
prompt | string | Yes | - | What you want to generate, or how to edit the input images. Put exact text in "quotes". |
input_images | array | No | - | Reference images for editing or composition. Pass one image to edit it, or several to combine subjects and styles. Processed at high fidelity automatically. |
quality | string | No | auto | Quality tier. Higher tiers take longer and cost more per image: low 28, medium 109, high 298, xhigh 581, max 1,163 credits. auto is billed at the xhigh rate. lowmediumhighxhighmaxauto |
aspect_ratio | string | No | 1:1 | Named ratio, explicit size, or auto to let the model pick. Sizes above 2560x1440 are experimental and may give more variable results. 1:13:22:34:33:416:99:16auto1024x10241536x10241024x15361536x11521152x15362048x20482048x11521152x20483840x21602160x3840 |
number_of_images | integer | No | 1 | Number of images to generate (1-10). Billed per image. |
background | string | No | auto | Background mode. For a transparent background use png or webp output. autotransparentopaque |
output_format | string | No | webp | Output image format pngjpegwebp |
output_compression | integer | No | 90 | Compression level (0-100) for webp/jpeg output |
moderation | string | No | auto | Content moderation level — low applies less strict filtering autolow |
user_id | string | No | - | An optional unique identifier representing your end-user. This helps OpenAI monitor and detect abuse. |
openai_api_key | string | No | - | Your own OpenAI API key (optional — leave empty to use the gateway) |
There are 3 ways to provide files for the input_images parameter:
Pass a publicly accessible URL directly. With the Storage API (POST /v1/files/upload-url) the file uploads straight to S3 (50MB per file) and you pass the returned file_url.
{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "your prompt here",
"input_images": ["https://example.com/image.jpg"]
}
}Attach files directly to POST /v1/predictions/upload. No separate upload step, but the bytes pass through the API server so the whole request is capped at 10MB.
curl -X POST "https://api.core.today/v1/predictions/upload" \
-H "X-API-Key: cdt_your_api_key" \
-F "model=openai/gpt-image-2.5-sunburst" \
-F 'input={"prompt":"your prompt here"}' \
-F "file:input_images=@your_file.png"Common parameters used when calling POST /v1/predictions.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
model | string | Yes | - | Model identifier |
input | object | Yes | - | Object containing the model-specific parameters from the table above |
output_folder | string | No | - | Folder path for output files (max 256 chars, '..' not allowed) |
webhook_url | string | No | - | Webhook URL to call on completion |
is_public | boolean | No | false | If true, output files are also available via permanent public URLs |
Photo language (depth of field) at the high quality tier
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "A golden retriever puppy wearing tiny sunglasses on a sunny beach, photorealistic, shallow depth of field",
"quality": "high",
"aspect_ratio": "1:1"
}
}'Change one element and lock everything else
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "Replace the grey sofa with a light blue velvet sofa. Keep the camera angle, room layout, lighting and every other object exactly the same.",
"input_images": [
"https://example.com/living-room.jpg"
],
"quality": "high",
"aspect_ratio": "auto"
}
}'Combine a person and a product into one scene
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "Place the person from the first image holding the handbag from the second image, walking down a Paris street in morning light. Preserve the person's face and the bag's exact design.",
"input_images": [
"https://example.com/model.jpg",
"https://example.com/handbag.png"
],
"quality": "high",
"aspect_ratio": "2:3"
}
}'Localize a poster while keeping its design
curl -X POST "https://api.core.today/v1/predictions" \
-H "Content-Type: application/json" \
-H "X-API-Key: cdt_your_api_key" \
-d '{
"model": "openai/gpt-image-2.5-sunburst",
"input": {
"prompt": "Translate all English text on this poster into Korean. The headline should read \"여름 한정 세일\". Keep the layout, fonts' weight and colors unchanged.",
"input_images": [
"https://example.com/poster.png"
],
"quality": "high",
"output_format": "png"
}
}'POST /v1/predictions