The cheapest GPT Image 2 channel on the platform, now with native 1K/2K/4K tiers at medium quality: 1K $0.008, 2K $0.015, 4K $0.025 per image. One endpoint auto-routes text-to-image and image editing (reference images + multi-image fusion), with synchronous responses — no polling.
Authorization: Bearer YOUR_API_KEY| Model | model | Price | Notes |
|---|---|---|---|
| GPT Image 2 Lite | gpt-image-2-lite | 1K $0.008 · 2K $0.015 · 4K $0.025 /image | Sync · 1K/2K/4K (medium quality) · text-to-image + editing |
/api/v1/images/generations# ─── 1. Text-to-image ──────────────────────────────────────
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-lite",
"prompt": "A children'"'"'s book drawing of a veterinarian using a stethoscope to listen to the heartbeat of a baby otter.",
"aspect_ratio": "1:1",
"resolution": "2K"
}'
# Response (sync — image URL returned directly):
# { "code": 200, "msg": "success", "data": { "taskId": "clxxx", "state": "completed", "resultUrls": ["https://r2.apimodels.app/..."] } }
# ─── 2. Image editing with a reference URL ────────────────
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-lite",
"prompt": "Change the season to winter with snow",
"image_url": "https://example.com/landscape.jpg"
}'
# ─── 3. Multi-image fusion via base64 ─────────────────────
curl -X POST https://api.apimodels.app/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-image-2-lite",
"prompt": "Combine the model from image 1 with the outfit from image 2",
"image_base64": "BASE64_IMAGE_1",
"image_urls": ["https://example.com/outfit.jpg"]
}'
# ─── 4. Poll status (lite is sync, this returns completed) ─
curl "https://api.apimodels.app/v1/images/generations?task_id=TASK_ID" \
-H "Authorization: Bearer YOUR_API_KEY"| Field | Required | Type | Description |
|---|---|---|---|
| model | Yes | string | Must be "gpt-image-2-lite" |
| prompt | Yes | string | Prompt or editing instructions. When editing multiple images, reference them as "image 1", "image 2". |
| aspect_ratio | No | string | "auto" (default) or a W:H value such as 1:1 / 16:9 / 9:16 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9. Note on auto: when editing, it follows the reference image; for text-to-image there is nothing to follow, so it falls back to a 1:1 square rather than letting the model choose. Pick an enum value when you need a shape. Two things measured on 2026-08-13: asking for a ratio in the prompt does nothing (prompt-only "5:2" with no size still returned 1024x1024), and an exact size outside the enum is snapped to the nearest grid step (1600x640 for 5:2 and 1552x656 for 21:9 both came back 1456x624). The widest shape currently reachable is 21:9 (2.33). |
| resolution | No | string | "1K" (default) / "2K" / "4K". Tiered pricing: 1K $0.008, 2K $0.015, 4K $0.025. |
| image_url | No | string | Single reference image URL — providing it routes to image editing. |
| image_urls | No | string[] | Multiple reference image URLs for multi-image fusion. |
| image_base64 | No | string | Base64 or data-URI reference image (for local files). |
| image_mime_type | No | string | MIME type of image_base64. Default image/png. |
| n | No | integer | Number of images 1-10 (default 1). Linear cost per image. |
| callback_url | No | string | Webhook URL called when task completes. |
| Field | Required | Type | Description |
|---|---|---|---|
| code | — | integer | 200 on success; otherwise see the error-code table. |
| data.taskId | — | string | Task ID. |
| data.state | — | string | completed / failed. Sync model — state is usually already completed when create returns. |
| data.resultUrls | — | string[] | R2-hosted image URLs. |
| data.failMsg | — | string | Failure reason (when state=failed). |
| data.costTime | — | integer | Duration in ms. |
Related: for the async task contract and the full ratio enum see GPT Image 2; try it in the Playground
Priced by resolution tier at medium quality: 1K $0.008, 2K $0.015, 4K $0.025 per image — independent of aspect ratio and reference count, the cheapest GPT Image 2 channel on apimodels.app. Failed requests are not billed.
Yes — pass resolution: "2K" or "4K" (default 1K). Output is native at each tier (2K ≈ 4MP, 4K up to 8.3MP), not upscaled.
Median generation is about 41 seconds — the quickest tier in the gpt-image-2 family. The POST create call returns a taskId with state=pending straight away, so the default flow is create-then-poll (or a callback_url). To get the image back from one blocking call instead, pass an OpenAI-style size such as 1024x1024 and no callback_url.