Developers
The studio is one client of the API. You can be another.
Everything the studio does goes through the same REST endpoints: upload a character, plan a prompt, generate, download. Batch a hundred prompts overnight, wire it into a build step, or put a prompt box in your own tool.
1. Create a key
Account → API keys → New key. Send it as a Bearer token or in an X-API-Key header. Keys act as your account: same credits, same characters.
export MOCAPLESS_KEY=mf_...
2. Upload a character (once)
Any rigged FBX, GLB or DAE - or an un-rigged one, which is rigged for you. The response is pending until the skeleton has been read; poll it until status is ready.
curl -X POST https://api.mocapless.com/v1/assets \ -H "Authorization: Bearer $MOCAPLESS_KEY" \ -F "file=@character.fbx" curl https://api.mocapless.com/v1/assets/<asset_id> \ -H "Authorization: Bearer $MOCAPLESS_KEY"
3. Plan (free) - see the beats and the price
Planning never spends credits. It returns the beats the model will perform, the cost in credits, and your balance, so a pipeline can decide before it pays.
curl -X POST https://api.mocapless.com/v1/plan \
-H "Authorization: Bearer $MOCAPLESS_KEY" \
-H "Content-Type: application/json" \
-d '{"prompt": "a tired soldier limps forward, stops, looks over his shoulder, then sits down"}'4. Generate
Returns 202 with a job. asset_id is optional: the most recent ready character is used without it. formats can be any of glb, fbx, bvh; engine is auto by default, or neural / procedural to force one.
curl -X POST https://api.mocapless.com/v1/generate \
-H "Authorization: Bearer $MOCAPLESS_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a tired soldier limps forward, stops, looks over his shoulder, then sits down",
"asset_id": "<asset_id>",
"formats": ["fbx", "glb"],
"loop": false
}'5. Wait, then download
Poll the job, or open the server-sent events stream at /v1/jobs/<id>/events for live progress. When status is succeeded, outputs holds signed URLs for each format. A failed job refunds its credits automatically.
curl https://api.mocapless.com/v1/jobs/<job_id> \
-H "Authorization: Bearer $MOCAPLESS_KEY"
# outputs: [{"kind": "fbx", "url": "..."}, {"kind": "glb", "url": "..."}, ...]MCP
Inside Claude, Cursor and Windsurf
The mocapless-mcp server exposes the same flow as tools for any MCP client: an agent can upload a character, quote a prompt, generate the clip, wait, and save the files - and, next to an Unreal or Unity MCP server, import the result into your project in the same conversation.
{
"mcpServers": {
"mocapless": {
"command": "uvx",
"args": ["mocapless-mcp"],
"env": { "MOCAPLESS_API_KEY": "mf_..." }
}
}
}Claude Desktop: paste into claude_desktop_config.json. Claude Code: claude mcp add mocapless -e MOCAPLESS_API_KEY=mf_... -- uvx mocapless-mcp. Tools: account, list_characters, upload_character, plan_motion, generate_animation, get_job, recent_animations, share_link.
Reference
The full OpenAPI reference, with every field and response, is generated from the running service:
Rate limits apply per account. Prices are in credits, quoted by /v1/plan before any generation; failed jobs are refunded. Questions: hello@mocapless.com.