# List Preferences

GET /api/v2/projects/{projectId}/crm/contact-notification-preferences

Lists one contact's per-type subscription preferences, for rendering a preference centre. Only types the contact has an explicit preference for are returned. Pair this with List Types to show categories they have never chosen. Public and unauthenticated; use `encrypted` when the contact ID comes from an emailed link. Returns 404 if the contact does not exist.

## Request

- projectId: string, path, required — ID of the project that owns the contact.
- contactDistinctId: string, query, required — Distinct ID of the contact whose preferences to list. Pass the encrypted form and set `encrypted` when calling from a public unsubscribe page.
- notificationTypeId: string, query — Only return the preference for this notification type.
- skip: number, query — Number of preferences to skip before collecting results.
- take: number, query — Maximum number of preferences to return.
- encrypted: boolean, query — Set when `contactDistinctId` is the encrypted value from a preference-centre link, so the server decrypts it before the lookup.

## Response

- 200: Successful response
- 400: Invalid input data
- 401: Authorization not provided
- 403: Insufficient access
- 404: Not found
- 500: Internal server error
