---
title: "Update a model"
method: PUT
path: "/admin/models/{id}"
tags: ["Admin Models"]
---

# Update a model

`PUT /admin/models/{id}`

Update an existing model with the provided data

## Path parameters

- `id` string, required

## Request body

- UpdateModelDto
  - `id` string, required — The ID of the model to update
  - `name` string — The name of the model
  - `description` string — The description of the model
  - `photo` string — The photo URL of the model
  - `video` string — The video URL of the model
  - `avatarIcon` string — Avatar icon key under static prefix (e.g., avatarIcon.webp)
  - `tiktokVideo` string — TikTok video key under static/tiktok
  - `onboardingImage` string — Onboarding image key under static/onboarding
  - `useVideo` boolean — Whether the model uses video
  - `isPublic` boolean — Whether the model is public
  - `isExplicit` boolean — Whether the model contains explicit content
  - `gender` 'male' | 'female' — The gender of the model
  - `breastSize` 'small' | 'medium' | 'large' | 'xl' — The breast size of the model
  - `bodyType` 'slim' | 'average' | 'athletic' | 'chubby' — The body type of the model
  - `buttSize` 'small' | 'medium' | 'large' — The butt size of the model
  - `ethnicity` 'caucasian' | 'latina' | 'asian' | 'arab' | 'afro' | 'indian' | 'furry' | 'kemonomimi' | 'tiefling' — The ethnicity of the model
  - `age` number — The age of the model (any number between 18 and 99)
  - `eyesColor` 'Blue' | 'Brown' | 'Green' — The eye color of the model
  - `hairStyle` 'Straight' | 'Braids' | 'Bangs' | 'Bun' | 'Curly' | 'Short' | 'Long' | 'Pigtails' | 'Ponytail' | 'Emo' | 'Shoulder-length' | 'Buzz' | 'Pixie' | 'Hijab' | 'Veil' — The hair style of the model
  - `hairColor` 'Blonde' | 'Brunette' | 'Black' | 'Red' | 'Pink' | 'Blue' | 'Violet' | 'Airtouch' | 'Black with blonde highlights' | 'Ombre' — The hair color of the model
  - `personality` 'Caregiver' | 'Sage' | 'Innocent' | 'Jester' | 'Temptress' | 'Dominant' | 'Submissive' | 'Lover' | 'Nympho' | 'Mean' | 'Confidant' | 'Experimenter' — The personality of the model
  - `occupation` 'Massage Therapist' | 'Dentist' | 'Nutritionist' | 'Fitness Coach' | 'Artist' | 'Pharmacist' | 'Hairdresser' | 'Makeup Artist' | 'Gynecologist' | 'Writer' | 'Secretary' | 'Librarian' | 'Social Worker' | 'Fashion Designer' | 'Model' | 'Police Officer' | 'Nurse' | 'Yoga Instructor' | 'Waitress' | 'Cook' | 'Unemployed' | 'Dancer' | 'Teacher' | 'Student' | 'Life Coach' | 'Astronaut' | 'Kindergarten Teacher' | 'Soldier/Military Personnel' | 'Architect' | 'DJ' | 'Nun' — The occupation of the model
  - `hobbies` string[] — The hobbies of the model
  - `relationship` 'Stranger' | 'School Mate' | 'Colleague' | 'Mentor' | 'Girlfriend' | 'Sex Friend' | 'Wife' | 'Mistress' | 'Friend' | 'Best Friend' | 'Step Sister' | 'Step Mom' — The relationship type of the model
  - `voice` string — The voice type of the model
  - `firstMsg` string — The first message from the model
  - `firstMsgImage` string — The first message image URL
  - `firstMsgImageSfw` string — Open first-message photo, shown to everyone
  - `firstMsgImageNsfw` string — Explicit first-message photo, blurred until subscribed
  - `firstMsgImageNsfwBlurred` string — Pre-blurred copy of the explicit photo, generated on upload
  - `firstMsgVideo` string — The first message video URL
  - `firstMsgVideoPreview` string — The first message video preview URL
  - `firstMsgVideoDuration` number — The duration of the first message video in seconds
  - `userFirstMsgHelp` string — Help text for the user's first message
  - `userId` string — The user ID who owns this model (for private models)
  - `order` number — The display order of the model
  - `isPro` boolean — Whether this is a premium model
  - `baseViews` number — Synthetic baseline for the social-rating views shown on the card
  - `baseLikes` number — Synthetic baseline for the social-rating likes shown on the card
  - `ohwxPersonalityPlaceholder` string — OHWX personality LoRA placeholder (e.g., <lora:NAME:W>)
  - `ohwxAppearancePlaceholder` string — OHWX appearance LoRA placeholder (e.g., <lora:NAME:W1> or <lora:NAME:W1:W2>)
  - `ohwxFemaleReplace` string — Replacement text for occurrences of "ohwx female" in prompts
  - `defaultScenarioCover` string — S3 key for the default scenario cover image (direct chat)
  - `defaultScenarioInitialMessage` string — Initial message shown after the cover image (direct chat)
  - `defaultScenarioPrompt` string — Prompt stored in the cover image attachment (direct chat)
  - `allowedChatModes` string[] — Chat modes this model may be started in (GEN-1386). At least one; ROLEPLAY runs the scripted opening + Visual Director, REALISTIC opens with the plain firstMsg and no Director.
  - `initialImagePrompt` string — Initial image prompt for first message attachment generation
  - `isDemo` boolean — Whether this model is a demo character
  - `initialPhotoSFW` string — S3 key for the SFW intro photo (demo models)
  - `initialPhotoNSFW` string — S3 key for the NSFW blurred intro photo (demo models)
  - `demoIntroVideo` string — S3 key for demo intro video (static / demo_intro)
  - `demoModelPreviewVideo` string — S3 key for ethnicity source demo preview clip (static / demo_model_preview)
  - `onboardingSubscriptionRewardVideoPreview` string — S3 key for subscription reward still (FLUX Klein edit) under static / onboarding_sub_reward_preview
  - `onboardingSubscriptionRewardVideo` string — S3 key for subscription reward short video (i2v from edit) under static / onboarding_sub_reward_video

## Response `200`

Model updated successfully

- ModelDetailResponseDto
  - `model` Model, required

## Other responses

- `404` — Model not found

---

[API](https://skmtc.dev/miaai/apis/backend-template-api.md) · [All operations](https://skmtc.dev/miaai/apis/backend-template-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/miaai/backend-template-api/revisions/2a8d88a5124f/schema)
