Authorization: Bearer YOUR_API_KEY.
Request and response conventions
Public ID formats
IDs are opaque values generated by Viggle. Preserve them exactly as returned; do not construct, shorten, or strip their prefixes. There is no separateavatar_/anim_ ID family — 3D vsplat and glb extraction are now tracked on the owning Character/Motion itself (type, vsplat, glb) and downloaded via /export, not through their own resources.
video_id on the Videos endpoints accepts both render_ and vid_ prefixed IDs — a Render and an H3 text-to-video generation are both read back as the same unified video resource.
Success and error responses
Creation endpoints return200 OK (or, for the draft-based render flow, 202 Accepted) with an asynchronous resource in queued state. A resource status request can return 200 OK with status: "failed"; always inspect both the HTTP status and the response body.
code vocabulary and how to use retryable/remediation.
Resources
Code examples
Go, JavaScript, Python, and cURL requests for the current V1 endpoints.
H3 Video Generation (
POST /v1/videos) generates a Viggle-optimized MiniMax H3 video with native audio on every clip. quality=low generates faster, for quicker iteration; quality=high produces higher-fidelity output — both tiers are billed at the same $0.01 per generated second. See Generate Video (from Text) and Pricing and retention.Resource model
V1 separates reusable content from work performed on that content:
Direct
image and motion_video inputs on POST /v1/renders are one-time inputs. They do not create a Character or Motion that appears in an asset list. Create an asset explicitly when it needs to be reused.
Endpoint index
Conventions
- Requests that upload media use
multipart/form-data, or the draft-based flow’s direct-uploadPUTURLs. - IDs are resource-prefixed, such as
char_...andrender_.... - Characters and Motions use
queued,processing,ready, andfailed; Renders may also reachcancelled— but a client cannot request cancellation, only observe it. - Error responses use
{ "error": { "code", "message", "retryable", "request_id", "details", "remediation" } }. Internal worker and pipeline codes are never exposed.

