API documentation, integration examples, and MCP. Manage your API keys, usage, and billing in Account.
Interactive API reference and live demo. You can also open it in a new tab.
Quick start
Replace YOUR_KEY and CROWD_ID with real values.
JavaScript (fetch)
const res = await fetch('https://your-host/v1/crowd/CROWD_ID', {
headers: { 'Authorization': 'Bearer YOUR_KEY' }
});
const data = await res.json();
console.log(data.characters.length, 'characters');
// data.assets.skeleton_glb -- load this GLB once
// data.characters[] -- per-character part assignments + transforms
curl
curl https://your-host/v1/crowd/CROWD_ID \ -H "Authorization: Bearer YOUR_KEY"
Python (requests)
import requests
r = requests.get(
'https://your-host/v1/crowd/CROWD_ID',
headers={'Authorization': 'Bearer YOUR_KEY'}
)
data = r.json()
print(len(data['characters']), 'characters')
skeleton_url = data['assets']['skeleton_glb']
Response shape
The full response schema is in the Docs tab. Key fields:
{
"crowd_id": "cr_xxxxxxxx",
"name": "My Scene",
"recipe": { /* layout, size, weights, obstacles... */ },
"characters": [
{ "body": "M_Terracotta_Infantry_Soldier",
"face": "M_Chinese_Face_01",
"hair": "Ming_Warrior_Crown",
"position": [x, y, z],
"rotation": radians,
"scale": 1.0 }
],
"assets": {
"skeleton_glb": "https://...",
"animations": { "idle": "https://...", "walk": "https://..." }
}
}
MCP server config
Add this to your claude_desktop_config.json (or equivalent MCP config file):
{
"mcpServers": {
"genji": {
"command": "npx",
"args": ["-y", "@genji/mcp-server"],
"env": {
"GENJI_API_URL": "https://your-host",
"GENJI_API_KEY": "gk_live_xxxxxxxxxxxx"
}
}
}
}
Available tools