Skip to main content
Legacy is deprecated. New integrations must use V1. Keep the old endpoint only while you complete this migration.

Endpoint mapping

There is no separate /v1/avatars or /v1/animations resource in V1 — 3D extraction is a property (type, vsplat/glb) of the same Character/Motion asset used for 2D renders, and its output is fetched from GET /v1/characters/{character_id}/export or GET /v1/motions/{motion_id}/export instead of a standalone avatar_/anim_ resource. The extraction controls keep mostly the same names in V1, with a few changes: there is no caller-facing vsplat model selection (Legacy’s model field is gone — the service chooses internally) or fp field; callers only choose whether to generate a thumbnail with render_thumbnail, while its render source and pose are selected internally; and the output is a single .vsplat file (vsplat_url) instead of bin_url/stripped_bin_url. Motion extraction accepts enable_smoothing, target_fps, and task_id unchanged. Only the source fields change: use image, image_url, or character_id for the character, and motion_video, motion_video_url, or motion_id for the motion — both alongside the new type field.

Response mapping

  1. Update request paths and form-field names, including the new type field on Character/Motion creation.
  2. Store V1 prefixed IDs (char_, mot_, render_) instead of mixing UUIDs and job IDs. There is no separate avatar_/anim_ family to track.
  3. Update polling to check for ready, failed, and cancelled — and stop relying on client-triggered cancellation, since V1 has none.
  4. Update error handling to use error.code (now SCREAMING_SNAKE_CASE) and error.retryable/error.remediation.
  5. Verify transparent-output consumers use alpha_url.
  6. If you fetch 3D output, switch from GET /v1/avatars/{avatar_id} / GET /v1/animations/{animation_id} to GET /v1/characters/{character_id}/export / GET /v1/motions/{motion_id}/export.