SpyBara
Go Premium

Documentation 2026-11-04 22:58 UTC to 2026-11-05 23:00 UTC

24 files changed +1,924 −42. View all changes and history on the product overview
2026
Fri 13 23:58 Thu 12 22:57 Wed 11 23:57 Tue 10 23:02 Mon 9 23:02 Sun 8 22:59 Sat 7 22:59 Fri 6 23:00 Thu 5 23:00 Wed 4 22:58 Tue 3 22:58 Mon 2 23:58 Sun 1 23:00

deprecations.md +13 −3

Details

36 36 

37Upcoming deprecations are listed below, with the most recent announcements at the top.37Upcoming deprecations are listed below, with the most recent announcements at the top.

38 38 

39### 2026-11-05: GPT-5.5-Cyber

40 

41The `gpt-5.5-cyber-preview` model is deprecated and will be removed from the API on February 1, 2027. Migrate to the most capable cyber model available to you before the shutdown date.

42 

43| Shutdown date | Model / system | Recommended replacement |

44| ---------------- | ----------------------- | ---------------------------------------------- |

45| February 1, 2027 | `gpt-5.5-cyber-preview` | The most capable cyber model available to you. |

46 

39### 2026-10-14: GPT-4 series model deprecations47### 2026-10-14: GPT-4 series model deprecations

40 48 

41On October 14, 2026, we notified developers using certain GPT-4 series models of their deprecation and removal from the API on January 14, 2027.49On October 14, 2026, we notified developers using certain GPT-4 series models of their deprecation and removal from the API on January 14, 2027.


113| Dec 11, 2026 | `o3` \| `o3-2025-04-16` | `gpt-5.6-sol` |121| Dec 11, 2026 | `o3` \| `o3-2025-04-16` | `gpt-5.6-sol` |

114| Dec 11, 2026 | `o3-pro` \| `o3-pro-2025-06-10` | `gpt-5.6-sol` (`reasoning.mode: pro`) |122| Dec 11, 2026 | `o3-pro` \| `o3-pro-2025-06-10` | `gpt-5.6-sol` (`reasoning.mode: pro`) |

115 123 

124Fine-tuned versions of these models follow the same shutdown schedule as their underlying base models.

125 

116### 2026-06-03: Reusable prompts126### 2026-06-03: Reusable prompts

117 127 

118On June 3, 2026, we notified developers using reusable prompts in the dashboard and API that reusable prompt objects are being deprecated.128On June 3, 2026, we notified developers using reusable prompts in the dashboard and API that reusable prompt objects are being deprecated.


155 165 

156| Shutdown date | Model / system | Recommended replacement |166| Shutdown date | Model / system | Recommended replacement |

157| ------------- | --------------------------------------------- | ------------------------------------------------- |167| ------------- | --------------------------------------------- | ------------------------------------------------- |

158| Dec 1, 2026 | `gpt-image-1-mini` | `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` |168| Dec 1, 2026 | `gpt-image-1-mini` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |

159| Dec 1, 2026 | `gpt-image-1.5` \| `gpt-image-1.5-2025-12-16` | `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` |169| Dec 1, 2026 | `gpt-image-1.5` \| `gpt-image-1.5-2025-12-16` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |

160| Dec 1, 2026 | `chatgpt-image-latest` | `gpt-image-2.5-sunburst` or `gpt-image-2.5-flare` |170| Dec 1, 2026 | `chatgpt-image-latest` | `gpt-image-2.6-sunburst` or `gpt-image-2.6-flare` |

161 171 

162### Update to OpenAI’s self-serve fine-tuning172### Update to OpenAI’s self-serve fine-tuning

163 173 

Details

58} catch (error) {58} catch (error) {

59 if (error instanceof InputGuardrailTripwireTriggered) {59 if (error instanceof InputGuardrailTripwireTriggered) {

60 console.log("Guardrail blocked the request.");60 console.log("Guardrail blocked the request.");

61 } else {

62 throw error;

61 }63 }

62}64}

63```65```


147 149 

148const agent = new Agent({150const agent = new Agent({

149 name: "Support agent",151 name: "Support agent",

150 instructions: "Handle support requests and ask for approval when needed.",152 instructions: "Use cancel_order to handle cancellation requests.",

151 tools: [cancelOrder],153 tools: [cancelOrder],

152});154});

153 155 


156if (result.interruptions?.length) {158if (result.interruptions?.length) {

157 const state = result.state;159 const state = result.state;

158 for (const interruption of result.interruptions) {160 for (const interruption of result.interruptions) {

161 console.log(`Approval required: ${interruption.name}`);

159 state.approve(interruption);162 state.approve(interruption);

160 }163 }

161 result = await run(agent, state);164 result = await run(agent, state);

Details

540 content: "Continue from the existing workspace and add tests.",540 content: "Continue from the existing workspace and add tests.",

541 });541 });

542 542 

543 await run(agent, conversation, {543 const secondResult = await run(agent, conversation, {

544 maxTurns: 20,544 maxTurns: 20,

545 sandbox: { session: resumedSession },545 sandbox: { session: resumedSession },

546 });546 });

547 console.log(secondResult.finalOutput);

547} finally {548} finally {

548 await resumedSession.close?.();549 await resumedSession.close?.();

549}550}

Details

6 6 

7Before using Daybreak, complete [organization approval and project setup](https://help.openai.com/en/articles/20001261-enterprise-daybreak-onboarding). Your project needs access to both the program and the model. Use an API key from that project. The request parameter selects behavior within your approved access; it doesn't grant access.7Before using Daybreak, complete [organization approval and project setup](https://help.openai.com/en/articles/20001261-enterprise-daybreak-onboarding). Your project needs access to both the program and the model. Use an API key from that project. The request parameter selects behavior within your approved access; it doesn't grant access.

8 8 

9All Daybreak Red organizations must [require SSO](https://help.openai.com/en/articles/9534785-single-sign-on-sso-setup-for-openai-products) for the API organization that holds Cyber access and enforce MFA through your identity provider. If you use a separate Cyber organization, verify its domain and test SSO there.

10 

9## Choose the model and access program11## Choose the model and access program

10 12 

11The `model` field selects the model. The `access_programs.cyber` field selects a supported access program for that request: `standard`, `daybreak_blue`, or `daybreak_red`.13The `model` field selects the model. The `access_programs.cyber` field selects a supported access program for that request: `standard`, `daybreak_blue`, or `daybreak_red`.


44GPT-5.5-Cyber46GPT-5.5-Cyber

45 47 

46 48

49GPT-5.6-Cyber

50 

51

47 52 

48 </td>53 </td>

49 <td className="align-top">Red</td>54 <td className="align-top">Red</td>


67 72 

68 73

69 74 

75 `daybreak_red`

76

77 

78

79 

70 </td>80 </td>

71 </tr>81 </tr>

72 <tr>82 <tr>

73 <td>GPT-5.6-Cyber</td>83 <td>GPT-6-Cyber</td>

74 <td>Red + additional model approval</td>84 <td>Red + additional model approval</td>

75 <td>85 <td>

76 `daybreak_red`86 `daybreak_red`


153 163 

154When no program is specified and the request uses standard safeguards, `access_programs` is `null`. For a `-latest` alias, inspect `model` to see which model served the request. Alias resolution can change and depends on your approved access.164When no program is specified and the request uses standard safeguards, `access_programs` is `null`. For a `-latest` alias, inspect `model` to see which model served the request. Alias resolution can change and depends on your approved access.

155 165 

166## Set up GPT-6-Cyber

167 

168Confirm with your account team that your organization has Daybreak Red access and approval for [GPT-6-Cyber](https://developers.openai.com/api/docs/models/gpt-6-cyber).

169 

170**Project access.** Ask an organization owner to [enable Daybreak Red](https://help.openai.com/en/articles/20001531-openai-daybreak-set-up-access-for-your-team) for the project that will send requests. With project-level controls, use a non-default project and a key from that project.

171 

172**IP allowlisting.** To use GPT-6-Cyber through the API, [configure an IP allowlist](https://developers.openai.com/api/docs/guides/ip-allowlist) for the public IPs your application sends requests from. If you have received approval to embed the model in a product, end users without direct model access don’t need to allowlist their own IPs.

173 

174**Zero Data Retention.** If the project uses ZDR, [configure Private Safety Processing](https://developers.openai.com/api/docs/guides/private-safety-processing) (PSP). Check that storage shows “Validated” and that the project’s retention policy is “Zero Data Retention with Private Safety Processing.” PSP applies to all API traffic in that project.

175 

176### Send a GPT-6-Cyber request

177 

178Set `OPENAI_API_KEY` to a key from the approved project. Replace the sample safety identifier with a stable, pseudonymous identifier for the user making the request.

179 

180```bash

181curl https://api.openai.com/v1/responses \

182 -H "Authorization: Bearer $OPENAI_API_KEY" \

183 -H "Content-Type: application/json" \

184 -d '{

185 "model": "gpt-6-cyber",

186 "access_programs": {"cyber": "daybreak_red"},

187 "safety_identifier": "user_a17f",

188 "input": "Suggest a regression test for a path traversal fix."

189 }'

190```

191 

192If the request fails, check the project associated with the key, the active allowlist, and the project’s retention policy. See [Daybreak API errors](https://developers.openai.com/api/docs/guides/daybreak#handle-errors).

193 

156## Handle errors194## Handle errors

157 195 

158| HTTP status and code | What to do |196| HTTP status and code | What to do |

Details

1800The JavaScript sample uses `npm install openai@^7.10.0 ws`.1800The JavaScript sample uses `npm install openai@^7.10.0 ws`.

1801The Ruby sample uses `gem install openai async-websocket`.1801The Ruby sample uses `gem install openai async-websocket`.

1802 1802 

1803For Go, run `go get github.com/openai/openai-go/v3@v3.91.0`.1803For Go, run `go get github.com/openai/openai-go/v3@v3.94.0`.

1804For Java, add the Maven dependency `com.openai:openai-java:4.95.0`.1804For Java, add the Maven dependency `com.openai:openai-java:4.95.0`.

1805These Go and Java SDK versions provide native Responses WebSocket support.1805These Go and Java SDK versions provide native Responses WebSocket support.

1806 1806 

guides/evals.md +1 −0

Details

617 data_source: {617 data_source: {

618 type: "responses",618 type: "responses",

619 model: "gpt-6-astra",619 model: "gpt-6-astra",

620 sampling_params: { reasoning_effort: "low" },

620 input_messages: {621 input_messages: {

621 type: "template",622 type: "template",

622 template: [623 template: [

Details

40 console](https://platform.openai.com/settings/organization/general) before40 console](https://platform.openai.com/settings/organization/general) before

41 using GPT Image models.41 using GPT Image models.

42 42 

43### GPT Image 2.6

44 

45GPT Image 2.6 includes [Sunburst](https://developers.openai.com/api/docs/models/gpt-image-2.6-sunburst) for detailed visual work and [Flare](https://developers.openai.com/api/docs/models/gpt-image-2.6-flare) for fast iteration. Both models support complexity control, markup-guided edits, SVG output, and animated GIF output through the Image API. The existing examples below use GPT Image 2.5.

46 

47#### Set image complexity

48 

49Use the `complexity` request field to control how much the image model plans before rendering. Lower complexity can suit focused edits, such as changing a background or a sign. Higher complexity can help with dense text, complex layouts, and relationships between objects. Higher complexity can increase latency and introduce unwanted changes, so compare results for your task.

50 

51The supported complexity levels for Sunburst and Flare are `low`, `medium`, and `high`. If you omit `complexity`, both models use `high`. The separate `quality` setting controls rendering quality.

52 

53Adjusting complexity has no separate fee.

54 

55Sunburst generated these paper-cut football scenes from the same prompt at medium quality. Compare the trophy, the uniforms, and the placement of the “CHAMPIONS” sign as complexity changes.

56 

57 

58 

59 <figure className="m-0 min-w-0">

60 <figcaption className="mb-2 text-sm font-semibold">

61 Low complexity

62 </figcaption>

63

64 

65![Players in red lift a trophy topped with a crown. A CHAMPIONS banner spans the foreground.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-low-gpt-image-2-6-sunburst.webp>)

66 

67 

68 </figure>

69 <figure className="m-0 min-w-0">

70 <figcaption className="mb-2 text-sm font-semibold">

71 Medium complexity

72 </figcaption>

73

74 

75![Players in red shirts with team crests lift a trophy decorated with a laurel wreath above a CHAMPIONS banner.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-medium-gpt-image-2-6-sunburst.webp>)

76 

77 

78 </figure>

79 <figure className="m-0 min-w-0">

80 <figcaption className="mb-2 text-sm font-semibold">

81 High complexity

82 </figcaption>

83

84 

85![Players in folded blue paper jerseys fill the foreground. A CHAMPIONS sign hangs in the stands behind them.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-high-gpt-image-2-6-sunburst.webp>)

86 

87 

88 </figure>

89 

90 

91 

43### Safety identifiers92### Safety identifiers

44 93 

45If your application serves individual end users, include a stable,94If your application serves individual end users, include a stable,


2508 2557 

2509 2558 

2510 2559 

2560### Guide an edit with markup

2561 

2562Use the Image API’s `POST /v1/images/edits` endpoint for markup-guided edits with supported GPT Image 2.5 and 2.6 models. For regional edits with the Responses API, use a [mask](#edit-an-image-using-a-mask). Use an annotation layer to show where a change should happen and describe the change in `prompt`.

2563 

2564For example, download the [kitchen photo](https://developers.openai.com/images/platform/guides/image-prompting/kitchen.webp) and [transparent overlay](https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-overlay-gpt-image-2-6.png) into the same directory. The overlay circles the vase to recolor.

2565 

2566Edit the circled vase with the Image API

2567 

2568```python

2569import base64

2570from pathlib import Path

2571 

2572from openai import OpenAI

2573 

2574client = OpenAI()

2575overlay = Path("markup-vase-overlay-gpt-image-2-6.png")

2576with open("kitchen.webp", "rb") as image, overlay.open("rb") as markup:

2577 result = client.images.edit(

2578 model="gpt-image-2.6-flare",

2579 image=("kitchen.webp", image, "image/webp"),

2580 markup=(overlay.name, markup, "image/png"),

2581 quality="medium",

2582 prompt=(

2583 "Recolor the striped vase inside the red circle to solid cobalt blue ceramic. "

2584 "Keep its shape, the dried stems, and the rest of the kitchen unchanged. "

2585 "Remove the red circle from the finished photo."

2586 ),

2587 )

2588 

2589Path("vase.png").write_bytes(base64.b64decode(result.data[0].b64_json))

2590```

2591 

2592```go

2593client := openai.NewClient()

2594image, err := os.Open("kitchen.webp")

2595if err != nil {

2596 panic(err)

2597}

2598defer image.Close()

2599markup, err := os.Open("markup-vase-overlay-gpt-image-2-6.png")

2600if err != nil {

2601 panic(err)

2602}

2603defer markup.Close()

2604 

2605response, err := client.Images.Edit(context.Background(), openai.ImageEditParams{

2606 Model: openai.ImageModel("gpt-image-2.6-flare"),

2607 Image: openai.ImageEditParamsImageUnion{OfFile: openai.File(image, "kitchen.webp", "image/webp")},

2608 Markup: openai.File(markup, "markup-vase-overlay-gpt-image-2-6.png", "image/png"),

2609 Quality: "medium",

2610 Prompt: "Recolor the striped vase inside the red circle to solid cobalt blue ceramic. " +

2611 "Keep its shape, the dried stems, and the rest of the kitchen unchanged. " +

2612 "Remove the red circle from the finished photo.",

2613})

2614if err != nil {

2615 panic(err)

2616}

2617result, err := base64.StdEncoding.DecodeString(response.Data[0].B64JSON)

2618if err != nil {

2619 panic(err)

2620}

2621if err := os.WriteFile("vase.png", result, 0o600); err != nil {

2622 panic(err)

2623}

2624```

2625 

2626```bash

2627set -euo pipefail

2628 

2629curl --fail --silent --show-error https://api.openai.com/v1/images/edits \

2630 -H "Authorization: Bearer $OPENAI_API_KEY" \

2631 -F model=gpt-image-2.6-flare \

2632 -F quality=medium \

2633 -F 'image=@kitchen.webp;type=image/webp' \

2634 -F 'markup=@markup-vase-overlay-gpt-image-2-6.png;type=image/png' \

2635 -F 'prompt=Recolor the striped vase inside the red circle to solid cobalt blue ceramic. Keep its shape, the dried stems, and the rest of the kitchen unchanged. Remove the red circle from the finished photo.' |

2636 jq -er '.data[0].b64_json' | base64 --decode > vase.png

2637```

2638 

2639 

2640 

2641 

2642 <figure className="m-0 min-w-0">

2643 <figcaption className="mb-2 text-sm font-semibold">

2644 Photo with the overlay

2645 </figcaption>

2646

2647 

2648![Kitchen photo with a red circle around the striped vase on the dining table](<https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-input-gpt-image-2-6.webp>)

2649 

2650 

2651 </figure>

2652 <figure className="m-0 min-w-0">

2653 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

2654 Flare output

2655 </figcaption>

2656

2657 

2658![Flare edit of the kitchen with a blue vase and dried stems on the table](<https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-gpt-image-2-6-flare.webp>)

2659 

2660 

2661 </figure>

2662 

2663 

2664 

26651. Keep the original image as the first input image.

26662. Create a separate transparent PNG containing your circles, sketches, or other annotations. After orientation, the annotation layer and the first image must have the same width and height. The PNG must contain transparent pixels; do not flatten it onto the original image.

26673. Send the annotation layer as `markup`. Multipart requests accept a file upload. JSON requests accept an object containing exactly one of `image_url` or `file_id`; `image_url` can contain an HTTPS URL or a base64 data URL. JSON edit requests use `images` for the input image array.

26684. Describe the requested change and the details you want to preserve. Review the result before using it.

2669 

2670Markup applies to the first input image. Additional images serve as references. The first input image and the annotation layer can each contain at most 16,777,216 pixels. The annotation file also has a 50 MB size limit. Do not combine `markup` with `mask` or `prompt_rewriter`.

2671 

2511### Edit an image using a mask2672### Edit an image using a mask

2512 2673 

2513You can provide a mask to indicate which part of the image should be edited.2674You can provide a mask to indicate which part of the image should be edited.


3132Using `jpeg` is faster than `png`, so you should prioritize this format if3293Using `jpeg` is faster than `png`, so you should prioritize this format if

3133 latency is a concern.3294 latency is a concern.

3134 3295 

3296### Generate SVG output

3297 

3298Set `output_format: "svg"` on `POST /v1/images/generations`. Use SVG for graphics that need editable paths, shapes, and colors, such as icons and illustrations.

3299 

3300Set `n` to `1`. SVG output does not support streaming, partial images, `output_compression`, or `prompt_rewriter`. The image edit endpoint does not support SVG output, and an SVG is not a supported raster input for image edits.

3301 

3302The API creates a reference image and uses it to produce the SVG. The `quality` setting controls that reference image. Decode `data[0].b64_json` as base64 and save the resulting UTF-8 XML bytes with a `.svg` extension. The returned document contains static vector content; it does not support scripts, external resources, or embedded raster images.

3303 

3304Flare and Sunburst generated these SVG logos from the same prompt for a Field & Flour bakery logo.

3305 

3306 

3307 

3308 <figure className="m-0 min-w-0 [&_[data-codex-screenshot-overlay]_img]:bg-surface">

3309 <figcaption className="mb-2 text-sm font-semibold">

3310 GPT Image 2.6 Flare

3311 </figcaption>

3312

3313 

3314![Flare SVG with a golden loaf above a two-line cream Field & Flour wordmark.](<https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-flare.svg>)

3315 

3316 

3317 </figure>

3318 <figure className="m-0 min-w-0 [&_img]:bg-white">

3319 <figcaption className="mb-2 text-sm font-semibold">

3320 GPT Image 2.6 Sunburst

3321 </figcaption>

3322

3323 

3324![Sunburst SVG with a steaming loaf between wheat sprigs above the Field & Flour wordmark and a rolling pin.](<https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-sunburst.svg>)

3325 

3326 

3327 </figure>

3328 

3329 

3330 

3331### Generate animated GIF output

3332 

3333Set `output_format: "gif"` on `POST /v1/images/generations` or `POST /v1/images/edits`. Describe the subject, motion, and desired loop in your prompt. To guide the animation with still reference images, send them to the image edit endpoint.

3334 

3335Use these request fields for GIF output from either endpoint:

3336 

3337| Field | Values | Default |

3338| ------------------- | --------------------------------------------------------------------------- | ------- |

3339| `frame_count` | 2–16 frames | 9 |

3340| `frame_duration_ms` | 20–2000 milliseconds per frame, rounded to 10 ms | 200 |

3341| `size` | `auto`, or `WIDTHxHEIGHT` with positive dimensions that are multiples of 16 | `auto` |

3342 

3343`size` describes each finished frame. The frame count, frame dimensions, and number of animations must fit the model's size limits and the total request pixel budget. If the request exceeds those limits, reduce `frame_count`, the frame dimensions, or `n`. Use `auto` to let the API choose a frame size within the model's limits.

3344 

3345The response contains the finished animation. Decode each result's `b64_json` value as base64 and save the bytes with a `.gif` extension. GIF output does not support streaming, partial images, custom `output_compression`, or `prompt_rewriter`. Use `frame_count` and `frame_duration_ms` only with GIF output.

3346 

3347Sunburst generated this lantern animation with `frame_count=9` and `frame_duration_ms=200`. The monkey returns to its starting pose after 1.8 seconds.

3348 

3349 

3350 

3351![A monkey in a green coat lifts a glowing lantern, blinks, and lowers it again in front of a snowy cabin.](<https://developers.openai.com/images/platform/guides/image-prompting/monkey-lantern-gpt-image-2-6-sunburst.gif>)

3352 

3353 

3354 

3135## Limitations3355## Limitations

3136 3356 

3137GPT Image models are powerful and versatile image generation models, but they still have some limitations to be aware of:3357GPT Image models are powerful and versatile image generation models, but they still have some limitations to be aware of:


3403 3623 

3404## Cost and latency3624## Cost and latency

3405 3625 

3626### GPT Image 2.6 costs

3627 

3628Image output costs $30 per million billable tokens. Use the [calculator](#calculating-costs) to estimate the output cost for one image.

3629 

3630See [image generation pricing](https://developers.openai.com/api/docs/pricing#image-generation) for text and image rates per million tokens.

3631 

3632Markup-guided edits use the same token rates as other edits, with no extra fee. For SVG output, you pay the image model’s rate for the reference image and the authoring model’s rate for the tokens it uses to produce the SVG. The total depends on how many tokens each model uses.

3633 

3406### GPT Image 2.5 costs3634### GPT Image 2.5 costs

3407 3635 

3408Responses API requests include the mainline model's token usage in addition to image generation costs.3636Responses API requests include the mainline model's token usage in addition to image generation costs.


3420 3648 

3421 3649 

3422 3650 

3423### GPT Image 2.5 and GPT Image 2 output tokens3651 

3652 

3653 

3654### Calculating costs

3424 3655 

3425Select a model, quality, and size to estimate output tokens and image output cost.3656Select a model, quality, and size to estimate output tokens and image output cost.

3426For `gpt-image-2.5-sunburst` and `gpt-image-2.5-flare`, the quality options are `low`, `medium`, `high`, `xhigh`, and `max`.3657For GPT Image 2.6 and 2.5 Sunburst and Flare, the quality options are `low`, `medium`, `high`, `xhigh`, and `max`.

3427For `gpt-image-2`, the options are `low`, `medium`, and `high`.3658For `gpt-image-2`, the options are `low`, `medium`, and `high`.

3428The models can use different token counts for the same quality setting and share the same price per image output token.3659The models can use different token counts for the same quality setting and share the same price per image output token.

3429Use explicit quality and size values for this estimate; `auto` depends on the generated image.3660Use explicit quality and size values for this estimate; `auto` depends on the generated image.


3558 3789 

3559Refer to the [pricing page](https://developers.openai.com/api/docs/pricing#image-generation) for current3790Refer to the [pricing page](https://developers.openai.com/api/docs/pricing#image-generation) for current

3560text and image token prices, and use the [Calculating costs](#calculating-costs)3791text and image token prices, and use the [Calculating costs](#calculating-costs)

3561section below to estimate request costs.3792section to estimate image output costs.

3562 3793 

3563The final cost is the sum of:3794The final cost is the sum of:

3564 3795 


3566- input image tokens if using the edits endpoint3797- input image tokens if using the edits endpoint

3567- image output tokens3798- image output tokens

3568 3799 

3569### Calculating costs3800### Historical output costs

3570 3801 

3571Use the pricing calculator below to estimate request costs for GPT Image models.

3572`gpt-image-2` supports thousands of valid resolutions; the table below lists the3802`gpt-image-2` supports thousands of valid resolutions; the table below lists the

3573same sizes used for previous GPT Image models for comparison. For GPT Image 1.5,3803same sizes used for previous GPT Image models for comparison. For GPT Image 1.5,

3574GPT Image 1, and GPT Image 1 Mini, the legacy per-image output pricing table is3804GPT Image 1, and GPT Image 1 Mini, the legacy per-image output pricing table is

Details

2 2 

3> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5<div

6 className="image-prompting-guide [&_img]:w-auto!"

7 data-legacy-heading-model="gpt-image-2.5"

8>

9

10 

5<header className="not-prose mb-8">11<header className="not-prose mb-8">

12 <h2

13 id="gpt-image-2.6-guide"

14 className="m-0 text-3xl font-semibold text-default"

15 >

16 {"GPT Image 2.6 prompting guide"}

17 </h2>

18

19 

20 Choose a model, tune complexity, and guide image edits.

21

22 

23 </header>

24

25 

26## Overview

27 

28Start with the image you need, then describe the subject, composition, style, and constraints. For edits, identify what should change and what must stay the same. Refine one thing at a time and inspect the result.

29 

30GPT Image 2.6 Flare is the smaller model for workflows where speed matters most. GPT Image 2.6 Sunburst is the base model for workflows that need more detail or precise edits. Both support image generation, editing, and transparent backgrounds.

31 

32For API setup and request examples, see the [image generation guide](https://developers.openai.com/api/docs/guides/image-generation).

33 

34## Choose a model

35 

36For a new workflow, start with **GPT Image 2.6 Flare** if response time matters most. Start with **GPT Image 2.6 Sunburst** if the image must meet demanding requirements for detail, layout, or edit accuracy.

37 

38| Your current workflow | Start by testing |

39| --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |

40| Your existing GPT Image 2 workflow meets your quality requirements, or you use GPT Image 2.5 Flare. | `gpt-image-2.6-flare`. Check quality and response time on the prompts you already use. |

41| GPT Image 2 falls short on a complex task, or you use GPT Image 2.5 Sunburst. | `gpt-image-2.6-sunburst`. Check the details that determine whether you can use the image. |

42 

43If Sunburst meets your requirements, try Flare with the same prompts, reference images, dimensions, and quality setting. Compare the results and response times on your workload.

44 

45## Model parameters

46 

47Set these fields in the API request. Use the prompt to describe the image you want.

48 

49| Parameter | GPT Image 2.6 settings |

50| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

51| `model` | Use `gpt-image-2.6-flare` or `gpt-image-2.6-sunburst`. |

52| `quality` | Controls how much visual detail the model can render, such as texture or small lettering. Choose `auto`, `low`, `medium`, `high`, `xhigh`, or `max`. |

53| `complexity` | Controls how much the model plans before rendering. Choose `low`, `medium`, or `high`. Both Sunburst and Flare use `high` when you omit the field. |

54| `size` | Sets the output dimensions in pixels. Use `auto` or a supported size such as `1024x1024` (square), `1536x1024` (landscape), or `1024x1536` (portrait). |

55| `background` | Use `auto`, `opaque`, or `transparent`. For transparent PNG or WebP, check the decoded alpha channel. [SVG output](#generate-svg-output) also supports transparency. |

56| `output_format` | Use `png`, `jpeg`, or `webp`. Generations also support [`svg`](#generate-svg-output) and [`gif`](#generate-a-looping-gif). Only JPEG and WebP support `output_compression`. |

57| `markup` | On edits, upload a transparent PNG overlay with the same pixel dimensions as the first input image. See [Guide an edit with markup](#guide-an-edit-with-markup). |

58 

59For a complex layout, start with the default and check how the model placed labels and connected objects. To compare complexity levels, keep `quality` fixed. If the layout is correct but small text is hard to read, compare quality settings at the same complexity. See [Compare complexity](#compare-complexity).

60 

61For a custom `size`, use multiples of 16 for both dimensions and an aspect ratio from 1:3 to 3:1. The landscape slide example uses `1536x864`.

62 

63Omit `input_fidelity` on image edits. GPT Image 2.6 does not support `reasoning.summary`.

64 

65## Migrate an existing workflow

66 

671. **Save a baseline.** Collect representative prompts, reference images, and outputs from your current model. Include difficult edits, exact text, product geometry, and transparent assets where relevant.

682. **Test the corresponding model.** For a 2.5 Flare workflow, try 2.6 Flare first. For a 2.5 Sunburst workflow, try 2.6 Sunburst first. For a GPT Image 2 workflow, use the [model selection table](#choose-a-model).

693. **Keep the first comparison consistent.** Use the same prompt, reference images, size, quality, and output format. Leave complexity at the model default.

704. **Inspect the result.** Check text, layout, identity, and details that should survive an edit. For a sequence of edits, check the final image as well as each intermediate result.

715. **Tune one setting at a time.** Change either quality or complexity. Repeat each request and compare how often the output meets your criteria and how long it takes.

726. **Roll out by workflow.** Move a small share of traffic after the new model meets your criteria. Track response time, failures, retries, and cost per accepted image before you expand.

73 

74When migrating from GPT Image 1 or 1.5, use its reference tab to check parameter differences and shutdown dates. If part of an image must remain pixel-identical, composite the approved edit into the original.

75 

76## Prompting fundamentals

77 

781. **Define the result.** Name the subject and intended use, such as a product photograph, advertisement, or diagram. Specify the composition, aspect ratio, and important placement constraints. For complex requests, organize the prompt as scene, subject, details, and constraints, using labeled sections.

792. **Choose a maintainable format.** Short prompts, descriptive paragraphs, JSON-like structures, instructions, and tags can all express the same intent. Choose the format that makes the requirements easiest to read and update rather than relying on special syntax.

803. **Describe visible details.** Name materials, lighting, colors, and the visual medium. Request “photorealistic” or “real photograph” explicitly when that is the goal, and describe framing and texture. Treat camera specifications as cues for appearance, not a guarantee of exact physical simulation. For wide, cinematic, low-light, rainy, or neon scenes, specify scale, atmosphere, and color instead of relying on mood words alone.

814. **Specify people and actions.** Describe body framing, relative scale, gaze, and interaction with objects. Instructions such as “full body visible, feet included,” “looking down at the open book,” or “hands naturally gripping the handlebars” make the intended pose and action clearer.

825. **Specify exact text.** Put required wording in quotes and describe its position and typography. Spell unusual words or brand names letter by letter when needed. Ask for no extra text, then check spelling and legibility in the output. Compare medium or high quality for small text, dense information, or multiple fonts.

836. **Separate changes from constraints.** For edits, say “change only X” and list the details to preserve, such as identity, geometry, layout, lighting, or labels. State exclusions such as unwanted text, logos, or watermarks. For precise local edits, also identify saturation, contrast, arrows, camera angle, and surrounding objects that must remain unchanged.

847. **Assign roles to references.** Identify each input by number and purpose: subject, style, clothing, or background. Explain how the inputs should combine and which elements should move where.

858. **Iterate deliberately.** Pass the previous output as the next edit input, request one change, and repeat the details to preserve. References such as “same style as before” can carry context, but restate critical constraints if the result drifts. Compare results before adding more instructions.

86 

87Most examples omit `complexity` and use the model default. Adapt the prompts to your own images and requirements.

88 

89## Generate images

90 

91### Compare complexity

92 

93When a prompt leaves design decisions open, try `high` complexity to give the model more room to plan the composition. This prompt names the scene and the material but leaves the trophy, uniforms, and lettering up to the model.

94 

95> A premium handcrafted layered paper-cut illustration of a football team celebrating a championship victory inside a packed stadium.

96 

97GPT Image 2.6 Sunburst generated one image at each complexity level with the same prompt, `size="1024x1536"`, `quality="medium"`, and PNG output. Compare the trophy and where the word “CHAMPIONS” appears.

98 

99 

100 

101 <figure className="m-0 min-w-0">

102 <figcaption className="mb-2 text-sm font-semibold">

103 Low complexity

104 </figcaption>

105

106 

107![Players in red lift a trophy topped with a crown. A CHAMPIONS banner spans the foreground.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-low-gpt-image-2-6-sunburst.webp>)

108 

109 

110 </figure>

111 <figure className="m-0 min-w-0">

112 <figcaption className="mb-2 text-sm font-semibold">

113 Medium complexity

114 </figcaption>

115

116 

117![Players in red shirts with team crests lift a trophy decorated with a laurel wreath above a CHAMPIONS banner.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-medium-gpt-image-2-6-sunburst.webp>)

118 

119 

120 </figure>

121 <figure className="m-0 min-w-0">

122 <figcaption className="mb-2 text-sm font-semibold">

123 High complexity

124 </figcaption>

125

126 

127![Players in folded blue paper jerseys fill the foreground. A CHAMPIONS sign hangs in the stands behind them.](<https://developers.openai.com/images/platform/guides/image-prompting/paper-cut-football-effort-high-gpt-image-2-6-sunburst.webp>)

128 

129 

130 </figure>

131 

132 

133 

134In these outputs, `low` places a crown on the trophy. At `medium`, a laurel wreath decorates the cup and crests appear on the shirts. Both put a large banner in front of the team. At `high`, the sign moves into the stands, leaving the foreground for the players and the folds of their blue paper jerseys.

135 

136- **Fully specified designs.** When the prompt already sets the layout, text, and style, higher complexity may make little visible difference.

137- **Targeted edits.** Start with `low` when you want to change one detail. Check that the surrounding details stay intact.

138 

139### Generate SVG output

140 

141For a logo you can scale or recolor by editing its paths, send the [Field & Flour bakery logo prompt](#design-a-reusable-logo) to `POST /v1/images/generations`. Set `output_format="svg"` and `n=1`. SVG also supports `background="transparent"`, so the space around the mark can take the color of the surface behind it.

142 

143Omit `stream`, `partial_images`, `output_compression`, and `prompt_rewriter` from the SVG request. Decode `data[0].b64_json` from base64 and save the resulting XML as a `.svg` file.

144 

145 

146 

147 <figure className="m-0 min-w-0 [&_[data-codex-screenshot-overlay]_img]:bg-surface">

148 <figcaption className="mb-2 text-sm font-semibold">

149 GPT Image 2.6 Flare

150 </figcaption>

151

152 

153![Flare SVG with a golden loaf above a two-line cream Field & Flour wordmark.](<https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-flare.svg>)

154 

155 

156 </figure>

157 <figure className="m-0 min-w-0 [&_img]:bg-white">

158 <figcaption className="mb-2 text-sm font-semibold">

159 GPT Image 2.6 Sunburst

160 </figcaption>

161

162 

163![Sunburst SVG with a steaming loaf between wheat sprigs above the Field & Flour wordmark and a rolling pin.](<https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-sunburst.svg>)

164 

165 

166 </figure>

167 

168 

169 

170Open the [Flare SVG](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-flare.svg) or the [Sunburst SVG](https://developers.openai.com/images/platform/guides/image-prompting/field-and-flour-gpt-image-2-6-sunburst.svg) to inspect the artwork.

171 

172### Generate a looping GIF

173 

174For a smooth loop, give the subject a starting pose to return to and say whether the camera should move.

175 

176> A little monkey in an olive-green hooded coat stands in a snowy pine forest at dusk. A wooden cabin glows in the background. The monkey holds a glowing amber paper lantern at chest height, slowly lifts it, looks up and blinks, then lowers it back to its starting pose. Keep the lantern in its hands and the camera still. Make the motion loop smoothly.

177 

178 

179 

180![A monkey in a green coat lifts a glowing lantern, blinks, and lowers it again in front of a snowy cabin.](<https://developers.openai.com/images/platform/guides/image-prompting/monkey-lantern-gpt-image-2-6-sunburst.gif>)

181 

182 

183 

184Send the prompt to `POST /v1/images/generations` with `output_format="gif"`. This example uses `gpt-image-2.6-sunburst`, `size="512x512"`, `quality="high"`, and the default `high` complexity. With `frame_count=9` and `frame_duration_ms=200`, the loop lasts 1.8 seconds. See [GIF settings and limits](https://developers.openai.com/api/docs/guides/image-generation#generate-animated-gif-output).

185 

186### Control style and lighting

187 

188Describe a photograph through its subject, framing, light, and texture. This example specifies a candid composition and explicitly excludes heavy retouching.

189 

190The example uses `size="1024x1536"`, `quality="medium"`.

191 

192```text

193Create a photorealistic candid photograph of an elderly sailor standing on a small fishing boat.

194He has weathered skin with visible wrinkles, pores, and sun texture, and a few faded traditional sailor tattoos on his arms.

195He is calmly adjusting a net while his dog sits nearby on the deck. Shot like a 35mm film photograph, medium close-up at eye level, using a 50mm lens.

196Soft coastal daylight, shallow depth of field, subtle film grain, natural color balance.

197The image should feel honest and unposed, with real skin texture, worn materials, and everyday detail. No glamorization, no heavy retouching.

198```

199 

200 

201 

202 <figure className="m-0 min-w-0">

203 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

204 GPT Image 2.6 Flare

205 </figcaption>

206

207 

208![Photorealistic portrait of a sailor repairing a net — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/photorealism-gpt-image-2-6-flare.webp>)

209 

210 

211 </figure>

212 <figure className="m-0 min-w-0">

213 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

214 GPT Image 2.6 Sunburst

215 </figcaption>

216

217 

218![Photorealistic portrait of a sailor repairing a net — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/photorealism-gpt-image-2-6-sunburst.webp>)

219 

220 

221 </figure>

222 

223 

224 

225### Explain a process visually

226 

227Name the process, audience, and information the image should communicate. For diagrams and information graphics, verify labels and factual relationships as well as appearance.

228 

229The example uses `size="1024x1536"`, `quality="medium"`.

230 

231```text

232Create a detailed Infographic of the functioning and flow of an automatic coffee machine like a Jura.

233From bean basket, to grinding, to scale, water tank, boiler, etc.

234I'd like to understand technically and visually the flow.

235```

236 

237 

238 

239 <figure className="m-0 min-w-0">

240 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

241 GPT Image 2.6 Flare

242 </figcaption>

243

244 

245![Diagram explaining an automatic coffee machine — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/infographic-coffee-machine-gpt-image-2-6-flare.webp>)

246 

247 

248 </figure>

249 <figure className="m-0 min-w-0">

250 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

251 GPT Image 2.6 Sunburst

252 </figcaption>

253

254 

255![Diagram explaining an automatic coffee machine — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/infographic-coffee-machine-gpt-image-2-6-sunburst.webp>)

256 

257 

258 </figure>

259 

260 

261 

262### Render exact text

263 

264Quote the required copy and tell the model how many times it should appear. Specify the audience and visual treatment without adding unrelated instructions.

265 

266The example uses `size="1024x1536"`, `quality="medium"`.

267 

268```text

269Give me a cool in culture ad / fashion shot for a brand called Thread.

270It's a hip young street brand. The ad shows a group of friends hanging out together with the tagline "Yours to Create."

271Make it feel like a polished campaign image for a youth streetwear audience: stylish, contemporary, energetic, and tasteful.

272Use clean composition, strong color direction, natural poses, and premium fashion photography cues.

273Render the tagline exactly once, clearly and legibly, integrated into the ad layout.

274No extra text, no watermarks, no unrelated logos.

275```

276 

277 

278 

279 <figure className="m-0 min-w-0">

280 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

281 GPT Image 2.6 Flare

282 </figcaption>

283

284 

285![Thread streetwear campaign with the requested tagline — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/thread-ad-gpt-image-2-6-flare.webp>)

286 

287 

288 </figure>

289 <figure className="m-0 min-w-0">

290 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

291 GPT Image 2.6 Sunburst

292 </figcaption>

293

294 

295![Thread streetwear campaign with the requested tagline — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/thread-ad-gpt-image-2-6-sunburst.webp>)

296 

297 

298 </figure>

299 

300 

301 

302### Design a reusable logo

303 

304Describe the brand and the shapes that define the mark. Ask for a silhouette that stays recognizable on a small label or a large sign.

305 

306```text

307Create an original, non-infringing logo for a company called Field & Flour, a local bakery.

308The logo should feel warm, simple, and timeless. Use clean, vector-like shapes, a strong silhouette, and balanced negative space.

309Favor simplicity over detail so it reads clearly at small and large sizes. Flat design, minimal strokes, no gradients unless essential.

310Fully transparent background. Deliver a single centered logo with generous padding, clean alpha edges, and no solid backdrop, scenery, checkerboard, or watermark.

311```

312 

313For a raster logo you can place on another background, use `output_format="png"` and `background="transparent"`. See the [Cookbook example on generating transparent image assets](https://developers.openai.com/cookbook/examples/multimodal/transparent-image-assets-for-campaigns-and-presentations).

314 

315Each model used `size="1024x1536"`, `quality="medium"`, and `n=1` for the prompt above. Increase `n` if you want more raster variations.

316 

317 

318 

319 <figure className="m-0 min-w-0">

320 <figcaption className="mb-2 text-sm font-semibold">

321 GPT Image 2.6 Flare

322 </figcaption>

323

324 

325![Flare raster logo with a loaf above curved field rows and the stacked Field & Flour wordmark.](<https://developers.openai.com/images/platform/guides/image-prompting/logo-generation-1-gpt-image-2-6-flare.webp>)

326 

327 

328 </figure>

329 <figure className="m-0 min-w-0">

330 <figcaption className="mb-2 text-sm font-semibold">

331 GPT Image 2.6 Sunburst

332 </figcaption>

333

334 

335![Sunburst raster logo with golden wheat flanking a loaf above the Field & Flour wordmark.](<https://developers.openai.com/images/platform/guides/image-prompting/logo-generation-1-gpt-image-2-6-sunburst.webp>)

336 

337 

338 </figure>

339 

340 

341 

342### Use historical and real-world context

343 

344Name the place and date to establish a historical setting. The model can infer contextual details, but inspect clothing, staging, and surroundings for historical accuracy.

345 

346The example uses `size="1024x1536"`, `quality="medium"`.

347 

348```text

349Create a realistic outdoor crowd scene in Bethel, New York on August 16, 1969.

350Photorealistic, period-accurate clothing, staging, and environment.

351```

352 

353 

354 

355 <figure className="m-0 min-w-0">

356 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

357 GPT Image 2.6 Flare

358 </figcaption>

359

360 

361![Crowd scene in Bethel, New York, in August 1969 — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/world-knowledge-gpt-image-2-6-flare.webp>)

362 

363 

364 </figure>

365 <figure className="m-0 min-w-0">

366 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

367 GPT Image 2.6 Sunburst

368 </figcaption>

369

370 

371![Crowd scene in Bethel, New York, in August 1969 — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/world-knowledge-gpt-image-2-6-sunburst.webp>)

372 

373 

374 </figure>

375 

376 

377 

378### Turn a story into a comic strip

379 

380For story-to-comic generation, define the narrative as a sequence of clear visual beats, one per panel. Keep descriptions concrete and action-focused so the model can translate the story into readable, well-paced panels.

381 

382The example uses `size="1024x1536"`, `quality="medium"`.

383 

384```text

385Create a short vertical comic-style reel with 4 panels.

386Panel 1: The owner leaves through the front door. The pet is framed in the window behind them, small against the glass, eyes wide, paws pressed high, the house suddenly quiet.

387Panel 2: The door clicks shut. Silence breaks. The pet slowly turns toward the empty house, posture shifting, eyes sharp with possibility.

388Panel 3: The house transformed. The pet sprawls across the couch like it owns the place, crumbs nearby, sunlight cutting across the room like a spotlight.

389Panel 4: The door opens. The pet is seated perfectly by the entrance, alert and composed, as if nothing happened.

390```

391 

392 

393 

394 <figure className="m-0 min-w-0">

395 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

396 GPT Image 2.6 Flare

397 </figcaption>

398

399 

400![Four-panel comic about a pet at home — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/comic-reel-gpt-image-2-6-flare.webp>)

401 

402 

403 </figure>

404 <figure className="m-0 min-w-0">

405 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

406 GPT Image 2.6 Sunburst

407 </figcaption>

408

409 

410![Four-panel comic about a pet at home — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/comic-reel-gpt-image-2-6-sunburst.webp>)

411 

412 

413 </figure>

414 

415 

416 

417### Create an interface preview

418 

419Interface previews work best when you describe the product as if it already exists. Focus on layout, hierarchy, spacing, and real interface elements, and avoid concept art language so the result looks like a usable, shipped interface rather than a design sketch.

420 

421The example uses `size="1024x1536"`, `quality="medium"`.

422 

423```text

424Create a realistic mobile app UI mockup for a local farmers market.

425Show today’s market with a simple header, a short list of vendors with small photos and categories, a small “Today’s specials” section, and basic information for location and hours.

426Design it to be practical, and easy to use. White background, subtle natural accent colors, clear typography, and minimal decoration.

427It should look like a real, well-designed, beautiful app for a small local market.

428Place the UI mockup in an iPhone frame.

429```

430 

431 

432 

433 <figure className="m-0 min-w-0">

434 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

435 GPT Image 2.6 Flare

436 </figcaption>

437

438 

439![Farmers market mobile app mockup — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/ui-farmers-market-gpt-image-2-6-flare.webp>)

440 

441 

442 </figure>

443 <figure className="m-0 min-w-0">

444 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

445 GPT Image 2.6 Sunburst

446 </figcaption>

447

448 

449![Farmers market mobile app mockup — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/ui-farmers-market-gpt-image-2-6-sunburst.webp>)

450 

451 

452 </figure>

453 

454 

455 

456### Create scientific and educational visuals

457 

458Scientific and educational visuals are strong fits for biology, chemistry, classroom explanations, flat scientific icon systems, diagrams, and learning assets. Prompt them like an instructional design brief: define the audience, lesson objective, visual format, required labels, and scientific constraints. For best results, ask for a clean, flat visual system with consistent icon style, clear arrows, readable labels, and enough white space for students to scan the concept quickly.

459 

460When accuracy matters, list the required components explicitly and say what should not be included. Use `quality="high"` for dense labels, diagrams, or assets that will be used in slides or course materials.

461 

462The example uses `size="1536x1024"`, `quality="high"`.

463 

464```text

465Create a simple biology diagram titled "Cellular Respiration at a Glance" for high school students.

466 

467Show how glucose turns into energy inside a cell. Include glycolysis, the Krebs cycle, and the electron transport chain.

468Use arrows to connect the steps, and label the main molecules: glucose, pyruvate, ATP, NADH, FADH2, CO2, O2, and H2O.

469Make it look like a clean classroom handout or slide, with a white background, simple icons, clear labels, and easy-to-read text.

470 

471Avoid tiny text, extra decoration, or anything that makes the diagram hard to understand.

472```

473 

474 

475 

476 <figure className="m-0 min-w-0">

477 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

478 GPT Image 2.6 Flare

479 </figcaption>

480

481 

482![Classroom diagram of cellular respiration — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/scientific-educational-cellular-respiration-gpt-image-2-6-flare.webp>)

483 

484 

485 </figure>

486 <figure className="m-0 min-w-0">

487 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

488 GPT Image 2.6 Sunburst

489 </figcaption>

490

491 

492![Classroom diagram of cellular respiration — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/scientific-educational-cellular-respiration-gpt-image-2-6-sunburst.webp>)

493 

494 

495 </figure>

496 

497 

498 

499### Build slides, diagrams, and charts

500 

501Productivity visuals work best when the prompt is written like an artifact spec rather than an illustration request. Name the exact deliverable (slide, workflow diagram, chart, page image), define the canvas and hierarchy, provide the real text or data, and describe the visual language. These prompts should include practical constraints: readable typography, polished spacing, no decorative clutter, and no generic stock-photo treatment.

502 

503For slides, charts, and diagram-heavy assets, include the numbers and labels directly in the prompt. Use a landscape size for deck-style outputs and `quality="high"` when the image contains small text, legends, axes, or footnotes.

504 

505The figures and citations in this prompt are fictional. Check each number and any extra percentage the model adds before using a generated slide.

506 

507The example uses `size="1536x864"`, `quality="high"`.

508 

509```text

510Create one pitch-deck slide titled **"Market Opportunity"** that feels like a real Series A fundraising slide from a YC-backed startup.

511 

512Use a clean white background, modern sans-serif typography like Inter, and a crisp, minimal layout. The slide should include:

513 

514* A TAM/SAM/SOM concentric-circle diagram in muted blues and grays

515* Specific, believable market sizing numbers:

516 

517 * **TAM:** $42B

518 * **SAM:** $8.7B

519 * **SOM:** $340M

520* A clean bar chart below showing market growth from **2021 to 2026**, with a subtle upward trend

521* Small footnotes: **"AGI Research, 2024"** and **"Internal analysis"**

522* A company logo placeholder in the bottom-right corner

523 

524The design should look like it belongs in a deck that actually raised money: highly readable text, clear data hierarchy, polished spacing, and professional startup-style visual language.

525 

526Avoid clip art, stock photography, gradients, shadows, decorative elements, or anything that feels generic or overdesigned.

527```

528 

529 

530 

531 <figure className="m-0 min-w-0">

532 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

533 GPT Image 2.6 Flare

534 </figcaption>

535

536 

537![Market opportunity slide with sample market sizing figures — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/market-opportunity-slide-gpt-image-2-6-flare.webp>)

538 

539 

540 </figure>

541 <figure className="m-0 min-w-0">

542 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

543 GPT Image 2.6 Sunburst

544 </figcaption>

545

546 

547![Market opportunity slide with sample market sizing figures — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/market-opportunity-slide-gpt-image-2-6-sunburst.webp>)

548 

549 

550 </figure>

551 

552 

553 

554## Edit images

555 

556Use `client.images.edit` with the referenced input images. For local edits that require a mask, see [editing with a mask](https://developers.openai.com/api/docs/guides/image-generation#edit-an-image-using-a-mask).

557 

558### Guide an edit with markup

559 

560Draw a circle around the object you want to change, then describe the change in the prompt. This example targets the striped vase on a kitchen table.

561 

562Send two files in one multipart `POST /v1/images/edits` request. Use the [original kitchen photo](https://developers.openai.com/images/platform/guides/image-prompting/kitchen.webp) for `image` and the [transparent circle overlay](https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-overlay-gpt-image-2-6.png) for `markup`. Both files are 1200 × 900 pixels. The preview shows the two files together.

563 

564The markup overlay applies only to the first input image. Any additional images serve as references. Omit `mask` and `prompt_rewriter` when you send `markup`.

565 

566 

567 

568![Kitchen photo with a red circle around the striped vase on the dining table](<https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-input-gpt-image-2-6.webp>)

569 

570 

571 

572Both edits use `quality="medium"`, `size="auto"`, and PNG output.

573 

574```text

575Recolor the striped vase inside the red circle to solid cobalt blue ceramic. Keep its shape, the dried stems, and the rest of the kitchen unchanged. Remove the red circle from the finished photo.

576```

577 

578 

579 

580 <figure className="m-0 min-w-0">

581 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

582 GPT Image 2.6 Flare

583 </figcaption>

584

585 

586![Flare edit of the kitchen with a blue vase and dried stems on the table](<https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-gpt-image-2-6-flare.webp>)

587 

588 

589 </figure>

590 <figure className="m-0 min-w-0">

591 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

592 GPT Image 2.6 Sunburst

593 </figcaption>

594

595 

596![Sunburst edit of the kitchen with the same vase in cobalt blue and the red circle removed](<https://developers.openai.com/images/platform/guides/image-prompting/markup-vase-gpt-image-2-6-sunburst.webp>)

597 

598 

599 </figure>

600 

601 

602 

603Both models turned the vase cobalt blue, kept the dried stems, and removed the red circle. Compare the rest of each image with the original to check for other changes.

604 

605### Translate while preserving layout

606 

607Use each model's coffee-machine diagram from [Explain a process visually](#explain-a-process-visually) as the input. Ask to replace its text while keeping the design unchanged, then check the translation and any words left in the original language.

608 

609The example uses `size="1024x1536"`, `quality="high"`.

610 

611```text

612Translate the text in the infographic to Spanish. Do not change any other aspect of the image.

613```

614 

615 

616 

617 <figure className="m-0 min-w-0">

618 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

619 GPT Image 2.6 Flare

620 </figcaption>

621

622 

623![Coffee machine diagram translated into Spanish — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/infographic-coffee-machine-sp-gpt-image-2-6-flare.webp>)

624 

625 

626 </figure>

627 <figure className="m-0 min-w-0">

628 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

629 GPT Image 2.6 Sunburst

630 </figcaption>

631

632 

633![Coffee machine diagram translated into Spanish — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/infographic-coffee-machine-sp-gpt-image-2-6-sunburst.webp>)

634 

635 

636 </figure>

637 

638 

639 

640### Transfer a visual style

641 

642Assign the reference image a specific role: its palette, texture, or visual medium. Describe the new subject separately. Use the pixel-art image below as the input.

643 

644The example uses `size="1024x1536"`, `quality="medium"`.

645 

646```text

647Use the same style from the input image and generate a man riding a motorcycle on a white background.

648```

649 

650Reference image

651 

652 

653 

654![Pixel-art game screen used as a style reference](<https://developers.openai.com/images/platform/guides/image-prompting/pixels.webp>)

655 

656 

657 

658 

659 

660 <figure className="m-0 min-w-0">

661 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

662 GPT Image 2.6 Flare

663 </figcaption>

664

665 

666![Pixel-art motorcycle rider using the reference style — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/motorcycle-gpt-image-2-6-flare.webp>)

667 

668 

669 </figure>

670 <figure className="m-0 min-w-0">

671 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

672 GPT Image 2.6 Sunburst

673 </figcaption>

674

675 

676![Pixel-art motorcycle rider using the reference style — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/motorcycle-gpt-image-2-6-sunburst.webp>)

677 

678 

679 </figure>

680 

681 

682 

683### Preserve identity and change clothing

684 

685Use the person photograph and three clothing references below as inputs. State which aspects of the person must remain fixed, and allow only the clothing to change. This pattern also applies to edits where a product or object must remain recognizable.

686 

687The example uses `size="1024x1536"`, `quality="medium"`.

688 

689```text

690Edit the image to dress the woman using the provided clothing images. Do not change her face, facial features, skin tone, body shape, pose, or identity in any way. Preserve her exact likeness, expression, hairstyle, and proportions. Replace only the clothing, fitting the garments naturally to her existing pose and body geometry with realistic fabric behavior. Match lighting, shadows, and color temperature to the original photo so the outfit integrates photorealistically, without looking pasted on. Do not change the background, camera angle, framing, or image quality, and do not add accessories, text, logos, or watermarks.

691```

692 

693Reference images

694 

695 

696 

697

698 

699![Woman in a museum used as the identity reference](<https://developers.openai.com/images/platform/guides/image-prompting/woman-in-museum.webp>)

700 

701 

702

703 

704![Beige jacket used as a clothing reference](<https://developers.openai.com/images/platform/guides/image-prompting/jacket.webp>)

705 

706 

707

708 

709![White tank top used as a clothing reference](<https://developers.openai.com/images/platform/guides/image-prompting/tank-top.webp>)

710 

711 

712

713 

714![Gray boots used as a clothing reference](<https://developers.openai.com/images/platform/guides/image-prompting/boots.webp>)

715 

716 

717 

718 

719 

720 

721 

722 <figure className="m-0 min-w-0">

723 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

724 GPT Image 2.6 Flare

725 </figcaption>

726

727 

728![Woman wearing the supplied clothing items — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/outfit-gpt-image-2-6-flare.webp>)

729 

730 

731 </figure>

732 <figure className="m-0 min-w-0">

733 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

734 GPT Image 2.6 Sunburst

735 </figcaption>

736

737 

738![Woman wearing the supplied clothing items — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/outfit-gpt-image-2-6-sunburst.webp>)

739 

740 

741 </figure>

742 

743 

744 

745### Combine references

746 

747Pass the scene photograph as image 1 and the dog photograph as image 2. Specify which element to move, its destination, and what must remain unchanged.

748 

749The example uses `size="1024x1536"`, `quality="medium"`.

750 

751```text

752Place the dog from the second image into the setting of image 1, right next to the woman, use the same style of lighting, composition and background. Do not change anything else.

753```

754 

755Reference images

756 

757 

758 

759

760 

761![Woman in a street scene, the first compositing input](<https://developers.openai.com/images/platform/guides/image-prompting/test-woman.webp>)

762 

763 

764

765 

766![Woman with a dog, the second compositing input](<https://developers.openai.com/images/platform/guides/image-prompting/test-woman-2.webp>)

767 

768 

769 

770 

771 

772 

773 

774 <figure className="m-0 min-w-0">

775 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

776 GPT Image 2.6 Flare

777 </figcaption>

778

779 

780![Dog placed beside the woman in the street scene — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/test-woman-with-dog-gpt-image-2-6-flare.webp>)

781 

782 

783 </figure>

784 <figure className="m-0 min-w-0">

785 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

786 GPT Image 2.6 Sunburst

787 </figcaption>

788

789 

790![Dog placed beside the woman in the street scene — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/test-woman-with-dog-gpt-image-2-6-sunburst.webp>)

791 

792 

793 </figure>

794 

795 

796 

797### Create a transparent product cutout

798 

799Request both an isolated subject in the prompt and `background="transparent"` in the API. Use PNG or WebP, preserve the returned alpha channel, and omit `output_compression` for PNG. A drawn checkerboard is not transparency. For subsequent edits, repeat the requirement to preserve the transparent background. Use the product photograph below as the input.

800 

801The example uses `size="1024x1536"`, `quality="medium"`, `background="transparent"`, `output_format="png"`.

802 

803```text

804Extract the product from the input image and isolate it on a fully transparent background.

805Output: centered product, crisp silhouette, no halos/fringing.

806Preserve product geometry and label legibility exactly.

807Add only light polishing. Do not add a solid backdrop, checkerboard, scenery, or shadow.

808Do not restyle the product; remove the background and preserve clean alpha transparency.

809```

810 

811Reference image

812 

813 

814 

815![Original shampoo product photograph](<https://developers.openai.com/images/platform/guides/image-prompting/shampoo.webp>)

816 

817 

818 

819 

820 

821 <figure className="m-0 min-w-0">

822 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

823 GPT Image 2.6 Flare

824 </figcaption>

825

826 

827![Isolated shampoo bottle on a transparent background — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/extract-product-gpt-image-2-6-flare.webp>)

828 

829 

830 </figure>

831 <figure className="m-0 min-w-0">

832 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

833 GPT Image 2.6 Sunburst

834 </figcaption>

835

836 

837![Isolated shampoo bottle on a transparent background — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/extract-product-gpt-image-2-6-sunburst.webp>)

838 

839 

840 </figure>

841 

842 

843 

844### Turn a drawing into a realistic image

845 

846Sketch-to-render workflows are great for turning rough drawings into photorealistic concepts while keeping the original intent. Treat the prompt like a spec: preserve layout and perspective, then _add realism_ by specifying plausible materials, lighting, and environment. Include "do not add new elements/text" to avoid creative reinterpretations.

847 

848The example uses `size="1024x1536"`, `quality="medium"`.

849 

850```text

851Turn this drawing into a photorealistic image.

852Preserve the exact layout, proportions, and perspective.

853Choose realistic materials and lighting consistent with the sketch intent.

854Do not add new elements or text.

855```

856 

857Reference image

858 

859 

860 

861![Line drawing of a river valley](<https://developers.openai.com/images/platform/guides/image-prompting/drawings.webp>)

862 

863 

864 

865 

866 

867 <figure className="m-0 min-w-0">

868 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

869 GPT Image 2.6 Flare

870 </figcaption>

871

872 

873![Photorealistic river valley rendered from the drawing — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/realistic-valley-gpt-image-2-6-flare.webp>)

874 

875 

876 </figure>

877 <figure className="m-0 min-w-0">

878 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

879 GPT Image 2.6 Sunburst

880 </figcaption>

881

882 

883![Photorealistic river valley rendered from the drawing — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/realistic-valley-gpt-image-2-6-sunburst.webp>)

884 

885 

886 </figure>

887 

888 

889 

890### Remove an object

891 

892Remove one object by naming it explicitly and preserving everything around it. Keep the person, pose, lighting, and composition unchanged so the edit stays local.

893 

894The example uses `size="1024x1536"`, `quality="medium"`.

895 

896```text

897Remove the flower from man's hand. Do not change anything else.

898```

899 

900Reference image

901 

902 

903 

904![Man holding a flower and wearing a blue cap](<https://developers.openai.com/images/platform/guides/image-prompting/man-with-blue-hat.webp>)

905 

906 

907 

908 

909 

910 <figure className="m-0 min-w-0">

911 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

912 GPT Image 2.6 Flare

913 </figcaption>

914

915 

916![Same man after the flower has been removed — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/man-with-no-flower-gpt-image-2-6-flare.webp>)

917 

918 

919 </figure>

920 <figure className="m-0 min-w-0">

921 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

922 GPT Image 2.6 Sunburst

923 </figcaption>

924

925 

926![Same man after the flower has been removed — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/man-with-no-flower-gpt-image-2-6-sunburst.webp>)

927 

928 

929 </figure>

930 

931 

932 

933### Insert a person into a scene

934 

935Insert a person into a new scene while preserving their identity. Specify natural lighting, believable detail, body framing, gaze, and interaction with the scene. State which facial features and proportions must remain unchanged. Omit `input_fidelity` from the edit request.

936 

937Use the [woman in the museum](https://developers.openai.com/images/platform/guides/image-prompting/woman-in-museum.webp) as the input image.

938 

939The example uses `size="1024x1536"`, `quality="medium"`.

940 

941```text

942Generate a highly realistic action scene where this person is running away from a large, realistic brown bear attacking a campsite. The image should look like a real photograph someone could have taken, not an overly enhanced or cinematic movie-poster image.

943She is centered in the image but looking away from the camera, wearing outdoorsy camping attire, with dirt on her face and tears in her clothing. She is clearly afraid but focused on escaping, running away from the bear as it destroys the campsite behind her.

944The campsite is in Yosemite National Park, with believable natural details. The time of day is dusk, with natural lighting and realistic colors. Everything should feel grounded, authentic, and unstyled, as if captured in a real moment. Avoid cinematic lighting, dramatic color grading, or stylized composition.

945```

946 

947 

948 

949 <figure className="m-0 min-w-0">

950 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

951 GPT Image 2.6 Flare

952 </figcaption>

953

954 

955![Woman running from a bear in a campsite scene — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/scene-gpt-image-2-6-flare.webp>)

956 

957 

958 </figure>

959 <figure className="m-0 min-w-0">

960 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

961 GPT Image 2.6 Sunburst

962 </figcaption>

963

964 

965![Woman running from a bear in a campsite scene — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/scene-gpt-image-2-6-sunburst.webp>)

966 

967 

968 </figure>

969 

970 

971 

972## Refine an image across turns

973 

974Start with one output, inspect it, and use it as the next input. Keep each follow-up narrow so you can see which change helped.

975 

976### Create the starting image

977 

978Use the shampoo photograph from [Create a transparent product cutout](#create-a-transparent-product-cutout) as the input for this billboard scene. Quote the billboard headline exactly.

979 

980The example uses `size="1024x1536"`, `quality="medium"`.

981 

982```text

983Create a realistic billboard mockup of the shampoo on a highway scene during sunset.

984Billboard text (EXACT, verbatim, no extra characters):

985"Fresh and clean"

986Typography: bold sans-serif, high contrast, centered, clean kerning.

987Ensure text appears once and is perfectly legible.

988No watermarks, no logos.

989```

990 

991Reference image

992 

993 

994 

995![Original shampoo product photograph](<https://developers.openai.com/images/platform/guides/image-prompting/shampoo.webp>)

996 

997 

998 

999 

1000 

1001 <figure className="m-0 min-w-0">

1002 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1003 GPT Image 2.6 Flare

1004 </figcaption>

1005

1006 

1007![Shampoo billboard at sunset — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/billboard-gpt-image-2-6-flare.webp>)

1008 

1009 

1010 </figure>

1011 <figure className="m-0 min-w-0">

1012 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1013 GPT Image 2.6 Sunburst

1014 </figcaption>

1015

1016 

1017![Shampoo billboard at sunset — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/billboard-gpt-image-2-6-sunburst.webp>)

1018 

1019 

1020 </figure>

1021 

1022 

1023 

1024### Change one condition

1025 

1026Pass each model's billboard output from the previous step into its next edit request. This short follow-up changes the weather while retaining the existing scene.

1027 

1028The example uses `size="1024x1536"`, `quality="medium"`.

1029 

1030```text

1031Make it look like a winter evening with snowfall.

1032```

1033 

1034 

1035 

1036 <figure className="m-0 min-w-0">

1037 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1038 GPT Image 2.6 Flare

1039 </figcaption>

1040

1041 

1042![Shampoo billboard in a snowy evening scene — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/billboard-winter-gpt-image-2-6-flare.webp>)

1043 

1044 

1045 </figure>

1046 <figure className="m-0 min-w-0">

1047 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1048 GPT Image 2.6 Sunburst

1049 </figcaption>

1050

1051 

1052![Shampoo billboard in a snowy evening scene — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/billboard-winter-gpt-image-2-6-sunburst.webp>)

1053 

1054 

1055 </figure>

1056 

1057 

1058 

1059### Keep a character consistent

1060 

1061For a book with multiple illustrations, create a reusable character reference to help preserve appearance across scenes, poses, and pages. Change the environment and story while repeating the character’s defining details.

1062 

1063#### Establish the character

1064 

1065Define the character’s appearance, proportions, outfit, and tone.

1066 

1067The example uses `size="1024x1536"`, `quality="medium"`.

1068 

1069```text

1070Create a children’s book illustration introducing a main character.

1071 

1072Character:

1073A young, storybook-style hero inspired by a little forest outlaw,

1074wearing a simple green hooded tunic, soft brown boots, and a small belt pouch.

1075The character has a kind expression, gentle eyes, and a brave but warm demeanor.

1076Carries a small wooden bow used only for helping, never harming.

1077 

1078Theme:

1079The character protects and rescues small forest animals like squirrels, birds, and rabbits.

1080 

1081Style:

1082Children’s book illustration, hand-painted watercolor look,

1083soft outlines, warm earthy colors, whimsical and friendly.

1084Proportions suitable for picture books (slightly oversized head, expressive face).

1085 

1086Constraints:

1087- Original character (no copyrighted characters)

1088- No text

1089- No watermarks

1090- Plain forest background to clearly showcase the character

1091```

1092 

1093 

1094 

1095 <figure className="m-0 min-w-0">

1096 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1097 GPT Image 2.6 Flare

1098 </figcaption>

1099

1100 

1101![Forest hero introducing a children&#x27;s book character — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/childrens-book-illustration-1-gpt-image-2-6-flare.webp>)

1102 

1103 

1104 </figure>

1105 <figure className="m-0 min-w-0">

1106 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1107 GPT Image 2.6 Sunburst

1108 </figcaption>

1109

1110 

1111![Forest hero introducing a children&#x27;s book character — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/childrens-book-illustration-1-gpt-image-2-6-sunburst.webp>)

1112 

1113 

1114 </figure>

1115 

1116 

1117 

1118#### Continue the story

1119 

1120Reuse each model's generated character image and describe a new scene. Repeat the appearance constraints so the character stays consistent.

1121 

1122The example uses `size="1024x1536"`, `quality="medium"`.

1123 

1124```text

1125Continue the children’s book story using the same character.

1126 

1127Scene:

1128The same young forest hero is gently helping a frightened squirrel

1129out of a fallen tree after a winter storm.

1130The character kneels beside the squirrel, offering reassurance.

1131 

1132Character Consistency:

1133- Same green hooded tunic

1134- Same facial features, proportions, and color palette

1135- Same gentle, heroic personality

1136 

1137Style:

1138Children’s book watercolor illustration,

1139soft lighting, snowy forest environment,

1140warm and comforting mood.

1141 

1142Constraints:

1143- Do not redesign the character

1144- No text

1145- No watermarks

1146```

1147 

1148 

1149 

1150 <figure className="m-0 min-w-0">

1151 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1152 GPT Image 2.6 Flare

1153 </figcaption>

1154

1155 

1156![Same forest hero helping a squirrel in a winter scene — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/childrens-book-illustration-2-gpt-image-2-6-flare.webp>)

1157 

1158 

1159 </figure>

1160 <figure className="m-0 min-w-0">

1161 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1162 GPT Image 2.6 Sunburst

1163 </figcaption>

1164

1165 

1166![Same forest hero helping a squirrel in a winter scene — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/childrens-book-illustration-2-gpt-image-2-6-sunburst.webp>)

1167 

1168 

1169 </figure>

1170 

1171 

1172 

1173## More workflows

1174 

1175### Change furniture in a room

1176 

1177Visualize furniture or décor changes in real spaces without recreating the entire scene. The goal is surgical realism: swap a single object while preserving camera angle, lighting, shadows, and surrounding context so the edit looks like a real photograph, not a redesign.

1178 

1179The example uses `size="1536x1024"`, `quality="medium"`.

1180 

1181```text

1182In this room photo, replace ONLY the white chairs with chairs made of wood.

1183Preserve camera angle, room lighting, floor shadows, and surrounding objects.

1184Keep all other aspects of the image unchanged.

1185Photorealistic contact shadows and fabric texture.

1186```

1187 

1188Reference image

1189 

1190 

1191 

1192![Original kitchen with white chairs](<https://developers.openai.com/images/platform/guides/image-prompting/kitchen.webp>)

1193 

1194 

1195 

1196 

1197 

1198 <figure className="m-0 min-w-0">

1199 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1200 GPT Image 2.6 Flare

1201 </figcaption>

1202

1203 

1204![Kitchen with replacement wooden chairs — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/kitchen-chairs-gpt-image-2-6-flare.webp>)

1205 

1206 

1207 </figure>

1208 <figure className="m-0 min-w-0">

1209 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1210 GPT Image 2.6 Sunburst

1211 </figcaption>

1212

1213 

1214![Kitchen with replacement wooden chairs — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/kitchen-chairs-gpt-image-2-6-sunburst.webp>)

1215 

1216 

1217 </figure>

1218 

1219 

1220 

1221### Design a holiday card

1222 

1223For seasonal card concepts, describe the scene, emotional tone, materials, lighting, and exact copy. For a 3D pop-up or photographed-card treatment, specify paper layers, fibers, folds, and soft studio lighting. The example below uses a nostalgic teddy-bear scene.

1224 

1225The example uses `size="1024x1536"`, `quality="medium"`.

1226 

1227```text

1228Create a Christmas holiday card illustration.

1229 

1230Scene:

1231a cozy Christmas scene with an old teddy bear sitting inside a keepsake box, slightly worn fur, soft stitching repairs, placed near a window with falling snow outside. The scene suggests the child has grown up, but the memories remain.

1232 

1233Mood:

1234Warm, nostalgic, gentle, emotional.

1235 

1236Style:

1237Premium holiday card photography, soft cinematic lighting,

1238realistic textures, shallow depth of field,

1239tasteful bokeh lights, high print-quality composition.

1240 

1241Constraints:

1242- Original artwork only

1243- No trademarks

1244- No watermarks

1245- No logos

1246 

1247Include ONLY this card text (verbatim):

1248"Merry Christmas — some memories never fade."

1249```

1250 

1251 

1252 

1253 <figure className="m-0 min-w-0">

1254 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1255 GPT Image 2.6 Flare

1256 </figcaption>

1257

1258 

1259![Holiday card showing a teddy bear by a window — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/christmas-holiday-card-teddy-gpt-image-2-6-flare.webp>)

1260 

1261 

1262 </figure>

1263 <figure className="m-0 min-w-0">

1264 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1265 GPT Image 2.6 Sunburst

1266 </figcaption>

1267

1268 

1269![Holiday card showing a teddy bear by a window — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/christmas-holiday-card-teddy-gpt-image-2-6-sunburst.webp>)

1270 

1271 

1272 </figure>

1273 

1274 

1275 

1276### Design collectible merchandise

1277 

1278Explore merchandise and packaging concepts using product photography cues: materials, packaging, and print clarity. Keep designs original and non-infringing, and compare multiple character or packaging variants.

1279 

1280The example uses `size="1024x1536"`, `quality="medium"`.

1281 

1282```text

1283Create a collectible action figure of a vintage-style toy propeller airplane with rounded wings, a front-mounted spinning propeller, slightly worn paint edges, classic childhood proportions, designed as a nostalgic holiday collectible, in blister packaging.

1284 

1285Concept:

1286A nostalgic holiday collectible inspired by the simple toy airplanes

1287children used to play with during winter holidays.

1288Evokes warmth, imagination, and childhood wonder.

1289 

1290Style:

1291Premium toy photography, realistic plastic and painted metal textures,

1292studio lighting, shallow depth of field,

1293sharp label printing, high-end retail presentation.

1294 

1295Constraints:

1296- Original design only

1297- No trademarks

1298- No watermarks

1299- No logos

1300 

1301Include ONLY this packaging text (verbatim):

1302"Christmas Memories Edition"

1303```

1304 

1305 

1306 

1307 <figure className="m-0 min-w-0">

1308 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1309 GPT Image 2.6 Flare

1310 </figcaption>

1311

1312 

1313![Collectible toy airplane in holiday packaging — GPT Image 2.6 Flare](<https://developers.openai.com/images/platform/guides/image-prompting/christmas-collectible-toy-airplane-gpt-image-2-6-flare.webp>)

1314 

1315 

1316 </figure>

1317 <figure className="m-0 min-w-0">

1318 <figcaption className="mb-2 min-h-10 text-sm font-semibold">

1319 GPT Image 2.6 Sunburst

1320 </figcaption>

1321

1322 

1323![Collectible toy airplane in holiday packaging — GPT Image 2.6 Sunburst](<https://developers.openai.com/images/platform/guides/image-prompting/christmas-collectible-toy-airplane-gpt-image-2-6-sunburst.webp>)

1324 

1325 

1326 </figure>

1327 

1328 

1329 

1330## Run a complete example

1331 

1332Generate four logo variations and extract a product onto a transparent background with the 2.6 model you want to test.

1333 

1334Install the [OpenAI SDK](https://developers.openai.com/api/docs/libraries#install-an-official-sdk) with `pip install openai` for Python or `gem install openai` for Ruby. Set `OPENAI_API_KEY` and save the [product photograph](https://developers.openai.com/images/platform/guides/image-prompting/shampoo.webp) as `input_images/shampoo.webp`.

1335 

1336Save the sample as `demo.py` or `demo.rb`. To try Flare, run `python demo.py gpt-image-2.6-flare` or `ruby demo.rb gpt-image-2.6-flare`. To try Sunburst, pass `gpt-image-2.6-sunburst` instead. The script writes four logo files in PNG format and `extract-product.png`.

1337 

1338 

1339 

1340### View the complete example

1341 

1342 

1343 Generate and edit transparent assets

1344 

1345```python

1346import argparse

1347import base64

1348from pathlib import Path

1349 

1350from openai import OpenAI

1351 

1352parser = argparse.ArgumentParser()

1353parser.add_argument("model", help="Image model ID enabled for your project")

1354model = parser.parse_args().model

1355client = OpenAI()

1356 

1357prompt = """

1358Create an original, non-infringing logo for a company called Field & Flour, a local bakery.

1359The logo should feel warm, simple, and timeless. Use clean, vector-like shapes, a strong silhouette, and balanced negative space.

1360Favor simplicity over detail so it reads clearly at small and large sizes. Flat design, minimal strokes, no gradients unless essential.

1361Fully transparent background. Deliver a single centered logo with generous padding, clean alpha edges, and no solid backdrop, scenery, checkerboard, or watermark.

1362""".strip()

1363logos = client.images.generate(

1364 model=model,

1365 prompt=prompt,

1366 size="1024x1536",

1367 quality="medium",

1368 background="transparent",

1369 output_format="png",

1370 n=4,

1371)

1372for index, image in enumerate(logos.data, start=1):

1373 Path(f"logo-generation-{index}.png").write_bytes(base64.b64decode(image.b64_json))

1374 

1375prompt = """

1376Extract the product from the input image and isolate it on a fully transparent background.

1377Output: centered product, crisp silhouette, no halos/fringing.

1378Preserve product geometry and label legibility exactly.

1379Add only light polishing. Do not add a solid backdrop, checkerboard, scenery, or shadow.

1380Do not restyle the product; remove the background and preserve clean alpha transparency.

1381""".strip()

1382cutout = client.images.edit(

1383 model=model,

1384 image=[("shampoo.webp", Path("input_images/shampoo.webp"), "image/webp")],

1385 prompt=prompt,

1386 size="1024x1536",

1387 quality="medium",

1388 background="transparent",

1389 output_format="png",

1390)

1391Path("extract-product.png").write_bytes(base64.b64decode(cutout.data[0].b64_json))

1392```

1393 

1394```ruby

1395require "base64"

1396require "openai"

1397require "pathname"

1398 

1399model = ARGV.fetch(0) { abort "Usage: ruby #{$PROGRAM_NAME} MODEL_ID" }

1400client = OpenAI::Client.new

1401 

1402prompt = <<~PROMPT.strip

1403 Create an original, non-infringing logo for a company called Field & Flour, a local bakery.

1404 The logo should feel warm, simple, and timeless. Use clean, vector-like shapes, a strong silhouette, and balanced negative space.

1405 Favor simplicity over detail so it reads clearly at small and large sizes. Flat design, minimal strokes, no gradients unless essential.

1406 Fully transparent background. Deliver a single centered logo with generous padding, clean alpha edges, and no solid backdrop, scenery, checkerboard, or watermark.

1407PROMPT

1408logos = client.images.generate(

1409 model: model,

1410 prompt: prompt,

1411 size: "1024x1536",

1412 quality: :medium,

1413 background: :transparent,

1414 output_format: :png,

1415 n: 4

1416)

1417Array(logos.data).each_with_index do |image, index|

1418 File.binwrite("logo-generation-#{index + 1}.png", Base64.strict_decode64(image.b64_json || raise("No PNG returned")))

1419end

1420 

1421prompt = <<~PROMPT.strip

1422 Extract the product from the input image and isolate it on a fully transparent background.

1423 Output: centered product, crisp silhouette, no halos/fringing.

1424 Preserve product geometry and label legibility exactly.

1425 Add only light polishing. Do not add a solid backdrop, checkerboard, scenery, or shadow.

1426 Do not restyle the product; remove the background and preserve clean alpha transparency.

1427PROMPT

1428cutout = client.images.edit(

1429 model: model,

1430 image: OpenAI::FilePart.new(Pathname("input_images/shampoo.webp"), content_type: "image/webp"),

1431 prompt: prompt,

1432 size: "1024x1536",

1433 quality: :medium,

1434 background: :transparent,

1435 output_format: :png

1436)

1437File.binwrite("extract-product.png", Base64.strict_decode64(Array(cutout.data).fetch(0).b64_json || raise("No PNG returned")))

1438```

1439 

1440 

1441 

1442 

1443 

1444For additional prompts and complete workflows, see the [original notebook](https://github.com/openai/openai-cookbook/blob/d310dfa05d20fb653caa9c1c4b89ac1a4aeeeae4/examples/multimodal/image-gen-models-prompting-guide.ipynb).

1445 

1446## Check the result

1447 

1448Before you use an image, check it against your requirements.

1449 

1450- Can you read every word, and does it match the requested text? Are diagram labels and relationships correct?

1451- Do identities, product shapes, labels, and reference details remain intact?

1452- Did the edit change only what you requested?

1453- If you need transparency, does the decoded file contain transparent pixels?

1454 

1455Compare quality, latency, and cost on representative inputs when changing prompts or models. See [image generation pricing](https://developers.openai.com/api/docs/pricing#image-generation) for current costs.

1456 

1457 

1458

1459 

1460

1461 

1462 <header className="not-prose mb-8">

6 <h21463 <h2

7 id="gpt-image-2.5-guide"1464 id="gpt-image-2.5-guide"

8 className="m-0 text-3xl font-semibold text-default"1465 className="m-0 text-3xl font-semibold text-default"

Details

37 37 

38The three paid usage tiers are **Build**, **Launch**, and **Grow**. Your organization's usage tier upgrades automatically as its total credit purchases reach each threshold. Higher tiers generally provide higher rate limits across models.38The three paid usage tiers are **Build**, **Launch**, and **Grow**. Your organization's usage tier upgrades automatically as its total credit purchases reach each threshold. Higher tiers generally provide higher rate limits across models.

39 39 

40Usage tiers describe rate limits. A model's rate-limit entry does not confirm

41 access for your organization, project, or API key. If a model is missing,

42 [check model availability](#model-availability).

43 

40| Tier | Qualification | Usage limits |44| Tier | Qualification | Usage limits |

41| ------ | --------------------------------------------------------------------- | ---------------- |45| ------ | --------------------------------------------------------------------- | ---------------- |

42| Free | User must be in an [allowed geography](https://developers.openai.com/api/docs/supported-countries) | $100 / month |46| Free | User must be in an [allowed geography](https://developers.openai.com/api/docs/supported-countries) | $100 / month |


136```140```

137 141 

138 142 

143## Model availability

144 

145Model access and rate limits are separate. Meeting a usage-tier threshold doesn't grant access to every model. If a documented model is missing from Playground or `GET /v1/models`, or a request returns `model_not_found`:

146 

1471. **Check the model ID and endpoint.** Use the exact ID from the [model documentation](https://developers.openai.com/api/docs/models), confirm that it supports your endpoint, and check for retirement or availability notices.

1482. **Compare the organization, project, and credentials.** Select the intended organization and project in Playground. Call [List models](https://developers.openai.com/api/reference/resources/models/methods/list) with the same API key and any `OpenAI-Organization` and `OpenAI-Project` headers used by the failed request. A model visible in your dashboard session may still be unavailable to a different API key.

1493. **Review project restrictions and model requirements.** Ask someone who can manage the project to check its model permissions and data-retention settings. Follow any model-specific access requirements and review any rollout notices in the model documentation. A missing model alone does not identify the cause.

1504. **Refresh and check again.** After changing access settings, refresh the model list or Playground. If the model is still unavailable, contact support with the model ID, organization and project IDs, request time, error message, and the `x-request-id` response header, if available. Don't share your API key.

151 

139## Error mitigation152## Error mitigation

140 153 

141### Handle rapid traffic increases and model overload154### Handle rapid traffic increases and model overload

Details

22```javascript22```javascript

23import { RealtimeAgent, RealtimeSession } from "@openai/agents/realtime";23import { RealtimeAgent, RealtimeSession } from "@openai/agents/realtime";

24 24 

25const ephemeralKey = process.env.OPENAI_REALTIME_EPHEMERAL_KEY;

26if (!ephemeralKey)

27 throw new Error("Set OPENAI_REALTIME_EPHEMERAL_KEY from your server.");

28 

25const agent = new RealtimeAgent({29const agent = new RealtimeAgent({

26 name: "Assistant",30 name: "Assistant",

27 instructions: "You are a helpful voice assistant.",31 instructions: "You are a helpful voice assistant.",


32});36});

33 37 

34await session.connect({38await session.connect({

35 apiKey: "ek_...(ephemeral key from your server)",39 apiKey: ephemeralKey,

36});40});

37```41```

38 42 

Details

817 const view = new DataView(buffer);817 const view = new DataView(buffer);

818 let offset = 0;818 let offset = 0;

819 for (let i = 0; i < float32Array.length; i++, offset += 2) {819 for (let i = 0; i < float32Array.length; i++, offset += 2) {

820 let s = Math.max(-1, Math.min(1, float32Array[i]));820 const sample = Math.max(-1, Math.min(1, float32Array[i]));

821 view.setInt16(offset, s < 0 ? s * 0x8000 : s * 0x7fff, true);821 view.setInt16(

822 offset,

823 Math.round(sample * (sample < 0 ? 0x8000 : 0x7fff)),

824 true

825 );

822 }826 }

823 return buffer;827 return buffer;

824}828}


844 "fixtures/sample3.wav",848 "fixtures/sample3.wav",

845];849];

846 850 

851// Manual commit and response creation require automatic turn detection off.

852ws.send(

853 JSON.stringify({

854 type: "session.update",

855 session: {

856 type: "realtime",

857 audio: { input: { turn_detection: null } },

858 },

859 })

860);

861 

847for (const filename of files) {862for (const filename of files) {

848 const audioFile = fs.readFileSync(filename);863 const audioFile = fs.readFileSync(filename);

849 const audioBuffer = await decodeAudio(audioFile);864 const audioBuffer = await decodeAudio(audioFile);


864}879}

865 880 

866ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));881ws.send(JSON.stringify({ type: "input_audio_buffer.commit" }));

867ws.send(JSON.stringify({ type: "response.create" }));882ws.send(

883 JSON.stringify({

884 type: "response.create",

885 response: { output_modalities: ["audio"] },

886 })

887);

868```888```

869 889 

870```python890```python

Details

1014 const event = {1014 const event = {

1015 type: "conversation.item.create",1015 type: "conversation.item.create",

1016 item: {1016 item: {

1017 id: `mcp_approval_${approvalRequestId}`,

1018 type: "mcp_approval_response",1017 type: "mcp_approval_response",

1019 approval_request_id: approvalRequestId,1018 approval_request_id: approvalRequestId,

1020 approve: true,1019 approve: true,


1145 type: "response.create",1144 type: "response.create",

1146 response: {1145 response: {

1147 output_modalities: ["text"],1146 output_modalities: ["text"],

1147 tool_choice: "required",

1148 parallel_tool_calls: false,

1148 input: [1149 input: [

1149 {1150 {

1150 type: "message",1151 type: "message",

Details

185 });185 });

186 // Send back the SDP we received from the OpenAI REST API186 // Send back the SDP we received from the OpenAI REST API

187 const sdp = await r.text();187 const sdp = await r.text();

188 res.set(

189 "Content-Type",

190 r.ok ? "application/sdp" : (r.headers.get("Content-Type") ?? "text/plain")

191 );

192 const location = r.headers.get("Location");

193 if (location) res.set("Location", location);

188 res.status(r.status).send(sdp);194 res.status(r.status).send(sdp);

189 } catch (error) {195 } catch (error) {

190 console.error("Token generation error:", error);196 console.error("Session creation error:", error);

191 res.status(500).json({ error: "Failed to generate token" });197 res.status(500).json({ error: "Failed to create session" });

192 }198 }

193});199});

194 200 

Details

2 2 

3> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.3> For the complete documentation index, see [llms.txt](/llms.txt). Markdown versions of documentation pages are available by appending `.md` to the page URL.

4 4 

5GPT-5.3-Codex and newer models, including GPT-5.4 and GPT-5.5, are classified as having High Cybersecurity Capability under our [Preparedness Framework](https://cdn.openai.com/pdf/18a02b5d-6b67-4cec-ab64-68cdfbddebcd/preparedness-framework-v2.pdf). As a result, additional automated safeguards apply when these models are used via the API. Please note that the safeguards applied in the API differ from those used in Codex. You can learn more about the Codex safeguards [here](https://developers.openai.com/codex/cyber-safety/).5We classify GPT-5.6 Cyber as High and GPT-6 Cyber as Critical for cybersecurity under our [Preparedness Framework](https://cdn.openai.com/pdf/18a02b5d-6b67-4cec-ab64-68cdfbddebcd/preparedness-framework-v2.pdf). Additional automated safeguards apply to API models classified as High or Critical for cybersecurity. Please note that the safeguards applied in the API differ from those used in Codex. You can learn more about the Codex safeguards [here](https://developers.openai.com/codex/cyber-safety/).

6 6 

7These safeguards monitor for signals of potentially suspicious cybersecurity activity. If certain thresholds are met, access to the model may be temporarily limited while activity is reviewed. Because these systems are still being calibrated, legitimate security research or defensive work may occasionally be flagged. We expect only a small portion of traffic to be impacted, and we’re continuing to refine the overall API experience.7These safeguards monitor for signals of potentially suspicious cybersecurity activity. If certain thresholds are met, access to the model may be temporarily limited while activity is reviewed. Because these systems are still being calibrated, legitimate security research or defensive work may occasionally be flagged. We expect only a small portion of traffic to be impacted, and we’re continuing to refine the overall API experience.

8 8 


15approval and provisioning; applying, verifying an identity, or receiving15approval and provisioning; applying, verifying an identity, or receiving

16Daybreak Blue access doesn't grant specialist-model access.16Daybreak Blue access doesn't grant specialist-model access.

17 17 

18For approved API projects, use a Daybreak alias or a compatible underlying18For approved API projects, use the most capable cyber model available to you. Alias resolution can change and depends on your approved access.

19model ID. Alias resolution can change and depends on your approved access.

20See [Use Daybreak in the Responses API](https://developers.openai.com/api/docs/guides/daybreak) to choose a19See [Use Daybreak in the Responses API](https://developers.openai.com/api/docs/guides/daybreak) to choose a

21model and `access_programs.cyber` value, understand defaults, and handle errors.20model and `access_programs.cyber` value, understand defaults, and handle errors.

22Access and model behavior depend on the approved organization and project;21Access and model behavior depend on the approved organization and project;


39Application-level tool review and Codex product-side sandboxing are separate38Application-level tool review and Codex product-side sandboxing are separate

40from the API cybersecurity safeguards described on this page.39from the API cybersecurity safeguards described on this page.

41 40 

41For GPT-6-Cyber, [configure your project and IP allowlist](https://developers.openai.com/api/docs/guides/daybreak#set-up-gpt-6-cyber) before sending requests.

42 

42## Safeguard actions for non-ZDR Organizations43## Safeguard actions for non-ZDR Organizations

43 44 

44If our systems detect potentially suspicious cybersecurity activity within your traffic that exceeds defined thresholds, access to these models may be temporarily revoked. In this case, API requests will return an error with the error code `cyber_policy`.45If our systems detect potentially suspicious cybersecurity activity within your traffic that exceeds defined thresholds, access to these models may be temporarily revoked. In this case, API requests will return an error with the error code `cyber_policy`.

Details

428Use the apply patch tool with the Agents SDK428Use the apply patch tool with the Agents SDK

429 429 

430```javascript430```javascript

431import {

432 mkdirSync,

433 realpathSync,

434 lstatSync,

435 readFileSync,

436 writeFileSync,

437 unlinkSync,

438} from "node:fs";

439import { dirname, isAbsolute, join, relative, resolve, sep } from "node:path";

431import { applyDiff, Agent, run, applyPatchTool } from "@openai/agents";440import { applyDiff, Agent, run, applyPatchTool } from "@openai/agents";

432 441 

433class WorkspaceEditor {442class WorkspaceEditor {

443 constructor(root = "workspace") {

444 mkdirSync(root, { recursive: true });

445 this.root = realpathSync(root);

446 }

447 

448 path(name) {

449 const target = resolve(this.root, name);

450 const relativePath = relative(this.root, target);

451 if (

452 !relativePath ||

453 isAbsolute(relativePath) ||

454 relativePath === ".." ||

455 relativePath.startsWith(`..${sep}`)

456 ) {

457 throw new Error("Patch paths must stay inside the workspace");

458 }

459 let current = this.root;

460 for (const part of relativePath.split(sep)) {

461 current = join(current, part);

462 if (lstatSync(current, { throwIfNoEntry: false })?.isSymbolicLink()) {

463 throw new Error("Patch paths must not traverse symbolic links");

464 }

465 }

466 return target;

467 }

468 

434 async createFile(operation) {469 async createFile(operation) {

435 // convert the diff to the file content470 const path = this.path(operation.path);

436 const content = applyDiff("", operation.diff, "create");471 const content = applyDiff("", operation.diff, "create");

437 // write the file content to the file system472 mkdirSync(dirname(path), { recursive: true });

473 writeFileSync(path, content, { encoding: "utf8", flag: "wx" });

438 return { status: "completed", output: `Created ${operation.path}` };474 return { status: "completed", output: `Created ${operation.path}` };

439 }475 }

440 476 

441 async updateFile(operation) {477 async updateFile(operation) {

442 // read the file content from the file system478 const path = this.path(operation.path);

443 const current = "";479 const content = applyDiff(readFileSync(path, "utf8"), operation.diff);

444 // convert the diff to the new file content480 writeFileSync(path, content, "utf8");

445 const newContent = applyDiff(current, operation.diff);

446 // write the updated file content to the file system

447 return { status: "completed", output: `Updated ${operation.path}` };481 return { status: "completed", output: `Updated ${operation.path}` };

448 }482 }

449 483 

450 async deleteFile(operation) {484 async deleteFile(operation) {

451 // delete the file from the file system485 unlinkSync(this.path(operation.path));

452 return { status: "completed", output: `Deleted ${operation.path}` };486 return { status: "completed", output: `Deleted ${operation.path}` };

453 }487 }

454}488}


459 name: "Patch Assistant",493 name: "Patch Assistant",

460 model: "gpt-6-astra",494 model: "gpt-6-astra",

461 instructions:495 instructions:

462 "You can edit files inside the /tmp directory using the apply_patch tool.",496 "Use apply_patch to edit files in the workspace. Supply paths relative to that workspace.",

463 tools: [497 tools: [

464 applyPatchTool({498 applyPatchTool({

465 editor,499 editor,


657- [`gpt-5.6-sol`](https://developers.openai.com/api/docs/models/gpt-5.6-sol)691- [`gpt-5.6-sol`](https://developers.openai.com/api/docs/models/gpt-5.6-sol)

658- [`gpt-5.6-terra`](https://developers.openai.com/api/docs/models/gpt-5.6-terra)692- [`gpt-5.6-terra`](https://developers.openai.com/api/docs/models/gpt-5.6-terra)

659- [`gpt-6-astra`](https://developers.openai.com/api/docs/models/gpt-6-astra)693- [`gpt-6-astra`](https://developers.openai.com/api/docs/models/gpt-6-astra)

694- [`gpt-6-cyber`](https://developers.openai.com/api/docs/models/gpt-6-cyber)

660- [`gpt-6-luna`](https://developers.openai.com/api/docs/models/gpt-6-luna)695- [`gpt-6-luna`](https://developers.openai.com/api/docs/models/gpt-6-luna)

661- [`gpt-6-sol`](https://developers.openai.com/api/docs/models/gpt-6-sol)696- [`gpt-6-sol`](https://developers.openai.com/api/docs/models/gpt-6-sol)

662- [`gpt-6.1-sol`](https://developers.openai.com/api/docs/models/gpt-6.1-sol)697- [`gpt-6.1-sol`](https://developers.openai.com/api/docs/models/gpt-6.1-sol)

Details

181 }181 }

182 182 

183 async keypress(action) {183 async keypress(action) {

184 const keys = action.keys.join("+");184 const keys = action.keys.map((key) => key.toUpperCase()).join("+");

185 if (keys !== "CTRL+A" && keys !== "CTRL+S") {185 if (keys !== "CTRL+A" && keys !== "CTRL+S") {

186 throw new Error("Only Select All and Save are allowed.");186 throw new Error(

187 `Only Select All and Save are allowed; received ${JSON.stringify(action.keys)}.`

188 );

187 }189 }

188 await this.focusEditor();190 await this.focusEditor();

189 await desktop("xdotool", "key", "--clearmodifiers", keys.toLowerCase());191 await desktop("xdotool", "key", "--clearmodifiers", keys.toLowerCase());

Details

1142- [`gpt-5.6-sol`](https://developers.openai.com/api/docs/models/gpt-5.6-sol)1142- [`gpt-5.6-sol`](https://developers.openai.com/api/docs/models/gpt-5.6-sol)

1143- [`gpt-5.6-terra`](https://developers.openai.com/api/docs/models/gpt-5.6-terra)1143- [`gpt-5.6-terra`](https://developers.openai.com/api/docs/models/gpt-5.6-terra)

1144- [`gpt-6-astra`](https://developers.openai.com/api/docs/models/gpt-6-astra)1144- [`gpt-6-astra`](https://developers.openai.com/api/docs/models/gpt-6-astra)

1145- [`gpt-6-cyber`](https://developers.openai.com/api/docs/models/gpt-6-cyber)

1145- [`gpt-6-luna`](https://developers.openai.com/api/docs/models/gpt-6-luna)1146- [`gpt-6-luna`](https://developers.openai.com/api/docs/models/gpt-6-luna)

1146- [`gpt-6-sol`](https://developers.openai.com/api/docs/models/gpt-6-sol)1147- [`gpt-6-sol`](https://developers.openai.com/api/docs/models/gpt-6-sol)

1147- [`gpt-6.1-sol`](https://developers.openai.com/api/docs/models/gpt-6.1-sol)1148- [`gpt-6.1-sol`](https://developers.openai.com/api/docs/models/gpt-6.1-sol)

Details

17 17 

18Route incoming phone calls from your SIP provider to your OpenAI project. Your backend receives a webhook and decides whether to accept each call.18Route incoming phone calls from your SIP provider to your OpenAI project. Your backend receives a webhook and decides whether to accept each call.

19 19 

20### Configure your phone number and trunk

21 

22Use a SIP trunking provider, such as Twilio, to connect a phone number to GPT-Live. After purchasing a number from your provider:

23 

241. Open your project in [OpenAI settings](https://platform.openai.com/settings). Under **Webhooks**, create a [webhook endpoint](https://developers.openai.com/api/docs/guides/webhooks) subscribed to `live.transport.incoming`.

252. Find your project ID under **General**. It starts with `proj_`; use the same project that owns the webhook.

263. Point your provider's SIP trunk at `sip:$PROJECT_ID@sip.api.openai.com;transport=tls`. For European data residency, use `sip:$PROJECT_ID@sip-eu.api.openai.com;transport=tls` instead.

27 

20Confirm that GPT-Live SIP support is enabled for your project and that your28Confirm that GPT-Live SIP support is enabled for your project and that your

21 provider's SIP trunk is routed to that project before using this flow.29 provider's SIP trunk is routed to that project before using this flow.

22 30 

23### Receive the incoming call31### Receive the incoming call

24 32 

25Configure your project's [webhook endpoint](https://developers.openai.com/api/docs/guides/webhooks) for `live.transport.incoming`. Verify the webhook signature and deduplicate deliveries, then accept or reject the call.33When OpenAI receives a call for your project, it sends a `live.transport.incoming` event to your webhook endpoint. Verify the webhook signature and deduplicate deliveries, then accept or reject the call.

26 34 

27The webhook identifies a SIP call with `data.type: "sip"` and provides `data.session_id`. Use that session ID unchanged for every Live call action. Treat `data.sip_headers` as untrusted caller metadata, not authorization.35The webhook identifies a SIP call with `data.type: "sip"` and provides `data.session_id`. Use that session ID unchanged for every Live call action. Treat `data.sip_headers` as untrusted caller metadata, not authorization.

28 36 

37For example, the webhook body contains:

38 

39```json

40{

41 "object": "event",

42 "id": "evt_abc123",

43 "type": "live.transport.incoming",

44 "created_at": 1750287018,

45 "data": {

46 "type": "sip",

47 "session_id": "live_123",

48 "sip_headers": [

49 { "name": "From", "value": "sip:+14155550123@sip.example.com" },

50 { "name": "To", "value": "sip:+18005550100@sip.example.com" },

51 { "name": "Call-ID", "value": "call-123@example.com" }

52 ]

53 }

54}

55```

56 

57The `created_at` field is a Unix timestamp in seconds. Delivery headers include `webhook-id` for deduplication, `webhook-timestamp` for the delivery attempt, and `webhook-signature` for signature verification. See [webhook verification examples](https://developers.openai.com/api/docs/guides/webhooks#verifying-webhook-signatures) for server-side handlers.

58 

29Existing integrations may still receive the deprecated `live.call.incoming` event, which has no `data.type`. During migration, handle both names and retain the old subscription until legacy deliveries and retries have drained. The same pending call can also emit a Realtime webhook; assign one handler to the accept/reject decision rather than accepting through both APIs.59Existing integrations may still receive the deprecated `live.call.incoming` event, which has no `data.type`. During migration, handle both names and retain the old subscription until legacy deliveries and retries have drained. The same pending call can also emit a Realtime webhook; assign one handler to the accept/reject decision rather than accepting through both APIs.

30 60 

31### Accept or reject the call61### Accept or reject the call


167 197 

168To [transfer the call](https://developers.openai.com/api/reference/resources/live/subresources/sessions/methods/refer), send `POST /v1/live/sessions/{session_id}/refer` with `{ "target_uri": "sip:agent@example.com" }` for your destination. To [hang up](https://developers.openai.com/api/reference/resources/live/subresources/sessions/methods/hangup), send `POST /v1/live/sessions/{session_id}/hangup` with no request body. Both return `200 OK` with an empty body on success.198To [transfer the call](https://developers.openai.com/api/reference/resources/live/subresources/sessions/methods/refer), send `POST /v1/live/sessions/{session_id}/refer` with `{ "target_uri": "sip:agent@example.com" }` for your destination. To [hang up](https://developers.openai.com/api/reference/resources/live/subresources/sessions/methods/hangup), send `POST /v1/live/sessions/{session_id}/hangup` with no request body. Both return `200 OK` with an empty body on success.

169 199 

200The transfer target becomes the SIP `Refer-To` header and can be a telephone URI such as `tel:+14155550123` or a SIP URI such as `sip:agent@example.com`. Your provider handles the remaining transfer flow.

201 

170Keep the sideband open until `session.closed` supplies final usage. See [Usage and graceful close](https://developers.openai.com/api/docs/guides/live-conversations#usage-and-graceful-close) for usage reporting and close reasons.202Keep the sideband open until `session.closed` supplies final usage. See [Usage and graceful close](https://developers.openai.com/api/docs/guides/live-conversations#usage-and-graceful-close) for usage reporting and close reasons.

171 203 

204## SIP network requirements

205 

206GPT-Live SIP calls use separate network paths for signaling and media. Configure your network to allow both:

207 

208- **SIP signaling:** `sip.api.openai.com` and `sip-eu.api.openai.com` are GeoIP-routed endpoints. Allow outbound TCP/TLS traffic to the addresses returned by DNS on port `5061`.

209- **SRTP media:** The API specifies a separate media IP address and UDP port in the negotiated SDP. Allow bidirectional SRTP traffic over UDP to and from the following CIDRs:

210 - `13.79.45.80/28`

211 - `23.98.140.64/28`

212 - `40.67.149.176/28`

213 - `40.83.204.240/28`

214 

172## Next steps with GPT-Live215## Next steps with GPT-Live

173 216 

217- [Prompting guide](https://developers.openai.com/api/docs/guides/voice-prompting?api=live): write instructions for your voice agent.

174- [Webhooks and server-side controls](https://developers.openai.com/api/docs/guides/voice-server-controls?api=live): manage a session from your backend.218- [Webhooks and server-side controls](https://developers.openai.com/api/docs/guides/voice-server-controls?api=live): manage a session from your backend.

175- [Delegation and tools](https://developers.openai.com/api/docs/guides/live-delegation): connect speech to your reasoning and tool backend.219- [Delegation and tools](https://developers.openai.com/api/docs/guides/live-delegation): connect speech to your reasoning and tool backend.

176- [Managing sessions](https://developers.openai.com/api/docs/guides/live-conversations): handle transcripts, session state, and close.220- [Managing sessions](https://developers.openai.com/api/docs/guides/live-conversations): handle transcripts, session state, and close.

221- [Latency and cost](https://developers.openai.com/api/docs/guides/voice-latency-cost?api=live): understand latency and usage.

222- [GPT-Live partner integrations](https://developers.openai.com/api/docs/guides/live-partner-integrations): find provider-specific setup guides and examples.

177 223 

178 224 

179 225 

Details

713 });713 });

714 // Send back the SDP we received from the OpenAI REST API714 // Send back the SDP we received from the OpenAI REST API

715 const sdp = await r.text();715 const sdp = await r.text();

716 res.set(

717 "Content-Type",

718 r.ok ? "application/sdp" : (r.headers.get("Content-Type") ?? "text/plain")

719 );

720 const location = r.headers.get("Location");

721 if (location) res.set("Location", location);

716 res.status(r.status).send(sdp);722 res.status(r.status).send(sdp);

717 } catch (error) {723 } catch (error) {

718 console.error("Token generation error:", error);724 console.error("Session creation error:", error);

719 res.status(500).json({ error: "Failed to generate token" });725 res.status(500).json({ error: "Failed to create session" });

720 }726 }

721});727});

722 728 


849// An endpoint which would work with the client code above - it returns855// An endpoint which would work with the client code above - it returns

850// the contents of a REST API request to this protected endpoint856// the contents of a REST API request to this protected endpoint

851app.get("/token", async (req, res) => {857app.get("/token", async (req, res) => {

858 res.set("Cache-Control", "no-store");

852 try {859 try {

853 const response = await fetch(860 const response = await fetch(

854 "https://api.openai.com/v1/realtime/client_secrets",861 "https://api.openai.com/v1/realtime/client_secrets",


898 }905 }

899 w.Header().Set("Content-Type", "application/json")906 w.Header().Set("Content-Type", "application/json")

900 w.Header().Set("Cache-Control", "no-store")907 w.Header().Set("Cache-Control", "no-store")

901 if err := json.NewEncoder(w).Encode(secret); err != nil {908 if _, err := io.WriteString(w, secret.RawJSON()); err != nil {

902 log.Print("Could not write client credential")909 log.Print("Could not write client credential")

903 }910 }

904 })911 })

Details

16 16 

17Install the WebSocket dependencies with `pip install "openai[realtime]>=3.8.0"` for Python, `npm install openai@^7.10.0 ws` for JavaScript, or `gem install openai async-websocket` for Ruby.17Install the WebSocket dependencies with `pip install "openai[realtime]>=3.8.0"` for Python, `npm install openai@^7.10.0 ws` for JavaScript, or `gem install openai async-websocket` for Ruby.

18 18 

19For Go, run `go get github.com/openai/openai-go/v3@v3.91.0`.19For Go, run `go get github.com/openai/openai-go/v3@v3.94.0`.

20For Java, add the Maven dependency `com.openai:openai-java:4.95.0` and use Java 17 or later for these examples.20For Java, add the Maven dependency `com.openai:openai-java:4.95.0` and use Java 17 or later for these examples.

21These Go and Java SDK versions provide native Responses WebSocket support.21These Go and Java SDK versions provide native Responses WebSocket support.

22 22 

libraries.md +1 −1

Details

173<dependency>173<dependency>

174 <groupId>com.openai</groupId>174 <groupId>com.openai</groupId>

175 <artifactId>openai-java</artifactId>175 <artifactId>openai-java</artifactId>

176 <version>4.99.0</version>176 <version>4.101.0</version>

177</dependency>177</dependency>

178```178```

179 179 

models.md +4 −1

Details

29- [GPT-5.4 Pro](/api/docs/models/gpt-5.4-pro.md): Version of GPT-5.4 that produces smarter and more precise responses.29- [GPT-5.4 Pro](/api/docs/models/gpt-5.4-pro.md): Version of GPT-5.4 that produces smarter and more precise responses.

30- [GPT-5.5](/api/docs/models/gpt-5.5.md): A new class of intelligence for coding and professional work.30- [GPT-5.5](/api/docs/models/gpt-5.5.md): A new class of intelligence for coding and professional work.

31- [GPT-5.5 Pro](/api/docs/models/gpt-5.5-pro.md): Version of GPT-5.5 that produces smarter and more precise responses.31- [GPT-5.5 Pro](/api/docs/models/gpt-5.5-pro.md): Version of GPT-5.5 that produces smarter and more precise responses.

32- [GPT-5.6 Cyber](/api/docs/models/gpt-5.6-cyber.md): Our most advanced cybersecurity model for authorized vulnerability research and security testing.32- [GPT-5.6 Cyber](/api/docs/models/gpt-5.6-cyber.md): Cybersecurity model for authorized vulnerability research and security testing.

33- [GPT-5.6 Luna](/api/docs/models/gpt-5.6-luna.md): GPT-5.6 model optimized for cost-sensitive workloads33- [GPT-5.6 Luna](/api/docs/models/gpt-5.6-luna.md): GPT-5.6 model optimized for cost-sensitive workloads

34- [GPT-5.6 Sol](/api/docs/models/gpt-5.6-sol.md): GPT-5.6 flagship model for complex professional work34- [GPT-5.6 Sol](/api/docs/models/gpt-5.6-sol.md): GPT-5.6 flagship model for complex professional work

35- [GPT-5.6 Terra](/api/docs/models/gpt-5.6-terra.md): GPT-5.6 model that balances intelligence and cost35- [GPT-5.6 Terra](/api/docs/models/gpt-5.6-terra.md): GPT-5.6 model that balances intelligence and cost

36- [GPT-6 Astra](/api/docs/models/gpt-6-astra.md): Our most capable model for the most demanding work.36- [GPT-6 Astra](/api/docs/models/gpt-6-astra.md): Our most capable model for the most demanding work.

37- [GPT-6 Luna](/api/docs/models/gpt-6-luna.md): Our most efficient model for focused, high-volume tasks.37- [GPT-6 Luna](/api/docs/models/gpt-6-luna.md): Our most efficient model for focused, high-volume tasks.

38- [GPT-6 Sol](/api/docs/models/gpt-6-sol.md): Built to power complex coding and agentic workflows.38- [GPT-6 Sol](/api/docs/models/gpt-6-sol.md): Built to power complex coding and agentic workflows.

39- [GPT-6-Cyber](/api/docs/models/gpt-6-cyber.md): Investigate a vulnerability, reproduce it in an authorized test environment, or verify a fix.

39- [GPT-6.1 Sol](/api/docs/models/gpt-6.1-sol.md): Near-Astra performance for complex work at a lower cost.40- [GPT-6.1 Sol](/api/docs/models/gpt-6.1-sol.md): Near-Astra performance for complex work at a lower cost.

40- [GPT-6.1 Terra](/api/docs/models/gpt-6.1-terra.md): A fast, efficient model for visual reasoning, precise computer use, and clear, natural writing.41- [GPT-6.1 Terra](/api/docs/models/gpt-6.1-terra.md): A fast, efficient model for visual reasoning, precise computer use, and clear, natural writing.

41- [GPT-Audio-1.5](/api/docs/models/gpt-audio-1.5.md): The best voice model for audio in, audio out with Chat Completions.42- [GPT-Audio-1.5](/api/docs/models/gpt-audio-1.5.md): The best voice model for audio in, audio out with Chat Completions.

42- [GPT-Image-2](/api/docs/models/gpt-image-2.md): State-of-the-art image generation model43- [GPT-Image-2](/api/docs/models/gpt-image-2.md): State-of-the-art image generation model

43- [GPT-Image-2.5 Flare](/api/docs/models/gpt-image-2.5-flare.md): Fast, high-quality everyday image generation44- [GPT-Image-2.5 Flare](/api/docs/models/gpt-image-2.5-flare.md): Fast, high-quality everyday image generation

44- [GPT-Image-2.5 Sunburst](/api/docs/models/gpt-image-2.5-sunburst.md): Our most capable model for image generation and editing45- [GPT-Image-2.5 Sunburst](/api/docs/models/gpt-image-2.5-sunburst.md): Our most capable model for image generation and editing

46- [GPT-Image-2.6 Flare](/api/docs/models/gpt-image-2.6-flare.md): Image generation and editing for fast iteration

47- [GPT-Image-2.6 Sunburst](/api/docs/models/gpt-image-2.6-sunburst.md): Image generation and editing for detailed visual work

45- [GPT-Live 1](/api/docs/models/gpt-live-1.md): Our premier model for natural, expressive voice conversations with smooth interruption handling.48- [GPT-Live 1](/api/docs/models/gpt-live-1.md): Our premier model for natural, expressive voice conversations with smooth interruption handling.

46- [GPT-Live-Transcribe](/api/docs/models/gpt-live-transcribe.md): Low-latency speech-to-text model for realtime transcription49- [GPT-Live-Transcribe](/api/docs/models/gpt-live-transcribe.md): Low-latency speech-to-text model for realtime transcription

47- [gpt-oss-120b](/api/docs/models/gpt-oss-120b.md): Most powerful open-weight model, fits into an H100 GPU50- [gpt-oss-120b](/api/docs/models/gpt-oss-120b.md): Most powerful open-weight model, fits into an H100 GPU

models/all.md +4 −1

Details

19 19 

20Models for image generation and editing.20Models for image generation and editing.

21 21 

22- [GPT-Image-2.6 Sunburst](/api/docs/models/gpt-image-2.6-sunburst.md): Image generation and editing for detailed visual work

23- [GPT-Image-2.6 Flare](/api/docs/models/gpt-image-2.6-flare.md): Image generation and editing for fast iteration

22- [GPT-Image-2.5 Sunburst](/api/docs/models/gpt-image-2.5-sunburst.md): Our most capable model for image generation and editing24- [GPT-Image-2.5 Sunburst](/api/docs/models/gpt-image-2.5-sunburst.md): Our most capable model for image generation and editing

23- [GPT-Image-2.5 Flare](/api/docs/models/gpt-image-2.5-flare.md): Fast, high-quality everyday image generation25- [GPT-Image-2.5 Flare](/api/docs/models/gpt-image-2.5-flare.md): Fast, high-quality everyday image generation

24- [GPT-Image-2](/api/docs/models/gpt-image-2.md): State-of-the-art image generation model26- [GPT-Image-2](/api/docs/models/gpt-image-2.md): State-of-the-art image generation model


42 44 

43Advanced cyber models for defenders45Advanced cyber models for defenders

44 46 

45- [GPT-5.6 Cyber](/api/docs/models/gpt-5.6-cyber.md): Our most advanced cybersecurity model for authorized vulnerability research and security testing.47- [GPT-6-Cyber](/api/docs/models/gpt-6-cyber.md): Investigate a vulnerability, reproduce it in an authorized test environment, or verify a fix.

48- [GPT-5.6 Cyber](/api/docs/models/gpt-5.6-cyber.md): Cybersecurity model for authorized vulnerability research and security testing.

46 49 

47## Life sciences50## Life sciences

48 51 

quickstart.md +1 −1

Details

190<dependency>190<dependency>

191 <groupId>com.openai</groupId>191 <groupId>com.openai</groupId>

192 <artifactId>openai-java</artifactId>192 <artifactId>openai-java</artifactId>

193 <version>4.99.0</version>193 <version>4.101.0</version>

194</dependency>194</dependency>

195```195```

196 196