SpyBara
Go Premium

resources/images/methods/edit/index.md 2026-08-19 21:01 UTC to 2026-08-20 23:59 UTC

9 added, 5 removed.

2026
Mon 24 16:57 Fri 21 21:58 Thu 20 23:59 Wed 19 21:01 Tue 18 22:02 Mon 17 22:57 Sun 16 16:58 Sat 15 02:02 Fri 14 23:57 Thu 13 22:00 Wed 12 16:01 Tue 11 22:59 Mon 10 22:00 Sat 8 00:59 Fri 7 21:59 Thu 6 18:59 Wed 5 02:01 Tue 4 22:59 Mon 3 21:58 Sat 1 01:00

Create image edit

post /images/edits

Creates an edited or extended image given one or more source images and a prompt. This endpoint supports GPT Image models (gpt-image-1.5, gpt-image-1, gpt-image-1-mini, and chatgpt-image-latest) and dall-e-2.

Body Parameters

  • images: array of object { file_id, image_url }

    Input image references to edit. For GPT image models, you can provide up to 16 images.

    • file_id: optional string

      The File API ID of an uploaded image to use as input.

    • image_url: optional string

      A fully qualified URL or base64-encoded data URL.

  • prompt: string

    A text description of the desired image edit.

  • background: optional "transparent" or "opaque" or "auto" or null

    Set the background of the generated image output. Transparent backgrounds are available for supported GPT Image models. For gpt-image-2 and gpt-image-2-2026-04-21, this support is in preview. When using transparent, set the output format to png or webp.

    • "transparent"

    • "opaque"

    • "auto"

  • input_fidelity: optional "high" or "low" or null

    Controls fidelity to the original input image(s).

    • "high"

    • "low"

  • mask: optional object { file_id, image_url }

    Reference an input image by either URL or uploaded file ID. Provide exactly one of image_url or file_id.

    • file_id: optional string

      The File API ID of an uploaded image to use as input.

    • image_url: optional string

      A fully qualified URL or base64-encoded data URL.

  • model: optional string or "gpt-image-1.5" or "gpt-image-2" or "gpt-image-2-2026-04-21" or 3 more or null

    The GPT image model to use for image editing, including gpt-image-2 and its dated snapshot gpt-image-2-2026-04-21.

    • string

    • "gpt-image-1.5" or "gpt-image-2" or "gpt-image-2-2026-04-21" or 3 more

      The GPT image model to use for image editing, including gpt-image-2 and its dated snapshot gpt-image-2-2026-04-21.

      • "gpt-image-1.5"

      • "gpt-image-2"

      • "gpt-image-2-2026-04-21"

      • "gpt-image-1"

      • "gpt-image-1-mini"

      • "chatgpt-image-latest"

  • moderation: optional "low" or "auto" or null

    Moderation level for GPT image models.

    • "low"

    • "auto"

  • n: optional number or null

    The number of edited images to generate.

  • output_compression: optional number or null

    Compression level for jpeg or webp output.

  • output_format: optional "png" or "jpeg" or "webp" or null

    Output image format. Supported for GPT image models.

    • "png"

    • "jpeg"

    • "webp"

  • partial_images: optional number or null

    The number of partial images to generate. This parameter is used for streaming responses that return partial images. Value must be between 0 and 3. When set to 0, the response will be a single image sent in one streaming event.

    Note that the final image may be sent before the full number of partial images are generated if the full image is generated more quickly.

  • quality: optional "low" or "medium" or "high" or "auto" or null

    Output quality for GPT image models.

    • "low"

    • "medium"

    • "high"

    • "auto"

  • size: optional "auto" or "1024x1024" or "1536x1024" or "1024x1536" or null

    Requested output image size.

    • "auto"

    • "1024x1024"

    • "1536x1024"

    • "1024x1536"

  • stream: optional boolean or null

    Stream partial image results as events.

  • user: optional string

    A unique identifier representing your end-user, which can help OpenAI monitor and detect abuse.

Returns

  • ImagesResponse object { created, background, data, 4 more }

    The response from the image generation endpoint.

    • created: number

      The Unix timestamp (in seconds) of when the image was created.

    • background: optional "transparent" or "opaque"

      The background parameter used for the image generation. Either transparent or opaque.

      • "transparent"

      • "opaque"

    • data: optional array of Image

      The list of generated images.

      • b64_json: optional string

        The base64-encoded JSON of the generated image. Returned by default for the GPT image models, and only present if response_format is set to b64_json for dall-e-2 and dall-e-3.

      • revised_prompt: optional string

        For dall-e-3 only, the revised prompt that was used to generate the image.

      • url: optional string

        When using dall-e-2 or dall-e-3, the URL of the generated image if response_format is set to url (default value). Unsupported for the GPT image models.

    • output_format: optional "png" or "webp" or "jpeg"

      The output format of the image generation. Either png, webp, or jpeg.

      • "png"

      • "webp"

      • "jpeg"

    • quality: optional "low" or "medium" or "high"

      The quality of the image generated. Either low, medium, or high.

      • "low"

      • "medium"

      • "high"

    • size: optional "1024x1024" or "1024x1536" or "1536x1024"

      The size of the image generated. Either 1024x1024, 1024x1536, or 1536x1024.

      • "1024x1024"

      • "1024x1536"

      • "1536x1024"

    • usage: optional object { input_tokens, input_tokens_details, output_tokens, 2 more }

      For gpt-image-1 only, the token usage information for the image generation.

      • input_tokens: number

        The number of tokens (images and text) in the input prompt.

      • input_tokens_details: object { image_tokens, text_tokens }

        The input tokens detailed information for the image generation.

        • image_tokens: number

          The number of image tokens in the input prompt.

        • text_tokens: number

          The number of text tokens in the input prompt.

      • output_tokens: number

        The number of output tokens generated by the model.

      • total_tokens: number

        The total number of tokens (images and text) used for the image generation.

      • output_tokens_details: optional object { image_tokens, text_tokens }

        The output token details for the image generation.

        • image_tokens: number

          The number of image output tokens generated by the model.

        • text_tokens: number

          The number of text output tokens generated by the model.

Example

curl https://api.openai.com/v1/images/edits \
    -H 'Content-Type: application/json' \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -d '{
          "images": [
            {
              "image_url": "https://example.com/source-image.png"
            }
          ],
          "prompt": "Add a watercolor effect to this image",
          "model": "gpt-image-1.5",
          "quality": "high",
          "size": "1024x1024"
        }'

Response

{
  "created": 0,
  "background": "transparent",
  "data": [
    {
      "b64_json": "b64_json",
      "revised_prompt": "revised_prompt",
      "url": "https://example.com"
    }
  ],
  "output_format": "png",
  "quality": "low",
  "size": "1024x1024",
  "usage": {
    "input_tokens": 0,
    "input_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    },
    "output_tokens": 0,
    "total_tokens": 0,
    "output_tokens_details": {
      "image_tokens": 0,
      "text_tokens": 0
    }
  }
}

Edit image

curl -s -D >(grep -i x-request-id >&2) \
  -o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) \
  -X POST "https://api.openai.com/v1/images/edits" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=gpt-image-1.5" \
  -F "image[]=@body-lotion.png" \
  -F "image[]=@bath-bomb.png" \
  -F "image[]=@incense-kit.png" \
  -F "image[]=@soap.png" \
  -F 'prompt=Create a lovely gift basket with these four items in it'

Streaming

curl -s -N -X POST "https://api.openai.com/v1/images/edits" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -F "model=gpt-image-1.5" \
  -F "image[]=@body-lotion.png" \
  -F "image[]=@bath-bomb.png" \
  -F "image[]=@incense-kit.png" \
  -F "image[]=@soap.png" \
  -F 'prompt=Create a lovely gift basket with these four items in it' \
  -F "stream=true"

Response

event: image_edit.partial_image
data: {"type":"image_edit.partial_image","b64_json":"...","partial_image_index":0}

event: image_edit.completed
data: {"type":"image_edit.completed","b64_json":"...","usage":{"total_tokens":100,"input_tokens":50,"output_tokens":50,"input_tokens_details":{"text_tokens":10,"image_tokens":40}}}