Every change to the service that a customer could notice, newest first. Subscribe at
/changelog.atom. Last entry: 2026-09-14.
2026-09-14The cron: a wake that repeats
New product: POST /v1/cron ($0.10) calls your webhook on a schedule you set for up to 14 days, echoing a JSON payload you stored on every fire. The schedule is an interval of 5 minutes or more (every_seconds) or a five field cron expression in UTC ("0 9 * * 1-5"). Every fire is event cron.fired, signed and retried like every delivery, with the fire number and the next fire time; cron.expired arrives once when the window ends.
Fires are slots on the schedule, not a count owed: a fire that cannot be made on time is made once when possible and the schedule resumes. A webhook that stops accepting deliveries has its fires skipped until the retry backlog drains, and the status endpoint counts them. At most 25 active crons may point at one host.
GET /v1/crons/{id} reports status, fires, and the next fire time; DELETE stops an active cron. The MCP endpoint gains a schedule_cron tool, and the 402 storefront corrects a bad schedule before payment.
2026-09-12The half-cent recheck, sitemap and feed watches, and a shell detector
New product: GET or POST /v1/recheck ($0.005) answers whether a URL's visible text changed since the sha256 hash you hold. The first call returns the hash to keep; later calls say changed true or false with the new hash, so an agent re-reads a page into its context only when the page changed. An optional CSS selector narrows the hash to one element. Works on HTML and JSON.
Two new condition types for watches: sitemap (trigger when an XML sitemap gains or loses a URL) and feed (trigger when an RSS, Atom, or JSON Feed gains an item). The webhook lists exactly what appeared or vanished under evidence.detail.
A check can now be bought over GET with the URL and condition as query parameters, and a bare paid GET on /v1/checks or /v1/recheck runs against a default target and says so, so a delivery probe that pays a bare GET receives a real answer instead of a 405.
Client-rendered shells are refused before payment: a page with almost no visible text until a browser runs its scripts can never satisfy a text condition, so keyword, selector, price, content_change, and recheck purchases against one answer 422 client_rendered, uncharged, with a pointer at the JSON the page loads.
The tariff and the terms are pages of their own at /pricing and /terms; every receipt now links to /terms.
For the directories: /.well-known/x402list.txt publishes the x402-list owner-update proof when one is set.
2026-09-11Corrected before paying, and refusals explained
An unpaid request now gets its 402 together with a preflight: the exact problems the paid retry would be refused for, and a hint that says do not pay yet. A buyer is corrected before signing a payment; catalog probers still see their 402.
The status page lists why every paid request was refused (status and error code) for the last 7 days, so a turned-away customer is never a mystery again.
Clearer refusals: a wake explains that it needs a webhook because polling needs no wake, and a reused Idempotency-Key explains that a renewal needs a fresh key.
2026-09-07The 402 funnel on the status page
A request without a payment now reaches the 402 storefront whatever its body; requests that carry a payment are still validated before settlement, so nothing is ever charged for a request that cannot run.
The OpenAPI document now carries what catalog probers read: x-payment-info with the price in USD on every paid operation, a required request body with an example a prober can send, response schemas, security markers on free and secret protected routes, and guidance for agents in info.x-guidance. A favicon is served at /favicon.ico.
A bare GET on a paid POST route now answers the same 402 storefront as the POST, instead of 404: catalogs probe paid URLs with GET, and humans click them. A paid GET is refused with 405 and never charged.
Every request to a paid route is now counted by the stage it reached (402 issued, refused before payment, paid attempt, settled) and shown on /status for the last 7 days, together with the user agents that knock on paid routes. Daily aggregates only; no addresses, no bodies.
2026-09-03Findable by crawlers, answer engines, and agents
A changelog at /changelog with an Atom feed at /changelog.atom, so every release is new content a crawler can read.
The status page now shows a public ledger: purchases settled and webhooks delivered in the last 30 days, uptime, and visits by AI crawler family.
robots.txt invites AI search and answer engines explicitly and points at a real sitemap; an IndexNow key file lets Bing, Yandex, Naver, and Seznam be told about changes directly.
/.well-known/x402.json mirrors the payment manifest under the name catalogs probe, and /.well-known/agent-tools.json describes the service for agent tool directories.
A visible questions section on the landing page, and structured data naming every product and price.
2026-09-03Bazaar listing and wallet-driven seeding
All six paid routes are listed in the CDP x402 Bazaar after their first settled payments.
Browser based x402 clients can now pay: the API allows the PAYMENT-SIGNATURE header and exposes the 402 and receipt headers.
The Solana receiving address gained its USDC token account; USDC payments on Solana settle.
2026-09-03Wake and inbox
POST /v1/wake ($0.01) calls your webhook at a time you set, up to 30 days ahead, with a payload you stored.
POST /v1/inbox ($0.10) issues a capture URL that holds anything POSTed to it for up to 7 days and forwards it to you.
Purchases are idempotent in front of the paywall: a retry with the same Idempotency-Key never charges twice.
Every paid route publishes an example request and schema for the Bazaar catalog.
2026-09-01Live on mainnet
Payments settle on Base and Solana through the Coinbase CDP facilitator with PayAI as fallback, in priority order set by FACILITATORS.
Paid routes opt into Bazaar discovery.
2026-08-28Deployed
Designed pages for the human-facing links: /manual, /status, and the crawler policy at /bot.
A watch is voided if its payment never settles, so nothing is ever delivered unpaid.