Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runflow.io/llms.txt

Use this file to discover all available pages before exploring further.

Pricing: $0.133/image. Endpoint: POST /v1/models/openai/gpt-image-2/edit/runs.
GPT Image 2.0, OpenAI’s latest image model, is capable of making fine-grained, detailed edits to images.

Overview

Pricing

  • Base price: $0.133/image
  • Note: High quality (default)

GPT Image 2 Edit API

Endpoint: POST /v1/models/openai/gpt-image-2/edit/runs

Run the model

Python

import requests

response = requests.post(
    "https://api.runflow.io/v1/models/openai/gpt-image-2/edit/runs",
    headers={"Authorization": "Bearer RUNFLOW_API_KEY"},
    json={
        "input": {
            "prompt": "Replace the background with a sunlit seaside cafe at golden hour, keep the subject's pose, outfit, and lighting on the face intact",
            "image_urls": [
                "https://public.runflow.io/images/models/_base/portrait-woman-studio.png"
            ]
        },
        "callback_url": "https://your-server.com/webhook"
    },
)

data = response.json()
print(data)

Node.js

const response = await fetch(
  "https://api.runflow.io/v1/models/openai/gpt-image-2/edit/runs",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer RUNFLOW_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
        "input": {
            "prompt": "Replace the background with a sunlit seaside cafe at golden hour, keep the subject's pose, outfit, and lighting on the face intact",
            "image_urls": [
                "https://public.runflow.io/images/models/_base/portrait-woman-studio.png"
            ]
        },
        "callback_url": "https://your-server.com/webhook"
    }),
  }
);

const data = await response.json();
console.log(data);

cURL

curl -X POST https://api.runflow.io/v1/models/openai/gpt-image-2/edit/runs \
  -H "Authorization: Bearer $RUNFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
    "input": {
        "prompt": "Replace the background with a sunlit seaside cafe at golden hour, keep the subject's pose, outfit, and lighting on the face intact",
        "image_urls": [
            "https://public.runflow.io/images/models/_base/portrait-woman-studio.png"
        ]
    },
    "callback_url": "https://your-server.com/webhook"
}
JSON

Request parameters

ParameterTypeRequiredDescription
inputobjectrequiredModel input parameters. See “Input schema” below.
callback_urlstring | nulloptionalWebhook URL - POSTed when the run reaches a terminal state.
metadataobject | nulloptionalArbitrary key-value pairs attached to the run.

Input schema

FieldTypeRequiredAllowed valuesDescription
promptstringrequiredAnyThe prompt for image generation
image_urlsimage_listrequiredAnyThe URLs of the images to use as a reference for the generation.
num_imagesintegeroptionalAnyNumber of images to generate
output_formatstringoptionaljpeg, png, webpOutput format for the images
image_sizestringoptionalsquare_hd, square, portrait_4_3, portrait_16_9, landscape_4_3, landscape_16_9, autoThe size of the generated image. Use ‘auto’ to infer from input images.
mask_urlimageoptionalAnyThe URL of the mask image to use for the generation. This indicates what part of the image to edit.
qualitystringoptionallow, medium, highQuality for the generated image
sync_modebooleanoptionalAnyIf True, the media will be returned as a data URI and the output data won’t be available in the request history.

Output schema

FieldTypeDescription
outputsjsonUnified output array.
seedjsonSeed used for generation, or null.
timingjsonProvider timing info, or null.
nsfw_detectedjsonNSFW flag, or null.

Callback payload

When you provide a callback_url, Runflow POSTs to it once the run reaches a terminal state.
FieldTypeDescription
eventstringEvent type: “run.completed”, “run.failed”, or “run.cancelled”.
run_idstringThe unique identifier of the run.
statusstringTerminal status: “succeeded”, “failed”, or “cancelled”.
outputobject | nullThe run output. Null if the run failed or was cancelled.
duration_msnumber | nullTotal run duration in milliseconds.
created_atstring | nullISO 8601 timestamp when the run was created.
completed_atstring | nullISO 8601 timestamp when the run reached terminal state.
metadataobject | nullThe metadata object passed at run creation, if any.
  • Retries: 3 attempts with exponential backoff (1s, 2s). Retries on 5xx / network errors only.
  • Headers: Runflow-Request-Id is always sent. Runflow-Signature is sent if a signing secret is configured.

Additional Resources

Browse all models

Browse the catalog.

Run lifecycle

Callbacks, polling, statuses.

Callbacks

Handle async results.

Pricing

How requests bill out.