Where does the bug appear (feature/product)?
Somewhere else…
Describe the Bug
Product: Grok Bot (beta)
Connector: X marketplace plugin (plugin 49086599, MCP server user-X)
Date: 2026-08-13
Account: app-only bearer (X_BEARER_TOKEN)
Summary
Two bugs, same pain:
- The built-in X connector does not expose GET /2/tweets/search/recent. The only post-search tool is search_posts_all (full-archive /search/all).
- Hitting GET /2/tweets/search/recent directly with the same bearer authenticates, then returns HTTP 402 credits depleted.
Grok Bot is an X / SpaceXAI product. I am already paying for it (Grok Bot beta / SuperGrok / Cursor Ultra-class). A bot whose job is to read X should have recent search included, not a second credit balance on the developer API.
Expected
- Connector exposes search_posts_recent → GET /2/tweets/search/recent (last 7 days).
- For Grok Bot, recent search should be included in the subscription. I should not buy X API credits on top of a Grok Bot seat to ask “what’s on my timeline / what did these accounts post.”
- search_posts_all can stay for people who actually want archive.
Actual
Connector catalog (live, 24 tools)
Search-related:
- search_posts_all (full archive)
- search_users
- search_news
- get_posts_counts_recent (counts only; start_time must be within last 7 days)
No search_posts_recent. No mapping to /2/tweets/search/recent.
Also present: post lookup, likes/quotes/reposts, user lookup, get_users_posts, get_users_mentions, get_users_timeline, bookmarks CRUD, get_news, get_trends_by_woeid, get_users_me.
get_users_me and get_users_timeline require user-context OAuth. App-only bearer returns 403 Unsupported Authentication.
Connector status often stays needsAuth even after a bearer is saved.
Direct API (same bearer, just now)
Without token: 401 Unauthorized.
With token:
- HTTP 402
- body: {“detail”:“credits depleted”,“status”:402,“title”:“Payment Required”,“type”:“Response Codes & Errors - X”}
- x-access-level: read
- x-rate-limit-limit: 450
- x-rate-limit-remaining: 448
So this is the real recent-search endpoint (450/15 min), auth works, and it still bills. Zero credit balance → 402.
search_posts_all through the connector: same 402 credits depleted.
Docs still describe recent search as “available to all developers” vs full-archive as pay-per-use/Enterprise. That is about who may call the route, not “recent is free.” After Feb 2026 pay-per-use, recent search is on the same read meter (~$0.005/post). The docs did not update “available to all” to “available, and it still bills.”
Why this is a Grok Bot bug, not just an X API billing FAQ
I am using Grok Bot, which is an X product, to read X. The connector forces agents onto /search/all. Recent search is the cheap 7-day path and it is not in the tool list. Even if I call /recent myself, Grok Bot does not include those reads. Twice-daily pulse over ~50 followed accounts would be on the order of 10k post reads per $50.
A teammate product that cannot search last week’s posts without a second prepaid credit pack is broken for this use.
Steps to reproduce
- Install the X plugin in Grok Bot, paste an app-only bearer.
- Ask a bot to search posts from the last few days (e.g. from:teortaxesTex).
- Inspect the connector tools: only search_posts_all.
- Call GET /2/tweets/search/recent with that bearer when the developer app credit balance is $0.
Ask
- Add search_posts_recent to the X connector. Do not make agents use /search/all for “what’s on X today.”
- Include recent-search reads for Grok Bot subscribers (or a bundled credit allotment). Do not double-charge X API credits on top of the Grok Bot seat for reading X.
- Fix connector status so a saved bearer does not sit at needsAuth.
- Update docs so “available to all developers” is not read as “recent search is free.”
Steps to Reproduce
- Install the X marketplace plugin in Grok Bot and save an app-only bearer token.
- Ask the bot to search posts from the last few days (for example, from:teortaxesTex).
- Inspect the connector catalog: it exposes search_posts_all but not search_posts_recent.
- With a $0 developer API credit balance, call GET /2/tweets/search/recent using the same bearer.
- Authentication succeeds, but the endpoint returns HTTP 402 credits depleted; the connector’s search_posts_all call returns the same 402.
Expected Behavior
- The X connector exposes search_posts_recent mapped to GET /2/tweets/search/recent for the last 7 days.
- Recent-search reads are included with a Grok Bot subscription (or covered by a bundled credit allotment), rather than requiring separate X API credits.
- search_posts_all remains available for archive use.
- A saved app-only bearer is recognized by the connector rather than remaining in needsAuth.
Operating System
Windows 10/11
Version Information
Grok Bot (beta); X marketplace plugin 49086599; MCP server user-X; reported 2026-08-13.
For AI issues: which model did you use?
Grok Bot (beta)
For AI issues: add Request ID with privacy disabled
N/A — connector/API issue; no model request ID.
Additional Information
App-only bearer authentication works for the direct endpoint (x-access-level: read), but GET /2/tweets/search/recent returns 402 credits depleted at zero API credits. The connector also remains needsAuth after saving the bearer and app-only calls to get_users_me/get_users_timeline return 403 Unsupported Authentication.
Does this stop you from using Cursor
No - Cursor works, but with this issue