Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 36 additions & 0 deletions changelog.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,42 @@ keywords: ["changelog", "API updates", "release notes", "what's new", "API chang

To subscribe to updates, please [**“Turn on notifications”**](https://help.x.com/en/managing-your-account/notifications-on-mobile-devices#:~:text=In%20the%20top%20menu,%20you,you%20would%20like%20to%20receive) for [**@API**](https://x.com/api). You can also follow this changelog in your feed reader via the [**RSS feed**](https://docs.x.com/changelog/rss.xml).

<Update label="Sep 13, 2026" description="X API v2">
### X Chat API for encrypted direct messages

Today, we launched the [X Chat API](/xchat/introduction), a new suite of endpoints for sending and receiving **end-to-end encrypted** direct messages on X. Message bodies are encrypted and signed on the client; X routes only ciphertext.

- New endpoints under `/2/chat/*` for public keys, conversation keys, 1:1 and group conversations, messages, typing indicators, read receipts, and encrypted media upload/download.
- New [**Chat XDK**](/xchat/xchat-xdk) handles keys, encryption/decryption, and signing. Available for Python, TypeScript, Rust, Go, C#, and Java.
- Delivered via [webhooks or activity stream](/xchat/real-time-events) for live events, plus an events endpoint for history.
- Uses OAuth 2.0 user context with `dm.read` / `dm.write` scopes.

See [Getting Started](/xchat/getting-started) to implement keys, send, and receive.
</Update>

<Update label="Sep 13, 2026" description="X API v2">
### Programmatic bot accounts

Today, we launched [**Bot accounts**](/xchat/bots), a new way to run programmatic X accounts owned by your project. Bots are real accounts with a user id and @handle, but no password and no login: the only way to act as a bot is its bearer token.

- [`POST /2/bots`](/x-api/bots/create-a-bot) creates a bot and returns a bearer token (`xcbot_…`) **once**.
- [`POST /2/bots/:id/token`](/x-api/bots/rotate-bot-token) rotates the token; [`DELETE /2/bots/:id/token`](/x-api/bots/revoke-bot-token) revokes it as a kill switch.
- [`GET /2/bots`](/x-api/bots/get-bots), [`PATCH /2/bots/:id`](/x-api/bots/update-bot), and [`DELETE /2/bots/:id`](/x-api/bots/delete-bot) list, update, and delete bots in the calling project.
- Default scopes: `dm.read, dm.write, tweet.read, users.read, media.write`.
- All endpoints use OAuth 2.0 app-only auth. Bot accounts carry an "Automated by @owner" label.
</Update>

<Update label="Sep 13, 2026" description="X API v2">
### Live video Broadcasts endpoints

Today, we added new [Broadcasts endpoints](/x-api/broadcasts/list-broadcasts) for managing live video on X:

- [`GET /2/broadcasts`](/x-api/broadcasts/list-broadcasts) and [`GET /2/broadcasts/{id}`](/x-api/broadcasts/get-a-broadcast) list and look up broadcasts.
- Schedule and manage upcoming broadcasts with [`POST`](/x-api/broadcasts/create-a-scheduled-broadcast), [`GET`](/x-api/broadcasts/get-a-scheduled-broadcast), [`PATCH`](/x-api/broadcasts/update-a-scheduled-broadcast), and [`DELETE`](/x-api/broadcasts/delete-a-scheduled-broadcast) on `/2/broadcasts/scheduled/{id}`.
- Start a scheduled broadcast with [`POST /2/broadcasts/scheduled/{id}/live`](/x-api/broadcasts/go-live-on-a-scheduled-broadcast).
- New chat moderation endpoints let you [read chat history](/x-api/broadcasts/get-broadcast-chat-history), [send messages](/x-api/broadcasts/send-a-chat-message-to-a-live-broadcast), [remove messages](/x-api/broadcasts/remove-a-chat-message-from-a-live-broadcast), and [mute or time out viewers](/x-api/broadcasts/mute-or-time-out-a-user-in-a-broadcast-chat).
</Update>

<Update label="Sep 1, 2026" description="X API v2">
### Media upload and Post-create size and duration limits

Expand Down