Update Model Settings
Page Outline
Updates display, notification, and access control settings for a model using partial-update semantics.
Base Path: /api/v1/models
Method: PATCH
Path: /{model_id}/settings
Auth: Requires a valid Bearer token (Authorization: Bearer <JWT>)
Path Parameters
| Parameter | Type | Description |
|---|---|---|
model_id | string | Unique identifier of the model |
Request Body
All fields are optional. Only provided fields are updated.
{
"display": {
"pinned_to_dashboard": false,
"color_label": "#E85D75"
},
"notifications": {
"on_drift_detected": true,
"notify_emails": ["carol@example.com"]
},
"access": {
"visibility": "private"
}
}
| Field | Type | Description |
|---|---|---|
display.pinned_to_dashboard | boolean | Whether this model appears in the dashboard quick-access panel |
display.color_label | string | Hex color code for UI labeling |
display.icon | string | Icon identifier from the icon library |
notifications.on_training_complete | boolean | Notify on training completion |
notifications.on_training_failure | boolean | Notify on training failure |
notifications.on_drift_detected | boolean | Notify when data/concept drift is detected |
notifications.notify_emails | string[] | Email recipients for notifications (replaces existing list) |
access.visibility | string | "org" (all org members) or "private" (owner + explicit collaborators only) |
access.allow_collaborator_invites | boolean | Whether non-owner collaborators can invite others |
Behavior
- Uses PATCH semantics — nested objects are shallow-merged per top-level section (
display,notifications,access). - Changes to
access.visibilitytake effect immediately for all API calls. - An audit log entry is written with action
model.settings_updated.
Response
Returns the full updated ModelSettings object (same schema as Get Settings).