---
title: "Enable or disable all email to a member"
method: PATCH
path: "/v1/members/{membership_id}/email"
tags: ["members"]
---

# Enable or disable all email to a member

`PATCH /v1/members/{membership_id}/email`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/members/{membership_id}/email`
- Auth: HTTP bearer

Flip a member's email kill switch: ``disabled=true`` stops ALL email to that address (marketing AND
transactional: billing, security, account), ``disabled=false`` restores it.

This is an all-category suppression keyed on the member's address, so it holds no matter which trigger
fires and survives a Slack roster re-sync (the suppression store is not touched by sync). It is
reversible only here (an admin action). Idempotent: re-disabling an already-disabled member (or
re-enabling an already-enabled one) is a no-op that still returns the current state.

A re-enable removes ONLY this admin kill switch; if the address also hard-bounced, that separate
suppression stays in force and the member remains unreachable until the bounce is resolved.

Known limit: the switch is ADDRESS-scoped. If a member's platform email changes (roster sync retires
the old membership and creates a new one), the suppression stays on the old address and the new row
shows email enabled, and the admin must re-flip it there. Person-scoped enforcement is a follow-up owned
by the roster-sync policy.

## Path parameters

- `membership_id` string, uuid, required

## Headers

- `X-Tenant-Id` string, nullable

## Request body

- EmailDisableBody: PATCH /members/{id}/email request body: the per-member email kill switch.
  - `disabled` boolean, required

## Response `200`

Successful Response

- MemberRow: A single member returned after a mutation.
  - `id` string, uuid, required
  - `email` string, required
  - `name` string, required
  - `handle` string, nullable, required
  - `role_code` string, required
  - `status_code` string, required
  - `first_interacted_at` string, date-time, nullable
  - `first_interacted_platform_code` string, nullable, required
  - `first_signed_in_at` string, date-time, nullable, required
  - `email_disabled` boolean
  - `guest_tier` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
