---
title: "Update a notification preference"
method: PATCH
path: "/api/v1/notifications/preferences/{category}"
tags: ["Notifications"]
---

# Update a notification preference

`PATCH /api/v1/notifications/preferences/{category}`

## Request

- Base URL: `https://app.easyscraper.com`
- URL: `https://app.easyscraper.com/api/v1/notifications/preferences/{category}`
- Auth: API key in cookie `better-auth.session_token`

Sets whether the logged in user gets a category of notifications on the channels given (`channels`, by ID, e.g. `{ "email": false }`), leaving the others as they are. Each must be one of `getPreferences`' channels that delivers the category (`BAD_REQUEST` otherwise, e.g. `in-app` in an app without a notification center), and those that always deliver it (security emails) can't be turned off (`BAD_REQUEST`). Returns the category's preference, as `getPreferences` does

## Path parameters

- `category` 'security' | 'membership' | 'team' | 'billing' | 'feedback', required

## Request body

- object
  - `channels` object, required

## Response `200`

OK

- object
  - `category` 'security' | 'membership' | 'team' | 'billing' | 'feedback', required
  - `channels` object, required
  - `alwaysOn` string[], required

## Other responses

- `400`: 400
- `401`: 401
- `404`: 404
- `429`: 429

## Changes

- **2026-11-02** `a12cef98c52b`: 4 breaking, 3 warning, 2 info
  - added the new required request property `channels`
  - request body became required
  - added `subschema #1` to the response body `oneOf` list for the response status `400`
  - removed the required property `email` from the response with the `200` status
  - …5 more
- **2026-10-31** `3e642e95991a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/easyscraper/apis/easy-scraper-api/changes/api/v1/notifications/preferences/:category/patch.md)

---

[API](https://skmtc.dev/easyscraper/apis/easy-scraper-api.md) - [All operations](https://skmtc.dev/easyscraper/apis/easy-scraper-api/llms.txt) - [OpenAPI document](https://skmtc.dev/easyscraper/apis/easy-scraper-api/revisions/a12cef98c52b?raw)
