# Seedance 1 Pro Text-to-Video

> Seedance 1 Pro Text-to-Video is a paid API for AI agents from make-video.withzero.ai, paid per call via MPP, metered — billed by usage, status unknown (last checked 2026-10-09).

Generates cinematic 720p or 1080p video clips from a text prompt using ByteDance's Seedance 1 Pro model, with 5 or 10 second durations.

## Facts

- Endpoint: POST https://make-video.withzero.ai/seedance?utm_source=zero.xyz
- Price: metered — billed by usage
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-09
- Activations on Zero: 0
- Provider: make-video.withzero.ai
- Website: https://make-video.withzero.ai
- Canonical page: https://www.zero.xyz/c/make-video-withzero-ai-seedance-1-pro-text-to-video-5eabedb0
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_bAZpJBJLcgo7glq_4OrIJ

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability make-video-withzero-ai-seedance-1-pro-text-to-video-5eabedb0 -d '<json body>'
```

Example prompt: Generate a 10-second 1080p cinematic video of a lone lighthouse on a stormy cliff at dusk, with crashing waves and dramatic lighting — use Seedance 1 Pro for the strongest realism.

## When to prefer this

Choose Seedance 1 Pro when you need strong cinematic realism in 720p or 1080p for 5 or 10 second clips, and you want text-to-video (not image-to-video). Prefer this over Kling for ByteDance's distinct visual style, over Veo 3 when audio is not needed, and over Sora 2 when you want ByteDance's specific cinematic rendering. Use the free GET /price/seedance endpoint first to preview costs before committing.

## Known failure modes

- Invalid or missing prompt returns 400 validation error
- Duration or resolution not in per-model allow-list triggers preCheck rejection
- Invalid image_url format causes URI validation failure
- Job times out on fal.ai backend — poll status for failure state
- Payment or charge calculation failure if pricing service is unavailable
- Prompt exceeds 2000 character limit returns schema validation error

## How this service works

Seedance 1 Pro — text-to-video. Per-model alias for POST /run with model="seedance". ByteDance Seedance 1 Pro — strong cinematic realism. 720p / 1080p, durations 5/10s. Preview the charge via free GET /price/seedance?duration=…&resolution=…; poll the job via free GET /status/:id (returned job_id).

## Output

Returns a job_id and status_url for polling, along with the resolved inputs (duration, resolution), pricing breakdown (cost, markup, charge in USD), estimated processing time, and recommended poll interval. The actual video URL is retrieved later by polling GET /status/:job_id.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "prompt"
 ],
 "properties": {
  "prompt": {
   "type": "string",
   "maxLength": 2000,
   "minLength": 1,
   "description": "Text description of the video to generate."
  },
  "duration": {
   "type": "integer",
   "minimum": 0,
   "description": "Clip duration in seconds. Per-model allow-list applied at preCheck.",
   "exclusiveMinimum": true
  },
  "image_url": {
   "type": "string",
   "format": "uri",
   "description": "Public http(s) URL of the starting image. Required for image-to-video models (wan, hailuo)."
  },
  "resolution": {
   "type": "string",
   "description": "Output resolution. Per-model allow-list applied at preCheck."
  },
  "aspect_ratio": {
   "type": "string",
   "description": "Output aspect ratio. Per-model allow-list applied at preCheck."
  },
  "generate_audio": {
   "type": "boolean",
   "description": "Generate native audio track. Only accepted by models that have an audio toggle (veo3)."
  },
  "negative_prompt": {
   "type": "string",
   "maxLength": 1000,
   "description": "Optional — describe what to avoid."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_id",
  "status_url",
  "endpoint",
  "model",
  "model_name",
  "inputs",
  "price",
  "estimated_seconds",
  "poll_interval_seconds"
 ],
 "properties": {
  "model": {
   "type": "string",
   "description": "Underlying fal.ai model id."
  },
  "price": {
   "type": "object",
   "required": [
    "cost_usd",
    "markup_usd",
    "charge_usd",
    "breakdown"
   ],
   "properties": {
    "cost_usd": {
     "type": "number"
    },
    "breakdown": {
     "type": "string"
    },
    "charge_usd": {
     "type": "number"
    },
    "markup_usd": {
     "type": "number"
    }
   },
   "additionalProperties": false
  },
  "inputs": {
   "type": "object",
   "required": [
    "duration",
    "resolution"
   ],
   "properties": {
    "duration": {
     "type": "number"
    },
    "resolution": {
     "type": "string"
    },
    "generate_audio": {
     "type": "boolean"
    }
   },
   "description": "Echo of resolved inputs (after defaults applied).",
   "additionalProperties": false
  },
  "job_id": {
   "type": "string",
   "description": "Internal id; pass to GET /status/:job_id."
  },
  "endpoint": {
   "type": "string",
   "description": "The model slug that handled this submit."
  },
  "model_name": {
   "type": "string",
   "description": "Human-readable model name."
  },
  "status_url": {
   "type": "string",
   "format": "uri",
   "description": "Full URL to poll for completion."
  },
  "estimated_seconds": {
   "type": "number"
  },
  "poll_interval_seconds": {
   "type": "number"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/make-video-withzero-ai-seedance-1-pro-text-to-video-5eabedb0/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from make-video.withzero.ai](https://www.zero.xyz/host/make-video.withzero.ai/llms.txt)
