The DMS built for agents.
Not humans.
No screens. Addresses.
Every DMS ever sold was built for humans — screens, logins, modules, licenses, training. dms.vin is the dealer management system whose primary user is an agent. No screens to learn, because the surface is addresses: every noun of the store answers at its own URL, typed, and every write runs under a Mandate with a receipt. Built on the VIN by Vin.
The GM’s assistant, the group’s analyst bot, the buying agent on the other side of a deal — they all read the same record the store runs on.
A VIN is 17 characters and never uses I, O, or Q.
01 / 05
The store as addresses.
Every module you bought screens for is a door that answers.
The dealership’s actual system of record — inventory, deals, customers, F&I, accounting — lives behind the screens of the DMS you already run, and every integration is a fight with them. Spoken as addresses, the same record needs no screen at all: each module is a door, and the door answers whoever asks it.
No module mints a new number. Each door reads the record the store runs on.
- inventoryEvery unit at its address — posted price, typed statuslistings.vin
- deskingThe deal as one order, every line postedcommerce.vin
- F&IPosted menus by class and band — the same number before and afterfi.vin
- valuesPosted values, the books abstracted behind one readvalues.vinappraisal.vin
- titlesTitle and registration as tracked linestitle.vintaxes.vin
- dealer of recordThe licensed entity in the cloud the deals run oncloud.motors.vin
- reportsReceipts and evidence objects, auditable by the principalcommerce.vin
- integrationsConnect the systems you already runintegrates.vin
JM3KFBXY1S0597748
2025 Mazda CX-5
- 01Inventorylistings.vin/
JM3KFBXY1S0597748the unit as a record — posted price, typed statusposts live - 02Valuesvalues.vin/
JM3KFBXY1S0597748posted values, the comps behind themposts live - 03Titlestitle.vin/
JM3KFBXY1S0597748the paper trail, tracked per VINhandled - 04Taxes & feestaxes.vin/
JM3KFBXY1S0597748out-the-door by state, itemizedposts live
Four modules, one VIN, zero screens: each read is an address, and the answer is the same for every agent that asks. This card states structure, not prices.
02 / 05
Reads and writes.
Reads are free and keyless. Writes run under a Mandate.
A read answers anyone who holds the address — your agent, your group’s analyst, the buying agent across the deal — and it answers typed: OK · EMPTY · BLOCKED · OFFER. A write carries its authority with it: who acted, on what Mandate, when — posted to the store’s ledger as an event with a receipt.
Every money line is a posted slot until the record fills it. No figure is invented on this page.
the bridge, gated — the write paththe sync path into the DMS you already run — inventory, deal push, RO data — is not yet on the wire. Until it lands, this door attests structure and posted slots and transacts nothing. The one DMS write on the wire today is ledger.dmsPost, in sandbox. The read path is different: the permissioned bridge below carries it, because the dealer authorizes their own connection. Reading the record stays free everywhere.
- 01Vehiclelistings.vin/
JM3KFBXY1S0597748the unit at its addressposts live - 02Tradevalues.vin/
JM3KFBXY1S0597748posted against the record, comps behind itposts live - 03F&Ithe menu line — the same number before and afterposts live
- 04Taxes & feestaxes.vin/
JM3KFBXY1S0597748out-the-door by state, itemizedposts live - 05Title & registrationtitle.vin/
JM3KFBXY1S0597748tracked lines, filed in the buyer’s statehandled
Every figure posts at its line’s own address, on one order at commerce.vin, before anything signs. This page states structure, not prices.
reading the record: $0 · no account · no per-user licenses · no screens
03 / 05
The permissioned bridge.
Your agents read the DMS you already run — because you authorized it.
dms.vin is not only the store spoken as addresses. It is also how any dealer gives their agents access to the DMS they already run. The dealer grants explicit legal authorization; from then on, a dedicated, isolated browser session per user runs the dealer’s own credentials with geographically local egress — the user’s session, acting as the user, at the user’s direction.
No DMS-vendor certification stands between a store and its own record: the dealer authorizes their own connection.
the connectionintegrates.vinthe dealer authorizes and manages their own DMS connection at the integration door. The picker of named systems lives there, never on this page.
the consumer twinconnects.vinthe same permissioned pattern for a consumer’s own factory and insurance accounts — that door’s story, not this one.
- 01never ingestedpermissioned data is never ingested into the platform’s data lake — it lives and dies inside the user’s sessionsession-scoped
- 02never resoldVin never purchases or resells third-party reports — unified views render from the customer’s own credentialed accountsyour accounts
Both lines are architecture, not policy copy: the user’s session is the boundary. When the session ends, Vin holds none of it.
04 / 05
The two counters.
Your agents and the buying agents read the same record.
A DMS built for humans shows the store one thing and the market another. A record spoken as addresses cannot: the number your desk reads is the number the buying agent reads, and neither waits on a login to get it.
The store that posts clean numbers is the store agents can transact with.
the motionb2a.vinthe buying agent arrives on its own account — discovery, typed answers, worst-case cost posted before the call
# one MCP server for the whole platform POST https://apis.vin/mcp {"method": "tools/call", "params": {"name": "decode_vin", "arguments": {"vin": "JM3KFBXY1S0597748"}}} # the one DMS write on the wire today — sandbox ledger.dmsPost · POST /ledgers/dms-post emits Ledger.dmsPosted@1 // status: sandbox · gate: offer
- One MCP server for the whole platform: apis.vin/mcp
- Every read answers typed; the record reads need no key
- Every write posts to the ledger with the Mandate it acted on
- Agent payments settle programmatically: x402
Where an agent works the store’s record for a principal, every read and every write it makes here — survives being shown to them afterward.
05 / 05
Start.
One developer door. The systems you already run connect at their own address.
There is no install and no migration weekend. The record is already addressable: reads answer today, free and keyless, and developer or embed integration intent enters at the developer door — not here.
Address. Read. Write — in that order, and the first two are open now.
The first two steps are open on every live door. The third posts here as it lands, capability by capability — sandbox first, attested on this page, never announced ahead of the wire.
The deal still settles at commerce.vin.
This page describes the store’s record; the money posts at member addresses, on one order at commerce.vin. The door never re-mints a number — it reads the record the store already runs on. The dealer of record is cloud.motors.vin; the dealers’ entrance to the same rails is dealers.vin.
reading the record: $0 · no account · no per-user licenses · no screens
reads at another layerdeveloper & embed integration → apis.vin · connect the systems you already run → integrates.vin
For the agent you send
The agent reads the same record you do. Same two routes, three representations — the numbers never differ between them.
motions: B2A · B2A2D
- B2A — the buyer is an agent — no human leaf; discover, bind, pay, worst-case cost posted before the call
- B2A2D — the capability embeds downstream — reserved acts route back to a credentialed human leaf
curl https://dms.vin/ -H 'accept: text/markdown' → the markdown twin of this page
curl https://dms.vin/{VIN} -H 'accept: application/json' → the record as typed evidence objects
curl https://dms.vin/{VIN} -H 'accept: text/markdown' → the record's markdown twinMachine surfaces on this host: /llms.txt · /icp.json · /.well-known/agents.json · one MCP server for the whole platform — apis.vin/mcp (every door a lens; tool results carry the door URL).
Attribution: X-Client-Type: html | md | json | mcp — read for agent-led demand attribution; it never changes the record.