Ireretiro ang lowpoly sa Oct 30, 2026. Lumipat ng modelo bago ang mga petsang ito para maiwasan ang mga error sa request. Tingnan ang lahat ng deprecation
Animation API
Mag-apply ng mga Animation sa mga rigged na character, at ilista ang mga Animation na maaari mong i-apply.
Lumilikha ng Animation task, na naglalapat ng animation sa isang character na na-rig mo na noon. Maaaring isa sa mga sumusunod ang animation:
Isang preset action mula sa animation library (action_id)
Ilang preset action na pinagsama-sama sa isang file (action_ids)
Isang motion clip na ginawa mo gamit ang Text to Motion API (motion_task_id)
Maaari mo ring i-post-process ang output. Tumatakbo ang task sa background. Para malaman kung gaano karaming oras karaniwang tumatagal ang isang task, tingnan ang Processing times.
Request
POST
/openapi/v1/animations
# Animate a rigged model with required params onlycurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_id": 92 }'# Apply several preset actions and get one file with one clip per actioncurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_ids": [10, 25, 92] }'# Apply a generated Text to Motion clip instead of a preset actioncurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "motion_task_id": "018c425b-b2c6-727e-d333-3c1887i9h791" }'# With post-processing to change FPScurlhttps://api.meshy.ai/openapi/v1/animations \-XPOST \-H"Authorization: Bearer ${YOUR_API_KEY}" \-H'Content-Type: application/json' \-d'{ "rig_task_id": "018b314a-a1b5-716d-c222-2f1776f7f579", "action_id": 92, "post_process": { "operation_type": "change_fps", "fps": 24 } }'
Response
{"result":"018c425b-b2c6-727e-d333-3c1887i9h791"}
Mga Parameter
Name
rig_task_id
Type
string
Kinakailangan
Description
Ang ID ng Rigging task na ang character ay aanimahin, mula sa POST /openapi/v1/rigging. Dapat ang katayuan ng task ay SUCCEEDED.
Magpadala ng eksaktong isa sa action_id, action_ids, at motion_task_id.
Name
action_id
Type
integer
Kinakailangan
Description
Kinakailangan maliban kung magpapadala ka ng action_ids o motion_task_id. Ang ID ng preset animation na ilalapat. Para sa kumpletong listahan ng mga animation, tingnan ang Animation Library reference o List animations.
Name
action_ids
Type
array of integers
Kinakailangan
Description
Kinakailangan maliban kung magpapadala ka ng action_id o motion_task_id. Ang mga ID ng 1 hanggang 10 preset animation na ilalapat nang sabay-sabay, nang walang pag-uulit. Ang higit sa 10 ID, o isang paulit-ulit na ID, ay magbabalik ng 400. Para sa mga ID, tingnan ang Animation Library reference.
Nagbabalik ang Meshy ng isang file na may isang animation clip bawat action, na angkop para sa isang state machine sa isang game engine. Sinisingil ng Meshy ang bawat action sa listahan. Tingnan ang Pricing.
Ang isang listahan na may isang ID ay kapareho ng pagpapadala ng ID na iyon bilang action_id.
Name
motion_task_id
Type
string
Kinakailangan
Description
Kinakailangan maliban kung magpapadala ka ng action_id o action_ids. Ang ID ng isang Text to Motion task na ang clip ay ilalapat sa halip na isang preset action. Dapat ang katayuan ng task ay SUCCEEDED, at dapat biped ang rig.
Ire-retarget ng Meshy ang clip sa rigged na character. Kinokopya nito ang clip kapag ginawa mo ang task na ito, kaya hindi maaapektuhan ang task na ito kung mag-expire ang Text to Motion task sa kalaunan o kung tinanggal mo ito. Pinapanatili ng Meshy ang mga file ng Text to Motion task sa loob ng 3 araw, kaya ilapat ang clip bago matapos ang panahong iyon.
Name
post_process
Type
object
Description
Post-processing para sa animation output. Iwanan itong blangko para makuha ang mga karaniwang animation file.
Kapag gumamit ng motion_task_id, maaaring makagawa ang retarget ng GLB-only na animation. Kung magpapadala ka ng post_process at walang available na FBX file, mabibigo ang task nang may task_error, at irerembolso ng Meshy ang iyong mga credits. Kung walang post_process, magtatagumpay ang task, at magiging walang laman ang animation_fbx_url.
Naaangkop lamang kapag post_process is set
Name
operation_type
Type
string
Description
Ang operasyong tatakbuhin. Kung wala ito, walang karagdagang file na gagawin ng Meshy. Ang isang value na wala sa sumusunod na listahan ay magbabalik ng 400.
Mga available na value:
change_fps: binabago ang frame rate sa fps
fbx2usdz: kino-convert ang animation sa USDZ
extract_armature: kinukuha ang armature bilang isang FBX file
Name
fps
Type
integer
default 30
Description
Ang frame rate na babaguhin, isa sa 24, 25, 30, o 60. Nalalapat lamang kapag ang operation_type ay change_fps. Ang anumang ibang value ay magbabalik ng 400.
Kapag gumamit ng action_ids, nagbabalik ang task ng isang pinagsamang file sa halip na isang file bawat action. Ang animation_glb_url at animation_fbx_url ay bawat isa ay tumuturo sa isang file na naglalaman ng bawat hiniling na action bilang hiwalay na clip. Sa file na iyon:
Pagkakasunod-sunod ng Clip: ang pagkakasunod-sunod ng action_ids array, hindi ang numerical na pagkakasunod-sunod ng mga ID.
Mga pangalan ng Clip: ang pangalan ng animation sa library. Tumutugma ang mga ito sa mga pangalang nakukuha mo kapag ini-export mo ang lahat ng animation ng isang character bilang isang file mula sa Meshy web app. Kung ang dalawang hiniling na ID ay may parehong pangalan ng clip, idinaragdag ng Meshy ang action_id sa huling isa upang mapanatiling natatangi ang mga pangalan.
Post-processing: Inilalapat ito ng Meshy sa pinagsamang file, hindi sa bawat clip.
Mga Ibinabalik
Ang field na result ng response ay naglalaman ng ID ng bagong Animation task.
Mga paraan ng pagkabigo
Name
400 - Bad Request
Description
Hindi maaaring patakbuhin ang request. Sinasabi ng mensahe ng error kung anong problema ang natagpuan nito. Halimbawa:
Nawawalang parameter: nawawala ang rig_task_id, o walang napadala sa action_id, action_ids, at motion_task_id.
Magkasalungat na mga parameter: Mayroon ang request ng higit sa isa sa action_id, action_ids, at motion_task_id. Magpadala lamang ng isa.
Di-wastong rig task: Hindi rig_task_id ay isang wastong task ID, hindi ito isang Rigging task, o tumuturo ito sa isang task na hindi nagtagumpay.
Di-wastong action ID: Isang action_id, o isang entry sa action_ids, ay hindi isang wastong animation.
Masyadong maraming action: Mayroon ang action_ids ng higit sa 10 ID.
Duplicate na action: Mayroon ang action_ids ng parehong ID nang higit sa isang beses.
Hindi pa handa ang motion task: Hindi pa naabot ng task na motion_task_id ang SUCCEEDED.
Hindi suportadong rig: Nangangailangan ang motion_task_id ng biped na rig, at tinatanggihan ng Meshy ang isang quadruped na rig.
Ayusin ang request, pagkatapos ay ipadala itong muli. Tingnan ang Errors.
Name
401 - Unauthorized
Description
Nawawala o hindi wasto ang API key. Suriin ang Authorization header.
Name
402 - Payment Required
Description
Halimbawa:
Hindi sapat na credits: Wala sa account ang sapat na credits para sa task na ito, o naabot ng account ang isang limitasyon ng credit. Suriin ang iyong balanse ng credit, pagkatapos ay subukang muli.
Libreng plano: Nangangailangan ang paglikha ng task ng isang bayad na plano. I-upgrade ang iyong plano sa iyong mga setting ng subscription, pagkatapos ay subukang muli.
Name
403 - Forbidden
Description
Ang task na rig_task_id ay isang bas-relief na modelo, na hindi maaaring animahin ng endpoint na ito. Ang mensahe ay This model type does not support this operation. Mag-rig ng ibang modelo.
Name
404 - Not Found
Description
Hindi mahanap ng Meshy ang isang task o file na kailangan ng request. Isa sa mga sumusunod ang nalalapat:
Hindi mahanap ng Meshy ang task na rig_task_id sa iyong mga task. Suriin ang ID.
Tinanggal ng Meshy ang mga file ng task na rig_task_id pagkatapos ng expires_at nito. I-rig muli ang character.
Hindi mahanap ng Meshy ang task na motion_task_id. Suriin ang ID.
Nag-expire ang motion clip, dahil pinapanatili ng Meshy ang mga file ng isang Text to Motion task sa loob ng 3 araw. Lumikha ng isa pang Text to Motion task.
Name
429 - Too Many Requests
Description
Lumampas ka sa iyong rate limit. Maghintay, pagkatapos ay subukang muli. Tingnan ang Rate limits.
// 200 OK on success, with an empty body.//// 409 Conflict when the task is IN_PROGRESS. The task keeps running:{"message":"Task is IN_PROGRESS and cannot be deleted. Credits for a task the worker has already started are not refundable; wait for it to reach SUCCEEDED, FAILED or CANCELED, then delete it."}
Path parameters
Name
id
Type
path
Description
Ang ID ng task na ide-delete.
Katayuan ng task
Ang pag-delete ng isang PENDING na task ay nagbabalik ng mga credits na nagamit noong ginawa mo ito.
Hindi maaaring i-delete ang isang IN_PROGRESS na task. Ang request ay magbabalik ng 409 Conflict,
at magpapatuloy ang pagtakbo ng task. Hindi nagbabalik si Meshy ng credits para sa task na nasimulan na,
kaya kung i-delete mo ito, mawawala sa iyo ang credits at ang resulta. Hintayin itong
umabot sa SUCCEEDED, FAILED, o CANCELED, bago ito i-delete.
Ang pag-delete ng task na nasa panghuling katayuan (SUCCEEDED, FAILED, o CANCELED)
ay hindi nagbabalik ng mga credits nito.
Mga Ibinabalik
200 OK kapag na-delete na ang task, o 409 Conflict kapag ang task ay
IN_PROGRESS.
Ibinabalik ang isang paginated na listahan ng iyong mga Animation task, mula sa pinakabago. Upang mag-page sa listahan, gamitin ang page_num at page_size.
Ang mga task na ginawa mo sa pamamagitan ng API ay hindi lumalabas sa My Assets sa web app, kaya pinamamahalaan mo ang mga ito sa pamamagitan ng API. Upang mahanap ang isang task na wala ka nang ID, gamitin ang endpoint na ito.
// Error event exampleevent: errordata: {"status_code": 404,"message": "Task not found"}// Message event examples illustrate task progress.// These examples are shortened. Each event holds the full task object.event: messagedata: {"id": "018c425b-b2c6-727e-d333-3c1887i9h791","progress": 0,"status": "PENDING"}event: messagedata: {"id": "018c425b-b2c6-727e-d333-3c1887i9h791","progress": 50,"status": "IN_PROGRESS"}event: messagedata: { // Example of a SUCCEEDED task stream item, with the same structure as the Animation task object"id": "018c425b-b2c6-727e-d333-3c1887i9h791","type": "animate","status": "SUCCEEDED","created_at": 1747032440896,"progress": 100,"started_at": 1747032441210,"finished_at": 1747032457530,"expires_at": 1747291657530,"task_error": null,"consumed_credits": 3,"result": {"animation_glb_url":"https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.glb?...","animation_fbx_url":"https://assets.meshy.ai/.../Animation_Reaping_Swing_withSkin.fbx?...","processed_usdz_url":"https://assets.meshy.ai/.../processed.usdz?...","processed_armature_fbx_url":"https://assets.meshy.ai/.../processed_armature.fbx?...","processed_animation_fps_fbx_url":"https://assets.meshy.ai/.../processed_60fps.fbx?..." }}
Bawat event ay may hawak na buong task object, sa parehong anyo na ibinabalik ng Get endpoint. Habang ang task ay PENDING o IN_PROGRESS, ang mga result field nito ay wala pang mga value.
Ang isang Animation task object ay naglalarawan ng isang animation na inilapat sa isang rigged character. Naglalaman ito ng status, progress, at ang mga animation file kapag nagtagumpay ang task.
Ang task ID. Ituring itong isang opaque na string, at huwag umasa sa anumang format nito.
Name
type
Type
string
Description
Ang uri ng task, palaging animate.
Name
status
Type
string
Description
Ang status ng task, isa sa PENDING, IN_PROGRESS, SUCCEEDED, FAILED, o CANCELED.
Name
progress
Type
integer
Description
Kung gaano karami ang natapos na sa task, bilang isang porsyento. 0 ito hanggang magsimula ang task at 100 kapag nagtagumpay ito.
Name
created_at
Type
timestamp
Description
Oras nang nilikha ang task, sa Unix milliseconds.
Name
started_at
Type
timestamp
Description
Oras nang nagsimula ang task, sa Unix milliseconds. 0 ito hanggang magsimula ang task.
Name
finished_at
Type
timestamp
Description
Oras nang natapos ang task, sa Unix milliseconds. 0 ito hanggang matapos ang task.
Name
expires_at
Type
timestamp
Description
Oras na mag-e-expire ang mga result file ng task, sa Unix milliseconds.
Name
task_error
Type
object
Description
Ang mga detalye ng error kapag nabigo ang task. null ito maliban na lang kung FAILED ang status. Tingnan ang Errors.
Name
consumed_credits
Type
integer
Description
Ang bilang ng credits na ginamit ng task. Nakalagay ito kapag PENDING, IN_PROGRESS, o SUCCEEDED ang status. 0 ito para sa isang FAILED na task, dahil ibinabalik ni Meshy ang credits kapag nabigo ang isang task.
Name
result
Type
object
Description
Mga download URL para sa mga animation file, kapag SUCCEEDED na ang status ng task.
Name
animation_glb_url
Type
string
Description
Ang animation bilang isang GLB file. Para sa isang task na nilikha gamit ang action_ids, ang isang file na ito ay naglalaman ng bawat hiniling na action bilang hiwalay na clip.
Name
animation_fbx_url
Type
string
Description
Ang animation bilang isang FBX file. Para sa isang task na nilikha gamit ang action_ids, ang isang file na ito ay naglalaman ng bawat hiniling na action bilang hiwalay na clip.
Name
processed_usdz_url
Type
string
Description
Ang naprosesong animation bilang isang USDZ file.
Name
processed_armature_fbx_url
Type
string
Description
Ang naprosesong armature bilang isang FBX file.
Name
processed_animation_fps_fbx_url
Type
string
Description
Ang animation sa binagong frame rate, bilang isang FBX file, halimbawa kapag ginamit mo ang change_fps operation.
Name
preceding_tasks
Type
integer
Description
Ang bilang ng mga task na nauuna sa task na ito sa pila. Makabuluhan lang ang value habang PENDING ang task. Hindi isinasama ang field kapag 0 ang value.
Ibinabalik ang bawat animation sa library, nakaayos ayon sa action_id. Ang tugon ay ang kumpletong listahan, walang mga pahina, kaya ang isang tawag ay maaaring punan ang isang action picker. Pinapaliit ng mga filter ang resulta. Para makuha ang bawat animation, iwanan ang lahat ng ito.
Para mag-browse ng parehong listahan na may animated na preview ng bawat action, tingnan ang Animation Library reference.
Text na hahanapin. Ibinabalik ni Meshy ang mga animation na ang name o key ay naglalaman ng text na ito, hindi pinapansin ang case. Itinutugma ni Meshy ang text nang literal, kaya ang % at _ ay hindi mga wildcard.
Name
category
Type
string
Description
Ang kategoryang ililista, bilang isang eksaktong tugma. Ang isang hindi kilalang kategorya ay magbabalik ng walang laman na listahan.
Mga available na halaga:
WalkAndRun
BodyMovements
DailyActions
Fighting
Dancing
Name
sub_category
Type
string
Description
Ang subcategory na ililista, bilang isang eksaktong tugma. Maaari mo itong ipadala nang walang category. Ang mga pangalan ng subcategory ay hindi kakaiba sa lahat ng kategorya. Halimbawa, ang Transitioning ay nasa ilalim ng Fighting at DailyActions. Kaya nang walang category, itinutugma ng filter ang subcategory sa bawat kategorya.
Name
action_ids
Type
string
Description
Ang mga animation na ibabalik, bilang hanggang 200 comma-separated na action_id na halaga. Gamitin ito upang hanapin ang mga partikular na ID sa halip na mag-browse. Higit sa 200 ID ay magbabalik ng 400.
Ang tugon ay iniiwan ang isang ID na walang animation. Kaya maaari mo ring gamitin ang filter na ito upang suriin kung ang mga ID na na-store mo ay available pa rin.
Pagsasama-sama ng mga filter
Inilalapat ni Meshy ang mga filter nang magkasama. Ang bawat isa ay pinapaliit ang resulta, kaya ibinabalik lamang ni Meshy ang isang animation kung ito ay tumutugma sa lahat ng mga ito. Sa loob ng isang filter, maaaring tumugma ang alinman sa mga halaga nito. Halimbawa, ang search ay tumutugma sa name o key, at ang action_ids ay tumutugma sa anumang ID sa listahan.
Kaya ang isang kombinasyon na walang pagsasapawan ay magbabalik ng walang laman na array, hindi error. Ang Action 92 ay "Double Combo Attack", isang Fighting na animation. Halimbawa:
?action_ids=92&category=Fighting ay nagbabalik ng action 92.
?action_ids=92&category=Dancing ay nagbabalik ng [], dahil hindi ito isang Dancing na animation.
?action_ids=92&search=walk ay nagbabalik ng [], dahil ang pangalan nito ay hindi tumutugma sa walk.
Upang makakuha ng mga partikular na animation sa anumang kategorya, ipadala ang action_ids nang mag-isa.
Tinatanggap ng Create an Animation task ang bawat action_id na ibinabalik ng endpoint na ito, at ibinabalik ng endpoint na ito ang bawat ID na tinatanggap ng create. Wala sa dalawa ang kasama ang mga retirado na animation. Kung ca-cache mo ang library, i-refresh ito paminsan-minsan, upang ang isang retirado na ID ay hindi manatili sa iyong picker.
Ang value na ipapadala bilang action_id kapag gumawa ka ng Animation task. Natatangi ito at stable, pero hindi magkakasunod. Ang mga animation na na-retire ay nag-iiwan ng mga puwang sa pagnunumero, kaya huwag ipagpalagay na valid ang bawat ID sa isang range.
Name
name
Type
string
Description
Ang display name ng animation. Hindi ito natatangi, dahil may ilang animation na may parehong pangalan sa ibang variant. Para tukuyin ang isang animation, gamitin ang action_id o key.
Name
key
Type
string
Description
Isang natatangi at stable na slug para sa animation. Gamitin ito kapag kailangan mo ng hindi-numerikong ID na gagamitin bilang key sa sarili mong storage.
Name
category
Type
string
Description
Ang top-level na grupo, halimbawa Fighting.
Name
sub_category
Type
string
Description
Ang grupo sa loob ng kategorya, halimbawa AttackingwithWeapon.
Name
preview_url
Type
string
Description
URL ng isang animated GIF preview ng action. Maaari mo itong ipakita nang direkta sa sarili mong picker.