--- method: PUT path: /api/dashboard/preferences auth: jwt area: dashboard --- # Update Dashboard Preferences Saves or updates the signed-in user's dashboard preferences for a library. ## Example request ```json example-request { "library_id": "550e8400-e29b-41d4-a716-446655440000", "hidden_collections": ["not-started"], "collection_order": ["recently-added", "continue-reading", "recently-read"], "items_per_section": 20 } ``` ## Example response ```json example-response { "id": "550e8400-e29b-41d4-a716-446655440000", "user_id": "550e8400-e29b-41d4-a716-446655440000", "library_id": "550e8400-e29b-41d4-a716-446655440000", "hidden_collections": ["not-started"], "collection_order": ["recently-added", "continue-reading", "recently-read"], "items_per_section": 20, "created_at": "2026-10-24T13:57:01Z", "updated_at": "2026-10-24T13:57:01Z" } ``` ## Fields | Field | Type | Required | Notes | | ----- | ---- | -------- | ----- | | library_id | string (uuid) | No | `null`/absent = global scope; empty string is rejected | | hidden_collections | array | No | Collection ids to hide | | collection_order | array | No | Ordered list of collection ids | | items_per_section | int | No | Items per section | ## Errors | Status | Body | When | | ------ | ---- | ---- | | 400 | `{"error": "Invalid request"}` / `{"error": "invalid library_id"}` | malformed body or library_id | | 500 | `{"error": "Failed to save preferences"}` | unexpected server error |