Skip to main content
PATCH

Overview

Changes one of your team’s characters, the same fields as the character editor in Studio → Characters: name, description, voiceProfile, presetId and the photo. Send only what changes; fields you leave out keep their value. description: null and voiceProfile: null clear them. The photo works as in Create Character: mediaId (a COMPLETED image of your library), imageUrl (imported after the response) or generatePortrait: true (generated from the description, charged one image), at most one of them. mediaId: null removes the photo. With imageUrl or generatePortrait the answer is 202; poll Get Character until imageStatus is COMPLETED or FAILED. A portrait uses the character’s description and style after the update, so you can send a new description and generatePortrait: true together.

Errors

Authorizations

x-api-key
string
header
required

Headers

Idempotency-Key
string

Makes the request safe to retry. 1-255 printable ASCII characters, one per operation (your job id, or a UUID you store), reused on every retry. Within 24 hours the same key with the same body answers with the first response and the header Idempotent-Replayed: true, without running or charging again. Keys are scoped to your team and the endpoint. 5xx answers and refusals before anything ran (401, 402, 403, 409, 429) are not kept. See Idempotency.

Required string length: 1 - 255
Pattern: ^[\x20-\x7E]+$

Path Parameters

characterId
string
required

The character id, from List Characters.

Body

application/json
name
string

New name.

Maximum string length: 60
description
string | null

New visual description; null clears it.

Maximum string length: 2000
voiceProfile
string | null

New voice description; null clears it.

Maximum string length: 500
presetId
string

New visual style (visual-styles catalog id or your custom-<id>).

mediaId
string | null

A COMPLETED image of your library as the new photo; null removes the photo.

imageUrl
string<uri>

A public https JPEG, PNG, WEBP or GIF. It is imported into your library after the response (free, counted against your storage); imageStatus is PROCESSING until then.

generatePortrait
boolean

true generates a portrait from description in the character's style, after the response. Charged one image at imageModel (4 credits with the default); given back if it fails.

imageModel
string

Image model for generatePortrait (an image-models catalog id). Default gpt_image_2.

Response

Character updated

success
boolean
required
data
object
required

The character as saved, and what it cost.

message
string