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
Recommended migration sequence
- Update request paths and form-field names, including the new
typefield on Character/Motion creation. - Store V1 prefixed IDs (
char_,mot_,render_) instead of mixing UUIDs and job IDs. There is no separateavatar_/anim_family to track. - Update polling to check for
ready,failed, andcancelled— and stop relying on client-triggered cancellation, since V1 has none. - Update error handling to use
error.code(nowSCREAMING_SNAKE_CASE) anderror.retryable/error.remediation. - Verify transparent-output consumers use
alpha_url. - If you fetch 3D output, switch from
GET /v1/avatars/{avatar_id}/GET /v1/animations/{animation_id}toGET /v1/characters/{character_id}/export/GET /v1/motions/{motion_id}/export.

