---
title: "Changes to Update Subscriber"
method: PATCH
path: "/subscribers/{id_or_email}"
---

# Changes to Update Subscriber

`PATCH /subscribers/{id_or_email}`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 18 of 43 revisions.

- **2026-11-02** `594190e20eb7`: 1 warning
- **2026-10-27** `8fff9c6b1347`: 1 info
- **2026-10-27** `7068f0150a0b`: 1 warning
- **2026-10-15** `34e7903d33fe`: 1 warning
- **2026-09-16** `7ea9309802c6`: 1 warning, 1 info
- **2026-09-11** `115438bc61dd`: 4 warning, 10 info
- **2026-09-11** `129bca635a48`: 2 warning, 4 info
- **2026-09-10** `d9c13cad7b22`: 1 warning, 5 info
- **2026-08-27** `e0ac41d86464`: 2 info
- **2026-08-08** `3a702c095d22`: 3 warning
- **2026-08-05** `71b271a0f44a`: 1 warning
- **2026-07-13** `228cc05ba97d`: 2 breaking, 3 warning, 3 info
- **2026-06-07** `13f3bc084194`: 42 breaking, 5 warning, 39 info
- **2026-01-17** `8590daeecaea`: 11 warning, 7 info
- **2025-10-15** `b366d059d1ae`: 5 breaking, 4 warning, 11 info
- **2025-07-11** `b3fb230c0938`: 3 warning, 3 info
- **2025-03-24** `b318723a4d8d`: 3 info
- **2025-02-18** `7b086652e3cf`: 2 warning, 3 info

## Changes

- **2026-11-02** `594190e20eb7`: 1 warning
  - added the new `comment_text_contains_link` enum value to the `firewall_reasons/items/code` response property for the response status `200`
- **2026-10-27** `8fff9c6b1347`: 1 info
  - removed the `email_address_noreply_local_part` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-10-27** `7068f0150a0b`: 1 warning
  - added the new `newsletter_unconfirmed_burst` enum value to the `firewall_reasons/items/code` response property for the response status `200`
- **2026-10-15** `34e7903d33fe`: 1 warning
  - added the new `newsletter_resubmission_burst` enum value to the `firewall_reasons/items/code` response property for the response status `200`
- **2026-09-16** `7ea9309802c6`: 1 warning, 1 info
  - added the new `email_address_plus_variant_burst` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_plus_variant_accounts` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-09-11** `115438bc61dd`: 4 warning, 10 info
  - added the new `email_address_local_part_looks_generated` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `ip_address_reputation` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `newsletter_trust` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `subscriber_import_trusted_origin` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_gmail_word_numbers` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_many_consonants_in_a_row` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_shannon_entropy` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `ip_address_peaceful` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `ip_address_prohibited` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `newsletter_age` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `newsletter_has_customized_transactional_email` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `newsletter_status` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `subscriber_import_provenance` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `subscriber_import_source` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-09-11** `129bca635a48`: 2 warning, 4 info
  - added the new `email_address_domain_reputation` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `email_address_reputation` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_esp_suppression` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_is_honeypot` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_peaceful_domain` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_prohibited_via_domain` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-09-10** `d9c13cad7b22`: 1 warning, 5 info
  - added the new `email_address_malformed` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_length` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_null_characters` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `email_address_regex` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `metadata_has_garbage` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `referrer_url_prohibited` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-08-27** `e0ac41d86464`: 2 info
  - removed the `email_address_cleantalk_score` enum value from the `firewall_reasons/items/code` response property for the response status `200`
  - removed the `ip_address_cleantalk_score` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-08-08** `3a702c095d22`: 3 warning
  - added the new `email_address_plus_variant_accounts` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `registration_without_prior_page_visit` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `username_shannon_entropy` enum value to the `firewall_reasons/items/code` response property for the response status `200`
- **2026-08-05** `71b271a0f44a`: 1 warning
  - added the new `email_address_domain_burst` enum value to the `firewall_reasons/items/code` response property for the response status `200`
- **2026-07-13** `228cc05ba97d`: 2 breaking, 3 warning, 3 info
  - added the pattern `^(?:[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|(?:em)_(?:[0-7][0-9abcdefghjkmnpqrstvwxyz]{25}|[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}))$` to the request property `email_which_prompted_unsubscription_id/anyOf[subschema #1]/`
  - the `email_address/anyOf[subschema #1]/` request property format changed from no format to `email`
  - added the new `ip_address_datacenter` enum value to the `firewall_reasons/items/code` response property for the response status `200`
  - added the new `metadata_invalid` enum value to the `code/allOf[subschema #1: UpdateSubscriberErrorCode]/` response property for the response status `400`
  - added the new `shopify` enum value to the `source` response property for the response status `200`
  - added the non-success response with the status `422`
  - added the non-success response with the status `429`
  - removed the `email_address_stopforumspam_score` enum value from the `firewall_reasons/items/code` response property for the response status `200`
- **2026-06-07** `13f3bc084194`: 42 breaking, 5 warning, 39 info
  - removed the enum value `blocked` of the request property `type`
  - removed the enum value `churned` of the request property `type`
  - removed the enum value `churning` of the request property `type`
  - removed the enum value `complained` of the request property `type`
  - removed the enum value `gifted` of the request property `type`
  - removed the enum value `past_due` of the request property `type`
  - removed the enum value `paused` of the request property `type`
  - removed the enum value `premium` of the request property `type`
  - removed the enum value `regular` of the request property `type`
  - removed the enum value `removed` of the request property `type`
  - removed the enum value `trialed` of the request property `type`
  - removed the enum value `unactivated` of the request property `type`
  - removed the enum value `undeliverable` of the request property `type`
  - removed the enum value `unpaid` of the request property `type`
  - removed the enum value `unsubscribed` of the request property `type`
  - removed the enum value `upcoming` of the request property `type`
  - the `type` request property type changed from `string` to no type
  - the response property `code` became optional for the status `400`
  - response property `avatar_url` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `churn_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `email_transitions/items/old_email_address` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `gift_subscription_message` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `ip_address` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `last_click_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `last_open_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `purchased_by` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `purchased_message` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `risk_score` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `stripe_customer` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `stripe_customer_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `subscriber_import_id` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `undeliverability_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `unsubscription_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `unsubscription_reason` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - response property `upgrade_date` list-of-types was widened by adding types `null` to media type `application/json` of response `200`
  - the `email_address` response property's maxLength was unset from `254` for the response status `200`
  - the `code` response's property type changed from no type to `string` for status `403`
  - the `code` response's property type changed from no type to `string` for status `404`
  - the `code` response's property type changed from `string` to no type for status `400`
  - the `id` response's property format changed from `uuid` to no format for status `200`
  - …46 more
- **2026-01-17** `8590daeecaea`: 11 warning, 7 info
  - changed the pattern of the request property `email_address` from `^[a-zA-Z0-9._%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` to `^[a-zA-Z0-9.'_%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$`
  - added the new `authentication_issue` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `delivery_expired` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `embedded_form` enum value to the `source` response property for the response status `200`
  - added the new `firewall_blocked` enum value to the `code` response property for the response status `400`
  - added the new `hard_bounce` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `memberful` enum value to the `source` response property for the response status `200`
  - added the new `patreon` enum value to the `source` response property for the response status `200`
  - added the new `transient` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `upcoming` enum value to the `transitions/items/type` response property for the response status `200`
  - added the new `upcoming` enum value to the `type` response property for the response status `200`
  - the endpoint scheme security `SubscriberFacingAuthentication` was added to the API
  - added the new optional request property `email_which_prompted_unsubscription_id`
  - added the new `upcoming` enum value to the request property `type`
  - added the optional property `email_transitions` to the response with the `200` status
  - added the optional property `purchased_by` to the response with the `200` status
  - added the optional property `purchased_message` to the response with the `200` status
  - the `email_address` response's property pattern was changed from `^[a-zA-Z0-9._%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` to `^[a-zA-Z0-9.'_%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` for the status `200`
- **2025-10-15** `b366d059d1ae`: 5 breaking, 4 warning, 11 info
  - removed the enum value `disabled` of the request property `type`
  - removed the enum value `disposable` of the request property `type`
  - removed the enum value `malformed` of the request property `type`
  - removed the enum value `spammy` of the request property `type`
  - added the pattern `^[a-zA-Z0-9._%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` to the request property `email_address`
  - added the new `carrd` enum value to the `source` response property for the response status `200`
  - added the new `ip_undeliverable` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `malformed` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `200`
  - added the new `zapier` enum value to the `source` response property for the response status `200`
  - the `metadata` request property default value `{}` was added
  - added the optional property `gift_subscription_message` to the response with the `200` status
  - removed the `disabled` enum value from the `transitions/items/type` response property for the response status `200`
  - removed the `disabled` enum value from the `type` response property for the response status `200`
  - removed the `disposable` enum value from the `transitions/items/type` response property for the response status `200`
  - removed the `disposable` enum value from the `type` response property for the response status `200`
  - removed the `malformed` enum value from the `transitions/items/type` response property for the response status `200`
  - removed the `malformed` enum value from the `type` response property for the response status `200`
  - removed the `spammy` enum value from the `transitions/items/type` response property for the response status `200`
  - removed the `spammy` enum value from the `type` response property for the response status `200`
  - the `email_address` response's property pattern `^[a-zA-Z0-9._%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` was added for the status `200`
- **2025-07-11** `b3fb230c0938`: 3 warning, 3 info
  - the `email_address` request property's maxLength was set to `254`
  - added the new `blocked` enum value to the `transitions/items/type` response property for the response status `200`
  - added the new `blocked` enum value to the `type` response property for the response status `200`
  - added the new `blocked` enum value to the request property `type`
  - added the optional property `risk_score` to the response with the `200` status
  - added the optional property `undeliverability_reason` to the response with the `200` status
- **2025-03-24** `b318723a4d8d`: 3 info
  - the endpoint scheme security `PermissionAuthenticationRequirement` was added to the API
  - the endpoint scheme security `GlobalAuth` was removed from the API
  - added the optional property `undeliverability_date` to the response with the `200` status
- **2025-02-18** `7b086652e3cf`: 2 warning, 3 info
  - added the new `comment` enum value to the `source` response property for the response status `200`
  - added the new `stripe` enum value to the `source` response property for the response status `200`
  - the endpoint scheme security `GlobalAuth` was added to the API
  - the endpoint scheme security `NewsletterIDKey` was removed from the API
  - added the optional property `upgrade_date` to the response with the `200` status

---

[Operation](https://skmtc.dev/buttondown/apis/buttondown-api/docs/subscribers/:id_or_email/patch.md) - [API](https://skmtc.dev/buttondown/apis/buttondown-api.md) - [Page](https://skmtc.dev/buttondown/apis/buttondown-api/changes/subscribers/:id_or_email/patch)
