Create an image using a text prompt

Table of contents

March 9, 2026

  1. Model Comparison Matrix
  2. Request Headers
  3. Request Body
  4. Parameters
  5. Responses
  6. Model
  7. Examples
  8. 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 Aspect Ratios Ref Images Est. Time
qwen-image (default) 720p, 1080p 1:1 (default), all except auto 1-3 via image_path_1…3 ~3s
nano-banana 1080p auto (default), all 1-3 via image_path_1…3 ~10s
seedream-4.0 1080p, 1440p, 2160p auto (default), all 1-6 via image_path_1…6 ~10s
seedream-4.5 1440p, 2160p auto (default), all 1-6 via image_path_1…6 ~15s
nano-banana-2 512p, 1080p, 1440p, 2160p auto (default), all 1-9 via image_path_1…9 ~30s
seedream-5.0-lite 1440p, 1800p auto (default), all 1-6 via image_path_1…6 ~30s
nano-banana-pro 1080p, 1440p, 2160p auto (default), all 1-9 via image_path_1…9 ~60s
πŸ’² 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

Unlimited Image Generation (Relax Mode): Pro ($30/m) and higher subscription plans include unlimited image generation in Relax Mode for select models with generation times ~3s to ~60s based on the model. The number of models with unlimited access increases with higher tiers β€” Ultra ($199/m) includes ALL image models unlimited.

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
Request Body
{
    "email": "Optional PixVerse API account email",
    "prompt": "Required text prompt",
    "model": "seedream-4.0",
    "quality": "1080p",
    "aspect_ratio": "auto",
    "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
  • email is optional, if not specified API will randomly select account from available accounts.

  • prompt is required, describe your image. Maximum length 5,000 characters.

  • model is optional. Supported values:
    • qwen-image (default) - Affordable price, balanced performance (~3s). Does not support auto aspect ratio. Up to 3 reference images.
    • nano-banana - High visual quality, excellent character editing (~10s). Up to 3 reference images.
    • nano-banana-2 - Fastest image generation model from Google (~30s). Up to 9 reference images.
    • nano-banana-pro - State-of-the-art image generation and editing model (~60s). Up to 9 reference images.
    • seedream-4.0 - Fast 2K generation, excellent text editing (~10s). Up to 6 reference images.
    • seedream-4.5 - Enhanced consistency and prompt adherence (~15s). Up to 6 reference images.
    • seedream-5.0-lite - Best image model with Web Search from ByteDance (~30s). Up to 6 reference images.
  • quality is optional, model-specific. Defaults to the model’s first quality.
    • qwen-image: 720p (default), 1080p.
    • nano-banana: 1080p only.
    • nano-banana-2: 512p (default), 1080p, 1440p, 2160p.
    • nano-banana-pro: 1080p (default), 1440p, 2160p.
    • seedream-4.0: 1080p (default), 1440p, 2160p.
    • seedream-4.5: 1440p (default), 2160p.
    • seedream-5.0-lite: 1440p (default), 1800p.
  • aspect_ratio is optional. Supported values: auto (default), 1:1, 16:9, 9:16, 4:3, 3:4, 5:4, 4:5, 3:2, 2:3, 21:9. Note: qwen-image does not support auto β€” defaults to 1:1.

  • create_count is optional. Number of images to generate per request. Supported range: 1…4, default 1.

  • seed is optional. Valid range 0…2147483647.

  • image_path_1 through image_path_9 are optional. Reference image file paths uploaded via POST files for image-to-image (i2i) generation. Reference images must be provided sequentially β€” image_path_2 requires image_path_1, etc. Maximum number of references depends on the model (see Model Comparison Matrix). Nano Banana, Nano Banana 2, and Nano Banana Pro models have less content moderation and are capable of using photos of minors or famous people as reference images. Use responsibly and in compliance with applicable laws and regulations.

  • replyUrl is 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 provided replyUrl once the PixVerse image is completed or failed. We recommend using sites like webhook.site to test callback URL functionality. Maximum length 1024 characters.

  • replyRef is optional, place here your reference id which will be stored and returned along with this PixVerse image response / result. Maximum length 1024 characters.

  • maxJobs is 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
  • 200 OK

    Use returned image_id or values from success_ids array to retrieve image status and results using GET images/imageId. Check image_status_name for COMPLETED and image_url for the generated image link.

    If you specify the optional parameter replyUrl, the API will call the provided replyUrl with 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
    }
    
  • 400 Bad Request

    {
      "error": "<Error message>"
    }
    
  • 401 Unauthorized

    {
      "error": "Unauthorized"
    }
    
  • 412 Insufficient credits

    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."
    }
    
  • 422 Unprocessable Content

    Moderated message.

    {
      "error": "Your prompt has triggered our AI moderator, please re-enter your prompt"
    }
    
  • 429 Too Many Requests

    Wait in a loop for at least 10..30 seconds and retry again.

    There are two possible cases for API response 429:

    1. API query is full and can not accept new images/create requests. Size of query defined by maxJobs optional parameter.
      {
       "error":
         "Account <email> is busy executing <maxJobs> tasks."
         "All configured accounts are running at maximum capacity."
      }
      
    2. 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."
      }
      
  • 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())
    
Try It