Generate Endpoint - VicSee API Video & Image Generation

Create AI videos and images with VicSee's unified generate endpoint. Simple POST request supports all models including Seedance 2.0, Veo 3.1, FLUX 2, and Nano Banana with async processing.

Create AI-generated content using a unified endpoint. Also available as agent tools via the VicSee MCP Server.

POST /api/v1/generate

Request

Headers

HeaderRequiredDescription
AuthorizationYesBearer token with your API key
Content-TypeYesMust be application/json

Body Parameters

ParameterTypeRequiredDescription
modelstringYesThe model to use
promptstringYesText description of what to generate
optionsobjectNoModel-specific options

Options

OptionTypeDescription
aspectRatiostringOutput aspect ratio
resolutionstringFor nano-banana-pro: 1K, 2K, or 4K
durationnumberFor video models: 10 or 15 seconds
imagestringBase64 or URL for image-to-video

Example Request

curl -X POST https://vicsee.com/api/v1/generate \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2-0-text-to-video",
    "prompt": "A timelapse of a flower blooming",
    "options": {
      "duration": 10,
      "aspectRatio": "16:9"
    }
  }'

Response

{
  "success": true,
  "data": {
    "id": "task_abc123",
    "model": "seedance-2-0-text-to-video",
    "status": "processing",
    "creditsUsed": 550,
    "creditsRemaining": 1450,
    "createdAt": "2024-12-27T10:30:00.000Z"
  }
}

Response Fields

FieldTypeDescription
idstringUnique task ID for polling status
modelstringThe model used
statusstringTask status: pending, processing, completed, or failed. The polling endpoint GET /api/v1/tasks/{id} reports completed on success and failed on failure.
creditsUsednumberCredits consumed
creditsRemainingnumberYour remaining balance

Next Steps

  1. Save the id from the response
  2. Poll GET /api/v1/tasks/id for status updates
  3. When status is completed, download your content

Request Errors

These codes are returned by POST /api/v1/generate when a request is rejected before a task is created. They arrive as an HTTP 4xx/5xx response with { "success": false, "error": { "code": ... } }. They are distinct from a task that is created and later fails during processing — that case returns HTTP 200 with status: "failed" (poll GET /api/v1/tasks/{id} for details).

CodeDescription
MISSING_MODELNo model specified
MISSING_PROMPTNo prompt provided
INVALID_MODELModel does not exist
INSUFFICIENT_CREDITSNot enough credits
RATE_LIMITEDToo many requests