GPT Image 2
OpenAI's GPT Image 2 raw image model can generate high-quality images based on natural language prompts. It provides a ready-to-use REST inference API, offering excellent performance, no cold start, and affordability.
GPT Image 2
OpenAI's GPT Image 2 text-to-image model generates high-quality images from natural-language prompts. It provides a ready-to-use REST inference API with excellent performance, no cold starts, and affordable pricing.
Base URL
https://api.icreat.aiAuthentication
All API requests must be authenticated with an API Key. You can obtain an API Key from the console.
export ICREAT_API_KEY="your-api-key-here"HTTP Request Headers
import os
API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer " + API_KEY,
}Protect your API Key
Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.
Code Examples
Image and video generation uses a three-step async flow: submit a task to get task_id, poll status, then fetch results when status is SUCCEEDED. The examples below use the same task_id across all three steps.
1. Submit Task
Send a generation request to the submit endpoint. On success, the response body returns task_id — save it for polling and result retrieval.
2. Poll Status
Use the task_id from the submit step to check progress. The response body contains only the status field (SUBMITTED | SUCCEEDED | FAILED).
3. Get Result
When the task succeeds, use the same task_id to fetch the output. The response is a top-level array; each item includes type, url, and download_url.
Input Schema
Submit Task — Input
The following parameters are accepted in the submit request body.
Total: 4 Required: 3 Optional: 1
Text prompt. Maximum length: 32,000 characters.
Dimensions of the generated image. Supports presets such as 1024x1024, 2048x2048, 1280x720, 2560x1440, and more.
Controls how closely the output preserves the original input image.
List of reference image URLs (1–10). When non-empty, image-to-image generation is performed.
Poll Status — Input
Total: 1 Required: 1 Optional: 0
Task ID returned by the submit endpoint.
Get Result — Input
Total: 1 Required: 1 Optional: 0
Task ID returned by the submit endpoint.
Output Schema
Submit Task — Output
Total: 1
Unique identifier for the async task. Use this ID to poll status and retrieve results.
Poll Status — Output
Total: 1
Current task status. Fetch results when status is SUCCEEDED.
Get Result — Output
The response body is an array of resource objects (array[object]).
Total: 3
Resource type; Image for image models.
Preview/access URL for the generated image.
Download URL for the generated image (with attachment header).
LLM Prompt
The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.
# openai/gpt-image-2
> OpenAI's GPT Image 2 text-to-image model generates high-quality images from natural-language prompts.
## Overview
Use the iCreat three-step async task API: submit a generation request, poll status, then fetch the image URL on success.
## API Info
- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/openai/gpt-image-2`
- **Poll endpoint (POST)**:`/v1/task/query-status`
- **Get result endpoint (POST)**:`/v1/task/get-result`
- **Model ID**:`openai/gpt-image-2`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`
## Call Flow
1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Poll**: POST `/v1/task/query-status` with `{ "task_id": "..." }`; response contains **only** `{ "status": "SUBMITTED|SUCCEEDED|FAILED" }`
3. **Get result**: when `status` is `SUCCEEDED`, POST `/v1/task/get-result`; top-level array; read `url` or `download_url` when `type` is `Image`
### Input Notes
- Request body uses top-level flat fields
- Required: `prompt`, `size`, `quality`
- Optional: `image`
- `prompt` (required): Text prompt. Maximum length: 32,000 characters.
- `size` (required): Dimensions of the generated image. Supports presets such as `1024x1024`, `2048x2048`, `1280x720`, `2560x1440`, and more.
- `quality` (required): Controls how closely the output preserves the original input image.
- `image` (optional): List of reference image URLs (1–10). When non-empty, image-to-image generation is performed.
### Output Notes
- Poll: read `status` only
- Result: top-level `[{ "type": "Image", "url": "...", "download_url": "..." }]`
## Notes
- Use the same `task_id` across all three steps; do not skip polling
- `FAILED` is terminal — check request parameters or reference media