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 |