Create an image using a text prompt
Table of contents
March 9, 2026 (May 13, 2026)
- Model Comparison Matrix
- Aspect Ratios
- Unlimited Image Generation (Relax Mode)
- Request Headers
- Request Body
- Parameters
- Responses
- Model
- Examples
- Try It
Use pixverse.ai account to generate images. Supports text-to-image (t2i) and image-to-image (i2i) with reference images uploaded via POST files.
Model Comparison Matrix
| Model | Qualities | Ref Images | Est. Time |
|---|---|---|---|
qwen-image (default) | 720p, 1080p | 1-3 via image_path_1…3 | ~3s |
nano-banana * | 1080p | 1-3 via image_path_1…3 | ~10s |
nano-banana-2 * | 512p, 1080p, 1440p, 2160p | 1-9 via image_path_1…9 | ~30s |
nano-banana-pro * | 1080p, 1440p, 2160p | 1-9 via image_path_1…9 | ~60s |
seedream-4.0 | 1080p, 1440p, 2160p | 1-6 via image_path_1…6 | ~10s |
seedream-4.5 | 1440p, 2160p | 1-6 via image_path_1…6 | ~15s |
seedream-5.0-lite | 1440p, 1800p | 1-6 via image_path_1…6 | ~30s |
kling-3.0 | 1080p, 1440p | 1 via image_path_1 | ~15s |
kling-o3 | 1080p, 1440p, 2160p | 1 via image_path_1 | ~20s |
gpt-image-2.0 | 1080p, 1440p, 2160p | 1-9 via image_path_1…9 | ~30s |
* Nano Banana / Nano Banana 2 / Nano Banana Pro have less restrictive content moderation and can use photos of minors or recognizable people as reference images. Use responsibly and in compliance with applicable laws.
Aspect Ratios
Each model accepts its own list. If aspect_ratio is omitted, the default (first column) is used. Passing a value not in the model’s row is rejected with 400.
| Models | Default | Accepted aspect_ratio values |
|---|---|---|
nano-banana, nano-banana-2, nano-banana-pro, seedream-4.0, seedream-4.5, seedream-5.0-lite | auto | auto, 1:1, 16:9, 9:16, 4:3, 3:4, 5:4, 4:5, 3:2, 2:3, 21:9 |
qwen-image | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 5:4, 4:5, 3:2, 2:3, 21:9 |
kling-o3, kling-3.0 | 1:1 | 1:1, 16:9, 9:16, 4:3, 3:4, 3:2, 2:3, 21:9 |
gpt-image-2.0 | 1:1 | 1:1, 1:2, 4:3, 3:4, 3:2, 2:3, 16:9, 9:16, 2:1, 21:9 |
gpt-image-2.0 also requires the detail_level parameter (low, medium, or high) — affects credit cost (see credits estimator below).
💲 Credits estimator
Credits are charged per image. Actual costs may change, see pixverse.ai for current pricing.
| Model | Quality | Credits per image | Quantity |
|---|---|---|---|
| qwen-image | 720p | 5 | 1-4 |
| qwen-image | 1080p | 10 | 1-4 |
| seedream-4.0 | all | 10 | 1-4 |
| seedream-4.5 | all | 10 | 1-4 |
| nano-banana | 1080p | 15 | 1-4 |
| seedream-5.0-lite | all | 15 | 1-4 |
| nano-banana-2 | 512p | 16 | 1-4 |
| nano-banana-2 | 1080p | 25 | 1-4 |
| nano-banana-2 | 1440p | 40 | 1-4 |
| nano-banana-2 | 2160p | 60 | 1-4 |
| nano-banana-pro | 1080p, 1440p | 50 | 1-4 |
| nano-banana-pro | 2160p | 90 | 1-4 |
| kling-3.0 | 1080p, 1440p | 10 | 1-4 |
| kling-o3 | 1080p, 1440p | 10 | 1-4 |
| kling-o3 | 2160p | 20 | 1-4 |
| gpt-image-2.0 | 1080p (low / medium / high) | 15 / 30 / 60 | 1-4 |
| gpt-image-2.0 | 1440p (low / medium / high) | 30 / 60 / 120 | 1-4 |
| gpt-image-2.0 | 2160p (low / medium / high) | 45 / 90 / 180 | 1-4 |
Unlimited Image Generation (Relax Mode)
Pro+ subscription plans include unlimited image generation in Relax Mode for select models:
| Plan | Price | Unlimited Models |
|---|---|---|
| Pro | $30/m | qwen-image |
| Premium | $60/m | qwen-image, nano-banana, nano-banana-2, seedream-4.0 |
| Ultra | $199/m | all 10 image models |
To retrieve generated image(s), use:
To delete a generated image, use:
https://api.useapi.net/v2/pixverse/images/create
Request Headers
Authorization: Bearer {API token}
Content-Type: application/json
# Alternatively you can use multipart/form-data
# Content-Type: multipart/form-data
API tokenis required, see Setup useapi.net for details.
Request Body
{
"email": "Optional PixVerse API account email",
"prompt": "Required text prompt",
"model": "seedream-4.0",
"quality": "1080p",
"aspect_ratio": "auto",
"detail_level": "medium",
"create_count": 1,
"seed": 654321,
"image_path_1": "upload/eb20c63d-2a1a-5be6-a562-d3578a2831e3.png",
"replyUrl": "Place your call back URL here",
"replyRef": "Place your reference id here",
"maxJobs": 3
}
Parameters
-
emailis optional, if not specified API will randomly select account from available accounts. -
promptis required, describe your image. Maximum length 5,000 characters. -
modelis optional. Default:qwen-image. See Model Comparison Matrix for the full list and per-model notes. -
qualityis optional, model-specific. Defaults to the model’s first listed value. See Model Comparison Matrix for per-model qualities. -
aspect_ratiois optional. Each model accepts its own list — see Aspect Ratios above. If omitted, the model’s default is used. Passing a value not in the model’s row is rejected with 400. -
detail_levelis required forgpt-image-2.0and rejected for all other models. Supported values:low,medium,high. Affects credit cost (low = 0.5×, medium = 1×, high = 2× per quality — see credits estimator). -
create_countis optional. Number of images to generate per request. Supported range: 1…4, default 1. -
seedis optional. Valid range 0…2147483647. -
image_path_1throughimage_path_9are optional. Reference image file paths uploaded via POST files for image-to-image (i2i) generation. Reference images must be provided sequentially —image_path_2requiresimage_path_1, etc. Maximum number of references depends on the model (see Model Comparison Matrix). -
replyUrlis optional, place here your callback URL. This is the preferred and most optimal way to receive results quickly — the API polls every 10 seconds and will call the providedreplyUrlonce the PixVerse image is completed or failed. We recommend using sites like webhook.site to test callback URL functionality. Maximum length 1024 characters. -
replyRefis optional, place here your reference id which will be stored and returned along with this PixVerse image response / result. Maximum length 1024 characters. -
maxJobsis optional, if not specified value from selected accounts/email will be used. It should not exceed the number of concurrent generations supported by your account subscription plan. Valid range: 1…8
Responses
-
Use returned
image_idor values fromsuccess_idsarray to retrieve image status and results using GET images/imageId. Checkimage_status_nameforCOMPLETEDandimage_urlfor the generated image link.If you specify the optional parameter
replyUrl, the API will call the providedreplyUrlwith image progress updates until the image is complete or fails.{ "image_id": "user:<userid>-pixverse:<email>-image:<number>", "success_ids": [ "user:<userid>-pixverse:<email>-image:<id_1>", "user:<userid>-pixverse:<email>-image:<id_2>" ], "success_count": 2, "fail_count": 0, "total_count": 2, "code": 200 } -
{ "error": "<Error message>" } -
{ "error": "Unauthorized" } -
Insufficient credits. All Credits have been used up. Please upgrade your membership or purchase credits.
{ "error": "All Credits have been used up. Please upgrade your membership or purchase credits." } -
Moderated message.
{ "error": "Your prompt has triggered our AI moderator, please re-enter your prompt" } -
Wait in a loop for at least 10..30 seconds and retry again.
There are two possible cases for API response 429:
- API query is full and can not accept new images/create requests. Size of query defined by
maxJobsoptional parameter.{ "error": "Account <email> is busy executing <maxJobs> tasks." "All configured accounts are running at maximum capacity." } - The API received an HTTP response status 429 from PixVerse. Please refer to your subscription plan for the maximum allowed tasks in the queue.
{ "error": "Reached the limit for concurrent generations." }
- API query is full and can not accept new images/create requests. Size of query defined by
-
596 Pending mod message
Your PixVerse.ai account has a pending error. Most likely, you changed your account password or your PixVerse.ai account was placed on hold. Once the issue is resolved, update your account to clear the error by executing POST accounts/email before making any new API calls.
{ "error": "Your PixVerse account has pending error." "Please address this issue at https://useapi.net/docs/api-pixverse-v2/post-pixverse-accounts-email before making any new API calls." }
Model
{ // TypeScript, all fields are optional
image_id: string
success_ids: string[]
success_count: number
fail_count: number
total_count: number
error: string
code: number
}
Examples
-
curl -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: Bearer …" \ -X POST "https://api.useapi.net/v2/pixverse/images/create" \ -d '{"prompt": "…"}' -
const prompt = "text prompt"; const apiUrl = `https://api.useapi.net/v2/pixverse/images/create`; const token = "API token"; const data = { method: 'POST', headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' } }; data.body = JSON.stringify({ prompt }); const response = await fetch(apiUrl, data); const result = await response.json(); console.log("response", {response, result}); -
import requests prompt = "text prompt" apiUrl = f"https://api.useapi.net/v2/pixverse/images/create" token = "API token" headers = { "Content-Type": "application/json", "Authorization" : f"Bearer {token}" } body = { "prompt": f"{prompt}" } response = requests.post(apiUrl, headers=headers, json=body) print(response, response.json())