---
title: "Get the most popular public model"
method: GET
path: "/v1/models/popular"
tags: ["Models"]
---

# Get the most popular public model

`GET /v1/models/popular`

Returns the public model with the most chats created in the last 30 days. If no chats were created in that period, returns the first public model by order.

## Response `200`

Most popular model retrieved successfully

- GetModelByIdResponseDto
  - `id` string, required — The model ID
  - `slug` string, required — The model URL slug
  - `name` string, required — The model name
  - `status` 'IN_PROGRESS' | 'COMPLETED' | 'FAILED', required — The model status
  - `description` string, required — The model description
  - `photo` string, required — The model photo URL
  - `avatarIcon` string — The model avatar icon URL
  - `video` string — The model video URL
  - `useVideo` boolean — Whether the model uses video
  - `isPublic` boolean, required — Whether the model is public
  - `gender` 'male' | 'female', required — The model gender
  - `age` number, required — The model age
  - `relationship` string, required — The model relationship
  - `hairColor` 'Blonde' | 'Brunette' | 'Black' | 'Red' | 'Pink' | 'Blue' | 'Violet' | 'Airtouch' | 'Black with blonde highlights' | 'Ombre', required — The model hair color
  - `hairStyle` 'Straight' | 'Braids' | 'Bangs' | 'Bun' | 'Curly' | 'Short' | 'Long' | 'Pigtails' | 'Ponytail' | 'Emo' | 'Shoulder-length' | 'Buzz' | 'Pixie' | 'Hijab' | 'Veil', required — The model hair style
  - `eyesColor` 'Blue' | 'Brown' | 'Green', required — The model eyes color
  - `ethnicity` 'caucasian' | 'latina' | 'asian' | 'arab' | 'afro' | 'indian' | 'furry' | 'kemonomimi' | 'tiefling', required — The model ethnicity
  - `buttSize` 'small' | 'medium' | 'large', required — The model butt size
  - `bodyType` 'slim' | 'average' | 'athletic' | 'chubby', required — The model body type
  - `breastType` 'small' | 'medium' | 'large' | 'xl', required — The model breast size
  - `personality` string, required — The model personality
  - `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', required — The model occupation
  - `hobbies` string, required — The model hobbies
  - `isPro` boolean, required — Whether the model is pro
  - `isNew` boolean, required — Whether the model is new
  - `tiktokVideo` string — The model TikTok video URL
  - `onboardingImage` string — The model onboarding image URL
  - `demoModelPreviewVideo` string — Short demo clip URL (static CDN) for model card / preview in demo flows
  - `onboardingSubscriptionRewardVideoPreview` string — Still preview for onboarding subscription reward (FLUX Klein edit pipeline; static CDN image/WebP)
  - `onboardingSubscriptionRewardVideo` string — Video for onboarding subscription reward (i2v from FLUX edit; static CDN)
  - `hasDefaultScenario` boolean, required — Whether the model has its own default scenario (cover/initial message)
  - `allowedChatModes` string[], required — Chat modes this model may be started in (GEN-1386). Never empty. More than one → the web asks the user to pick before creating the chat.
  - `defaultScenarioCover` string — CDN URL for the model default scenario cover image (chat-images)
  - `headerGallery` ModelContentMediaDto[], required — Up to five ordered public profile photos for the model header. Locked paid content exposes only one teaser thumbnail.
    - `id` string, required
    - `type` 'PHOTO' | 'VIDEO', required
    - `url` string
    - `videoUrl` string
    - `previewUrl` string
    - `nsfwThumbnailUrl` string
    - `lockedCoverUrl` string
    - `duration` number
    - `order` number, required
    - `price` number, required
    - `isPurchased` boolean, required
    - `isLocked` boolean, required
  - `mediaCounts` ModelProfileMediaCountsDto, required
    - `photos` number, required
    - `videos` number, required
  - `socialRating` SocialRatingDto, required
    - `views` number, required — Number of chats created with the model
    - `likes` number, required — Number of chats with >= 2 completed attachment messages

## Other responses

- `404` — No public models 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)
