Tweet view counts by API after the API pricing era

There was a time when tweet data was the most accessible social data on the internet. Free tiers, generous limits, a decade of tooling. That era ended when X repriced its API, and it ended hard: the affordable hobbyist tiers disappeared or shrank to near uselessness, serious read access moved to price points that start in the hundreds of dollars a month, and thousands of dashboards, research projects, and side tools simply died. If you landed here by searching for a way to get tweet view counts programmatically, you have probably already discovered all of this the annoying way.

Here is the post pricing-era answer we run in production: view counts for any public post on X, one HTTP request, one cent, no X developer account, no monthly tier, no API key.

The mismatch the pricing era created

The official API pricing is built around a subscription: pay a fixed monthly amount, get a bucket of requests. That shape is fine if you are a data company consuming millions of tweets. It is absurd if you need to check fifty posts a week. The fixed fee does not scale down, so casual and mid-volume users are priced as if they were heavy ones, and there is a signup, an application, and a key lifecycle standing in front of the first request either way. Meanwhile DIY scraping of X breaks constantly, a treadmill we documented in the Twitter scraper API guide.

Pay per request flips the economics. There is no fixed fee to amortize, so one lookup costs a cent and fifty thousand lookups cost five hundred dollars, and both prices are fair at their volume. That is the model the x402 protocol makes possible over plain HTTP.

The endpoint

GET /api/v1/x/post takes a status URL, from either x.com or twitter.com, or the raw tweet ID via ?id=:

import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.AGENT_PRIVATE_KEY);
const payFetch = wrapFetchWithPaymentFromConfig(fetch, {
  schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});

const res = await payFetch(
  "https://x402.findclout.com/api/v1/x/post?url=" +
    encodeURIComponent("https://x.com/AdamSchefter/status/1812340221459871")
);
console.log(await res.json());
{
  "success": true,
  "platform": "x",
  "fetchedAt": "2026-07-19T16:31:02.000Z",
  "url": "https://x.com/AdamSchefter/status/1812340221459871",
  "username": "AdamSchefter",
  "views": 8412550,
  "likes": 60233,
  "comments": 4188,
  "shares": 9145,
  "followers": 10891404
}

Field mapping is worth being precise about, because X names things differently than other platforms. views is the impression count X displays on every post. comments is replies. shares is retweets. followers is the author's follower count at fetch time, included in the same response so you can judge reach against audience without a second call. Everything arrives in the same envelope as the Instagram and TikTok endpoints, with fetchedAt as your freshness timestamp.

What a cent per tweet unlocks

Once lookups cost a cent, use cases that died in the pricing era come back to life:

  • Campaign verification. A sponsored post's promised reach is checkable the moment it goes live, and every day after. A 30 post campaign audited daily for a month is nine dollars.
  • Narrative tracking. Follow view velocity on a set of posts about your company, your market, or your competitor's launch. Impressions on X move in hours; polling a 20 post watchlist every 6 hours costs 80 cents a day.
  • Creator vetting. Before paying for a sponsored post, check whether an account's typical view counts justify the rate. The ratio math is the same as everywhere else, and how advertisers detect inflated influencer numbers covers the thresholds.
  • Research at honest scale. A dataset of 10,000 posts costs one hundred dollars, once, with no subscription hangover after the project ends.

Billing rules are automation-safe: bad URLs return HTTP 400 and 4xx responses are never charged, deleted or protected posts return a paid {"success": false, "error": "not_found"}, and upstream failures return an unpaid 502. If your URL list mixes X with Instagram and TikTok, point everything at the universal /api/v1/post endpoint listed in the endpoint reference and let it route by hostname.

Practical notes for X URLs specifically

A few details save debugging time. The endpoint accepts both x.com and twitter.com status URLs interchangeably, so old bookmarks and freshly copied links both work without normalization. If your pipeline already stores tweet IDs rather than URLs, skip the URL entirely and pass ?id=<tweetId>, which is one less string to build and one less thing to encode. Cache with the platform's rhythm in mind: impressions on X accumulate fastest in the first six hours and are largely settled within three days, so an hourly poll early and a daily poll after captures nearly everything for a fraction of the spend. And log fetchedAt with every reading; two view counts without their timestamps cannot honestly be compared, and with them you get velocity for free.

No account, on either side of the trade

The striking thing about this setup is what is absent. You never create an X developer account, and you never create an account with us either. Payment is the credential: your client reads the 402 challenge, signs a $0.01 USDC authorization on Base, and retries. Settlement is gasless for the payer via EIP-3009, so a wallet holding nothing but USDC works, and the full flow is documented in the payment section. If paying for data directly in stablecoins is new territory, buy social media data with USDC walks through the crypto side from zero.

We are not neutral observers of this problem, which is exactly why the endpoint exists. FindClout places brands natively inside viral sports content across the biggest independently owned American meme page network, X included, and delivered impressions are the number our advertisers pay against. We needed tweet views on demand at reconciliation time, at a price that made per-post checks a non-decision, so we built it and opened it to everyone.

Your first 402 challenge is one curl away in the quickstart, and your first paid view count is about ten lines behind it.

Want the views, not just the numbers?

FindClout runs the biggest independently owned American meme page network, with sports, finance, entrepreneurship, movie, TV, and music pages reaching real American audiences. We place brands natively inside viral clips people already love: not ads next to content, your product inside it.

Book a call at findclout.com