TikTok scraper API with no account, no proxies, no credits: pay $0.01 per video
TikTok is the hardest mainstream platform to scrape yourself. Its bot defense is aggressive, its internals churn constantly, and its official APIs are gated behind partner programs and research applications that most builders will never clear. So the practical routes to TikTok view counts have been a scraper marketplace subscription or a DIY stack of headless browsers and rotating proxies. We built a third route: a TikTok scraper API where the entire integration is a paid GET request. One cent, one URL, one JSON object with six numbers.
What "no account" actually removes
On an actor marketplace such as Apify, getting TikTok stats means an account, a payment method, a credit balance, choosing among TikTok scraper actors with different pricing models, configuring proxy settings, then running jobs and parsing dataset exports. That platform model makes sense for large custom crawls. For stats lookups it is seven steps of ceremony around one number. The x402 model deletes the ceremony because payment rides inside the HTTP request itself:
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const payFetch = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{
network: "eip155:8453",
client: new ExactEvmScheme(privateKeyToAccount(process.env.AGENT_PRIVATE_KEY)),
}],
});
const res = await payFetch(
"https://x402.findclout.com/api/v1/tiktok/post?url=" +
encodeURIComponent("https://www.tiktok.com/@nflstreetmoments/video/7401882236711")
);
console.log(await res.json());
{
"success": true,
"platform": "tiktok",
"fetchedAt": "2026-07-19T14:05:56.000Z",
"url": "https://www.tiktok.com/@nflstreetmoments/video/7401882236711",
"username": "nflstreetmoments",
"views": 4102338,
"likes": 512004,
"comments": 3912,
"shares": 21480,
"followers": 1306700
}
No signup, no API key, no credit card, no credits to top up. Your wallet holds USDC on Base and needs no ETH; the x402 protocol handles the payment handshake invisibly inside payFetch. First time seeing this pattern? The quickstart walks the raw 402 challenge in one curl command.
Six numbers per cent, including followers
Most TikTok views scrapers return video stats only, and follower counts cost a second job against a profile scraper. Our endpoint returns the author's follower count in the same response, so audience-relative math is one call:
- views: TikTok's play count, the metric everything else keys off
- likes, comments, shares: the engagement triple; shares per view is TikTok's best predictor of continued distribution
- username, followers: who posted it and how big their audience was at fetch time; views far above followers means the algorithm carried the clip
- fetchedAt: ISO 8601 timestamp of the live read, your freshness guarantee
Billing is deterministic in a way scraping runs never are: 4xx responses are never charged, a deleted or private video returns a paid, explicit {"success": false, "error": "not_found"}, and infrastructure failures return unpaid 502s. You cannot spend money on a run that quietly produced nothing.
Bans, blocks, and breakage are priced into the cent
Everything that makes DIY TikTok scraping miserable, residential proxy pools, fingerprint rotation, signature algorithms that change without notice, is our operational problem, not yours. You send HTTPS requests to a stable, documented endpoint; our data infrastructure absorbs the platform churn behind it. When TikTok changes something at 2am, we fix our side and your integration never notices. That is the actual product: not the data, which is public, but the reliability of access to it, delivered at a price that only makes sense because the infrastructure is amortized across every caller.
This also changes what is practical to build. At a cent per lookup you can poll a video every 30 minutes through its first 48 hours ($0.96 for a complete early-life curve), keep a 200 video trend watchlist fresh every 6 hours ($8/day), or audit a 50 post campaign daily for a month ($15). The metric interpretation playbook for those workflows, like-to-view ratios, share velocity, follower-relative virality, lives in the companion TikTok views API guide.
Not just Node: any HTTP client can pay
The examples above use JavaScript because @x402/fetch makes payment a one-line wrapper, but nothing about the protocol is Node specific. x402 client libraries exist across ecosystems, and the 402 challenge itself is plain JSON: any language that can sign an EIP-3009 typed message can implement the flow directly. A Python worker, a Go service, a Rust agent, and a shell script with a signing helper all speak the same two-request handshake. That neutrality matters if your TikTok data consumer is a data pipeline rather than an app: the endpoint slots into an Airflow task or a cron job exactly as easily as into a frontend, and the machine-readable spec at openapi.json plus the agent-readable summary at llms.txt mean codegen tools and LLMs can wire it up without a human reading docs at all.
One operational note for batch workloads: run lookups with modest concurrency rather than firing hundreds of simultaneous requests. Each request settles its own payment, so a polite batch of five to ten in flight keeps latencies smooth and gives you clean, ordered fetchedAt timestamps for time series work.
When you still want a marketplace scraper
Fair is fair: if you need full comment threads, video file downloads, hashtag or sound crawls, or arbitrary structured extraction, an actor marketplace or custom scraper is the right tool, and platforms like Apify have mature TikTok tooling for exactly that. This API deliberately does one narrow thing: stats for a known video URL, instantly, with zero setup. Narrow is what makes it usable by AI agents, which cannot create marketplace accounts but can sign a USDC payment. Handing this endpoint to Claude or LangChain as a tool takes about twenty lines, shown in the agent wallet tutorial.
Cross-platform work uses the same wallet and the same envelope: Instagram and X/Twitter scraping-shaped lookups work identically, and the universal /api/v1/post endpoint routes any supported URL by hostname. For the architectural argument about why no proxy appears anywhere in your code, read why your scraper stack needs proxies and an x402 API does not.