Last updated: August 31, 2026
Fix: X API replies stopped working
Since February 23, 2026, POST /2/tweets can only create a reply when the original author mentioned or quoted your account first. X calls this being summoned. Self-serve pay-per-use tiers are affected. Enterprise is not. Original posts, threads, and scheduled posts still work exactly as before.
If your reply bot went quiet in late February, nothing is broken in your code. The write path you were using no longer exists on self-serve access. This page tells you exactly which calls still land, what a summoned reply costs, and what to do with the volume you can no longer send as replies.
What actually changed
Before February 23, 2026, a reply was just a post with a reply object attached. Any account with API write access could reply to any public post. That single fact powered an entire category of tooling: keyword monitors that jumped into conversations, reply-guy bots that farmed engagement off large accounts, and outbound tools that answered competitor mentions.
X now requires standing. Your app can create a reply only in a conversation where the other account has already pulled you in, by @mentioning your handle in the post you are replying to, or by quote-posting your account. X describes that state as being summoned. Without it, the reply is refused at the write step. Your credentials are fine, your scopes are fine, and retrying will not help.
This is a tier-scoped policy, not a bug. Self-serve pay-per-use access carries the restriction. Enterprise agreements do not. If you have been told the fix is to re-authenticate, rotate tokens, or add a scope, that advice predates the change. See the OAuth refresh token guide if you want to rule out a genuine credential problem first.
Do not route around it
Browser automation and unofficial endpoints will get replies out for a while. They are also the exact signature X removed 42,000 accounts for in April 2026. If you are already caught in that, read did X suspend my bot in the purge.What still works, call by call
Self-serve pay-per-use access, as of August 2026.
The two calls, side by side
Same endpoint, same token, same payload shape. The only difference is whether the account you are replying to summoned you first.
# Works: the author @mentioned you, so you were summoned
curl -X POST https://api.x.com/2/tweets \
-H "Authorization: Bearer $X_USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Thanks for the tag. Here is the short version.",
"reply": { "in_reply_to_tweet_id": "1893000000000000000" }
}'
# Refused since 2026-02-23: no mention, no quote, no standing
curl -X POST https://api.x.com/2/tweets \
-H "Authorization: Bearer $X_USER_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"text": "Have you tried our tool?",
"reply": { "in_reply_to_tweet_id": "1893111111111111111" }
}'There is no request field that changes this. No parameter grants standing, and nothing in your app configuration overrides it. Standing is a property of the conversation, not of your credentials.
What a reply costs now
$0.01
Summoned reply
Cheaper than a plain post. The catch is you cannot choose when to send one, because you only get to reply when somebody else starts it.
$0.015
Original post
Unchanged, and fully under your control. This is the write path that survived every 2026 restriction.
$0.20
Any post containing a link
20 times the summoned-reply rate. Applies to replies too. If your reply carries a URL, it bills as a link post.
Model your own numbers with the X API cost calculator, or read the full rate breakdown in X API pay-per-use explained.
Where the volume should go instead
A reply bot was never really about replies. It was about being present in conversations at a cadence a human cannot sustain. The February change removes the reply half of that. It leaves the cadence half completely intact.
Three moves recover most of the value:
- Turn the reply into an original post. The take you were going to leave under someone else's post is usually better as a standalone post at a time your audience is actually online. Use your best posting times instead of whenever the trigger fired.
- Turn the thread of replies into a real thread. Self-replies are untouched. A four-post thread you schedule yourself outperforms four replies scattered under other people's posts, and it costs the same.
- Answer summons properly. The replies you can still send are the ones where someone tagged you. Those are the highest-intent conversations you have. Handle them well rather than at volume.
# Threads are self-replies and still work end to end.
# Through OpenTweet it is one call, no X developer account.
curl -X POST https://opentweet.io/api/v1/posts \
-H "Authorization: Bearer ot_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"text": "We rebuilt our reply workflow after the Feb 2026 X API change. What we learned:",
"scheduled_date": "2026-09-02T14:00:00Z"
}'OpenTweet posts and schedules through your connected X account with no X developer account, no pay-per-use credits, and no per-link surcharge. Threads, originals, and scheduling are all first-class. See the developer docs or connect an agent through the hosted MCP server.
7-day free trial. Cancel anytime.
Frequently asked questions
Why is my X API reply failing since February 2026?
On February 23, 2026 X restricted reply creation through POST /2/tweets. A reply is only accepted when the account you are replying to has already mentioned or quoted your account in that conversation. X calls this being summoned. The restriction applies to self-serve pay-per-use access. Enterprise access is unaffected.
What does "summoned" mean in the X API reply rules?
Summoned means the other account pulled you into the conversation first, either by @mentioning your handle in the post you want to reply to, or by quote-posting your account. If neither happened, your app has no standing to reply through the API and the write is refused.
Do threads still work through the X API?
Yes. A thread is a chain of replies to your own posts, and self-replies are not affected by the restriction. Posting an original tweet and then chaining in_reply_to_tweet_id against your own post IDs works exactly as it did before February 2026.
Are scheduled posts affected by the reply restriction?
No. Scheduling is not an X API feature in the first place, so nothing about it changed. Original posts, threads, and scheduled originals go out through the normal create-post path, which the February 2026 change left alone.
How much does a summoned reply cost on the X API?
A summoned reply bills at $0.01 per reply, cheaper than the $0.015 rate for a plain post. Note this is only for the reply itself. If your reply contains a URL it is treated as a link post and bills at $0.20, which is 20 times the summoned-reply rate.
Is there a workaround for the X API reply restriction?
Not one that is both legitimate and durable. Driving replies through a browser automation or an unofficial endpoint is a platform rules violation and is exactly the behavior that got 42,000 accounts removed in the April 2026 purge. The supported path is to reply only when summoned, and to move the rest of your volume into original posts and threads.
Does Enterprise X API access still allow unrestricted replies?
Yes. The February 23, 2026 restriction was applied to self-serve tiers. Enterprise agreements are not affected. Enterprise pricing starts far above what a self-serve reply bot economically justifies, so for most builders it is not a real option.
Related guides
The rest of the 2026 X API changes, and the write paths that survived them.
Likes and follows removed from the API
The April 2026 write-endpoint cut, and what is still callable on self-serve access.
X API pay-per-use explained
Every current rate, how credits work, and worked monthly cost examples.
X API cost calculator
Model your posting and reading volume at current pay-per-use rates.
X API rules for AI agents
What the 2026 automation rules require before your agent posts.
OpenTweet vs the X API
What each one does better, feature by feature, with no hand waving.
How to write threads
Self-replies were never restricted. Use them properly.
Post the things X did not restrict
Originals, threads, and scheduling, through a REST API or hosted MCP server. Flat monthly fee, no developer account, no per-link surcharge.
7-day free trial. Cancel anytime.