X Chat API: operationId renamed, schema fields changed/removed
Several breaking and additive changes to the X Chat API:
operationIdrenamed frominitializeChatConversationKeystoaddConversationKeys— any SDK or code generation tooling referencing the old operation ID will break.ChatPublicKeyschema removed — clients referencing this schema directly will break; its content has been merged into thePublicKeyschema.PublicKeyschema restructured: thetoken_map/versionfields are removed;juicebox_config(a$ref) andpublic_key_versionare added. Theversionenum value in the public-key fields parameter is replaced bypublic_key_version.- New
ChatActionMessageEventSignatureschema added (additive). - New
conversation_idresponse field added to the Add Conversation Keys response (additive). - Multiple
idpath parameter descriptions clarified to include the hyphen-separated 1:1 conversation ID format (informational).
Alert history
- Breaking
X Chat API: operationId renamed, schema fields changed/removed
Several breaking and additive changes to the X Chat API:
operationIdrenamed frominitializeChatConversationKeystoaddConversationKeys— any SDK or code generation tooling referencing the old operation ID will break.ChatPublicKeyschema removed — clients referencing this schema directly will break; its content has been merged into thePublicKeyschema.PublicKeyschema restructured: thetoken_map/versionfields are removed;juicebox_config(a$ref) andpublic_key_versionare added. Theversionenum value in the public-key fields parameter is replaced bypublic_key_version.- New
ChatActionMessageEventSignatureschema added (additive). - New
conversation_idresponse field added to the Add Conversation Keys response (additive). - Multiple
idpath parameter descriptions clarified to include the hyphen-separated 1:1 conversation ID format (informational).
- Additive
Add post.mention.create webhook activity type
A new webhook activity type
post.mention.createhas been added to the X API, allowing clients to subscribe to mentions being created. This is a new optional event type that expands the webhook capabilities without breaking existing integrations. - Additive
Add like.read/like.create OAuth2 scopes and Like event support
X API adds support for likes in two subscription endpoints:
like.readOAuth2 scope is now available on two GET endpoints, and a newlike.createevent type with correspondingLikeWithTweetAuthorschema is added to activity subscriptions. Additionally, the article content block schema is enhanced with detailed property definitions for cashtags, hashtags, mentions, and URLs metadata, withadditionalProperties: falseconstraints added throughout for stricter validation. - Additive
OAuth2 scope tightening and expansion type support
Two changes to the X API: OAuth2 scopes for two POST endpoints now require only
tweet.writeinstead oftweet.read,tweet.write, andusers.read; and a schema field supporting expansions now acceptsplaceandpollin addition to the existing options. The scope reduction is a breaking change that narrows required auth permissions, while the new expansion types are additive. - Breaking
X API v2.166: new Articles endpoints added; enum values removed from Problem type
Two new Articles endpoints are added (
POST /2/articles/draftandPOST /2/articles/{article_id}/publish) along with supporting schemas (ArticleDraftCreateRequest,ArticleDraftCreateResponse,ArticlePublishResponse,ArticleId) and query parameter definitions (ArticleExpansionsParameter,ArticleFieldsParameter). Additionally, the enum on aProblem-related schema (likelyResourceTypeor similar) has hadplaceandpollremoved, leaving only["user","tweet","media","list","space"]— clients that send or match against"place"or"poll"as valid values in that field will break. - Additive
Add place and poll types to X API enum
The OpenAPI schema adds two new enum values,
placeandpoll, to a type field, allowing clients to handle additional entity types. This is backward-compatible; existing integrations continue to work and can now optionally handle these new types. - Additive
Add post event types and schemas to activity streaming
New event types
post.createandpost.deleteare added to the activity streaming API, along with their corresponding response schemas. A new optionalincludesfield forExpansionsis also added to the streaming response. These changes are purely additive and backward-compatible with existing integrations. - Additive
Add paid_partnership field to Tweet object
The X API now exposes a new optional
paid_partnershipboolean field on Tweet objects, indicating whether a post discloses paid promotion. This is purely additive and does not affect existing integrations. - Additive
Add identity_public_key_signature field to chat public key schemas
Added optional
identity_public_key_signaturefield toChatPublicKeyandPublicKeyschemas to carry DER-encoded signatures proving the signing key is bound to the identity key. This is a purely additive change that does not affect existing integrations. - Breaking
max_results maximum raised from 100 to 1000, default set to 1000
The
max_resultsquery parameter schema has changed: itsmaximumwas raised from100to1000, and adefaultof1000was added. This is additive in the sense that larger page sizes are now permitted, but it is potentially breaking for clients that relied on the previous cap of 100 to limit response payload size — they may now receive up to 1000 results per page if they omitmax_resultsor if server-side enforcement changed. The description also now documents pagination viapagination_tokenfrommeta.next_token. - Additive
Add note_request_suggestions field to tweet schema
The X API OpenAPI spec adds a new
note_request_suggestionsobject field to the tweet schema and includes it in the list of available tweet fields. This is a purely additive change that introduces a new optional response field containing note request suggestion data (withsource_link,suggestion, andsuggestion_idproperties), allowing clients to opt-in to receiving this information without breaking existing integrations. - Additive
Add GET endpoints for chat conversations and events
Two new read-only endpoints were added to the Chat API:
GET /2/chat/conversations/{id}to retrieve conversation metadata andGET /2/chat/conversations/{id}/eventsto retrieve messages and key change events. These are purely additive and require OAuth2 or UserToken scopes that already exist (dm.read,tweet.read,users.read).