Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.viggle.ai/llms.txt

Use this file to discover all available pages before exploring further.

Using an AI agent? Copy the docs link for full API context:
https://docs.viggle.ai/llms-full.txt

Rendering modes

Send an image + video in one request.
On-demand renders cost 1 credit/second of output video. No separate character charge.
import requests, time
API_KEY, BASE = "YOUR_API_KEY", "https://apis.viggle.ai"
h = {"Authorization": f"Bearer {API_KEY}"}
job = requests.post(f"{BASE}/api/render", headers=h, files={
    "ref_image": open("character.png", "rb"),
    "driving_video": open("dance.mp4", "rb"),
}).json()
while True:
    s = requests.get(f"{BASE}/api/render/{job['job_id']}").json()
    if s["status"] == "complete": break
    time.sleep(3)
video = requests.get(s["cdn_url"])
open("output.mp4", "wb").write(video.content)

On-Demand Guide

Render options, polling, and error handling

Model

V4_Preview (default) or V3_Preview (legacy). Pass model on render or scene preprocess requests.

Quick start

Get your API key

Create one in the Viggle Dashboard.

Pick a mode

Use the Rendering modes tabs: On-Demand (fastest first render), Preprocessed (~3x faster at scale), or Import Templates.

Render

POST /api/render — poll GET /api/render/{job_id} every 3-5s until complete, then use cdn_url to download.

Resources

Discord Community

Support and discussions

API Reference

Full endpoint documentation

Pricing

1 credit/sec — about $0.01/sec