x402 Scraping API: web data your agent pays for per call
Try FastAF free on testnet. Point your agent at GET https://api.fastaf.co/x402/v1/demo/search?query=... on Base Sepolia. It costs $0.001 in test USDC from the Circle faucet, returns up to 3 real results, and allows 5 paid calls per IP per day. When it works, switch to /x402/v1/serp on Base mainnet ($0.005 per call). Copy-paste example: fastaf-mcp/examples/agentkit-x402.
FastAF exposes all 16 endpoints over x402 v2: GET https://api.fastaf.co/x402/v1/{endpoint} with the same query parameters as the keyed API. No account, no API key: the first request returns HTTP 402 with the exact price, your x402 client signs a USDC authorization on Base and retries. Payment is settled only if the request succeeds. Price = credit cost × $0.001 USDC.
Prices per endpoint (live 402 quotes, default variant, 2026-10-25)
| Endpoint | What it returns | Price (USDC) |
|---|---|---|
amazon |
Amazon product data / search | $0.001 |
youtube |
YouTube transcript & metadata | $0.001 |
serp |
Google web search | $0.005 |
maps |
Google Maps & places | $0.005 |
news |
Google News | $0.005 |
scholar |
Google Scholar | $0.005 |
jobs |
Google Jobs | $0.005 |
scrape |
Any URL: HTML, markdown, links, AI extraction | $0.005 |
screenshot |
Website screenshot | $0.005 |
walmart |
Walmart products | $0.005 |
zillow |
Zillow listings | $0.005 |
ebay |
eBay listings / item | $0.005 |
x |
Public X profile | $0.005 |
shopping |
Google Shopping | $0.010 |
ai |
Google AI answers with citations | $0.010 |
linkedin |
Public LinkedIn profile | $0.060 |
Options can change the price (e.g. serp with advance_search=true = 10 credits); always pay the amount in the live challenge. Full schemas: openapi.json, discovery: /.well-known/x402. Browse endpoints on /apis/.
The real 402 response
GET https://api.fastaf.co/x402/v1/serp?query=best%20espresso%20machine without payment → HTTP/2 402. JSON body (excerpt):
{
"error": {
"code": "payment_required",
"message": "Payment is required for this request."
},
"price": {
"usd": "0.005000",
"credits": 5,
"asset": "USDC",
"network": "eip155:8453"
},
"how_to_pay": "Sign the PAYMENT-REQUIRED challenge with an x402 v2 client (for example @x402/fetch) and retry with PAYMENT-SIGNATURE. Settled only if the request succeeds.",
"docs": "https://fastaf.co/docs/#x402",
"x402Version": 2
}
The PAYMENT-REQUIRED header (base64) decodes to (excerpt):
{
"x402Version": 2,
"resource": {
"url": "https://api.fastaf.co/x402/v1/serp?query=best%20espresso%20machine"
},
"accepts": [
{
"scheme": "exact",
"network": "eip155:8453",
"amount": "5000",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"payTo": "0x05B75e13f071A09A26B50a18Ce5BD02a0755d76F",
"maxTimeoutSeconds": 300,
"extra": {
"name": "USD Coin",
"version": "2"
}
}
]
}
amount: "5000" = 0.005 USDC (6 decimals); the asset is USDC on Base.
Pay in USDC: minimal code (TypeScript)
// npm i @x402/fetch @x402/evm viem
import { wrapFetchWithPaymentFromConfig } from "@x402/fetch";
import { ExactEvmScheme } from "@x402/evm";
import { privateKeyToAccount } from "viem/accounts";
const account = privateKeyToAccount(process.env.AGENT_WALLET_KEY as `0x${string}`); // wallet holding USDC on Base
const pay = wrapFetchWithPaymentFromConfig(fetch, {
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(account) }],
});
const res = await pay("https://api.fastaf.co/x402/v1/serp?query=best%20espresso%20machine");
console.log(res.status, res.headers.get("X-FastAF-Credits-Used"));
console.log(await res.json());
Based on the official @x402/fetch README (coinbase/x402). The 200 response carries the data, X-FastAF-Credits-Used and a PAYMENT-RESPONSE settlement receipt.
x402 or prepaid credits?
| x402 | API key + credits | |
|---|---|---|
| Account | None | Email signup (2 free calls) |
| Price | $0.001/credit | Packs $10–$799, cheaper at volume (Google search $1.33–$2.50/1k) |
| MCP | Not for x402 (MCP tool calls need a key) | Hosted MCP, 16 tools |
| Failed calls | Not settled | Not charged |
FAQ
Which network and token? USDC on Base (eip155:8453), scheme exact, x402 v2.
Am I charged for blocked or empty pages? No: only successful calls are settled.
Do I need an API key? No for x402. Yes for MCP tool calls and prepaid credits.
Where are the docs? fastaf.co/docs/#x402 and guides on the blog.
Sources
- Live unpaid requests to
https://api.fastaf.co/x402/v1/*(2026-10-25 20:53 UTC) - https://api.fastaf.co/.well-known/x402
- https://fastaf.co/llms.txt
- https://github.com/coinbase/x402 (
typescript/packages/http/fetch/README.md)