Characters V2

Save AI Character

Saves a generated character. Returns immediately with 'saving' status. Poll status endpoint until status is 'saved'. Any fields provided here override what was generated.

post/api/v2/characters/save

Request body

characterGuidstring uuid required

Character GUID from the generate step

firstNamestring

Override first name

lastNamestring

Override last name

biographystring

Override biography

dateOfBirthstring date

Override date of birth (must be 21+)

personalitystring[]

Override personality traits. Values must match valid terms — use GET /api/v1/characters/personalities for the full list

interestsstring[]

Override interests. Values must match valid terms — use GET /api/v1/characters/interests for the full list

kinksstring[]

Character's sexual preferences and kinks. Used to shape the character's personality and behavior in text conversations only — they do not control image or video generation capabilities.

backstorystring

Override backstory

tattoosstring

Override tattoo description

textingStylestring

Override texting/communication style

physicalCharacteristicsstring[]

Override physical characteristics (array of strings)

penisSizestring

Override penis size (male only)

breastSizestring

Override breast size (female only)

ethnicitystring

Override ethnicity

hairLengthstring

Override hair length

voiceUrlstring uri

HTTP URL to voice reference audio file (.wav). Overrides any voice set at generate time

aliasstring

Override alias/nickname

jobstring

Override job title

whereYouLivestring

Override location

genderstring

Override gender

orientationstring

Override sexual orientation

relationshipStatusstring

Override relationship status

profileImageUrlstring uri

URL to profile image (downloaded, cropped to 1:1, saved to S3)

coverVideoUrlstring uri

URL to cover video (downloaded and saved to S3)

imageModelstring

Image model for generation

audioSpeednumber float

Audio playback speed multiplier

socialHandleInstagramstring

Instagram handle

socialHandleTiktokstring

TikTok handle

socialHandleTwitterstring

X/Twitter handle

socialHandleYoutubestring

YouTube handle

socialHandleTwitchstring

Twitch handle

socialHandleTelegramstring

Telegram handle

contentLevelContentLevel — unresolved $ref
bodyTypestring

Override body type (valid value from lookup endpoint)

eyeColorstring

Override eye color (valid value from lookup endpoint)

hairColorstring

Override hair color (valid value from lookup endpoint)

earlyAccessEmailinteger

Early access email entity reference

weightinteger

Character weight/ordering

uidinteger

User ID in OhChat system

priorityPricenumber float

Override priority subscription price (field_sub_a)

platinumPricenumber float

Override platinum subscription price (field_sub_b)

vipPricenumber float

Override vIP subscription price (field_sub_c)

priorityListPricenumber float

Override priority list price (field_list_price_a)

platinumListPricenumber float

Override platinum list price (field_list_price_b)

Response

Character save started. Poll status endpoint for completion.

successboolean
characterGuidstring uuid
status'draft' | 'generating' | 'ready' | 'saving' | 'saved' | 'failed'

V2 character processing status:

  • draft: Initial state
  • generating: AI generation in progress
  • ready: Generation complete, ready to save
  • saving: Save in progress
  • saved: Fully saved and ready to use
  • failed: Processing failed (check errorMessage)
messagestring

Example response

{
  "success": true,
  "message": "Character save started. Poll GET /api/v2/characters/{characterGuid}/status for progress."
}

Changes