§ · changelog

What changed.

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.