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.

Call
Status
Reply to a post that @mentioned you
You were summoned. Accepted, bills at $0.01.
Reply to an account that quote-posted you
A quote post counts as a summon in the same conversation.
Reply to any post you found by search
No summon. This is the pattern every reply-guy bot used, and it is the one that stopped working.
Auto-reply to keyword matches
No summon. Keyword monitoring plus reply is dead on self-serve access.
Reply to a competitor mention
Unless they tagged your handle, there is no summon and no write.
Post an original tweet
Untouched by the change. $0.015, or $0.20 if the text contains a URL.
Post a thread (replies to your own posts)
Self-replies were never in scope. Chain in_reply_to_tweet_id as before.
Schedule an original or a thread
Scheduling never lived in the X API. Nothing changed.

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.

reply-summoned-vs-not.sh
# 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.
schedule-an-original.sh
# 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.

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.