SpyBara
Go Premium

resources/images/methods/edit/index.md 2026-07-07 08:02 UTC to 2026-07-09 20:58 UTC

198 added, 0 removed.

2026
Sat 25 05:59 Thu 23 18:00 Wed 22 20:02 Mon 20 20:00 Fri 17 17:00 Thu 16 20:57 Wed 15 02:58 Tue 14 06:58 Mon 13 15:59 Sun 12 06:58 Fri 10 23:02 Thu 9 20:58 Tue 7 08:02

Create image edit

post /images/edits

Create image edit

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: multipart/form-data' \
    -H "Authorization: Bearer $OPENAI_API_KEY" \
    -F image='Example data' \
    -F prompt='A cute baby sea otter wearing a beret' \
    -F background=transparent \
    -F n=1 \
    -F output_compression=100 \
    -F output_format=png \
    -F partial_images=1 \
    -F quality=high \
    -F response_format=url \
    -F user=user-1234

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}}}