GPT Image 2 Text to Image
Get API Keygpt-image-2-text-to-image
GPT Image 2 Text to Image API Documentation
Generate image content using the
gpt-image-2-text-to-imagemodel
Overview
This document describes how to use the gpt-image-2-text-to-image model for image generation.
The integration flow consists of two steps:
- Create a generation task
- Query task status and results
Authentication
All API requests require a Bearer Token in the request header:
Authorization: Bearer YOUR_API_KEYGet API Key:
- Open the API Keys page
- Click
Create API Key - Add the key to the request header:
Authorization: Bearer YOUR_API_KEY
1. Create Generation Task
API Information
- URL:
POST https://aigptimage.com/api/v1/jobs/createTask - Content-Type:
application/json
Request Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Public model ID. Must be exactly gpt-image-2-text-to-image |
input | object | Yes | Input parameters object |
Model Parameter
The model parameter specifies which public image model to use.
| Property | Value | Description |
|---|---|---|
| Format | gpt-image-2-text-to-image | Exact public model identifier |
| Type | string | Must be passed as a string |
| Required | Yes | Mandatory for all create task requests |
Note: The
modelvalue must match exactly and use the public model ID shown on this page.
input Object Parameters
prompt
- Type:
string - Required: Yes
- Description: Text prompt used to describe the image to generate
- Max Length: 20000 characters
aspect_ratio
- Type:
string - Required: No
- Description: Output image aspect ratio
- Common Options:
auto,1:1,4:5,3:4,2:3,16:9,9:16,21:9 - Default Value: model default
resolution
- Type:
string - Required: No
- Description: Output resolution used for generation and billing
- Options:
1K,2K,4K - Default Value:
1K
quality
- Type:
string - Required: No
- Description: Optional quality parameter passed through to the image backend
output_format
- Type:
string - Required: No
- Description: Optional output image format passed through to the image backend
Request Example
{
"model": "gpt-image-2-text-to-image",
"input": {
"prompt": "A cinematic product photo of a transparent speaker on a reflective black table",
"aspect_ratio": "1:1",
"resolution": "1K"
}
}Response Example
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_xxxxxxxxxxxxx"
}
}Response Parameters
| Parameter | Type | Description |
|---|---|---|
code | integer | Response status code. 200 means success |
msg | string | Response message |
data.taskId | string | Task ID used to query task status |
Real Example
Create task:
curl -X POST "https://aigptimage.com/api/v1/jobs/createTask" \
-H "Authorization: Bearer sk-xxxxxxxxxx" \
-H "Content-Type: application/json" \
-H "X-Request-ID: xxxxxxxxxxxx" \
-d '{
"model": "gpt-image-2-text-to-image",
"input": {
"prompt": "Generate an analysis and usage instruction diagram for the equipment name narrow-grip pulldown machine. Requirements: 3:4 aspect ratio, 4k resolution."
}
}'Create task response:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "3ebe82c2-3abc-4015-9608-901baca54948"
}
}2. Query Task Status
API Information
- URL:
GET https://aigptimage.com/api/v1/jobs/recordInfo - Parameter:
taskId(URL query parameter)
Request Example
GET https://aigptimage.com/api/v1/jobs/recordInfo?taskId=task_xxxxxxxxxxxxxResponse Example
{
"code": 200,
"msg": "success",
"data": {
"taskId": "task_xxxxxxxxxxxxx",
"model": "gpt-image-2-text-to-image",
"state": "waiting",
"param": "{\"model\":\"gpt-image-2-text-to-image\",\"input\":{\"prompt\":\"A cinematic product photo of a transparent speaker on a reflective black table\",\"aspect_ratio\":\"1:1\",\"resolution\":\"1K\"}}",
"resultJson": null,
"failCode": null,
"failMsg": null,
"costTime": null,
"completeTime": null,
"createTime": 1757584164490
}
}Response Parameters
| Parameter | Type | Description |
|---|---|---|
code | integer | Response status code. 200 means success |
msg | string | Response message |
data.taskId | string | Task ID |
data.model | string | Public model ID |
data.state | string | Task status: waiting, success, fail |
data.param | string | Original create task request parameters as JSON string |
data.resultJson | string | null | Result JSON string. For image tasks it contains resultUrls when successful |
data.failCode | string | null | Failure code when the task fails |
data.failMsg | string | null | Failure message when the task fails |
data.costTime | integer | null | Task duration in milliseconds after completion |
data.completeTime | integer | null | Completion timestamp in milliseconds |
data.createTime | integer | Creation timestamp in milliseconds |
Success Result Structure
For image generation tasks, resultJson usually has this structure:
{
"resultUrls": ["https://your-cdn.example.com/result-1.png"]
}Real Query Example
Query task:
curl "https://aigptimage.com/api/v1/jobs/recordInfo?taskId=3ebe82c2-3abc-4015-9608-901baca54948" \
-H "Authorization: Bearer sk-xxxxxxxxxx"Query task response:
{
"code": 200,
"msg": "success",
"data": {
"taskId": "3ebe82c2-3abc-4015-9608-901baca54948",
"model": "gpt-image-2-text-to-image",
"state": "success",
"param": "{\"model\":\"gpt-image-2-text-to-image\",\"input\":{\"prompt\":\"Generate an analysis and usage instruction diagram for the equipment name narrow-grip pulldown machine. Requirements: 3:4 aspect ratio, 4k resolution.\"}}",
"resultJson": "{\"resultUrls\":[\"https://cdn.aigptimage.com/generation/image/3ebe82c2-3abc-4015-9608-901baca54948/1.png\"]}",
"failCode": null,
"failMsg": null,
"costTime": 59699,
"completeTime": 1777467267840,
"createTime": 1777467208141
}
}Usage Flow
- Call
POST /api/v1/jobs/createTask - Extract
taskIdfrom the response - Poll
GET /api/v1/jobs/recordInfo?taskId=... - Wait until
statebecomessuccessorfail - Read output image URLs from
resultJsonwhen the task succeeds
Notes
- API calls use the same credit balance and billing rules as the web app
- Rate limits depend on the API key tier
resolutionaffects both output size and credit consumption
Error Codes
| Status Code | Description |
|---|---|
200 | Request successful |
400 | Invalid request parameters |
401 | Authentication failed or API key is invalid |
402 | Insufficient credits |
404 | Task or resource not found |
409 | Active task limit exceeded or request conflict |
422 | Parameter validation failed |
429 | Request rate limit exceeded |
500 | Internal server error |