Skip to main content

3d models

Skin Tokens API

Rigging a character by hand is slow specialist work. Skin Tokens does it automatically: send a GLB character mesh and get back a rigged GLB with a fitted skeleton and per-vertex skinning weights — $0.30 per task, no rigger in the loop.

Get Started!

Skin Tokens API Pricing

Pay-as-you-go access through PiAPI.

Auto-Rigmesh2rig

$0.30

Rig one GLB character mesh, up to 80,000 triangles.

What Skin Tokens Does

One endpoint, one job: turn a static mesh into an animatable one.

Rigging Without a Rigger

Submit a 3D character mesh and Skin Tokens fits a skeleton and solves per-vertex skinning weights for you. A mesh that arrived static leaves animatable, without a manual rigging pass.

GLB In, GLB Out

Input is a valid glTF 2.0 binary (GLB) of up to 80,000 triangles, given as a publicly accessible URL or a base64 data URI. The response returns a rigged GLB at output.model_file containing the original mesh, the fitted skeleton, and the skinning weights.

Flat $0.30 Per Task

Every rig task costs the same regardless of how complex the mesh is, so the cost of rigging an entire character library is predictable before you start.

Asynchronous by Design

Create a task, then poll the fetch endpoint until it reaches a terminal state. Nothing blocks your request thread while a mesh is being processed.

Webhook Notifications

Supply config.webhook_config.endpoint and an optional secret to receive a callback when a task completes or fails. De-duplicate callbacks by task_id and fetch the task to confirm the final state.

Semantic Bone Naming

Choose original for compatibility, mixamo for mixamorig:* names, or ue5 for UE5 mannequin names. The topology-based mapping tolerates variable joint counts instead of relying on fixed indexes.

Get started

Create your API key

Sign up and grab an API key from the PiAPI workspace — free credits are included on sign-up.

Top up credits

Add credits on the billing page when you are ready to scale beyond the free tier.

Call the API

POST your first task following the API docs, then poll the task until the result is ready.

Iterate in the playground

Prototype prompts and settings in the the playground above before wiring them into your product.

curl -X POST 'https://api.piapi.ai/api/v1/task' \
  -H 'X-API-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "model": "Qubico/skin-tokens",
    "task_type": "rig",
    "input": {
      "model": "YOUR_GLB_URL",
      "seed": -1,
      "bone_names": "original"
    }
  }'

# → { "task_id": "9d5a…", "status": "pending" }

Frequently Asked Questions

What is the Skin Tokens API?

Skin Tokens automatically rigs a 3D character mesh. You submit a GLB mesh and receive a rigged GLB containing the original mesh, a fitted skeleton, and per-vertex skinning weights.

What mesh can I send?

A valid glTF 2.0 binary (GLB) of no more than 80,000 triangles, provided either as a publicly accessible URL or as a base64 data URI. A clean humanoid mesh in a neutral pose generally produces the most reliable rig.

How much does it cost?

$0.30 per rig task.

Can I choose bone names?

Yes. bone_names defaults to original for compatibility. Set it to mixamo for mixamorig:* names or ue5 for UE5 mannequin names. The mapping follows armature topology rather than fixed joint indexes.

Is the API synchronous?

No. Rigging is an asynchronous task: create the task, then poll the fetch endpoint until it reaches a terminal state. You can also register a webhook to be notified when the task completes or fails.

What does the seed parameter do?

seed is optional and defaults to -1, which uses a random seed. Set it to a fixed value when you want a repeatable result for the same input mesh.

What happens if a task fails?

The task reaches a terminal failed state, which you observe either by polling the fetch endpoint or through your webhook. Fetch the task to confirm the final state before retrying.

More questions? See the API docs.