---
title: "Get user's preferences"
method: GET
path: "/users/{user_id}/preferences"
tags: ["User Preferences"]
---

# Get user's preferences

`GET /users/{user_id}/preferences`

Returns a user's preference overrides with paging, one entry per subscription topic they have set a choice for.

## Path parameters

- `user_id` string, required

## Query parameters

- `tenant_id` string, nullable

## Response `200`

- UsersUserPreferencesListResponse
  - `paging` Paging, required
    - `cursor` string, nullable
    - `more` boolean, required
  - `items` UsersTopicPreference[], required — The Preferences associated with the user_id.
    - `custom_routing` ChannelClassification[], nullable — The channels the user has chosen to receive this topic on, present only when has_custom_routing is true. One or more of: direct_message, email, push, sms, webhook, inbox.
    - `default_status` 'OPTED_IN' | 'OPTED_OUT' | 'REQUIRED', required
    - `has_custom_routing` boolean, nullable — Whether the user has chosen specific delivery channels for this topic (listed in custom_routing) rather than the topic's default routing.
    - `status` 'OPTED_IN' | 'OPTED_OUT' | 'REQUIRED', required
    - `topic_id` string, required — The unique identifier of the subscription topic this preference applies to.
    - `topic_name` string, required — The display name of the subscription topic, returned on reads.

## Other responses

- `400`

---

[API](https://skmtc.net/trycourier/apis/courier.md) · [All operations](https://skmtc.net/trycourier/apis/courier/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trycourier/courier/versions/04f69fbf96a5/schema)
