---
title: "Customize a library character from a text request"
method: POST
path: "/v1/character-studio/characters"
tags: ["Character Studio 3D"]
---

# Customize a library character from a text request

`POST /v1/character-studio/characters`

## Request

- Base URL: `https://api.sprixen.com`
- URL: `https://api.sprixen.com/v1/character-studio/characters`
- Auth: `bearer` (a scheme the document does not define)

Cost: 2 credits (refunded on technical failure). Creates a rigged GLB with all animations plus 4 preview views. Poll GET /character-studio/characters/:id until status=completed. Pass fromModelId to iterate on a previous customization.

## Request body

- CreateCharacterDto
  - `baseSlug` string, required: Slug of the base library character (see GET /v1/character-studio/library), e.g. "knight". When fromModelId is set it must match the base of that model.
  - `prompt` string, required: Free-text request describing the customization (colors, weapons, accessories, glow, hat...). The planner turns it into structured edit ops. With fromModelId it is applied on top of that customization.
  - `name` string: Human-readable name. Defaults to the base character name plus the start of the prompt.
  - `projectId` string: Project to associate the character with (must belong to you).
  - `fromModelId` string: Iterate on a previous customization: ID of one of your completed Character Studio models. Its edit ops are used as the starting point and the new prompt is applied on top.

## Response `201`

Customization queued (pending)

## Other responses

- `402`: Insufficient credits
- `404`: Base character, project or previous model not found

---

[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)
