The buyer is an agent.

Discover.Bind.Settle.

“Contact sales” where a machine needed a posted price: the account wall is the desk with a REST verb, and an agent cannot be charmed at the desk; it can only read what is posted. A capability an agent cannot buy is, to an agent, a capability that does not exist. These rails post the machine terms instead: wallet, Mandate ceiling, no human leaf anywhere. Discover, bind, and pay on first contact, worst-case cost known before the call. Built on the VIN by Vin.

A machine has no story; it has a contract, and the contract is on this page. This door describes the motion; apis.vin transacts it. The agent reads the same record you do.

2025 Mazda CX-5 · check digit 1 · verified

The typed OFFER envelopeb2a.vin/JM3KFBXY1S0597748

JM3KFBXY1S0597748

2025 Mazda CX-5

HTTP/1.1 402 · content-type: application/json

  • outcomeOne of two types; the other is a NEEDS_HUMAN Handoff, resumable, never a dead endOFFER
  • pricePosted, never negotiated: the same figure every caller readsPosts live
  • ceilingHard: settlement above it does not occur; the worst case, stated in the envelopePosts live
  • acceptsPay in-band under the Mandate: the settlement rail is named in the offerx402
  • checkoutThe relay fallback: a URL to hand a principal, if the chain carries one; pure B2A does notURL
  • expiresThe offer is dated: nothing on these rails is open-endedDated

Figures render live at the gate. This page states the envelope’s shape, not a quote: an unposted slot states itself in words, never an estimate.

The offer, typed.

Every gate answers in one of two types. Neither is a form.

Your agents have been answered with forms: the demo-call calendar is the desk’s waiting room, and an agent cannot sit in it. On these rails a gated action returns a typed OFFER (posted price, hard ceiling, x402 accepts) and nothing else. Nothing to negotiate; nothing hidden to discover in production.

The two types
  • OFFERPosted price, hard ceiling, x402 accepts. It settles.
  • NEEDS_HUMANWhere the law reserves an act for a human, a typed Handoff: a resumable URL, never a dead end. It resumes. Pure B2A has none.

Every gated outcome is one of these: typed and posted; one settles, one resumes.

The free read firstkeyless
1# the free read first: keyless, no account
2curl https://b2a.vin/JM3KFBXY1S0597748 \
3 -H 'accept: application/json'
4
5# the record as typed evidence objects, free
6# every field: value · source · timestamp · verification
7
8# a gated read answers 402 with the OFFER envelope;
9# your agent is two steps from a settled call

The free read first: curl -H 'Accept: application/json' on b2a.vin/JM3KFBXY1S0597748 returns the record as typed evidence objects, free, keyless. Your agent is two steps from a settled call.

A gate without an OFFER or Handoff body is a conformance failure on these rails.

The Mandate, posted.

The principal’s authority, typed: ceiling · per-action cap · time-box · tripwires.

An autonomous buyer is safe to transact with because its authority is a typed object, not a story.

The Mandate states what the agent may spend in total, what any single action may cost, how long the authority lives, and what halts the run, before the first call is made.

The ceiling is contractual: settlement above it does not occur. Every gate posts its worst case in the OFFER, so the agent, and the principal behind it, knows the outer bound of the whole run from the envelope alone.

Worst-case cost before the call: that is the whole promise, and it is typed.

JM3KFBXY1S0597748

2025 Mazda CX-5

  • ceilingThe total the Mandate can settle: hard and contractual; settlement above it does not occurPosts live
  • per-action capNo single call exceeds it: one gate can never drain the envelopePosts live
  • time-boxThe authority expires: a stale Mandate settles nothingDated
  • tripwiresThe conditions that halt the run and hand back: typed, posted, never tuned mid-runPosted
Worst caseThe ceiling

Known before the first call: the outer bound the envelope can reach.

The Mandate is the principal’s object, set where keys are issued. This page states its shape: the slots fill from the Mandate your platform posts, never from an invented number.

The settle.

Pay in-band under the ceiling: the charge posts as an evidence statement.

Settlement is x402: the agent pays under the Mandate ceiling in the same exchange, or relays the checkout URL if its chain carries a principal. The charge posts as an evidence statement (endpoint · calls · unit price · total), and done is a settled call, not a signed contract.

This door itself settles x402 and is cataloged in the x402 Bazaar. An agent that pulls decode, value and recalls for one VIN is a purchase-intent event with structure, not a pageview: the highest-fidelity VIN-level demand signal in automotive, attributed per call via X-Client-Type.

  • Charge · itemizedEndpoint · calls · unit price · total; every settlement an evidence statement, line by line
  • One server · every doorOne platform MCP server, 12 verb-named tools over a 14-endpoint spine and 2.1M+ live listings; every field value · source · timestamp · verification
  • Attribution · read-onlyX-Client-Type attributes agent-led demand per call; it never changes the record
The seam, stated

This page sells the motion; apis.vin transacts it. Keys at apis.vin/keys · the platform MCP at apis.vin/mcp. No form between here and there: the CTA is an endpoint. The check digit certifies; it never sells.

The other motions.

One letter of grammar at a time: the human enters only where the law requires one.

Pure B2A has no human leaf: discovery, authentication, pricing, and settlement complete without a person anywhere in the chain.

When exactly one act is legally load-bearing, the motion is b2h2a: the human appears once, approves, and the agent resumes. When the agent shops for a consumer, the motion is b2a2c: receipted, so everything it does survives being shown to the principal afterward.

Who transacts is the motion, and the motion is typed, on this door and its siblings alike.

For the agent you send.

The agent reads the same record you do.

Same two routes, three representations: the numbers never differ between them.

Three representationsb2a.vin
1curl https://b2a.vin/ -H 'accept: text/markdown'
2 # the markdown twin of this page
3curl https://b2a.vin/{VIN} -H 'accept: application/json'
4 # the record as typed evidence objects
5curl https://b2a.vin/{VIN} -H 'accept: text/markdown'
6 # the record's markdown twin
On this host
  • Motionsb2aThe buyer is an agent: no human leaf; discover, bind, pay, worst-case cost posted before the call
  • One MCP serverapis.vin/mcp serves the whole platform: every door’s tools in one server, each result carrying its door’s URL.
  • AttributionX-Client-Type: html | md | json | mcp names which reader arrived; it never changes the record.
  • The gateNo gate on this door's two routes: keyless reads, no account. Gated actions elsewhere return a typed OFFER or a NEEDS_HUMAN handoff, never a dead end.