WideCast.ai

WideCast Documentation

The complete reference for the WideCast.ai public API, SDKs, and integrations.

Looking for a 30-second pitch? Head to the WideCast homepage.

Quickstart

# 1. Create from plain-text script
RESP=$(curl -sS -X POST "https://widecast.ai/app/dashboard2/v1/create_video" \
  -H "Content-Type: application/json" \
  -d '{
    "script_text": "Bạn nên cho con lấy bằng lái xe ngay khi 16 tuổi."
  }')
VID=$(echo "$RESP" | jq -r .id)

# 2. Poll until completed
INTERVAL=5
until [ "$STATE" = "completed" ] || [ "$STATE" = "failed" ]; do
  sleep $INTERVAL
  STATUS=$(curl -sS "https://widecast.ai/app/dashboard2/v1/status/$VID")
  STATE=$(echo "$STATUS" | jq -r .status)
  INTERVAL=$(( INTERVAL * 3 / 2 < 60 ? INTERVAL * 3 / 2 : 60 ))
done
echo "Review at: $(echo "$STATUS" | jq -r .result.review_url)"
from widecast import Widecast

client = Widecast(api_key="wc_live_REPLACE_ME")
video = client.create_video(
    script_text="Bạn nên cho con lấy bằng lái xe ngay khi 16 tuổi."
).wait()                                      # auto-polls /v1/status with 5s→60s exp backoff
print(video.status, video.review_url)
import Widecast from "@widecast/sdk";

const client = new Widecast({ apiKey: "wc_live_REPLACE_ME" });
const v = await client.create_video({
  script_text: "Bạn nên cho con lấy bằng lái xe ngay khi 16 tuổi.",
}).then(v => v.wait());
console.log(v.status, v.review_url);

v0.1.0 endpoints

Endpoint Method Purpose
/v1/create_video POST Submit a finished script (source=text), an idea brief (source=idea), a blog/article (source=blog), or an existing video/audio by URL or upload (source=video_url/video_file/audio_url/audio_file) for AI sourcing
/v1/export_video POST For output_type=scene videos, kick the final-MP4 renderer after review
/v1/status/{id} GET Universal poll endpoint for any async task
Webhooks (out-of-band) Pass callback_url in create_video — WideCast POSTs events to your URL instead of you polling
/openapi.json / /openapi.yaml GET This spec served from the host

Reference

Conventions