Submit a request
Create an async generation task and poll the task endpoint for terminal status updates.
GPT Image 2 is an OpenAI image model that supports text-to-image generation and image-based creative rework.
Submit a task to MindVideo with your platform model slug. The response includes a request ID, task ID, normalized status, and estimated cost.
For production retries, send a unique Idempotency-Key per business request. Reusing the same key with the same payload returns the original task without charging again; reusing it with different input returns 409.
curl -X POST https://api.mindvideo.ai/api/v1/tasks \
-H "Authorization: Bearer mv_live_xxx" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: task_$(date +%s)" \
-d '{
"model": "gpt-image-2",
"input": {
"prompt": "一只橘猫坐在窗台上看夕阳,水彩画风格",
"size": "16:9",
"resolution": "2k",
"n": 1
}
}'Every server-side request must include an API key in the Authorization header. Keys can be created, disabled, and deleted from the dashboard.
The platform maps runtime states into queued, processing, succeeded, failed, or cancelled so clients do not depend on model-specific fields.
Create an async generation task and poll the task endpoint for terminal status updates.
curl https://api.mindvideo.ai/api/v1/tasks/task_demo_model \
-H "Authorization: Bearer mv_live_xxx"curl https://api.mindvideo.ai/api/v1/tasks/task_demo_model/events \
-H "Authorization: Bearer mv_live_xxx"{
"request_id": "req_demo_model",
"task_id": "task_demo_model",
"status": "succeeded",
"cost_estimate": 0.0135,
"cost_actual": 0.0135,
"output": {
"images": [
{
"url": "https://images.unsplash.com/photo-1515886657613-9f3515b0c78f?auto=format&fit=crop&w=1200&q=80"
}
]
}
}Inputs can reference hosted files or compact data URIs depending on model constraints. Production apps should prefer stable hosted URLs.
{
"type": "object",
"required": [
"prompt"
],
"properties": {
"n": {
"enum": [
1
],
"type": "integer",
"title": "Images",
"default": 1,
"maximum": 1,
"minimum": 1
},
"size": {
"type": "string",
"title": "Aspect ratio or custom size",
"default": "1:1",
"description": "Supported ratios: auto, 1:1, 3:2, 2:3, 4:3, 3:4, 5:4, 4:5, 16:9, 9:16, 2:1, 1:2, 3:1, 1:3, 21:9, 9:21. You can also pass pixel sizes such as 1881x836.",
"x-playground": {
"placeholder": "1:1"
}
},
"prompt": {
"type": "string",
"title": "Prompt",
"minLength": 1,
"description": "Text prompt for image generation or editing.",
"x-playground": {
"rows": 6,
"widget": "textarea"
}
},
"mask_url": {
"type": "string",
"title": "Mask image",
"description": "Optional mask URL or base64 data URI for inpainting. It must be used with image_urls.",
"x-playground": {
"advanced": true
}
},
"image_urls": {
"type": "array",
"items": {
"type": "string"
},
"title": "Reference images",
"maxItems": 16,
"minItems": 1,
"description": "Optional reference images. Supports public image URLs and base64 data URI values. Up to 16 items.",
"x-playground": {
"accept": "image/*",
"widget": "file-upload",
"advanced": true,
"multiple": true,
"uploadKind": "image"
}
},
"resolution": {
"enum": [
"1k",
"2k",
"4k"
],
"type": "string",
"title": "Resolution",
"default": "1k"
}
},
"additionalProperties": false
}{
"request_id": "req_demo_model",
"task_id": "task_demo_model",
"status": "succeeded",
"cost_estimate": 0.0135,
"cost_actual": 0.0135,
"output": {
"images": [
{
"url": "https://images.unsplash.com/photo-1515886657613-9f3515b0c78f?auto=format&fit=crop&w=1200&q=80"
}
]
}
}