{"openapi":"3.1.0","info":{"title":"SkinTokens for Agents: auto-rigging API (ZeroGPU)","description":"Rig any 3D mesh with SkinTokens (TokenRig, ACM TOG 2026): send a glb/gltf/obj/fbx, get back a rigged GLB (skeleton + skin weights), the rig as JSON, the weights as NPZ and a preview. Synchronous: POST /api/rig returns when the files are ready (about 20-60 s). Agent guide: /llms.txt. MCP: /gradio_api/mcp/.","version":"1.0"},"paths":{"/api":{"get":{"tags":["service"],"summary":"Service description: parameters, limits, workflow, provenance","operationId":"api_info_api_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Info Api Get"}}}}}}},"/api/health":{"get":{"tags":["service"],"summary":"Health","operationId":"health_api_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Health Api Health Get"}}}}}}},"/api/gpu_check":{"get":{"tags":["service"],"summary":"Run a 10 s ZeroGPU probe (billed to the caller) and report the GPU","operationId":"api_gpu_check_api_gpu_check_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Gpu Check Api Gpu Check Get"}}}}}}},"/api/examples":{"get":{"tags":["service"],"summary":"Bundled example meshes, and real results generated by this Space with how to reproduce each","operationId":"api_examples_api_examples_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Examples Api Examples Get"}}}}}}},"/api/identity":{"get":{"tags":["service"],"summary":"Who pays the GPU time of calls made with these headers","operationId":"api_identity_api_identity_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response Api Identity Api Identity Get"}}}}}}},"/api/rig":{"post":{"tags":["rig"],"summary":"Rig a mesh: predict a skeleton and skin weights (synchronous, about 20-60 s)","description":"Send the mesh as the raw request body (`curl --data-binary @mesh.glb \"...?filename=mesh.glb\"`), as a multipart `file` field, or as JSON `{\"example\": \"giraffe\"}` / `{\"mesh_url\": \"https://...\"}`. Options (`num_beams`, `seed`, `keep_skeleton`, `preserve_original`, `postprocess`, `influences`, `top_k`, `top_p`, `temperature`, `repetition_penalty`, `preview`) go in the JSON body or as query parameters. Returns the result with a URL per output file. GPU time is billed to the caller's ZeroGPU quota (send `Authorization: Bearer <HF token>`).","operationId":"api_rig_api_rig_post","parameters":[{"name":"filename","in":"query","required":false,"schema":{"type":"string","description":"name of the uploaded file (its extension selects the importer)","title":"Filename"},"description":"name of the uploaded file (its extension selects the importer)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Api Rig Api Rig Post"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}":{"get":{"tags":["rig"],"summary":"A finished result (kept 24 h)","operationId":"api_job_api_jobs__job_id__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Response Api Job Api Jobs  Job Id  Get"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/jobs/{job_id}/files/{name}":{"get":{"tags":["rig"],"summary":"Download an output file","operationId":"api_job_file_api_jobs__job_id__files__name__get","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"string","title":"Job Id"}},{"name":"name","in":"path","required":true,"schema":{"type":"string","title":"Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}},"servers":[{"url":"https://townbox-skintokens-for-agents.hf.space"}]}