X Account Signals

x402 · Base mainnet

X Account Signals API

A pay-per-use API powered by x402. Enter any X/Twitter handle to get account signals — tweet activity patterns, account location, verification status, affiliate, client, and username change history — starting at $1.50 USDC per lookup.

How it works

Plain-English x402 flow

1

Call the endpoint

Your app requests the account-signals URL. If payment is required, the server returns 402 Payment Required.

2

Sign payment auth

Your wallet signs a USDC transfer authorization. No gas is needed because this uses EIP-3009.

3

Retry with payment

The request is retried with the x402 payment header. If it validates, the API returns the account signals.

4

Settle on Base

The USDC payment settles on Base mainnet, so the lookup is paid per use without accounts or API keys.

API docs

Endpoint and response

GET
https://xsignal.mykclawd.xyz/x-account-signals?handle={twitter_handle}&maxTweets={100|200|...|1000}
Cost
$1.50 USDC per 100 tweets · default $3.00 (200 tweets) · max $15.00 (1000 tweets)
Facilitator
https://api.cdp.coinbase.com/platform/v2/x402/facilitator

PassmaxTweetsin multiples of 100 (100–1000) to control how many tweets are fetched and how much you pay. Omit it to use the default of 200. IfwindowCapped: truethe account has more activity beyond what was fetched. Non-fatal errors (e.g. scraper unavailable) are returned in theerrorsarray alongside a 200 response. If the X API itself fails, the server returns a 5xx and no payment is settled.

Response shape
{
  "handle": "string",
  "userId": "string",
  "createdAt": "ISO date",
  "errors": ["string"],
  "signals": {
    "activityByMonth": { "YYYY-MM": number },
    "tweetCount": number,
    "windowStart": "ISO date | null",
    "windowEnd": "ISO date | null",
    "windowCapped": boolean,
    "windowCapNote": "string | null",
    "about": {
      "accountBasedIn": "string | null",
      "connectedVia": "string | null",
      "isVerified": "boolean | null",
      "verifiedSince": "ISO date | null",
      "affiliateUsername": "string | null",
      "usernameChanges": "number | null",
      "usernameLastChangedAt": "ISO date | null"
    } | null
  }
}

Interactive demo

Run a paid lookup

Connect a wallet on Base, enter a handle, choose how many tweets to fetch, then sign the gasless payment authorization.

@

Wallet required before the paid request can run.