X Search Win-Back: pay-per-call workflow vs account-based APIs
X monitoring only becomes useful on the second run. Keep one query, language, and result limit, then compare the next set of public posts against the first.
tweets-search is the route for that loop. It costs 0.006 USDC per call on
Base and returns recent public post text, timestamps, metrics, and author
fields when the X API supplies them. Retweets are excluded by default.
Start with a request you will want to run again:
{
"query": "(x402 OR agent payments) lang:en",
"language": "en",
"max_results": 20
}
Save that body with the response. On the next check, send the same body and compare post IDs and timestamps. Changing the query or result limit turns it into a different measurement.
Use the paid route
curl -X POST https://x402.agentutility.ai/tweets-search \
-H "Content-Type: application/json" \
-d '{"query":"(x402 OR agent payments) lang:en","language":"en","max_results":20}'
The initial response describes the x402 payment requirement. For a guarded
client that makes one bounded payment and records a local run claim, use the
tweets-search recipe. It also
shows the MCP configuration for the agentutility-web-probe server.
Read the result before comparing it
The primary path is read-only X API v2 search. If that dependency cannot
answer, the route may return public-index rows in the same tweets array with
degraded: true, dependency: "x-api", and an upstream status.
Keep a degraded response as a lead. Compare it with another degraded response from the same source label. Wait for two primary-source responses before using the diff as a change in X activity.
Pick the route for the job
| Need | Route | What you get |
|---|---|---|
| Repeat one public query | tweets-search | Saved-query monitoring with post and author fields |
| Fetch known post IDs | tweets | Public post text and metadata for up to 100 IDs |
| Track overall tone | twitter-sentiment | Per-post and aggregate sentiment for one recent search |