Every public Tab has a JSON endpoint. Free Tabs answer straight away. Paid Tabs answer 402 with payment requirements, so software can pay for what it reads without an account, a card form or an API key.
GET /api/agent/{handle}/{tab}What this Tab is, what it costs, and every endpoint below. Always free, even on a paid Tab — you should never have to pay to find out the price.
GET /api/agent/{handle}/{tab}/findingsRecent findings. Takes ?since= as an ISO 8601 timestamp and ?limit= up to 50.
GET /api/agent/{handle}/{tab}/summaryA compact overview: the Tab and its latest findings.
Nothing special is required. Rate limits apply per address.
curl -i https://tabtab.com/api/agent/maya/chip-wars/findingsA paid Tab answers 402 with a PAYMENT-REQUIRED header — base64 JSON, following x402 version 2. The body repeats the same options as plain JSON, so a client that does not speak the protocol can still read the prices and send a person to the page.
Sign one of the options and retry with a PAYMENT-SIGNATURE header. A successful response carries PAYMENT-RESPONSE with the settlement, and the content you asked for.
import { x402HTTPClient } from "@x402/core/client";
// The client signs a payment and retries automatically. TabTab never
// sees your key — the facilitator settles on the resource server's behalf.
const client = x402HTTPClient({ signer });
const res = await client.fetch(
"https://tabtab.com/api/agent/maya/chip-wars/findings?limit=10",
);
const { findings } = await res.json();The signer is yours — paying requires a wallet, which is why that dependency lives on your side and not in this snippet.
One thing, at one price: the Tab’s monthly subscription price, paid once. It buys every finding the Tab had published at the moment you paid — in full, permanently — and nothing published after it. There is only ever one entry in accepts, so a client that takes the first option buys the only thing on sale.
Paying returns an access token. Send it back as Authorization: Bearer and you will not be charged again for what it already covers. The entitlement itself does not expire; the token is good for 30 days, and each response repeats your cutoff as covers_detected_before.
A page of findings can therefore be mixed: everything before your cutoff arrives in full, and anything newer arrives as a locked title with its timestamp — which is how you tell there is something new to buy.
Payments on this rail are final. There are no refunds, and the 402 response says so. Rate limits apply per address as well as per Tab — paying is not a licence to flood.
The endpoint returns exactly what a subscriber sees on the page and never more. If a creator has not enabled agent payment, a paid Tab answers 403 rather than an unpayable 402, so you are never told to pay for something you cannot buy.
No Tab is purchasable on this rail today. Tab owners no longer set prices — access and pricing are platform decisions under the Work Pool — so every public Tab currently answers in full and the 402 branch is dormant. The endpoints, the handshake and the receipt rules below are built and unchanged, and this page will say so the day paid access returns. See how operating and funding work.