---
title: "Create an animation for a 3D model"
method: POST
path: "/v1/models-3d/{id}/animations"
tags: ["3D Studio"]
---

# Create an animation for a 3D model

`POST /v1/models-3d/{id}/animations`

## Request

- Base URL: `https://api.sprixen.com`
- URL: `https://api.sprixen.com/v1/models-3d/{id}/animations`
- Auth: `bearer` (a scheme the document does not define)

Dispatches async job: auto-rig (UniRig) → motion generation (HY-Motion) → retarget (Blender). Cost: 3 credits. Poll GET /animations-3d/:animId for status.

## Path parameters

- `id` string, required

## Request body

- CreateAnimation3dDto
  - `prompt` string, required: Text prompt describing the desired animation motion
  - `presetSlug` string: Preset slug (walk, run, idle, attack, etc.). When set, the prompt is auto-filled from the preset library.
  - `name` string: Human-readable name for the animation. Defaults to the preset label or a truncated prompt.
  - `animationType` 'auto' | 'humanoid' | 'non_humanoid': Animation pipeline to use. "auto" (default) lets the system detect via rigging. "humanoid" forces skeletal animation (HY-Motion). "non_humanoid" forces vertex deformation (AnimateAnyMesh).

## Response `201`

Animation job created (pending)

## Other responses

- `400`: Model not completed or rate limit
- `402`: Insufficient credits

---

[API](https://skmtc.dev/sprixen/apis/sprixen-api.md) · [All operations](https://skmtc.dev/sprixen/apis/sprixen-api/llms.txt) · [OpenAPI document](https://skmtc.dev/sprixen/apis/sprixen-api/revisions/6c0c57f6da58?raw)
