---
title: "Changes to Create Subscriber"
method: POST
path: "/subscribers"
---

# Changes to Create Subscriber

`POST /subscribers`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 19 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-21** `cf4aa4ea56f9`: 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`: 3 breaking, 7 warning, 3 info
- **2026-06-07** `13f3bc084194`: 27 breaking, 9 warning, 42 info
- **2026-01-17** `8590daeecaea`: 10 warning, 7 info
- **2025-10-15** `b366d059d1ae`: 6 breaking, 5 warning, 10 info
- **2025-07-11** `b3fb230c0938`: 9 warning, 4 info
- **2025-03-24** `b318723a4d8d`: 1 info
- **2025-02-18** `7b086652e3cf`: 2 warning, 4 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 `201`
- **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 `201`
- **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 `201`
- **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 `201`
- **2026-09-21** `cf4aa4ea56f9`: 1 warning
  - added the new `subscriber_already_premium` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
- **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 `201`
  - removed the `email_address_plus_variant_accounts` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
  - added the new `ip_address_reputation` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - added the new `newsletter_trust` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - added the new `subscriber_import_trusted_origin` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_gmail_word_numbers` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_many_consonants_in_a_row` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_shannon_entropy` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `ip_address_peaceful` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `ip_address_prohibited` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `newsletter_age` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `newsletter_has_customized_transactional_email` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `newsletter_status` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `subscriber_import_provenance` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `subscriber_import_source` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
  - added the new `email_address_reputation` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_esp_suppression` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_is_honeypot` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_peaceful_domain` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_prohibited_via_domain` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
  - removed the `email_address_length` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_null_characters` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `email_address_regex` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `metadata_has_garbage` enum value from the `firewall_reasons/items/code` response property for the response status `201`
  - removed the `referrer_url_prohibited` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
  - removed the `ip_address_cleantalk_score` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
  - added the new `registration_without_prior_page_visit` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - added the new `username_shannon_entropy` enum value to the `firewall_reasons/items/code` response property for the response status `201`
- **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 `201`
- **2026-07-13** `228cc05ba97d`: 3 breaking, 7 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}|(?:sub)_(?:[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 `referring_subscriber_id/anyOf[subschema #1]/`
  - the `email_address` request property format changed from no format to `email`
  - the `ip_address/anyOf[subschema #1]/` request property format changed from no format to `ipvanyaddress`
  - added the new `currency_mismatch` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
  - added the new `invalid_input` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
  - added the new `ip_address_datacenter` enum value to the `firewall_reasons/items/code` response property for the response status `201`
  - added the new `newsletter_not_accepting_subscribers` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
  - added the new `payment_failed` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
  - added the new `promo_code_invalid` enum value to the `code/allOf[subschema #1: ValidationErrorCode]/` response property for the response status `400`
  - added the new `shopify` enum value to the `source` response property for the response status `201`
  - removed the pattern `^[^\s]+$` from the request property `ip_address/anyOf[subschema #1]/`
  - added the non-success response with the status `422`
  - removed the `email_address_stopforumspam_score` enum value from the `firewall_reasons/items/code` response property for the response status `201`
- **2026-06-07** `13f3bc084194`: 27 breaking, 9 warning, 42 info
  - the `X-Buttondown-Collision-Behavior` request header's property undefined was restricted to a list of enum values
  - the `header` request parameter `X-Buttondown-Collision-Behavior` was restricted to a list of enum values
  - 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 `201`
  - response property `churn_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `email_transitions/items/old_email_address` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `gift_subscription_message` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `ip_address` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `last_click_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `last_open_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `purchased_by` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `purchased_message` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `risk_score` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `stripe_customer` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `stripe_customer_id` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `subscriber_import_id` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `undeliverability_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `unsubscription_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `unsubscription_reason` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - response property `upgrade_date` list-of-types was widened by adding types `null` to media type `application/json` of response `201`
  - the `email_address` response property's maxLength was unset from `254` for the response status `201`
  - 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 `429`
  - 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 `201`
  - the `stripe_coupon` response's property type changed from `object` to no type for status `201`
  - removed the required property `stripe_coupon/coupon_id` from the response with the `201` status
  - removed `#/components/schemas/SubscriberType` from the `type` request property `allOf` list
  - the `utm_campaign` request property's maxLength was set to `300`
  - the `utm_medium` request property's maxLength was set to `300`
  - the `utm_source` request property's maxLength was set to `300`
  - removed the optional property `stripe_coupon/amount_off` from the response with the `201` status
  - removed the optional property `stripe_coupon/name` from the response with the `201` status
  - removed the optional property `stripe_coupon/percent_off` from the response with the `201` status
  - added the new `form` enum value to the `source` response property for the response status `201`
  - added the new `netlify` enum value to the `source` response property for the response status `201`
  - the endpoint scheme security `ApiKeyAuth` was added to the API
  - the endpoint scheme security `PermissionAuthenticationRequirement` was removed from the API
  - api tag `Subscribers` added
  - added the new enum value `add` to the `header` request parameter `X-Buttondown-Collision-Behavior`
  - …38 more
- **2026-01-17** `8590daeecaea`: 10 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 `201`
  - added the new `delivery_expired` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `201`
  - added the new `embedded_form` enum value to the `source` response property for the response status `201`
  - added the new `hard_bounce` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `201`
  - added the new `memberful` enum value to the `source` response property for the response status `201`
  - added the new `patreon` enum value to the `source` response property for the response status `201`
  - added the new `transient` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `201`
  - added the new `upcoming` enum value to the `transitions/items/type` response property for the response status `201`
  - added the new `upcoming` enum value to the `type` response property for the response status `201`
  - added the new optional `header` request parameter `X-Buttondown-Bypass-Firewall`
  - added the new `upcoming` enum value to the request property `type/allOf[subschema #1: Type]/`
  - added the non-success response with the status `429`
  - added the optional property `email_transitions` to the response with the `201` status
  - added the optional property `purchased_by` to the response with the `201` status
  - added the optional property `purchased_message` to the response with the `201` 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 `201`
- **2025-10-15** `b366d059d1ae`: 6 breaking, 5 warning, 10 info
  - removed the enum value `disabled` of the request property `type/allOf[subschema #1: Type]/`
  - removed the enum value `disposable` of the request property `type/allOf[subschema #1: Type]/`
  - removed the enum value `malformed` of the request property `type/allOf[subschema #1: Type]/`
  - removed the enum value `spammy` of the request property `type/allOf[subschema #1: Type]/`
  - added the pattern `^[^\s]+$` to the request property `ip_address`
  - 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 `201`
  - added the new `email_empty` enum value to the `code` response property for the response status `400`
  - added the new `ip_undeliverable` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `201`
  - added the new `malformed` enum value to the `undeliverability_reason/allOf[subschema #1: UndeliverabilityReason]/` response property for the response status `201`
  - added the new `zapier` enum value to the `source` response property for the response status `201`
  - added the optional property `gift_subscription_message` to the response with the `201` status
  - removed the `disabled` enum value from the `transitions/items/type` response property for the response status `201`
  - removed the `disabled` enum value from the `type` response property for the response status `201`
  - removed the `disposable` enum value from the `transitions/items/type` response property for the response status `201`
  - removed the `disposable` enum value from the `type` response property for the response status `201`
  - removed the `malformed` enum value from the `transitions/items/type` response property for the response status `201`
  - removed the `malformed` enum value from the `type` response property for the response status `201`
  - removed the `spammy` enum value from the `transitions/items/type` response property for the response status `201`
  - removed the `spammy` enum value from the `type` response property for the response status `201`
  - the `email_address` response's property pattern `^[a-zA-Z0-9._%+\-!]+@[a-zA-Z0-9.\-]+\.[a-zA-Z]{2,}$` was added for the status `201`
- **2025-07-11** `b3fb230c0938`: 9 warning, 4 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 `201`
  - added the new `blocked` enum value to the `type` response property for the response status `201`
  - added the new `email_blocked` enum value to the `code` response property for the response status `400`
  - added the new `ip_address_spammy` enum value to the `code` response property for the response status `400`
  - added the new `rate_limited` enum value to the `code` response property for the response status `400`
  - added the new `subscriber_already_exists` enum value to the `code` response property for the response status `400`
  - added the new `subscriber_blocked` enum value to the `code` response property for the response status `400`
  - added the new `subscriber_suppressed` enum value to the `code` response property for the response status `400`
  - added the new optional request property `ip_address`
  - added the new `blocked` enum value to the request property `type/allOf[subschema #1: Type]/`
  - added the optional property `risk_score` to the response with the `201` status
  - added the optional property `undeliverability_reason` to the response with the `201` status
- **2025-03-24** `b318723a4d8d`: 1 info
  - added the optional property `undeliverability_date` to the response with the `201` status
- **2025-02-18** `7b086652e3cf`: 2 warning, 4 info
  - added the new `comment` enum value to the `source` response property for the response status `201`
  - added the new `stripe` enum value to the `source` response property for the response status `201`
  - the endpoint scheme security `PermissionAuthenticationRequirement` was added to the API
  - the endpoint scheme security `NewsletterIDKey` was removed from the API
  - for the `header` request parameter `X-Buttondown-Collision-Behavior`, the type was generalized from `string` to no type
  - added the optional property `upgrade_date` to the response with the `201` status

---

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