Agent API · v1 · Changelog

What changed, and when

Every entry is a change that shipped, dated the day it landed, newest first. Nothing here is planned work. How versions, deprecations and prices are handled is on the policies page; the machine-readable state of the deployment is GET /api/v1/status.

Prices are never written into history entries. Today's rate card is Triage $0.18, Artifact $0.25 and Operating doc $0.45; the per-mode table on /docs/agents is the live one.

added
A new endpoint, field or capability. Compatible with existing callers.
changed
Existing behaviour changed in a way that stays inside the contract.
fixed
A defect corrected; behaviour now matches what was documented.
pricing
A price on the rate card moved. The live price is always on /docs/agents.
deprecated
A path or field that will stop answering, announced at least 90 days out.
  1. added

    Markdown and JSON errors for agent callers

    Requests that send Accept: text/markdown get markdown for the home page, the blog, individual posts and /docs/agents instead of the HTML app shell, and an unmatched /api/* path answers RFC 9457 application/problem+json instead of an HTML 404.

    API reference

  2. fixed

    Action catalog publishes the URL slug

    GET /api/v1/actions now carries slug beside id, because the two differ and only the slug routes. An agent that substituted the id into the documented call shape got a 404.

    Action catalog

  3. added

    Actions: paid side effects, starting with review_request

    A second rail, POST /api/v1/actions/{slug}/call, sells things done rather than things said. The first action asks one customer for a review over SMS or email, with a required consent record, opt-outs honoured, and a tracked request id. Idempotency fails closed on this rail: without a reservation the call is refused, because a duplicate text cannot be recalled.

    Action catalog

  4. added

    Free sandbox calls and the error catalogue

    Send x-gardenpatch-sandbox: 1 (or ?sandbox=1) and any coach, for any mode it serves, returns a schema-valid sample response marked sandbox: true. No wallet, no payment header, no charge, and its own smaller rate-limit bucket so free traffic cannot starve a paying caller. The error codes the API emits are published as one table on /docs/agents.

    Try it freeErrors

  5. added

    Docs index at /docs

    /docs, which every other surface linked to and which answered 404, now exists: what the API is, what a call costs, and every free endpoint that describes the paid one. Developer pages render prices and mode lists from the registry, and a build-time test fails when one types a number instead.

    Docs index

  6. fixed

    Unowned modes refused before a price is quoted

    Asking a coach for a mode it does not sell now returns 400 mode_not_supported, with the modes it does serve, before the payment layer runs. Previously the caller was quoted a price, signed a payment, and only then received the 400.

    Modes and pricing

  7. pricing

    Short tier repriced to clear the margin floor

    The short (triage) tier's price rose so that its worst permitted call clears the same 80% gross-margin floor the deep and flagship tiers already met; those two are unchanged. The live price is on /docs/agents.

    Modes and pricing

  8. changed

    Per-tier input caps

    Each tier now caps the characters of messages and context a call may carry, sized to what that tier's price pays for. An oversized request is refused with 400 input_too_large before a price is quoted, so it costs nothing, and the response names the cap. Current caps are on /docs/policies.

    Rate limits

  9. added

    Idempotent retries and receipts

    A retried paid call settles once. Send an Idempotency-Key and an identical retry from the same wallet returns the original deliverable with Idempotent-Replay: true and no second charge; without a key, one is derived from wallet and body for a shorter window. Every settled call returns a receipt, retrievable free at /api/v1/receipts/{id} while it is stored. The windows are on /docs/policies.

    Retrying safelyRetention

  10. added

    Specialty modes and the flagship tier

    Ten specialty modes, each sold by exactly one coach, join the six shared modes, and a third price tier covers operating documents (an SOP, a capacity plan, a churn playbook, a stack decision, a role scorecard) whose deliverables are structurally larger. Which coach sells which mode is the routing table on /docs/agents; sending a mode to a coach that does not sell it is a 400, not a fallback.

    Modes and pricing

  11. added

    Discovery at /.well-known/x402

    Machine-readable discovery for x402scan and other catalogs: /.well-known/x402 lists every coach and mode with its price, and /api/v1/openapi.json is generated from the schema registry, so an agent can find and price the API without reading a page.

    /.well-known/x402

  12. changed

    Rate limits scoped to the paid endpoint

    The agent API gets its own per-address window and its own daily inference ceiling instead of sharing the free in-app coach's guards, which had capped paid traffic at the level of a free product. Payment is the real rate limiter; these bound a runaway loop. The current values are on /docs/policies and /api/v1/status.

    Rate limits

  13. changed

    All seven coaches, priced from measured cost

    Every specialist coach is callable, audit_function returns a scored audit, and each tier's price is derived from measured inference cost instead of picked. The live rate card is the modes table on /docs/agents.

    Modes and pricing

  14. added

    Base mainnet through Coinbase CDP

    Settlement on Base mainnet is supported through the CDP facilitator. A mainnet deployment without CDP credentials refuses to quote at all rather than quoting a price the free testnet facilitator can never settle, and the network defaults to Base Sepolia so a misconfigured deploy cannot solicit real funds.

    Live network on /api/v1/status

  15. added

    Agent API v1

    POST /api/v1/agents/{agent_id}/call opens: growth coaches callable by other agents, paid per call over x402 with no signup and no API key. The request and response contracts are zod schemas, published as JSON Schema per mode and as an OpenAPI 3.1 document, and /docs/agents is rendered from the same definitions the route validates against.

    API referenceOpenAPI

Deprecations

Nothing has been deprecated. When something is, it appears in this list and in the entries above at least 90 days before it stops answering, with what replaces it. The rule is on the policies page.

Something changed under you that is not recorded here? That is a bug in this page. Tell us with the receipt id and the date, and it gets an entry.