---
title: "Update User Preferences"
method: PUT
path: "/user-preferences/"
tags: ["User Preferences"]
---

# Update User Preferences

`PUT /user-preferences/`

Update user preferences in metadata.

## Request body

- UpdateUserPreferencesRequest — Request model for updating user preferences
  - `YOLO_model_size` 'nano' | 'small' | 'medium', nullable
  - `GPU_Acceleration` boolean, nullable
  - `Video_Frame_Interval` number, nullable
  - `memories` MemoriesPreferencesUpdate — Partial update for memories preferences; every field is optional.
    - `enabled` boolean, nullable
    - `notifications_enabled` boolean, nullable
    - `story_music_enabled` boolean, nullable
    - `slide_duration_seconds` number, nullable
    - `include_videos` boolean, nullable
    - `min_images` integer, nullable
    - `max_images` integer, nullable
    - `weights` MemoryScoringWeightsUpdate — Partial update for scoring weights. Deliberately does not normalize: rescaling a single slider to 1.0 would wipe out the others. Stored values stay raw and are normalized on read.
      - `favourite` number, nullable
      - `known_people` number, nullable
      - `event_strength` number, nullable
      - `face_presence` number, nullable
      - `semantic_confidence` number, nullable
      - `gps_novelty` number, nullable
      - `in_album` number, nullable

## Response `200`

Successful Response

- UpdateUserPreferencesResponse — Response model for updating user preferences
  - `success` boolean, required
  - `message` string, required
  - `user_preferences` UserPreferencesData, required — User preferences data structure
    - `YOLO_model_size` 'nano' | 'small' | 'medium'
    - `GPU_Acceleration` boolean
    - `Video_Frame_Interval` number
    - `memories` MemoriesPreferences — Memory generation and delivery preferences.
      - `enabled` boolean
      - `notifications_enabled` boolean
      - `story_music_enabled` boolean
      - `slide_duration_seconds` number
      - `include_videos` boolean
      - `min_images` integer
      - `max_images` integer
      - `weights` MemoryScoringWeights — Relative importance of each memory scoring signal. Weights are normalized to sum to 1.0 on validation, so a UI slider set never has to land on an exact total.
        - `favourite` number
        - `known_people` number
        - `event_strength` number
        - `face_presence` number
        - `semantic_confidence` number
        - `gps_novelty` number
        - `in_album` number

## Other responses

- `400` — Bad Request
- `422` — Validation Error
- `500` — Internal Server Error

## Changes

- **2026-07-30** `bf1ef4998555` — 1 info
  - the `notifications_enabled` response's property default value changed from `true` to `false` for the status `200`
- **2026-07-28** `804fe1117565` — 2 info
  - added the new optional request property `memories/anyOf[subschema #1: MemoriesPreferencesUpdate]/include_videos`
  - added the optional property `user_preferences/memories/include_videos` to the response with the `200` status
- **2026-07-26** `6d00f3eba85c` — 2 info
  - added the new optional request property `memories`
  - added the optional property `user_preferences/memories` to the response with the `200` status
- **2026-07-24** `ae0fa25e46e7` — 2 breaking, 2 info
  - the `user_preferences/Video_Frame_Interval` response property's max was increased from `60.00` to `300.00` for the response status `200`
  - the `user_preferences/Video_Frame_Interval` response property's min was decreased from `1.00` to `0.50` for the response status `200`
  - the `Video_Frame_Interval/anyOf[subschema #1]/` request property's max was increased from `60.00` to `300.00`
  - the `Video_Frame_Interval/anyOf[subschema #1]/` request property's min was decreased from `1.00` to `0.50`
- **2026-07-24** `139d995685b7` — 2 info
  - added the new optional request property `Video_Frame_Interval`
  - added the optional property `user_preferences/Video_Frame_Interval` to the response with the `200` status

[Full history](https://skmtc.dev/aossie-org/apis/pictopy/changes/user-preferences/put.md)

---

[API](https://skmtc.dev/aossie-org/apis/pictopy.md) · [All operations](https://skmtc.dev/aossie-org/apis/pictopy/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/aossie-org/pictopy/revisions/a6c11e6b42e4/schema)
