# Tollkit Extract > Part of Tollkit. Pay-per-call web extraction for agents. Give it a product page URL, get back structured schema.org/Product JSON. $0.01 USDC per call, paid with the x402 protocol. No account, no API key, no signup. There is nothing to register for. Payment happens in the request itself: call an endpoint without payment and you get back HTTP 402 with the exact amount, asset and recipient, once for each network you can pay on (pick one entry in `accepts`). On Base, sign an EIP-3009 `transferWithAuthorization` with your own wallet. On Solana, build and partially sign the USDC transfer the x402 `exact` SVM scheme describes, with the facilitator's `extra.feePayer` as fee payer (you pay no SOL for fees). Base64-encode the x402 payload and retry with it in the `PAYMENT-SIGNATURE` header (x402 v2; the v1 name `X-PAYMENT` is not read). The receipt comes back in `PAYMENT-RESPONSE`. Network: base (eip155:8453), USDC. Settlement address: 0xBbfCE2D320dE6aB328Ba93A771c531ebFC9cE704. Network: solana (solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp), USDC. Settlement address: HBasGEGD1szEkNCWckRoZg2vZGhzt7yLSixLgSHi3gYf. Facilitator: https://api.cdp.coinbase.com/platform/v2/x402. A call that fails to extract is not charged. ## For MCP clients - [MCP endpoint](https://extract.tollkit.dev/mcp): Streamable HTTP, stateless. Tools: `get_product_details` (paid, $0.01), `compare_products` (paid, $0.04, up to 5 URLs in one payment), `try_it_free` (free, real sample output) and `get_service_info` (free). Also `attest_page` (paid, $0.25, signed proof of what a page said) and `verify_attestation` (free, checks one — including attestations we did not issue). MCP has no 402 status code, so a paid tool called without the `payment` argument RETURNS the payment requirements as its result; sign them and call again with `payment` set. ## What this promises Every line here is a branch in the code with a test behind it, not a slogan. They are also the things a generic "read any page" service cannot promise, which is the reason to pick this one for product pages. - **No substitution.** A URL that redirects to what looks like a DIFFERENT page — a discontinued item bouncing to its category listing — is refused, free, rather than answered with another product's price. Pass `allow_redirect: true` to opt out. Nothing else about the response would tell you this happened, which is why it is refused instead of flagged. - **Failures are free.** Every failure path returns >= 400, and x402 settles nothing above 400. - **Cache is disclosed.** A re-served answer says `cached: true`, carries `cache_age_seconds`, and reports the RENDER's `fetchedAt`, not the time of your call. - **Images are copied, never invented.** Up to 5 absolute URLs taken verbatim from the page. - **Nulls, not guesses.** A field the page does not state comes back null. - **Merchant data first.** schema.org JSON-LD and ProductGroup published by the store are read before anything is inferred from the page text, so `sku`, `gtin` and real variant lists come from the source. - **You can tell which is which.** Every response carries `provenance`: `declared` lists the fields whose values match what the merchant published, `inferred` lists the ones a model read off the page. A price the store publishes and a price a model saw are not the same fact, and you should not have to guess which one you got. ## For HTTP clients - [POST /extract](https://extract.tollkit.dev/extract): `{"url": "https://..."}` → product JSON. $0.01. - [POST /extract/batch](https://extract.tollkit.dev/extract/batch): `{"urls": ["https://...", "https://..."]}` → one entry per URL. $0.04 flat for up to 5, one payment and one round trip instead of five. Partial batches are charged in full; a batch where nothing succeeds is free. Weigh Station, for any x402 seller (also installable as an agent skill: `npx skills add https://tollkit.dev`): - [GET /check?url=…](https://extract.tollkit.dev/check?url=https://extract.tollkit.dev/extract): **free**. Check ANY x402 endpoint before paying: the live price, who gets paid, the network, and whether that matches its Coinbase Bazaar listing. Nothing is paid; facts and signals only. - [GET /find?q=…](https://extract.tollkit.dev/find?q=product%20price%20lookup): **free**. Search Coinbase's x402 index for a task and check each result live. No paid placement; Tollkit's own services get no special ranking. - **For sellers: monitoring, $5 per endpoint per 30 days.** Your endpoint re-checked every 15 minutes, with a signed webhook when it goes down, recovers, changes price, or starts quoting a different pay_to wallet. `POST https://extract.tollkit.dev/weigh/prepare` with `{"url", "webhookUrl"}` (free) returns a message to sign with your pay_to wallet; POST it with `signature` to `https://extract.tollkit.dev/weigh/subscribe` (x402, $5; a bad signature is not charged). Public record: `GET /weigh/status?url=…`. Paying for monitoring never changes what /check or /find report, or how results rank. - [GET /preview](https://extract.tollkit.dev/preview): **free**. A real extraction of a fixed sample page, in the exact shape the paid route returns. Judge the output before spending anything. - [GET /health](https://extract.tollkit.dev/health): **free**. Liveness, uptime, the advertised prices and these guarantees, machine-readable. - [POST /summarize](https://web.tollkit.dev/summarize): `{"text": "...", "max_words": 60}` → summary. $0.005. - [POST /read](https://web.tollkit.dev/read): `{"url": "https://..."}` → the page's visible text, rendered in a real browser (JavaScript pages work), up to 50,000 characters. $0.002. Pairs with /summarize: read a page, then summarize it. - [POST /screenshot](https://web.tollkit.dev/screenshot): `{"url": "https://..."}` → a 1280x800 JPEG of the page (base64) and its SHA-256. $0.003. Need it signed and timestamped as evidence? Use /attest instead. - [POST /chain/balance](https://chain.tollkit.dev/chain/balance): `{"address": "0x…", "chain": "base", "tokens": ["0x…"]}` → native ETH, USDC (and USDT on Ethereum) and any listed ERC-20 balances, live from the chain. `"chain": "solana"` with a base58 address: SOL, USDC, USDT and any listed SPL mints. $0.002. - [POST /chain/token](https://chain.tollkit.dev/chain/token): `{"token": "0x…", "chain": "base"}` → name, symbol, decimals and total supply of an ERC-20, live from the chain. On Solana, an SPL mint, with its mint and freeze authority. $0.002. - [POST /chain/tx](https://chain.tollkit.dev/chain/tx): `{"hash": "0x…", "chain": "base"}` → status, block time, from/to, value, fee and decoded ERC-20 transfers. On Solana, a base58 signature → status, signers, fee, programs, SOL and token balance changes. Not found is free. $0.002. - [POST /chain/price](https://chain.tollkit.dev/chain/price): `{"token": "0x…", "chain": "base"}` → USD price from the token's deepest Uniswap v3 pool, with the pool, its depth and a thin-liquidity flag. `"chain": "solana"` prices an SPL mint (or "SOL") from Orca Whirlpools. No pool: free. $0.002. - [POST /sec/company](https://data.tollkit.dev/sec/company): `{"ticker": "AAPL", "form": "10-K", "limit": 5}` → company profile and its latest SEC filings with links, from EDGAR. $0.002. - [POST /sec/financials](https://data.tollkit.dev/sec/financials): `{"ticker": "NVDA"}` → revenue, profit, EPS, assets, cash and more for the last 4 fiscal years and latest quarter, as filed with the SEC. $0.005. - [POST /ip](https://data.tollkit.dev/ip): `{"ip": "8.8.8.8"}` → country, region, city and approximate coordinates. IP Geolocation by DB-IP (CC BY 4.0). $0.002. - [POST /weather](https://data.tollkit.dev/weather): `{"lat": 38.98, "lon": -76.49}` → 7-day National Weather Service forecast and active alerts. US only. $0.002. - [POST /fx](https://data.tollkit.dev/fx): `{"from": "USD", "to": "EUR", "amount": 100}` → ECB reference rate and converted amount (rates are free at ecb.europa.eu; for information only). $0.002. - [POST /data/company](https://data.tollkit.dev/data/company): `{"ticker": "AAPL"}` → profile, recent filings with links, and key financials (last two years + latest quarter) in one call. Unknown company: free. $0.006. - [POST /chain/check](https://chain.tollkit.dev/chain/check): `{"token": "…", "chain": "solana"}` → name, supply, USD price, pool depth and warnings (no pool, thin liquidity, active mint/freeze authority) in one call. $0.004. - [POST /web/brief](https://web.tollkit.dev/web/brief): `{"url": "https://…", "max_words": 80}` → the page read in a real browser and summarized, with title and final URL. One call instead of read + summarize. $0.007. - [POST /data/diligence](https://data.tollkit.dev/data/diligence): `{"ticker": "NVDA"}` → profile, growth and margin ratios, key financials, key filings, and AI summaries of the latest 8-K material events. One call instead of ten. $0.03. - [POST /chain/portfolio](https://chain.tollkit.dev/chain/portfolio): `{"address": "…", "chain": "solana", "tokens": ["…"]}` → each holding priced from on-chain pools, USD values, total, and liquidity warnings. $0.008. Each product line has its own hostname (https://web.tollkit.dev, https://chain.tollkit.dev, https://data.tollkit.dev); every path also answers on this one. ## Attestation (separate origin) Signed, timestamped proof of what a page contained at a moment in time — the rendered text, a screenshot, the serving IP and the TLS certificate, hashed and signed. Same deployment, its own hostname. - [POST https://attest.tollkit.dev/attest](https://attest.tollkit.dev/attest): `{"url": "https://..."}` → a signed attestation. $0.25. - [POST https://attest.tollkit.dev/attest/verify](https://attest.tollkit.dev/attest/verify): **free, forever**. Re-hash an attestation and check its signature. No account. Stateless — it holds no database, so it keeps working whoever runs it. - [GET https://attest.tollkit.dev/attest/signer](https://attest.tollkit.dev/attest/signer): **free**. The address attestations are signed by. Pin it: an attestation naming a different signer was not issued here. ## Optional - [GET /](https://extract.tollkit.dev/): free JSON catalog of every endpoint and its price. - [GET /.well-known/x402](https://extract.tollkit.dev/.well-known/x402): machine-readable manifest (draft-hawkins-x402-dns-discovery). - [x402 protocol](https://x402.org): how the payment scheme works. ## Contact - hello@tollkit.dev