--- title: "X Chat API v2.169: Group Endpoints and DM Cost | TwitterAPIs" description: "X's v2.169 X Chat API adds group, admin and invite endpoints. What you can build, how the encryption works, and the real cost per DM read and send." canonical: https://www.twitterapis.com/blogs/x-chat-api-group-endpoints-2026 generator: md-live-route generated: 2026-10-20T04:19:16.798Z --- # X Chat API v2.169: Group Endpoints and DM Cost | TwitterAPIs 1. [Home](https://www.twitterapis.com/) 2. / [Blog](https://www.twitterapis.com/blogs) 3. / X Chat Api Group Endpoints 2026 x chat api x api direct messages group dm api pricing encrypted messaging GUIDE # The X Chat API in v2.169: Group Endpoints and What a DM Really Costs X shipped a full set of X Chat endpoints in API v2.169: groups, admins, invites and members. What you can build on encrypted chat, and the real cost per DM. Per our own spec, 65 of 113 endpoints bill $0.0008, 24 are free, and 24 sit between $0.0016 and $0.01. Every price ships inside our published OpenAPI document as an `x-cost-usd` field, so any figure in this post can be checked against the contract that bills it rather than taken on trust. By [Emma](https://www.twitterapis.com/about/emma), developer relations at TwitterAPIs · October 19, 2026 Open in Copy markdown [](https://x.com/intent/tweet?text=The%20X%20Chat%20API%20in%20v2.169%3A%20Group%20Endpoints%20and%20What%20a%20DM%20Really%20Costs&url=https%3A%2F%2Fwww.twitterapis.com%2Fblogs%2Fx-chat-api-group-endpoints-2026 "Share \"The X Chat API in v2.169: Group Endpoints and What a DM Really Costs\" on X")[](https://www.linkedin.com/sharing/share-offsite/?url=https%3A%2F%2Fwww.twitterapis.com%2Fblogs%2Fx-chat-api-group-endpoints-2026 "Share \"The X Chat API in v2.169: Group Endpoints and What a DM Really Costs\" on LinkedIn") ![The X Chat API group endpoints shipped in version 2.169, what you can build on encrypted chat, and the real cost of reading or sending a direct message](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-cover.webp "The X Chat API in v2.169: Group Endpoints and What a DM Really Costs") On this pageWhat shipped in X API v2.169 10 sections On September 30, 2026 the X Developers account posted that [a large set of X Chat endpoints is now available in X API v2.169](https://x.com/XDevelopers/status/2105402611889528885), and the [developer-forum changelog](https://devcommunity.x.com/t/new-x-chat-api-endpoints-now-available/277027) spelled out the surface: you can now manage group conversations, admin workflows, invites, join requests, membership, mute state, disappearing-message TTL, pinned messages and chat settings from the API. X Chat is X's encrypted direct-message system, so this is programmatic control over real conversations, not metadata around them. For a developer, two questions follow. What can you actually build on it, and what does a message cost once it is running? This guide answers both from dated, first-party sources, and sets the official route beside a per-call route for the plainer DM jobs where the cost gap is large. ![A stat panel: X Chat endpoints landed in X API v2.169 on September 30, 2026, covering group chat with admins, invites, members and TTL, and $0.010 per chat message X delivers to you.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-01.svg) What shipped, in three numbers > **TL;DR:** X API v2.169, announced September 30, 2026, shipped the group half of the X Chat API: create and update group conversations, manage admins, invites, join requests and members, set mute and disappearing-message TTL, pin messages and change chat settings, plus bots, encrypted media and public keys. X Chat is end-to-end encrypted, so you manage keys on-device through the Chat XDK. On the official X API a direct-message read bills $0.010 per message returned and a send $0.015, while an X Chat message you receive bills $0.010 and a send is not billed. For the ordinary job of reading or sending plain DMs, a per-call API bills $0.0016 and returns a whole thread in one call, so a 20-message thread is $0.20 on the official read and $0.0016 per call. > New X Chat endpoints are now available in X API v2.169. You can now manage groups, admins, invites, join requests, members, mute, TTL, pinned messages, and chat settings from the X API. > > @XDevelopers [view on X](https://x.com/XDevelopers/status/2105402611889528885) ## What shipped in X API v2.169 The v2.169 release is the group and administration half of the X Chat API. The one-to-one send and receive flow arrived earlier in the year; this set is what turns X Chat from a two-person channel into something you can run a community or a multi-party agent inside. ![A list of the v2.169 X Chat endpoint groups: group conversations, admins, invites and join requests, conversation settings, pinned messages, bots and media, encryption keys, and chat settings.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-02.svg) The endpoint set v2.169 opened up Reading the [API reference on docs.x.com](https://docs.x.com/xchat/introduction), the endpoints group cleanly. There is a block for group conversations themselves, create, update, add members and remove members. There is an admin block, add and remove admins, plus request, approve and reject flows so a member can ask for admin and an existing admin can grant it. There is an invites-and-join-requests block, enable and disable an invite link, request to join, and reject join requests. Conversation settings cover mute and unmute, turning disappearing messages on and off, and a screen-capture control. And a privacy block reads and updates chat settings. Alongside those sit bots, encrypted media upload and download, and the public-key endpoints the encryption needs. The X Chat endpoint groups shipped in API v2.169 | Endpoint group | What it manages | Provenance | Source | | --- | --- | --- | --- | | Group conversations | Create, update, add and remove members | published | published | | Admins | Add, remove, request, approve and reject admin roles | published | published | | Invites and join requests | Enable or disable invite links, accept or reject joins | published | published | | Conversation settings | Mute, disappearing-message TTL, screen-capture controls | published | published | | Messages | Send, delete, pin, typing indicator, mark as read | published | published | | Bots, media and keys | Create bots, encrypted media upload and download, public keys | published | published | as of 2026-10-19 Method: Read from the X Chat API reference on docs.x.com (the Introduction page and the API-reference sidebar) on 2026-10-19. Each row groups the endpoints X lists under that heading; it is a reading of the published surface, not a measurement. ## What X Chat actually is Before the cost math, the shape of the thing matters, because X Chat is not the old plaintext DM surface with new routes bolted on. It is an [end-to-end encrypted system](https://docs.x.com/xchat/introduction). Message bodies are encrypted on the client, so X routes ciphertext and cannot read the plaintext, and every message is signed so the recipient can verify who sent it. ![A five-step flow of how an encrypted X Chat message travels: publish keys, encrypt and sign on-device, send only ciphertext to X, deliver by webhook, then verify and decrypt with the Chat XDK.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-04.svg) The encrypted message path The piece that makes this workable is the [Chat XDK](https://github.com/xdevplatform/chat-xdk), X's open-source encryption SDK built on a Rust core. It generates your identity and signing keys, encrypts and decrypts, signs and verifies, and offers an optional passcode-protected key backup, and it ships in Python, JavaScript, Rust, Go, C# and Java. You authorize with OAuth 2.0 user context and the `dm.read` and `dm.write` scopes, and each user authorizes their own chat, because the keys live on their device, not on yours. Independent coverage noted the same launch when X opened the system to outside developers: the write-up on [r/RuntimeWire](https://reddit.com/r/RuntimeWire/comments/1vajzkx/x_launches_encrypted_chat_api_for_bots_and_ai/) framed it as X opening its encrypted direct-messaging system to bots and AI agents. > [X launches encrypted Chat API for bots and AI agents](https://reddit.com/r/RuntimeWire/comments/1vajzkx/x_launches_encrypted_chat_api_for_bots_and_ai/) from [r/RuntimeWire](https://www.reddit.com/r/RuntimeWire/) For a feel of the product these endpoints sit behind, this walkthrough shows the X Chat app itself, the encrypted inbox your code is writing into: [https://www.youtube.com/watch?v=oLNBMFN1Uao](https://www.youtube.com/watch?v=oLNBMFN1Uao) ## What can you build on the X Chat API? The group endpoints are the unlock. A two-person encrypted channel is useful, but the ability to create a group, manage its members and admins, gate it behind an invite link and run a bot inside it is what opens real products. ![A list of jobs the X Chat API opens up: support bots, group AI agents, community moderation, onboarding flows, event alerting and archival of conversation events.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-03.svg) What you can build on it The clearest fit is a support bot that lives inside an encrypted thread, answering customers without the conversation ever leaving end-to-end encryption. From there the same primitives give you group AI agents that read and post in a shared conversation, community moderation that adds, removes and invites members by code, onboarding flows that spin up a group and seed its first members, and alerting that pushes a message to a thread when something happens in your system. X ships a starter for the bot case: the [xchat-agent-skeleton repo](https://github.com/xdevplatform/xchat-agent-skeleton) is a Grok pass-through out of the box, encrypted messages in and an encrypted reply out, with a handler you fill in. Third-party tooling has caught up too: [Vercel's Chat SDK now supports XChat](https://vercel.com/changelog/chat-sdk-now-supports-xchat) for one-to-one and group conversations. > Introducing 𝕏 Chat Agents powered by our new 𝕏 Chat API & Chat XDK. > > @XDevelopers [view on X](https://x.com/XDevelopers/status/2092730108041695449) Here is the shape of a support bot on the official route, end to end. Because billing runs on delivered events, the receiver is where your cost accrues, so verify the event and decrypt before you do any work. Our [guide to building a Twitter chatbot](https://www.twitterapis.com/blogs/build-twitter-chatbot-api-2026) walks the plain-DM version of the same loop, and the [Grok Bot versus X data API breakdown](https://www.twitterapis.com/blogs/grok-bot-x-api-vs-x-data-api-2026) covers when an agent is the right shape at all. ![A five-step flow for building a support bot on the X Chat API: authorize with OAuth scopes, set up keys through the Chat XDK, receive messages by webhook, decrypt and act, then encrypt and reply.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-10.svg) A support bot on the official route ```python # An X Chat webhook receiver: verify the signed delivery, then decrypt with the Chat XDK. import hmac, hashlib, time from flask import Flask, request, abort app = Flask(__name__) WEBHOOK_SECRET = "whsec_..." # returned once when the webhook is registered def verify(header, raw, tolerance=300): parts = dict(p.split("=", 1) for p in header.split(",") if "=" in p) t, v1 = parts.get("t", ""), parts.get("v1", "") if not t.isdigit() or abs(time.time() - int(t)) > tolerance: return False expected = hmac.new(WEBHOOK_SECRET.encode(), f"{t}.{raw}".encode(), hashlib.sha256).hexdigest() return hmac.compare_digest(expected, v1) @app.post("/webhooks/xchat") def receive(): raw = request.get_data(as_text=True) if not verify(request.headers.get("X-Signature", ""), raw): abort(401) event = request.get_json() if event.get("event") == "chat.received": # this is the $0.010 billable event ciphertext = event["message"]["ciphertext"] # plaintext = chat_xdk.decrypt(ciphertext) # keys stay on your device print("New encrypted chat message in", event["conversation_id"]) return {"ok": True} ``` ### Start building with TwitterAPIs $0.0008 a call, about $0.04 per 1,000 tweets at 20 tweets a page. $0.50 free credits. No credit card required. [Get API Key](https://www.twitterapis.com/signup)[View Pricing](https://www.twitterapis.com/pricing) ## What does a direct message really cost? The X API prices reads per resource returned and writes per request, which is the detail that decides a messaging budget. Reading the [pay-per-usage pricing on docs.x.com](https://docs.x.com/x-api/getting-started/pricing) on October 19, 2026, a DM Event Read is $0.010 per message and a DM Interaction Create is $0.015 per request. For X Chat specifically, billing runs on webhook events: `chat.received` is $0.010 per delivered message, while `chat.sent` and `chat.conversation_join` are not billed. So on the official route you pay to receive, not to send or to join. ![A stat panel of official X API direct-message costs: $0.010 per message returned on a read, $0.015 per message you send, and a 3 million monthly post-read cap before Enterprise.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-06.svg) What an ordinary DM bills on the official API ![A stat panel of official X Chat event costs: $0.010 per chat message X delivers to you, $0 to send a chat message, and $0 to join a conversation.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-05.svg) What X Chat events bill The per-resource unit is the thing to internalise. Reading a conversation is not one charge, it is one charge per message the response returns, and that scales with how chatty the thread is. ![A bar chart of what one DM thread costs on the official per-message read by length: a 5-message thread $0.05, 10 messages $0.10, 20 messages $0.20 and 50 messages $0.50.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-13.svg) Per-message billing scales with the thread ### The per-call route for the ordinary DM job For the plainer job of reading or sending ordinary direct messages, a per-call API prices the whole operation at a flat rate instead of per message. On this route all three DM endpoints bill $0.0016 a call, and a call to the conversation endpoint returns the thread's messages together rather than charging for each one. A standard read is $0.0008, and new accounts get $0.50 in credits, about 625 standard calls, with no card. Our [X direct-message API guide](https://www.twitterapis.com/blogs/twitter-dm-api-guide) walks the three endpoints and the session model, and the live rates are on the [pricing page](https://www.twitterapis.com/pricing). ![A stat panel of a per-call API's direct-message costs: $0.0016 per read, list or send call, one call returning a whole thread, and $0.0008 per standard read call.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-07.svg) The per-call route, same DM job Put the two routes side by side on the same direct message and the billing unit, not the sticker price, is what moves the number. What each route bills to read or send a direct message | Operation | Official X API | Per-call API | Source | | --- | --- | --- | --- | | Read one message | $0.010 per message returned | $0.0016 per thread call | published | | Send a direct message | $0.015 per request | $0.0016 per call | published | | X Chat message you receive | $0.010 per delivered event | Not offered | published | | Send an X Chat message | Not billed | Not offered | published | | Read a 20-message thread | $0.20 | $0.0016 | derived | | Monthly ceiling | 3M post reads, then Enterprise | None | published | as of 2026-10-19 Method: Official X API rates read from docs.x.com/x-api/getting-started/pricing on 2026-10-19: DM Event Read, DM Interaction Create, the chat.received and chat.sent webhook events, and the 3 million post-read cap. The 20-message row is 20 reads at $0.010. Per-call rates from the live per-call DM rate card, read 2026-10-19; one thread call returns every message in the thread. The sharpest example is a single busy thread. Twenty messages read on the official per-message rate is twenty charges at $0.010, so $0.20. The same thread on the per-call route is one call, $0.0016. ```python # One 20-message thread, both ways. messages = 20 official = messages * 0.010 # DM Event Read bills per message returned per_call = 0.0016 # one dm/conversation call, whole thread print(round(official, 3), per_call, round(official / per_call)) # 0.2 0.0016 125 ``` ![A stat panel comparing the cost of reading one 20-message thread: $0.20 on the official X API at $0.010 a message, against $0.0016 on a per-call API in one call, a 125 times gap.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-08.svg) One 20-message thread, both ways By job The X Chat API and the per-call DM endpoints, compared | | Official X Chat API | Per-call DM endpoints | | --- | --- | --- | | Encryption | End-to-end, via the Chat XDK | None, plain DMs | | Group management | Admins, invites, members, TTL | Not offered | | Billing unit | Per message delivered | Per call | | Read a 20-message thread | $0.20 | $0.0016 | | SDK required | Chat XDK, six languages | None, a bearer token | | Best for | Encrypted group chat and bots | Reading and sending plain DMs | Official column from docs.x.com read 2026-10-19; per-call column from the live rate card. Not offered means the per-call endpoints do not expose encrypted X Chat group features, not that they are worse at the plain-DM job. The honest line through that grid: the per-call endpoints do not do encrypted X Chat, group management or TTL, and they are not trying to. They do the plain-DM read and send job at a flat, predictable cost. The new encrypted group features live on the official X Chat API, and that is where they should live. ## A month of a DM job, priced in advance The point of a per-resource or per-call price is that you can model the job before you write it. Take a job that reads 50 direct-message threads a day, twenty messages each, for thirty days. Worked example One month of a DM-reading job, priced before any code Threads read per day: 50 · Official X API, 30 days: $300.00 · Per-call API, 30 days: $2.40 ☐ 50 threads x 20 messages x 30 days x $0.010 is $300 on the per-message read (billed per message returned) · ☑ 50 thread calls x 30 days x $0.0016 is $2.40 on the per-call route · ☑ The $0.50 signup credit covers a full day of the per-call job · ☑ Encrypted X Chat group features are the official API's, not the per-call route's (a different surface) An illustration at a stated volume, not a customer account. Assumes 50 threads a day of 20 messages each. Official rate $0.010 per message returned and per-call rate $0.0016 per thread call, both read 2026-10-19. A panel pricing one month of a job that reads 50 DM threads a day: $300 on the official X API billed per message, against $2.40 on a per-call API billed per thread call. On the official per-message read that is 50 times 20 times 30 at $0.010, which is $300 for the month. On the per-call route it is 50 thread calls a day for thirty days at $0.0016, which is $2.40, because each call returns the whole thread. The gap is the billing unit doing its work, and it is why read-heavy DM jobs tend to move off per-resource pricing. ```python # Model the month before you write the job: per-message vs per-call. THREADS_PER_DAY = 50 MSGS_PER_THREAD = 20 DAYS = 30 official_per_msg = 0.010 # DM Event Read, per message returned per_call = 0.0016 # one dm/conversation call returns the whole thread official = THREADS_PER_DAY * MSGS_PER_THREAD * DAYS * official_per_msg percall = THREADS_PER_DAY * DAYS * per_call print(round(official, 2), round(percall, 2)) # 300.0 2.4 ``` Our [per-user cost-of-goods breakdown](https://www.twitterapis.com/blogs/x-api-cost-per-user-cogs-2026), the [cost by workload](https://www.twitterapis.com/blogs/twitter-api-cost-by-workload-2026) rundown and the [one-million-tweet dataset](https://www.twitterapis.com/blogs/cost-of-1m-tweet-dataset-2026) price run the same arithmetic on other workloads, and the [X API pricing change breakdown](https://www.twitterapis.com/blogs/x-api-pricing-change-2026) and the [cost benchmark](https://www.twitterapis.com/blogs/twitter-api-cost-benchmark-2026) cover how the official rate card got here. The live calculator is on the [cost calculator](https://www.twitterapis.com/twitter-api-cost-calculator) page. How much attention is this change drawing? We read the X Chat launch posts back through our own API to see. > **696,576** combined views across the five X Chat API announcement posts, measured through our own API. > > _Our data_ · Dataset: `x-chat-launch-posts-2026` · Source: public X posts, read through our API · Query: `GET /twitter/tweet/advanced_search?query=%22X+Chat%22+(API+OR+endpoints+OR+group)+(from%3AXDevelopers)&product=Latest` plus the X Chat API build-guide post · Pulled: 2026-10-19 · n = 5 · Method: sum of the view\_count X reports for the five announcement posts; a dated snapshot, the counters keep moving. The X Chat launch posts, measured through our API | Post | Posted | Views | Likes | Source | | --- | --- | --- | --- | --- | | @XDevelopers: X Chat Agents | 2026-08-26 | 430,835 | 1,619 | measured | | @XDevelopers: X Chat API live | 2026-07-30 | 186,966 | 375 | measured | | @XDevelopers: v2.169 release | 2026-09-30 | 46,724 | 159 | measured | | @santiagomed: build guide | 2026-10-16 | 19,368 | 127 | measured | | @XDevelopers: API guide | 2026-10-16 | 12,683 | 117 | measured | as of 2026-10-19 Method: Each row is one read of the post through our API on 2026-10-19 (UTC), reading the view and like counters X reports for the post. Counters keep moving, so these are a dated snapshot, not totals. Falsifiable by reading the same post ids again. ![A stat panel of measured reach: 696,576 views across five X Chat launch posts, 430,835 on the X Chat Agents post, and 46,724 on the v2.169 release post, read through our API.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-11.svg) The launch, measured Measured Views on the X Chat launch posts, read through our API | Point | Value | | --- | --- | | X Chat Agents | 430,835 | | X Chat API live | 186,966 | | v2.169 release | 46,724 | | Build guide | 19,368 | | API guide | 12,683 | View counters read through our API on 2026-10-19 (UTC), one read per post. A dated snapshot; the counters keep moving. The X Chat Agents post alone cleared 430,835 views, and the September 30 release post sat at 46,724 a few weeks on. Interest in building on X Chat is not a niche, which is exactly why the cost of running it is worth getting right before you scale. ## When should you use which route? The choice is not official versus per-call in the abstract. It is which route fits the job in front of you, and the two barely overlap. ![A list of which route to pick: the official X Chat API for encrypted group chat and bots, the per-call DM endpoints for ordinary DMs at a flat cost, or both together.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-14.svg) Which route, by job Reach for the official X Chat API when you need what v2.169 shipped: encrypted group conversations, admins, invites, join requests, members, disappearing-message TTL and bots, all inside end-to-end encryption. Reach for the per-call DM endpoints when the job is reading or sending ordinary direct messages at a flat, known cost and encryption is not the point. Plenty of products will want both, running encrypted chat on X Chat while reading plain DMs per call. ![A numbered list of five direct-message jobs the per-call endpoints still fit: reading a thread cheaply, sending ordinary DMs, listing conversations, a known cost per run, and no encryption setup.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-09.svg) Five DM jobs that stay per-call ### The cheapest pay-as-you-go Twitter API. Try it free. $0.0008 a call, about $0.04 per 1,000 tweets at 20 tweets a page. $0.50 free credits. No credit card required. [Start Free](https://www.twitterapis.com/signup)[Cost Calculator](https://www.twitterapis.com/twitter-api-cost-calculator) ## The plain-DM job, per call If your job is the simple one, reading and sending ordinary DMs, the per-call route is a few endpoints and a bearer token. You register your own X session once, list conversations, read a whole thread in a single call, and send by recipient id and text. ![A four-step flow for reading and sending plain DMs the per-call way: register your X session once, list conversations, read a whole thread in one call, then send by recipient id and text.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-15.svg) The plain-DM job, per call ```bash # Register your own X session once, then list conversations. Listing is one call. curl -X POST "https://api.twitterapis.com/twitter/customer/session" \ -H "Authorization: Bearer $TWITTERAPIS_KEY" \ -H "Content-Type: application/json" \ -d '{"session": ""}' curl "https://api.twitterapis.com/twitter/dm/list" \ -H "Authorization: Bearer $TWITTERAPIS_KEY" ``` ```bash # Read a whole DM thread in one call, billed once at $0.0016. curl "https://api.twitterapis.com/twitter/dm/conversation?conversation_id=100215065-1938492597917650949" \ -H "Authorization: Bearer $TWITTERAPIS_KEY" ``` ```python import os, requests BASE = "https://api.twitterapis.com/twitter" KEY = os.environ["TWITTERAPIS_KEY"] def send_dm(recipient_id, text): """One plain-DM send: one call, $0.0016.""" r = requests.post(f"{BASE}/dm/send", json={"recipient_id": recipient_id, "text": text}, headers={"Authorization": f"Bearer {KEY}"}, timeout=30) r.raise_for_status() return r.json() ``` The [DM API guide](https://www.twitterapis.com/blogs/twitter-dm-api-guide) covers the session model, the [no-cursor limit on DM history](https://www.twitterapis.com/blogs/scrape-tweet-history-api-2026) and the send-rate cap in depth, and the [authentication guide](https://www.twitterapis.com/blogs/twitter-api-authentication) covers the bearer token. For monitoring a thread or an account rather than polling it, our [real-time mentions monitor](https://www.twitterapis.com/blogs/monitor-twitter-mentions-api-realtime), the [coverage-honesty post](https://www.twitterapis.com/blogs/twitter-monitoring-api-coverage-honesty-2026) and the [webhook API](https://www.twitterapis.com/twitter-webhook-api) push each new message to an endpoint you own. If you are deciding whether to pay at all, [is the Twitter API free](https://www.twitterapis.com/blogs/is-twitter-api-free) lays out the floor. ## Five things to settle before you build on X Chat X Chat is more involved than a plain DM endpoint, because encryption, key management and per-event billing all sit in the path, so running this short checklist before you write the first handler saves a costly rebuild later and keeps your budget predictable from day one. ![A numbered list of five things to settle before building on X Chat: encryption and on-device keys, OAuth scopes, webhook or stream delivery, what bills, and the 3 million post-read ceiling.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-12.svg) Five things to settle first First, encryption: you manage keys on-device and the Chat XDK does the math, so plan where keys live and how you back them up. Second, scopes: OAuth 2.0 user context with `dm.read` and `dm.write`, and each user authorizes their own chat. Third, delivery: webhooks or the activity stream for live events, the events API for history. Fourth, what bills: a received message bills $0.010, a sent one does not, so your cost tracks inbound volume. Fifth, your ceiling: pay-per-use caps at 3 million post reads a month, and once you hit a [rate-limit window](https://www.twitterapis.com/blogs/twitter-api-rate-limit-guide) or [what rate-limited means on X](https://www.twitterapis.com/blogs/what-rate-limited-means-on-x-2026) you page through it the same way you would [any paginated read](https://www.twitterapis.com/blogs/twitter-api-pagination). If any of those is a blocker, our [guide to choosing a Twitter API](https://www.twitterapis.com/blogs/how-to-choose-twitter-api-2026), the [official versus third-party comparison](https://www.twitterapis.com/blogs/official-x-api-vs-third-party-2026) and the [how to build a Twitter bot](https://www.twitterapis.com/blogs/how-to-build-a-twitter-bot-2026) walkthrough help you place the job. ## The short version X added the group half of the X Chat API in v2.169 on September 30, 2026: create and run encrypted group conversations, manage admins, invites, join requests and members, set mute and TTL, pin messages, and drive bots and media. It is a genuine platform opening for encrypted group products. ![A stat panel, the short version: v2.169 shipped the X Chat endpoint set, $0.010 per message X delivers on the official route, and $0.0016 per call on the per-call DM route.](https://www.twitterapis.com/blog/content/images/x-chat-api-group-endpoints-2026-slot-16.svg) The short version The cost is the part to model first. A received message bills $0.010 on the official route and a sent one is free, but an ordinary DM read bills per message returned, so a chatty thread adds up. For the plain job of reading and sending DMs at a flat cost, the per-call route is $0.0016 a call and returns a whole thread at once. [Sign up](https://www.twitterapis.com/signup) for the $0.50 credit, read a real thread against the [pricing](https://www.twitterapis.com/pricing) page, and if you are wiring an agent, the [MCP server](https://www.twitterapis.com/mcp) and our [guide to what to build with the X API](https://www.twitterapis.com/blogs/what-to-build-with-twitter-api-2026) are the next stops. On this page - What shipped in X API v2.169 - What X Chat actually is - What can you build on the X Chat API? - What does a direct message really cost? - The per-call route for the ordinary DM job - A month of a DM job, priced in advance - When should you use which route? - The plain-DM job, per call - Five things to settle before you build on X Chat - The short version // sources ## Where these numbers come from Each row is a figure in this post and the artefact it was read from. Prices and limits on this platform move, so check the date on the source before you plan against it. [X Developers announcement, 2026-09-30](https://x.com/XDevelopers/status/2105402611889528885) The first-party post that a large set of X Chat endpoints is available in X API v2.169, covering groups, admins, invites, join requests, members, mute, TTL, pinned messages and chat settings. This guide is dated from it. [New X Chat API endpoints now available, X Developer forum](https://devcommunity.x.com/t/new-x-chat-api-endpoints-now-available/277027) The changelog announcement with the full list of what the v2.169 release endpoints manage: group conversations, admin workflows, invites, join requests, membership and mute state. [X Chat API introduction, docs.x.com](https://docs.x.com/xchat/introduction) The encryption model and the endpoint reference: message bodies encrypted on the client, X routes ciphertext, the Chat XDK, and the API-reference sidebar this guide's endpoint list is read from. [X API pay-per-usage pricing, docs.x.com](https://docs.x.com/x-api/getting-started/pricing) The official rate card the DM and chat costs are read from: DM Event Read $0.010 per resource, DM Interaction Create $0.015 per request, chat.received $0.010 and chat.sent not billed, and the 3 million post-read cap. [X Chat getting started, docs.x.com](https://docs.x.com/xchat/getting-started) The hands-on tutorial that takes you from zero to a first encrypted X Chat message, in Python, TypeScript, Go, Rust, C# or Java, used for the Chat XDK and OAuth scope notes. [chat-xdk on GitHub](https://github.com/xdevplatform/chat-xdk) X's open-source Chat encryption SDK, a Rust core that handles key generation, encryption, signing and verification; the source for the six-language claim. [xchat-agent-skeleton on GitHub](https://github.com/xdevplatform/xchat-agent-skeleton) X's starter repo for an X Chat bot: encrypted messages in, a handler you fill, encrypted replies out. The source for the support-bot and agent build jobs. [Chat SDK now supports XChat, Vercel changelog](https://vercel.com/changelog/chat-sdk-now-supports-xchat) Independent confirmation that third-party tooling can now build bots holding end-to-end encrypted one-to-one and group conversations on XChat. [Introducing X Chat Agents, X Developers](https://x.com/XDevelopers/status/2092730108041695449) The August 2026 launch of X Chat Agents on the X Chat API and Chat XDK, the earlier post in the sequence and one of the measured launch posts. ## Frequently Asked Questions ### What shipped in the X Chat API in version 2.169? On September 30, 2026 X announced that a large set of X Chat endpoints is available in X API v2.169. They let you manage group conversations, admins, invites, join requests, members, mute state, disappearing-message TTL, pinned messages and chat settings from the API, alongside endpoints for bots, encrypted media and public keys. X Chat is X's encrypted direct-message system, so these endpoints drive real conversations, not just metadata. The full reference lives on docs.x.com under the Chat API. ### How much does it cost to read or send a direct message on the X API? On the official X API, reads bill per resource returned and writes bill per request: DM Event Read is $0.010 per message and DM Interaction Create is $0.015 per request, read from docs.x.com on October 19, 2026. For X Chat specifically, the chat.received webhook event is $0.010 and chat.sent is not billed. A per-call API takes a different unit: it bills $0.0016 for a read, list or send call, and one read call returns a whole thread rather than charging per message. ### Do I need the Chat XDK to use the X Chat API? For X Chat, effectively yes. The encryption, signing and key exchange are not optional, and X's Chat XDK is what does them; the docs route you through it in Python or TypeScript, with HTTPS available for the raw endpoints. You authorize with OAuth 2.0 user context and the dm.read and dm.write scopes, and each user authorizes their own chat. If your job is only to read or send ordinary, unencrypted DMs, a per-call API needs no SDK, just a bearer token. ### What can you build with the X Chat API? Because the v2.169 set covers group creation, membership, admin roles and invites, you can build support bots that answer inside an encrypted thread, AI agents that read and post in a group, community tools that add or remove members by code, onboarding flows that spin up a group and seed it, and alerting that pushes a message to a thread on an event. X's own Chat XDK and the xchat-agent-skeleton repo give you a bot handler to start from. ### Is the X Chat API encrypted? Yes. X Chat is end-to-end encrypted. Message bodies are encrypted on the client, so X routes ciphertext and cannot read the plaintext, and every message is signed so the recipient can verify the sender. The Chat XDK handles key generation, encryption, signing and verification for you, with an optional passcode-protected key backup, and ships in Python, JavaScript, Rust, Go, C# and Java. Reading or sending through X Chat means managing keys on-device, not just calling an endpoint. ### When should I use a per-call DM API instead of the X Chat API? Use the per-call endpoints when the job is reading or sending ordinary direct messages at a known, flat cost and you do not need encrypted group chat. One call returns a whole thread for $0.0016, a send is $0.0016, and there is no key exchange or SDK to stand up. Use the official X Chat API when you need the encrypted group features it shipped in v2.169: admins, invites, members, TTL and bots inside an end-to-end encrypted conversation. ## Check out similar blogs More guides on the Twitter/X API, scraping, and pricing. [ ![X and Twitter platform statistics for 2026, showing which figures are measurable through a public API and which are not published by any source](https://www.twitterapis.com/blog/content/images/x-twitter-platform-statistics-2026-cover.webp) twitter statistics x statistics ### X/Twitter Statistics in 2026: What an API Can Actually Measure, and What Nobody Can Most X statistics roundups re-cite the same handful of numbers. We measured what a public API can and cannot see across 34 accounts, printed the query behind every figure, and traced the rest to their real sources. Emma · Sep 10, 2026 ](https://www.twitterapis.com/blogs/x-twitter-platform-statistics-2026)[ ![Cost comparison for tracking X competitors in 2026, building a metered API collector against buying a social analytics dashboard subscription](https://www.twitterapis.com/blog/content/images/twitter-competitor-analysis-build-vs-buy-2026-cover.webp) twitter competitor analysis x api ### Twitter Competitor Analysis in 2026: Build the Dashboard or Buy Rival IQ Nine of the ten pages ranking for this are dashboards selling you the answer. We show the calls that produce the metrics, price both sides, and find the crossover. Emma · Aug 31, 2026 ](https://www.twitterapis.com/blogs/twitter-competitor-analysis-build-vs-buy-2026)[ ![Comparison of Twitter and X data APIs for sentiment analysis in 2026, ranked by cost per 1,000 tweets, rate-limit headroom, and metadata richness](https://www.twitterapis.com/blog/content/images/best-twitter-api-for-sentiment-analysis-2026-buyer-guide-cover-seo.webp) twitter api sentiment analysis ### Best Twitter/X API for Sentiment Analysis: A 2026 Buyer's Guide Which Twitter (X) data source should actually power a sentiment-analysis pipeline in 2026? We compared the official X API v2, pay-per-call APIs, and scraping libraries on cost per 1,000 tweets, rate-limit headroom, historical depth, and the metadata a sentiment model needs. Emma · Aug 19, 2026 ](https://www.twitterapis.com/blogs/best-twitter-api-for-sentiment-analysis-2026-buyer-guide)[ ![Cover reading Grok Bot reads X without API credits now, when you still need an X data API, with a note on what changed on October 7 and five jobs that still need an API](https://www.twitterapis.com/blog/content/images/grok-bot-x-api-vs-x-data-api-2026-cover.webp) grok bot grok bot x api ### Grok Bot Reads X Without API Credits Now. When You Still Need an X Data API Grok Bot can now search, read and monitor X without X API credits. What the docs confirm, what they leave out, and five jobs that still need an X data API. Emma · Oct 15, 2026 ](https://www.twitterapis.com/blogs/grok-bot-x-api-vs-x-data-api-2026)[ ![A rate card for a twitter scraper api priced by data type: what 10,000 profiles, followers, following, replies and search results each bill on live rates](https://www.twitterapis.com/blog/content/images/twitter-scraper-api-cost-per-job-profiles-followers-replies-cover.webp) twitter scraper api twitter scraper api cost ### What a Twitter Scraper API Bills Per Job: Profiles, Followers, Replies and Search A rate card for twitter scraper api jobs by data type. What 10,000 profiles, followers, following, replies and search results each bill, on live rates. Emma · Oct 6, 2026 ](https://www.twitterapis.com/blogs/twitter-scraper-api-cost-per-job-profiles-followers-replies)[ ![TwitterAPIs is live on Uneed: a pay-per-call Twitter API at $0.0008 a call with no X developer account, and what a launch day is worth to a developer API](https://www.twitterapis.com/blog/content/images/twitterapis-live-on-uneed-2026-cover.webp) twitterapis uneed ### TwitterAPIs Is Live on Uneed: A $0.0008 Twitter API With No Developer Account TwitterAPIs launched on Uneed today. What the pay-per-call Twitter API costs next to the official X API, how a Uneed launch day actually works, and what founders say one delivers. Emma · Sep 29, 2026 ](https://www.twitterapis.com/blogs/twitterapis-live-on-uneed-2026)[ ![A Python crypto Twitter tracker that polls a list of KOL accounts, extracts EVM and Solana contract addresses from new posts and sends an alert, with the monthly bill for 25 and 100 accounts](https://www.twitterapis.com/blog/content/images/crypto-twitter-tracker-python-kol-contract-address-alerts-cover.webp) crypto twitter tracker kol tracking ### Build a Crypto Twitter Tracker in Python: Watch a KOL List and Catch Contract Addresses A runnable Python watcher that polls a named list of crypto accounts, pulls every new post, finds EVM and Solana addresses, and alerts you, with the monthly bill for 25 and 100 accounts. Emma · Sep 28, 2026 ](https://www.twitterapis.com/blogs/crypto-twitter-tracker-python-kol-contract-address-alerts)[ ![What it costs to monitor a roster of fifty X accounts at each poll interval, with monthly billing, mean detection latency and cost per captured post](https://www.twitterapis.com/blog/content/images/x-account-monitoring-poll-cadence-cost-2026-cover.webp) monitor twitter account x account monitoring cost ### Watching 50 X Accounts: What Every Poll Cadence Actually Bills Every monitoring page sells you an interval and calls it real time. None of them prices it. Here is what a one minute, fifteen minute and daily poll across a fixed fifty account roster costs per month, and the route where the watch itself bills nothing. Emma · Sep 12, 2026 ](https://www.twitterapis.com/blogs/x-account-monitoring-poll-cadence-cost-2026) [ TwitterAPIs ](https://www.twitterapis.com/) The cheapest pay-as-you-go Twitter and X API. $0.0008 per call, which works out to $0.04 per 1,000 tweets on a full 20-tweet page. No subscriptions and no developer account. ## Product / API - [Pricing](https://www.twitterapis.com/pricing) - [Cost Calculator](https://www.twitterapis.com/twitter-api-cost-calculator) - [Rate Limits](https://www.twitterapis.com/twitter-api-rate-limits) - [MCP Server](https://www.twitterapis.com/mcp) - [Integrations](https://www.twitterapis.com/integrations) - [Language Clients](https://www.twitterapis.com/sdk) - [Changelog](https://www.twitterapis.com/changelog) - [Status](https://www.twitterapis.com/status) ## Developers - [Documentation](https://docs.twitterapis.com/docs) - [API Reference](https://docs.twitterapis.com/docs/reference/search/tweet-advanced-search) - [User Info](https://docs.twitterapis.com/docs/reference/user-reads/user-info) - [User Tweets](https://docs.twitterapis.com/docs/reference/user-reads/user-tweets) - [Advanced Search](https://docs.twitterapis.com/docs/reference/search/tweet-advanced-search) - [Verified Followers](https://docs.twitterapis.com/docs/reference/follower-graph/user-verified-followers) ## Resources / Compare - [Answers](https://www.twitterapis.com/answers) - [Reviews](https://www.twitterapis.com/reviews) - [Free Tools](https://www.twitterapis.com/tools) - [Twitter ID Finder](https://www.twitterapis.com/tools/twitter-id-finder) - [Get a Twitter API Key](https://www.twitterapis.com/twitter-api-key) - [Official X API Comparison](https://www.twitterapis.com/twitter-api-pricing) - [Twitter API Use Cases](https://www.twitterapis.com/twitter-api-usecases) - [Twitter API Alternatives](https://www.twitterapis.com/twitter-api-alternatives) - [Twitter Unofficial API](https://www.twitterapis.com/twitter-unofficial-api) - [Twitter Free API](https://www.twitterapis.com/twitter-free-api) - [TwitterAPIs vs twitterapi.io](https://www.twitterapis.com/twitterapis-vs-twitterapi-io) - [TwitterAPIs vs GetXAPI](https://www.twitterapis.com/twitterapis-vs-getxapi) - [TwitterAPIs vs TweetAPI](https://www.twitterapis.com/twitterapis-vs-tweetapi) - [TwitterAPIs vs TwexAPI](https://www.twitterapis.com/twitterapis-vs-twexapi) - [TwitterAPIs vs RapidAPI](https://www.twitterapis.com/twitterapis-vs-rapidapi) ## Legal - [About](https://www.twitterapis.com/about) - [Security](https://www.twitterapis.com/security) - [Trust](https://www.twitterapis.com/privacy-and-data-handling) - [Terms of Service](https://www.twitterapis.com/terms-of-service) - [Affiliates](https://www.twitterapis.com/affiliates) - [Contact](https://www.twitterapis.com/contact) - [Jobs](https://www.twitterapis.com/jobs) © 2026 TwitterAPIs. All rights reserved. TwitterAPIs is an independent third-party API for developers and researchers. Not affiliated with, endorsed by, or sponsored by X Corp. All systems operational