---
title: "Changes to Create X Activity Subscription"
method: POST
path: "/2/activity/subscriptions"
---

# Changes to Create X Activity Subscription

`POST /2/activity/subscriptions`

> Every recorded change to this operation, newest first.

## Timeline

Changed in 7 of 20 revisions.

- **2026-11-03** `2e1fefa37444`: 2 breaking, 2 info
- **2026-10-26** `23643fd75fe0`: 2 breaking, 11 info
- **2026-08-15** `c74357dfe14e`: 19 breaking, 6 warning, 33 info
- **2026-05-12** `dd4e81f817ba`: 10 breaking, 6 info
- **2026-03-12** `95afb4635252`: 2 info
- **2026-02-08** `52da7efdbc92`: 1 breaking, 20 info
- **2025-12-21** `1a92a48036c1`: 1 info

## Changes

- **2026-11-03** `2e1fefa37444`: 2 breaking, 2 info
  - added `#/components/schemas/DmBadAttachmentProblem, #/components/schemas/DmBadCtaProblem, #/components/schemas/DmBadCustomProfileProblem, #/components/schemas/DmBadMediaProblem, #/components/schemas/DmBadQuickReplyProblem, #/components/schemas/DmBadUrlProblem, #/components/schemas/DmConversationNameTooLongProblem, #/components/schemas/DmConversationNotFoundProblem, #/components/schemas/DmDuplicateProblem, #/components/schemas/DmInactiveDeviceProblem, #/components/schemas/DmNotDeliveredProblem, #/components/schemas/DmNotFoundProblem, #/components/schemas/DmNotOwnerProblem, #/components/schemas/DmParticipantNotAddedProblem, #/components/schemas/DmParticipantNotFoundProblem, #/components/schemas/DmParticipantRestrictedProblem, #/components/schemas/DmParticipantUnavailableProblem, #/components/schemas/DmRateLimitedProblem, #/components/schemas/DmRecipientBlocksSenderProblem, #/components/schemas/DmRecipientCannotReceiveProblem, #/components/schemas/DmRecipientEncryptedUnavailableProblem, #/components/schemas/DmRecipientNotAcceptingProblem, #/components/schemas/DmRecipientNotFoundProblem, #/components/schemas/DmRecipientRestrictsGroupsProblem, #/components/schemas/DmRecipientUnavailableProblem, #/components/schemas/DmRequestInProgressProblem, #/components/schemas/DmSafetyLimitedProblem, #/components/schemas/DmSafetyRejectedProblem, #/components/schemas/DmSenderBlocksRecipientProblem, #/components/schemas/DmSenderDeclinedDmsProblem, #/components/schemas/DmSenderDmsClosedProblem, #/components/schemas/DmSenderEncryptedUnavailableProblem, #/components/schemas/DmSenderNotInConversationProblem, #/components/schemas/DmSenderNotPermittedProblem, #/components/schemas/DmSenderNotVerifiedProblem, #/components/schemas/DmSenderPhoneRequiredProblem, #/components/schemas/DmSenderReadOnlyProblem, #/components/schemas/DmSenderUnavailableProblem, #/components/schemas/DmTextEmptyProblem, #/components/schemas/DmTextTooLongProblem, #/components/schemas/DmTooFewParticipantsProblem, #/components/schemas/DmTooManyParticipantsProblem, #/components/schemas/DmUnsupportedMessageProblem` to the response body `oneOf` list for the response status `default`
  - added `#/components/schemas/DmBadAttachmentProblem, #/components/schemas/DmBadCtaProblem, #/components/schemas/DmBadCustomProfileProblem, #/components/schemas/DmBadMediaProblem, #/components/schemas/DmBadQuickReplyProblem, #/components/schemas/DmBadUrlProblem, #/components/schemas/DmConversationNameTooLongProblem, #/components/schemas/DmConversationNotFoundProblem, #/components/schemas/DmDuplicateProblem, #/components/schemas/DmInactiveDeviceProblem, #/components/schemas/DmNotDeliveredProblem, #/components/schemas/DmNotFoundProblem, #/components/schemas/DmNotOwnerProblem, #/components/schemas/DmParticipantNotAddedProblem, #/components/schemas/DmParticipantNotFoundProblem, #/components/schemas/DmParticipantRestrictedProblem, #/components/schemas/DmParticipantUnavailableProblem, #/components/schemas/DmRateLimitedProblem, #/components/schemas/DmRecipientBlocksSenderProblem, #/components/schemas/DmRecipientCannotReceiveProblem, #/components/schemas/DmRecipientEncryptedUnavailableProblem, #/components/schemas/DmRecipientNotAcceptingProblem, #/components/schemas/DmRecipientNotFoundProblem, #/components/schemas/DmRecipientRestrictsGroupsProblem, #/components/schemas/DmRecipientUnavailableProblem, #/components/schemas/DmRequestInProgressProblem, #/components/schemas/DmSafetyLimitedProblem, #/components/schemas/DmSafetyRejectedProblem, #/components/schemas/DmSenderBlocksRecipientProblem, #/components/schemas/DmSenderDeclinedDmsProblem, #/components/schemas/DmSenderDmsClosedProblem, #/components/schemas/DmSenderEncryptedUnavailableProblem, #/components/schemas/DmSenderNotInConversationProblem, #/components/schemas/DmSenderNotPermittedProblem, #/components/schemas/DmSenderNotVerifiedProblem, #/components/schemas/DmSenderPhoneRequiredProblem, #/components/schemas/DmSenderReadOnlyProblem, #/components/schemas/DmSenderUnavailableProblem, #/components/schemas/DmTextEmptyProblem, #/components/schemas/DmTextTooLongProblem, #/components/schemas/DmTooFewParticipantsProblem, #/components/schemas/DmTooManyParticipantsProblem, #/components/schemas/DmUnsupportedMessageProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - added `https://api.x.com/2/problems/dm-bad-attachment, https://api.x.com/2/problems/dm-bad-cta, https://api.x.com/2/problems/dm-bad-custom-profile, https://api.x.com/2/problems/dm-bad-media, https://api.x.com/2/problems/dm-bad-quick-reply, https://api.x.com/2/problems/dm-bad-url, https://api.x.com/2/problems/dm-conversation-name-too-long, https://api.x.com/2/problems/dm-conversation-not-found, https://api.x.com/2/problems/dm-duplicate, https://api.x.com/2/problems/dm-inactive-device, https://api.x.com/2/problems/dm-not-delivered, https://api.x.com/2/problems/dm-not-found, https://api.x.com/2/problems/dm-not-owner, https://api.x.com/2/problems/dm-participant-not-added, https://api.x.com/2/problems/dm-participant-not-found, https://api.x.com/2/problems/dm-participant-restricted, https://api.x.com/2/problems/dm-participant-unavailable, https://api.x.com/2/problems/dm-rate-limited, https://api.x.com/2/problems/dm-recipient-blocks-sender, https://api.x.com/2/problems/dm-recipient-cannot-receive, https://api.x.com/2/problems/dm-recipient-encrypted-unavailable, https://api.x.com/2/problems/dm-recipient-not-accepting, https://api.x.com/2/problems/dm-recipient-not-found, https://api.x.com/2/problems/dm-recipient-restricts-groups, https://api.x.com/2/problems/dm-recipient-unavailable, https://api.x.com/2/problems/dm-request-in-progress, https://api.x.com/2/problems/dm-safety-limited, https://api.x.com/2/problems/dm-safety-rejected, https://api.x.com/2/problems/dm-sender-blocks-recipient, https://api.x.com/2/problems/dm-sender-declined-dms, https://api.x.com/2/problems/dm-sender-dms-closed, https://api.x.com/2/problems/dm-sender-encrypted-unavailable, https://api.x.com/2/problems/dm-sender-not-in-conversation, https://api.x.com/2/problems/dm-sender-not-permitted, https://api.x.com/2/problems/dm-sender-not-verified, https://api.x.com/2/problems/dm-sender-phone-required, https://api.x.com/2/problems/dm-sender-read-only, https://api.x.com/2/problems/dm-sender-unavailable, https://api.x.com/2/problems/dm-text-empty, https://api.x.com/2/problems/dm-text-too-long, https://api.x.com/2/problems/dm-too-few-participants, https://api.x.com/2/problems/dm-too-many-participants, https://api.x.com/2/problems/dm-unsupported-message` mapping keys to the response discriminator for the response status `default`
  - added `https://api.x.com/2/problems/dm-bad-attachment, https://api.x.com/2/problems/dm-bad-cta, https://api.x.com/2/problems/dm-bad-custom-profile, https://api.x.com/2/problems/dm-bad-media, https://api.x.com/2/problems/dm-bad-quick-reply, https://api.x.com/2/problems/dm-bad-url, https://api.x.com/2/problems/dm-conversation-name-too-long, https://api.x.com/2/problems/dm-conversation-not-found, https://api.x.com/2/problems/dm-duplicate, https://api.x.com/2/problems/dm-inactive-device, https://api.x.com/2/problems/dm-not-delivered, https://api.x.com/2/problems/dm-not-found, https://api.x.com/2/problems/dm-not-owner, https://api.x.com/2/problems/dm-participant-not-added, https://api.x.com/2/problems/dm-participant-not-found, https://api.x.com/2/problems/dm-participant-restricted, https://api.x.com/2/problems/dm-participant-unavailable, https://api.x.com/2/problems/dm-rate-limited, https://api.x.com/2/problems/dm-recipient-blocks-sender, https://api.x.com/2/problems/dm-recipient-cannot-receive, https://api.x.com/2/problems/dm-recipient-encrypted-unavailable, https://api.x.com/2/problems/dm-recipient-not-accepting, https://api.x.com/2/problems/dm-recipient-not-found, https://api.x.com/2/problems/dm-recipient-restricts-groups, https://api.x.com/2/problems/dm-recipient-unavailable, https://api.x.com/2/problems/dm-request-in-progress, https://api.x.com/2/problems/dm-safety-limited, https://api.x.com/2/problems/dm-safety-rejected, https://api.x.com/2/problems/dm-sender-blocks-recipient, https://api.x.com/2/problems/dm-sender-declined-dms, https://api.x.com/2/problems/dm-sender-dms-closed, https://api.x.com/2/problems/dm-sender-encrypted-unavailable, https://api.x.com/2/problems/dm-sender-not-in-conversation, https://api.x.com/2/problems/dm-sender-not-permitted, https://api.x.com/2/problems/dm-sender-not-verified, https://api.x.com/2/problems/dm-sender-phone-required, https://api.x.com/2/problems/dm-sender-read-only, https://api.x.com/2/problems/dm-sender-unavailable, https://api.x.com/2/problems/dm-text-empty, https://api.x.com/2/problems/dm-text-too-long, https://api.x.com/2/problems/dm-too-few-participants, https://api.x.com/2/problems/dm-too-many-participants, https://api.x.com/2/problems/dm-unsupported-message` discriminator mapping keys to the `errors/items/` response property for the response status `200`
- **2026-10-26** `23643fd75fe0`: 2 breaking, 11 info
  - added `#/components/schemas/RecipientNotMessageableProblem, #/components/schemas/DuplicateRuleProblem, #/components/schemas/InvalidRuleProblem` to the response body `oneOf` list for the response status `default`
  - added `#/components/schemas/RecipientNotMessageableProblem, #/components/schemas/DuplicateRuleProblem, #/components/schemas/InvalidRuleProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - added the new optional request property `expires_at`
  - added the new optional request property `filter/qualifiers`
  - added the new `broadcast.chat.remove` enum value to the request property `event_type`
  - added the new `broadcast.end` enum value to the request property `event_type`
  - added the new `broadcast.start` enum value to the request property `event_type`
  - added the new `subscriptions.subscribe` enum value to the request property `event_type`
  - added the new `subscriptions.unsubscribe` enum value to the request property `event_type`
  - added `https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-rules, https://api.x.com/2/problems/recipient-not-messageable` mapping keys to the response discriminator for the response status `default`
  - added the optional property `data/subscription/expires_at` to the response with the `200` status
  - added the optional property `data/subscription/filter/qualifiers` to the response with the `200` status
  - added `https://api.twitter.com/2/problems/duplicate-rules, https://api.twitter.com/2/problems/invalid-rules, https://api.x.com/2/problems/recipient-not-messageable` discriminator mapping keys to the `errors/items/` response property for the response status `200`
- **2026-08-15** `c74357dfe14e`: 19 breaking, 6 warning, 33 info
  - request body became required
  - added `#/components/schemas/ResourceNotFoundProblem, #/components/schemas/InvalidRequestProblem, #/components/schemas/NotAuthorizedForResourceProblem, #/components/schemas/NotAuthorizedForFieldProblem, #/components/schemas/FieldUnauthorizedProblem, #/components/schemas/FieldHydrationFailureProblem, #/components/schemas/ResourceUnavailableProblem, #/components/schemas/DisallowedResourceProblem, #/components/schemas/InternalErrorProblem` to the response body `oneOf` list for the response status `default`
  - the response's body type changed from `object` to no type for status `default`
  - the response property `data/subscription/created_at` became optional for the status `200`
  - the response property `data/subscription/event_type` became optional for the status `200`
  - the response property `data/subscription/filter` became optional for the status `200`
  - the response property `data/subscription/subscription_id` became optional for the status `200`
  - the response property `data/subscription/updated_at` became optional for the status `200`
  - the `data/subscription/filter/keyword` response property's maxLength was unset from `150` for the response status `200`
  - the `errors` response property's minItems was decreased from `1` to `0` for the response status `200`
  - the `data/subscription/filter/keyword` response property's minLength was decreased from `1` to `0` for the response status `200`
  - added `#/components/schemas/ResourceNotFoundProblem, #/components/schemas/InvalidRequestProblem, #/components/schemas/NotAuthorizedForResourceProblem, #/components/schemas/NotAuthorizedForFieldProblem, #/components/schemas/FieldUnauthorizedProblem, #/components/schemas/FieldHydrationFailureProblem, #/components/schemas/ResourceUnavailableProblem, #/components/schemas/DisallowedResourceProblem, #/components/schemas/InternalErrorProblem` to the `errors/items/` response property `oneOf` list for the response status `200`
  - the `data/subscription/created_at` response's property format changed from `date-time` to no format for status `200`
  - the `data/subscription/updated_at` response's property format changed from `date-time` to no format for status `200`
  - the `errors/items/` response's property type changed from `object` to no type for status `200`
  - removed the required property `errors/items/title` from the response with the `200` status
  - removed the required property `errors/items/type` from the response with the `200` status
  - removed the required property `title` from the response with the `default` status
  - removed the required property `type` from the response with the `default` status
  - removed the optional property `data/total_subscriptions_for_instance_id` from the response with the `200` status
  - removed the optional property `detail` from the response with the `default` status
  - removed the optional property `errors/items/detail` from the response with the `200` status
  - removed the optional property `errors/items/status` from the response with the `200` status
  - removed the optional property `meta` from the response with the `200` status
  - removed the optional property `status` from the response with the `default` status
  - the security scope `dm.read` was removed from the endpoint's security scheme `OAuth2UserToken`
  - the security scope `tweet.read` was removed from the endpoint's security scheme `OAuth2UserToken`
  - api tag `Stream` removed
  - added the new `block.block` enum value to the request property `event_type`
  - added the new `block.unblock` enum value to the request property `event_type`
  - added the new `broadcast.chat` enum value to the request property `event_type`
  - added the new `chat.conversation.admin_added` enum value to the request property `event_type`
  - added the new `chat.conversation.admin_removed` enum value to the request property `event_type`
  - added the new `chat.conversation.join` enum value to the request property `event_type`
  - added the new `chat.conversation.member_added` enum value to the request property `event_type`
  - added the new `chat.conversation.member_removed` enum value to the request property `event_type`
  - added the new `chat.update.group_name` enum value to the request property `event_type`
  - added the new `chat.update.restrictions` enum value to the request property `event_type`
  - added the new `like.create` enum value to the request property `event_type`
  - added the new `mute.mute` enum value to the request property `event_type`
  - …18 more
- **2026-05-12** `dd4e81f817ba`: 10 breaking, 6 info
  - removed the enum value `FollowFollow` of the request property `event_type`
  - removed the enum value `FollowUnfollow` of the request property `event_type`
  - removed the enum value `NewsNew` of the request property `event_type`
  - removed the enum value `ProfileBannerPictureUpdate` of the request property `event_type`
  - removed the enum value `ProfileBioUpdate` of the request property `event_type`
  - removed the enum value `ProfileGeoUpdate` of the request property `event_type`
  - removed the enum value `ProfilePictureUpdate` of the request property `event_type`
  - removed the enum value `ProfileScreennameUpdate` of the request property `event_type`
  - removed the enum value `ProfileUrlUpdate` of the request property `event_type`
  - removed the enum value `ProfileVerifiedBadgeUpdate` of the request property `event_type`
  - added the new optional request property `filter/direction`
  - added the new `dm.indicate_typing` enum value to the request property `event_type`
  - added the new `dm.read` enum value to the request property `event_type`
  - added the new `dm.received` enum value to the request property `event_type`
  - added the new `dm.sent` enum value to the request property `event_type`
  - added the optional property `data/subscription/filter/direction` to the response with the `200` status
- **2026-03-12** `95afb4635252`: 2 info
  - added the new `chat.conversation_join` enum value to the request property `event_type`
  - added the new `profile.update.handle` enum value to the request property `event_type`
- **2026-02-08** `52da7efdbc92`: 1 breaking, 20 info
  - removed the enum value `TrendsNew` of the request property `event_type`
  - the endpoint scheme security `OAuth2UserToken` was added to the API
  - the endpoint scheme security `UserToken` was added to the API
  - added the new `FollowFollow` enum value to the request property `event_type`
  - added the new `FollowUnfollow` enum value to the request property `event_type`
  - added the new `NewsNew` enum value to the request property `event_type`
  - added the new `chat.received` enum value to the request property `event_type`
  - added the new `chat.sent` enum value to the request property `event_type`
  - added the new `follow.follow` enum value to the request property `event_type`
  - added the new `follow.unfollow` enum value to the request property `event_type`
  - added the new `news.new` enum value to the request property `event_type`
  - added the new `profile.update.affiliate_badge` enum value to the request property `event_type`
  - added the new `profile.update.banner_picture` enum value to the request property `event_type`
  - added the new `profile.update.bio` enum value to the request property `event_type`
  - added the new `profile.update.geo` enum value to the request property `event_type`
  - added the new `profile.update.profile_picture` enum value to the request property `event_type`
  - added the new `profile.update.screenname` enum value to the request property `event_type`
  - added the new `profile.update.url` enum value to the request property `event_type`
  - added the new `profile.update.verified_badge` enum value to the request property `event_type`
  - added the new `spaces.end` enum value to the request property `event_type`
  - added the new `spaces.start` enum value to the request property `event_type`
- **2025-12-21** `1a92a48036c1`: 1 info
  - endpoint added

---

[Operation](https://skmtc.dev/x/apis/x-api-v2/docs/2/activity/subscriptions/post.md) - [API](https://skmtc.dev/x/apis/x-api-v2.md) - [Page](https://skmtc.dev/x/apis/x-api-v2/changes/2/activity/subscriptions/post)
