API Documentation

Everything you need to integrate AI video generation into your application. Simple REST API, predictable pricing, real-time job status.

Base URL: https://usvideoapi.com/v1 — All endpoints require authentication via API key.

Authentication

All API requests require a Bearer token. Use your API key in the Authorization header:

HTTP Header
Authorization: Bearer sd_your_api_key_here

API keys start with sd_ and can be created from your dashboard or via the API keys endpoint. Keep your keys secret.

Base URL

Base URL
https://usvideoapi.com/v1

Quickstart

1. Create an account and add funds

Register an account and add prepaid balance to get started.

2. Submit a generation request

curl
curl -X POST https://usvideoapi.com/v1/videos \
  -H "Authorization: Bearer sd_your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A drone shot over a misty mountain lake at sunrise",
    "mode": "text_to_video",
    "resolution": "1080p",
    "duration": 5
  }'

3. Poll for completion

curl
curl https://usvideoapi.com/v1/videos/JOB_ID \
  -H "Authorization: Bearer sd_your_key"

# Response when complete:
{
  "id": "job_abc123",
  "status": "completed",
  "video_url": "https://...",
  "duration": 5,
  "cost_cents": 120
}

Create Video

POST /v1/videos

Submit a new video generation job. Runs asynchronously — poll the status endpoint to check progress.

Request Body

ParameterTypeDescription
promptstringrequiredText description of the video to generate.
modestringrequiredtext_to_video, image_to_video, or reference
resolutionstringoptional720p (default), 1080p, or 2k
durationintegeroptionalVideo length in seconds. Default: 5. Max: 10.
image_urlstringoptionalRequired for image_to_video mode.
reference_urlstringoptionalRequired for reference mode.
seedintegeroptionalRandom seed for reproducible results.

Response

JSON
{
  "id": "job_abc123",
  "status": "pending",
  "mode": "text_to_video",
  "resolution": "1080p",
  "duration": 5,
  "estimated_cost_cents": 120,
  "created_at": "2026-04-21T15:30:00Z"
}

Get Video Status

GET/v1/videos/{id}

Check job status. Poll until completed or failed.

StatusDescription
pendingJob queued
processingVideo being generated
completedVideo ready — video_url available
failedGeneration failed — balance auto-refunded
Tip: Typical generation takes 30-90 seconds. Poll every 5 seconds.

List Videos

GET/v1/videos

List all jobs, most recent first. Supports limit and offset query parameters.

Delete Video

DELETE/v1/videos/{id}

Cancel a pending job or delete a completed video record.

Account Info

GET/v1/account

Get account details including balance, usage stats, and plan.

JSON
{
  "email": "[email protected]",
  "balance_cents": 4850,
  "total_jobs": 127,
  "total_spent_cents": 15200
}

API Keys

POST/v1/auth/api-keys

Create a new API key. Requires JWT auth. Key shown only once — store securely.

Important: The full API key is only returned once at creation time.

Pricing

GET/v1/pricing

Get current pricing table. No auth required.

JSON
{
  "720p":  { "per_second": 0.06 },
  "1080p": { "per_second": 0.24 },
  "2k":    { "per_second": 0.36 }
}

Error Handling

CodeMeaning
400Bad request — invalid parameters
401Unauthorized — missing or invalid API key
402Payment required — insufficient balance
404Not found
429Rate limited
500Server error
502Upstream error — model temporarily unavailable

Rate Limits

TierRequests/minConcurrent Jobs
Standard6010
EnterpriseCustomCustom

Models

Powered by Seedance 2.0. Three modes: Text to Video, Image to Video, Reference Mode. Resolutions: 720p, 1080p, 2K. Duration: 1-10 seconds. Audio in 8 languages.

Need help? Email [email protected] — real engineers, same business day.