meshy/animations, served by Comfy Router from Meshy.
Quick start
Create a key at platform.comfy.org/profile/api-keys and export it asCOMFY_API_KEY. The Python and TypeScript snippets use the Comfy SDKs (pip install comfy-sdk, npm install @comfyorg/sdk); the cURL snippet is the same call over raw HTTP.
Model ID: meshy/animations
Endpoint: POST https://api.comfy.org/v2/models/meshy/animations
Schema
Input
integer
required
The identifier of the animation action to apply.
object
Parameters for post-processing animation files.
integer
default:"30"
The target frame rate. Default is 30. Applicable only when operation_type is change_fps.Possible values:
24, 25, 30, 60string
required
The type of operation to perform.Possible values:
change_fps, fbx2usdz, extract_armaturestring
required
The id of a successfully completed rigging task (from POST /openapi/v1/rigging). The character from this task will be animated.
GET /v2/models/meshy/animations/openapi.json, the same document it validates a call against before the request reaches the provider.
Output
integer
Timestamp of when the task was created, in milliseconds.Format:
int64integer
Timestamp of when the task result expires, in milliseconds.Format:
int64integer
Timestamp of when the task was finished, in milliseconds. 0 if not finished.Format:
int64string
required
Unique identifier for the task.
integer
The count of preceding tasks. Only meaningful when status is PENDING.
integer
Progress of the task (0-100).Range:
0 to 100object
Contains the output animation URLs if the task SUCCEEDED.
string
Downloadable URL for the animation in FBX format.
string
Downloadable URL for the animation in GLB format.
string
Downloadable URL for the animation with changed FPS in FBX format.
string
Downloadable URL for the processed armature in FBX format.
string
Downloadable URL for the processed animation in USDZ format.
integer
Timestamp of when the task was started, in milliseconds. 0 if not started.Format:
int64string
required
Possible values:
SUCCEEDEDobject
Error object that contains the error message if the task failed.
string
Detailed error message.
string
Type of the Animation task.Possible values:
animateExamples
Input
Output
Before you ship
The snippets above are the shortest working call. Three things are the same for every model and are documented once on the Comfy Router headers page: send anIdempotency-Key on every paid call and reuse it when you retry, expect the connection to be held up to Router’s 10 minute deadline, and keep X-Comfy-Request-Id from every response. The SDKs do all three for you; the cURL tab does none of them. On failure, X-Comfy-Error-Type names the bucket, and a 422 means the body failed the model’s schema and was never billed.
Headers
Authentication, idempotency, request IDs, error buckets, retry pacing, spend limits.
Quick Start
Typed error handling in Python and TypeScript, reading the 422, walking the catalog.
Limitations
What Router does not do today, and what to use instead.