---
title: "Create workspace character"
method: POST
path: "/characters"
tags: ["AI Generation"]
---

# Create workspace character

`POST /characters`

## Request

- Base URL: `https://blitzreels.com/api/v1`
- URL: `https://blitzreels.com/api/v1/characters`
- Auth: API key in header `Authorization`

Creates a reusable character from existing workspace image asset IDs.

## Headers

- `Idempotency-Key` string
- `Idempotency-Key` string

## Request body

- object
  - `name` string, required
  - `type` 'human' | 'fictional' | 'other'
  - `consistency_mode` 'reference' | 'trained_lora'
  - `species` string, nullable
  - `canonical_description` string, nullable
  - `story_facts` string[]
  - `default_voice_id` string, nullable
  - `default_voice_style` string, nullable
  - `reference_asset_ids` string[]
  - `primary_reference_asset_id` string, uuid, nullable

## Response `200`

Successful response

- object
  - `id` string, uuid, required
  - `name` string, required
  - `type` 'human' | 'fictional' | 'other', required
  - `status` 'draft' | 'ready' | 'training' | 'failed' | 'archived', required
  - `consistency_mode` 'reference' | 'trained_lora', required
  - `species` string, nullable, required
  - `canonical_description` string, nullable, required
  - `story_facts` string[], required
  - `default_voice_id` string, nullable, required
  - `default_voice_style` string, nullable, required
  - `folder_id` string, uuid, nullable, required
  - `primary_reference_asset_id` string, uuid, nullable, required
  - `references` object[], required
    - `asset_id` string, uuid, required
    - `name` string, nullable, required
    - `order_index` integer, required
    - `is_primary` boolean, required
  - `created_at` string, required
  - `updated_at` string, required

## Other responses

- `400`: Invalid input data
- `401`: Authorization not provided
- `403`: Insufficient access
- `500`: Internal server error

## Changes

- **2026-10-19** `35608b12471d`: 1 warning, 1 info
  - deleted the `header` request parameter `Idempotency-Key`
  - added the new optional `header` request parameter `Idempotency-Key`

[Operation history](https://skmtc.dev/blitzreels/apis/blitzreels-api/changes/characters/post.md)

---

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