Create a model
Open your dashboard → Models to create, preview and hide models in a few clicks — no code needed. These endpoints are here for when you want to do the same from your own system, for example to sync the list into your app or create models automatically.
https://api.catalogpro.app/businessApi/modelsMakes a new AI fashion model. It takes about a minute; once it is ready it appears in GET /models and you can use its model_id for Clothing photos.
Before you use it
- Models are free. You can have up to 25; hidden models still count.
- Your last free slot is kept for a group you don't have yet (Men, Women or Kids), so you can always dress all of them. Teens count as Men or Women.
- The accepted values for every trait are listed by
GET /businessApi/options.
Pick a group
| Group | What to send |
|---|---|
| Men / Women | gender only. Optional age_range: auto, young_adult, adult or mature. |
| Teens (18–22) | gender and "age_range": "teen_18_22". Leave out audience — Teens are adult models. |
| Kids (1–17) | gender, "audience": "kids" and an age band: child_1_2, child_3_5, child_6_8, child_9_12 or child_13_17. Leave body type, height and facial hair out (or auto). |
What to send
A JSON body. Only gender is required; anything you leave out is chosen for you.
| Field | Required? | What to send |
|---|---|---|
X-Api-Key | Required | Your API key, as a header. Send Content-Type: application/json too. |
gender | Required | male or female. For Kids this means boy or girl. |
audience | Optional | kids for a child model. Leave it out (or adult) for Men, Women and Teens. |
age_range | Optional | See Pick a group above. Required for Kids. |
size | Optional | 1 square (1024×1024) or 2 tall (768×1024) for the model's photo. |
ethnicity, skin_color, hair_style, hair_color | Optional | How the model looks. Values from GET /options → model_traits. |
body_type, height, facial_hair | Optional | Adults and Teens only. Facial hair applies to male models. |
Example request
curl -X POST "https://api.catalogpro.app/businessApi/models" \
-H "X-Api-Key: cp_live_xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"gender":"female","audience":"kids","age_range":"child_6_8","size":2}'
More bodies: {"gender":"male"} (a man, everything else chosen for you), {"gender":"female","age_range":"teen_18_22"} (a teen girl).
Example response
Status 202 Accepted — the model is being made.
{
"job_id": "c41d…", // check it with GET /jobs/{job_id}
"model_id": "5b0e3f1c-…", // the model's id, usable once the job is completed
"status": "queued",
"gender": "female"
}
When it's ready
Check GET /jobs/{job_id} once every 15 seconds. When the status is completed, the model is in GET /models and its model_id works for clothing photos. If it fails, the slot is given back.
Errors you might see
| Code | What it means | What to do |
|---|---|---|
400 INVALID_REQUEST | A field is missing or not allowed — for example Kids without an age band, or a Kids model with a body type. | The message says which field. |
400 MODEL_GENDER_REQUIRED | Your last free slot is kept for a group you don't have yet. | Create a model in the group the message names, or hide a model you don't need. |
403 MODEL_LIMIT_REACHED | You already have 25 models. | Hide the ones you don't want to offer, and keep using the rest. |
