Skip to content

Changelog

Changes to PairRail Atlas, newest first. Each entry says whether sellers need to do anything. Current protocol versions are on Protocols.

Follow it in a feed reader or from an agent: RSS · JSON Feed

October 2026

  1. Buyer agents' keyed calls count against your plan's monthly queries. To stop one busy key using them up, open **Limits** on the key and set **Queries per month**. Every keyed call counts: REST, MCP and the protocol rails. At the cap the key gets 429 VELOCITY_LIMIT until the next month (UTC), and refused calls are not counted against your plan. Anonymous public calls are not affected.

    Each key in the workspace now shows its queries this month. A rotated key keeps the count of the key it replaced. Keys have no monthly cap until you set one.

    Read the docs

  2. A quote over your threshold still comes back approval-required, but nothing opens on your side yet: no approval, no approval.requested webhook, no email or CRM task. The buyer agent sends it to your deal desk with POST /v1/quote-requests/{id}/submit, MCP quote_submit, or the submit action on UCP, ACP, A2A and UAP. A quote that is never submitted expires. Your team now only reviews quotes the buyer wants at that price.

    Agents that follow nextActions see the new quote.submit step. An agent that only polls an approval-required quote now waits until it submits. Quotes made before this change count as submitted. Workspace shows a held quote as **Waiting on buyer**.

    Read the docs

  3. /mcp/directory is one MCP server with two tools, directory_search and directory_list, over the public offers of sellers who chose to list. Each result gives the seller's own MCP URL, where agents price, ask for a key and quote as before.

    Nobody is listed unless they turn on **List my public offers in the PairRail directory** in Governance. Sandbox sellers show quotes: rehearsal. Directory calls are not counted against any seller's plan.

    Read the docs

  4. /docs/quotes documents version 1 of the JWS on every agent quote: its claims, how to verify it online or offline, and how the format is versioned. The JSON Schema is at /schemas/pairrail-quote-v1.json. Quotes themselves did not change.

    Read the docs

  5. Atlas answers MCP 2026-07-28 requests without a handshake: each request carries its version in params._meta and the MCP-Protocol-Version header, and server/discover replaces initialize. Clients on 2025-11-25 back to 2024-11-05 still connect through initialize.

    A tool that runs and fails, such as an unknown offer or a request outside policy, now returns a result with isError: true and is not counted against the seller's plan. A missing key, plan limit or rate limit is still a JSON-RPC error.

    Read the docs

  6. The agent card at /.well-known/agent-card.json is an A2A v1.0 card, and POST /a2a takes JSON-RPC SendMessage. A retried message with the same messageId returns the same quote instead of a new one.

    Streaming, push notifications and stored tasks are not offered; those methods return the A2A error codes. A2A is on the Pro and Enterprise plans.

    Read the docs

  7. Quote requests on every protocol, and access requests over REST and MCP, can be signed with HTTP Message Signatures (tag web-bot-auth). Atlas checks the signature against the keys the agent publishes and shows the seller who signed and whether it verified.

    Unsigned requests, and requests whose signature does not verify, go through exactly as before.

    Read the docs

  8. On Enterprise, a quote above the manager limit can require two or three different Owners or Publishers to approve it. One decline ends it.

    A seller can attach a contract to an approved buyer key: a reference, a discount of up to 90%, optional per-offer discounts and an end date. That buyer's agent is quoted the contract price, and floor prices still apply. Audit streaming sends every audit event to the seller's signed webhook when it subscribes to audit.event.

  9. Each row in the quote ledger has an Evidence button. It downloads one JSON file with the quote, the policy decision, approvals, mandate, outcomes and related audit events, signed with the quote key.

    Anyone can check a quote's signature.token or an evidence file with POST /v1/public/quote-verify, no key needed. valid: true means PairRail signed exactly those facts. It does not make the quote binding, and an expired quote still verifies.

    Read the docs

  10. Set a floor on an offer's price in the offer editor. A quote below it after discounts waits for a person, even inside the autonomous limit, and agents never see the floor. New workspaces start supervised: every agent quote waits for a person until the seller sets an autonomous limit in Governance.

    Open quotes can be revoked from the quote ledger, and Owners and Publishers get a daily email of the quotes agents received without a person. Every plan can reject a pending quote; approving needs Pro.

  11. Quotes returned to agents include a signature block: a compact JWS (EdDSA, Ed25519) over the seller, catalog and policy version, what was priced, the calculation, status and expiry. A buyer's finance system can check it against the public keys at /.well-known/jwks.json.

    The signed payload says binding: false. A signature shows Atlas computed these numbers; it is not a commitment.

    Read the docs