PixVerse /create command

Table of contents

  1. Request Headers
  2. Request Body
  3. Responses
  4. Model
  5. Examples
  6. Try It

Use this endpoint to submit the PixVerse /create command to your Discord PixVerse private thread channel. Results obtained as a callback via optional parameter replyUrl or by querying pixverse/jobs/?jobid=jobid endpoint.

PixVerse /create will generate 4 videos at once, it is resource intense command. Currently we do not recommend executing more than two /create jobs at once. The PixVerse bot will most likely throttle you down with a 429.

It is important not to use the PixVerse account setup for API access for any purposes other than its intended use, such as executing /create or any other PixVerse commands manually or in conjunction with any other automation tools. The useapi.net API internally tracks the usage of the PixVerse account, including the number of currently active executions. Using it for other activities may cause API to function incorrectly.

https://api.useapi.net/v1/pixverse/create

Request Headers
Authorization: Bearer {API token}
Content-Type: multipart/form-data
# Alternatively you can use application/json
# Content-Type: application/json 
Request Body
{
    "prompt": "PixVerse prompt",
    "style": "The style of the video you want to create",
    "negative_prompt": "What you don't want to in the video",
    "aspect_ratio": "Aspect-ratio for the video",
    "character": "Character",
    "discord": "Discord token",
    "server": "Discord server id",
    "channel": "Discord channel id",
    "maxJobs": 10,
    "replyUrl": "Place your call back URL here",
    "replyRef": "Place your reference id here"
}
  • prompt is required, must contain PixVerse /create prompt.
    Maximum length 512 characters.

  • style is required, must be one of following values:
    Realistic
    Anime
    3D Animation

  • negative_prompt is optional.
    Maximum length 512 characters.

  • aspect_ratio is optional, must be one of following values:
    16:9
    9:16
    1:1
    4:3
    3:4

  • character is optional, used when style set to Anime otherwise ignored, must be one of following values:
    eula
    ganyu
    hutao
    kamisatoayaka
    keqing
    klee
    nahida
    ningguang
    raidenshogun
    xiangling
    yaemiko

  • discord, server, channel are optional, if not provided randomly selected available account from pixverse/account will be used. See Setup PixVerse for details.
    Note You may specify the channel value alone (omitting discord and server values) when you wish to use a specific account from the configured list at pixverse/account.

  • maxJobs is optional, if not provided value for channel account selected above will be used, if not provided defaulted to 10.
    Currently we do not recommend executing more than two /create jobs at once. The PixVerse bot will most likely throttle you down with a 429.

  • replyUrl is optional, if not provided value from account will be used.
    Place here your callback URL. API will call the provided replyUrl once job completed or failed.
    Maximum length 1024 characters.
    We recommend using sites like webhook.site to test callback URL functionality.

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

Responses
  • 200 OK

    Use returned jobid to retrieve PixVerse job status and results. content contains message generated by PixVerse reflecting current generation parameters and progress.

    {
        "jobid": "<jobid>",
        "verb": "pixverse-create",
        "status": "started",
        "created": "2023-09-09T02:04:49.667Z",
        "updated": "2023-09-09T02:04:53.490Z",
        "prompt": "Milla Jovovich riding motorcycle in extreme stormy weather thru California desert",
        "style": "Realistic",
        "negative_prompt": "sand",
        "aspect_ratio": "16:9",
        "character": "kamisatoayaka",
        "discord": "<ABC…secured…xyz>",
        "server": "<Discord server id>",
        "channel": "<Discord channel id>",
        "maxJobs": 2,
        "replyUrl": "https://webhook.site/abc",
        "replyRef": "<your optional reference id>",
        "messageId": "<Discord message id>",
        "content": "<@Discord user id> We are making videos. We will notify you when it's done. (prompt: Milla Jovovich riding motorcycle in extreme stormy weather thru California desert style: Realistic negative-prompt: sand aspect-ratio: 16:9 character: kamisatoayaka) Author: <@Discord user id>",
        "timestamp": "2023-09-09T02:04:51.926000+00:00",
        "code": 200
    }
    
  • 400 Bad Request

    {
        "error": 
          "prompt, discord, server or channel value is missing"
          "prompt, negative_prompt, replyRef or replyUrl is too long"
          "style is missing or empty"
          "style <style> not supported, must be one of <list of supported styles>"
          "aspect_ratio <aspect_ratio> not supported, must be one of <list of supported aspect ratios>"
          "character <character> not supported, must be one of <list of supported characters>"
        "code": 400
    }
    
  • 401 Unauthorized

    {
        "error": "Unauthorized",
        "code": 401
    }
    
  • 402 Payment Required

    {
        "error": "Account has no subscription or subscription expired",
        "code": 402
    }
    
  • 422 Unprocessable Content

    Moderated message or invalid prompt params.

    {
        "error": "Apologies! Our AI moderator thinks this prompt or images as potentially violating our [community guidelines](<https://discord.com/channels/1140860020586713128/1168473004498501652>).",
        "jobid": "<jobid>",
        "status": "moderated",
        "code": 422
    }
    
  • 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 pixverse/create requests. Size of query defined by maxJobs optional parameter. Wait in a loop for at least 10..30 seconds and retry again.
      {
       "error": "Maximum of <maxJobs> jobs executing in parallel supported",
       "executingJobs": [
         "<jobid>",
         "<jobid>",
         "<jobid>"
       ],
       "code": 429
      }
      
    2. The API received an HTTP status 429 from the Discord API when it attempted to POST to the /interactions endpoint. Under normal circumstances, this should be a rare occurrence because the API is designed to strictly adhere to Discord rate limits. However, in certain scenarios, Discord may still issue a 429 response.
      {
       "error": "Discord /interactions failed with HTTP status 429",
       "errorDetails": "{\"global\":true,\"message\":\"You are being rate limited.\",\"retry_after\":10}",
       "code": 429
      }
      
Model
{ // TypeScript, all fields are optional
  jobid: string, // Use returned jobid value to retrieve job status and results
  verb: 'pixverse-create',
  status: 'started' | 'moderated' | 'failed',
  created: string, // YYYY-MM-DDTHH:mm:ss.sssZ, IS0 8601, UTC
  updated: string, // YYYY-MM-DDTHH:mm:ss.sssZ, IS0 8601, UTC
  prompt: string,
  style: string,
  negative_prompt: string,
  aspect_ratio: string,
  character: string,
  discord: string, // Provided for debugging purposes only, contains the first 3 and the last 3 characters of the original value
  server: string,
  channel: string,
  maxJobs: number,
  replyUrl: string,
  replyRef: string,
  messageId: string,
  content: string, // Contains message generated by PixVerse reflecting current generation parameters and progress
  timestamp: string,
  error: string,
  errorDetails: string,
  executingJobs: string[],
  code: number
}
Examples
  • curl -H "Accept: application/json" \
         -H "Authorization: Bearer …" \
         -X POST https://api.useapi.net/v1/pixverse/create \
         -F "discord=<Discord token>" \
         -F "server=<Discord server id>" \
         -F "channel=<Discord channel id>" \
         -F "prompt=<PixVerse prompt>" \
         -F 'style="Realistic"'
    
  • const main = async () => {
        const apiUrl = "https://api.useapi.net/v1/pixverse/create";
        const token = "API token";
        const prompt = "PixVerse prompt";
        const style = "Realistic";
        const discord = "Discord token";
        const server = "Discord server";
        const channel = "Discord channel";
        const data = {
            method: 'POST',
            headers: {
                'Authorization': `Bearer ${token}`
            }
        };
    
        const formData = new FormData();
        formData.append("prompt", prompt);
        formData.append("style", style);
        formData.append("discord", discord);
        formData.append("server", server);
        formData.append("channel", channel);
    
        data.body = formData;
        const response = await fetch(apiUrl, data);
        const result = await response.json();
        console.log("response", { response, result });
    };
    main()
    
  • import requests
    
    api_url = "https://api.useapi.net/v1/pixverse/create"
    token = "API token"
    prompt = "PixVerse prompt"
    style = "Realistic"
    discord = "Discord token"
    server = "Discord server"
    channel = "Discord channel"
    
    headers = {
        'Authorization': f'Bearer {token}'
    }
    
    files = {
        'prompt': (None, prompt),
        'style': (None, style),
        'discord': (None, discord),
        'server': (None, server),
        'channel': (None, channel)
    }
    
    response = requests.post(api_url, headers=headers, files=files)
    print(response, response.json())
    
Try It