# OpenAI Sora 2 Text-to-Video (make-video.withzero.ai)

> OpenAI Sora 2 Text-to-Video (make-video.withzero.ai) is a paid API for AI agents from make-video.withzero.ai, paid per call via MPP, price unknown, status down (last checked 2026-10-12).

Submits a text prompt to generate a premium-quality Sora 2 video at 720p with durations of 4, 8, or 12 seconds, returning a job ID to poll for the final video URL.

## Facts

- Endpoint: POST https://make-video.withzero.ai/sora2?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: down
- Last checked: 2026-10-12
- 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-openai-sora-2-text-to-video-make-video-4bdab352
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_xlcc-nyjmIRIvX8SzAQFh

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-openai-sora-2-text-to-video-make-video-4bdab352 -d '<json body>'
```

Example prompt: Generate a 8-second 720p Sora 2 video of a lone astronaut walking across a red desert at dusk, with dramatic long shadows and sweeping camera movement.

## When to prefer this

Choose this endpoint when you need the highest-quality OpenAI Sora 2 video output at 720p with durations of exactly 4, 8, or 12 seconds, and you are routing through the make-video.withzero.ai platform for per-call USDC billing. Note that this endpoint is currently marked disabled due to fal.ai upstream unavailability, so check /price/sora2 first and monitor availability before submitting jobs. Prefer this over Kling, Seedance, or Veo 3 endpoints when OpenAI Sora 2 model quality is specifically required.

## Known failure modes

- Endpoint currently disabled — fal.ai upstream unavailable; returns an error indicating the model is not accessible
- Invalid duration value not in the Sora 2 allow-list (4, 8, or 12 seconds) causes a preCheck rejection
- Prompt exceeds 2000 characters causing a validation error
- Missing required prompt field returns a 400 bad request
- Unsupported resolution value rejected by per-model allow-list
- Payment/charge computation failure if USDC balance is insufficient

## How this service works

OpenAI Sora 2 — text-to-video. Per-model alias for POST /run with model="sora2". OpenAI Sora 2 — premium quality with native audio. 720p, durations 4/8/12s. (Currently disabled — fal.ai upstream unavailable.) Preview the charge via free GET /price/sora2?duration=…&resolution=…; poll the job via free GET /status/:id (returned job_id).

## Output

Returns a job_id and status_url to poll for completion, along with the resolved inputs (duration, resolution), price breakdown (cost, markup, charge in USD), estimated processing seconds, and recommended poll interval. The final video URL is retrieved via GET /status/:job_id once the job completes.

## 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-openai-sora-2-text-to-video-make-video-4bdab352/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)
