Models
The performer roster — create and curate models, upload reference images, and read the scenes and frame-matches they appear in. Reads need models:read; writes need models:write.
List models with filters + sort.
models:readGET/v1/models
Parameters
Response fields
Get a model by slug.
models:readGET/v1/models/{slug}
Parameters
Returns the full Model object — see the Model object.
Create a model.
models:writePOST/v1/models
Console roles: OWNER, DIRECTOR
Request body
Returns the created Model object.
Update a model (slug not patchable).
models:writePATCH/v1/models/{slug}
Console roles: OWNER, DIRECTOR
Parameters
Request body
Returns the updated Model object.
Soft-delete a model (scenes preserved).
models:writeDELETE/v1/models/{slug}
Console roles: OWNER, DIRECTOR
Parameters
Response fields
Upload a reference image (raw image body).
models:writePOST/v1/models/{slug}/image
Console roles: OWNER, DIRECTOR
Parameters
Response fields
Send the raw image bytes as the request body with the matching Content-Type (e.g. image/webp).
Scenes a model appears in (cursor-paginated).
models:readGET/v1/models/{slug}/scenes
Parameters
Response fields
Frame-match previews (offset-paginated, confidence desc).
models:readGET/v1/models/{slug}/frames
Parameters
Response fields
Model event timeline (cursor-paginated).
models:readGET/v1/models/{slug}/activity
Parameters
Response fields
Check slug availability.
models:writePOST/v1/models/check-slug
Request body
Response fields
Probe image dimensions (raw image body, no DB write).
models:writePOST/v1/models/check-image
Response fields
Download the CSV import template.
models:readGET/v1/models/import/template.csv
Returns a text/csv template file.
Get the in-flight import for this workspace, or null.
models:readGET/v1/models/import
Response fields
Get one import + its rows.
models:readGET/v1/models/import/{id}
Parameters
Same shape as GET /v1/models/import.
Upload a CSV (raw text/csv body) → creates a PREVIEW import with per-row validation.
models:writePOST/v1/models/import/csv
Console roles: OWNER, DIRECTOR
Response fields
Send the CSV as the raw request body (Content-Type: text/csv). Columns: name (required), slug, aliases (semicolon-delimited), reference_image_url (required), active, studio.
Commit an import (PREVIEW → PROCESSING).
models:writePOST/v1/models/import/{id}/apply
Console roles: OWNER, DIRECTOR
Parameters
Request body
Response fields
Cancel an import; committed rows kept, the rest skipped.
models:writePOST/v1/models/import/{id}/cancel
Console roles: OWNER, DIRECTOR
Parameters
Response fields
Last updated on