docs.vin

mods

The mods noun — identity, lifecycle, events, and every capability as an anchored section: 15 capabilities, 0 live, 15 sandbox, 0 declared.

mods is one of the estate's 317 automotive nouns — a job a car needs done. It carries 15 capabilities: 0 live, 15 sandbox, 0 declared · doors mods.vin.

Identity

Nounmods
PillarData (facets: 6 data · 5 services · 4 commerce)
Capabilities15 — 0 live · 15 sandbox · 0 declared
EntitiesRepairOrder
Doorsmods.vin
SDKVin.mods.* from apis.vin
Address/catalog/mods#{action} — the anchor IS the wire name minus mods.

Events

The vocabulary this noun can append to the record — 10 past-tense, versioned event types, each linked to the capability that emits it:

Discover & read

fitment

mods.fitment · GET /mods/fitment · gate none · sandbox · answers ModsFitment@1

FieldTypeRequiredNotes
vinstringno

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.fitment
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.fitment({"vin":"5FNRL6H71RB009906"})
GET /mods/fitment
curl 'https://apis.vin/mods/fitment?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.257Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsFitment@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "fitment": {
      "compatible": true,
      "kind": "cold-air-intake",
      "requiresTune": false
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "fitment": {
      "compatible": true,
      "kind": "cold-air-intake",
      "requiresTune": false
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

catalogLookup

mods.catalogLookup · GET /mods/catalog-lookup · gate none · sandbox · answers ModsCatalogLookup@1

FieldTypeRequiredNotes
vinstringno

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.catalogLookup
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.catalogLookup({"vin":"5FNRL6H71RB009906"})
GET /mods/catalog-lookup
curl 'https://apis.vin/mods/catalog-lookup?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.240Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsCatalogLookup@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "item": {
      "id": "CAT-99a47d5e",
      "kind": "cold-air-intake",
      "priceCents": 42000,
      "currency": "USD"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "item": {
      "id": "CAT-99a47d5e",
      "kind": "cold-air-intake",
      "priceCents": 42000,
      "currency": "USD"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

mods.quote · POST /mods/quote · gate offer · sandbox · answers ModsQuote@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.quoted@1.

the SDK — mods.quote
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.quote({"vin":"5FNRL6H71RB009906"})
POST /mods/quote
curl -X POST https://apis.vin/mods/quote \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.266Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsQuote@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "quote": {
      "id": "MQ-2682bf15",
      "kind": "cold-air-intake",
      "amountCents": 42000,
      "currency": "USD",
      "status": "extended"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "quote": {
      "id": "MQ-2682bf15",
      "kind": "cold-air-intake",
      "amountCents": 42000,
      "currency": "USD",
      "status": "extended"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

register

mods.register · POST /mods/register · gate offer · sandbox · answers ModsRegister@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.registered@1.

the SDK — mods.register
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.register({"vin":"5FNRL6H71RB009906"})
POST /mods/register
curl -X POST https://apis.vin/mods/register \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.266Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsRegister@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "registration": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "registered"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "registration": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "registered"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

mods.pay · POST /mods/pay · gate offer · sandbox · answers ModsPay@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.charged@1 · ServiceOrder.settled@1.

the SDK — mods.pay
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.pay({"vin":"5FNRL6H71RB009906"})
POST /mods/pay
curl -X POST https://apis.vin/mods/pay \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.266Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsPay@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-913f8783",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "payment": {
      "id": "PAY-913f8783",
      "status": "settled",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

finance

mods.finance · POST /mods/finance · gate offer · sandbox · answers ModsFinance@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.financed@1.

the SDK — mods.finance
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.finance({"vin":"5FNRL6H71RB009906"})
POST /mods/finance
curl -X POST https://apis.vin/mods/finance \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.252Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsFinance@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "financing": {
      "id": "MF-a0f4ecef",
      "principalCents": 42000,
      "months": 6,
      "monthlyCents": 7000,
      "currency": "USD",
      "status": "financed"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "financing": {
      "id": "MF-a0f4ecef",
      "principalCents": 42000,
      "months": 6,
      "monthlyCents": 7000,
      "currency": "USD",
      "status": "financed"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

buy

mods.buy · POST /mods/buy · gate offer · sandbox · answers ModsBuy@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.purchased@1.

the SDK — mods.buy
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.buy({"vin":"5FNRL6H71RB009906"})
POST /mods/buy
curl -X POST https://apis.vin/mods/buy \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.234Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsBuy@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "purchase": {
      "id": "MB-897064c1",
      "kind": "cold-air-intake",
      "amountCents": 42000,
      "currency": "USD",
      "status": "purchased"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "purchase": {
      "id": "MB-897064c1",
      "kind": "cold-air-intake",
      "amountCents": 42000,
      "currency": "USD",
      "status": "purchased"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

install

mods.install · POST /mods/install · gate offer · sandbox · answers ModsInstall@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.installed@1.

the SDK — mods.install
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.install({"vin":"5FNRL6H71RB009906"})
POST /mods/install
curl -X POST https://apis.vin/mods/install \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.257Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsInstall@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "work": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "installed"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "work": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "installed"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

remove

mods.remove · POST /mods/remove · gate offer · sandbox · answers ModsRemove@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.removed@1.

the SDK — mods.remove
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.remove({"vin":"5FNRL6H71RB009906"})
POST /mods/remove
curl -X POST https://apis.vin/mods/remove \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.268Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsRemove@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "removal": {
      "id": "MOD-3cfcea1d",
      "status": "removed"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "removal": {
      "id": "MOD-3cfcea1d",
      "status": "removed"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

compatibility

mods.compatibility · GET /mods/compatibility · gate none · sandbox · answers ModsCompatibility@1

FieldTypeRequiredNotes
vinstringno

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.compatibility
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.compatibility({"vin":"5FNRL6H71RB009906"})
GET /mods/compatibility
curl 'https://apis.vin/mods/compatibility?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.245Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsCompatibility@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "compatibility": {
      "compatible": true,
      "kind": "cold-air-intake",
      "requiresTune": false
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "compatibility": {
      "compatible": true,
      "kind": "cold-air-intake",
      "requiresTune": false
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

legality

mods.legality · GET /mods/legality · gate none · sandbox · answers ModsLegality@1

FieldTypeRequiredNotes
vinstringno

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.legality
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.legality({"vin":"5FNRL6H71RB009906"})
GET /mods/legality
curl 'https://apis.vin/mods/legality?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.257Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsLegality@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "legality": {
      "standing": "off-road-only",
      "kind": "cold-air-intake"
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "legality": {
      "standing": "off-road-only",
      "kind": "cold-air-intake"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

registry

mods.registry · GET /mods/registry · gate key · sandbox · answers ModsRegistry@1

FieldTypeRequiredNotes
vinstringyes

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.registry
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.registry({"vin":"5FNRL6H71RB009906"})
GET /mods/registry
curl 'https://apis.vin/mods/registry?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.268Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsRegistry@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "registry": {
      "entries": [
        {
          "id": "MOD-3cfcea1d",
          "kind": "cold-air-intake",
          "installedDate": "2026-07-08"
        }
      ],
      "count": 1
    }
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "registry": {
      "entries": [
        {
          "id": "MOD-3cfcea1d",
          "kind": "cold-air-intake",
          "installedDate": "2026-07-08"
        }
      ],
      "count": 1
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

tune

mods.tune · POST /mods/tune · gate offer · sandbox · answers ModsTune@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMods.tuned@1.

the SDK — mods.tune
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.tune({"vin":"5FNRL6H71RB009906"})
POST /mods/tune
curl -X POST https://apis.vin/mods/tune \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.268Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsTune@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "tune": {
      "id": "MOD-3cfcea1d",
      "status": "tuned",
      "kind": "performance-tune"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "tune": {
      "id": "MOD-3cfcea1d",
      "status": "tuned",
      "kind": "performance-tune"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

upfit

mods.upfit · POST /mods/upfit · gate offer · sandbox · answers ModsUpfit@1

FieldTypeRequiredNotes
vinstringno

The gate is a 402 OFFER — the price and a hard ceiling on the wire, with a durable intent that executes on settlement. Never a wall, never "contact sales". Price: not posted — see /pricing.

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

EmitsMod.upfitted@1.

the SDK — mods.upfit
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.upfit({"vin":"5FNRL6H71RB009906"})
POST /mods/upfit
curl -X POST https://apis.vin/mods/upfit \
  -H 'content-type: application/json' \
  -d '{"vin":"5FNRL6H71RB009906"}'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.268Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsUpfit@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "work": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "upfitted"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "work": {
      "id": "MOD-3cfcea1d",
      "kind": "cold-air-intake",
      "status": "upfitted"
    },
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

warrantyImpact

mods.warrantyImpact · GET /mods/warranty-impact · gate none · sandbox · answers ModsWarrantyImpact@1

FieldTypeRequiredNotes
vinstringno

Doormods.vin serves this noun on its two routes: / (the landing) · /5FNRL6H71RB009906 (the VIN lens).

Try it — sandbox: every call answers a deterministic, provenance-labeled simulated payload ({ environment, simulated } in the body). Force any documented outcome with the magic triggers. Going live is a connect, never a ballot: submit the credential at integrates.vin (dealer systems) or connects.vin (consumer accounts) — submissions enter the activation queue and rank live rollout.

the SDK — mods.warrantyImpact
import { mods } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await mods.warrantyImpact({"vin":"5FNRL6H71RB009906"})
GET /mods/warranty-impact
curl 'https://apis.vin/mods/warranty-impact?vin=5FNRL6H71RB009906'

Receipt — the sandbox wire answered the request above with this exact body at build time. Captured by the receipts runner (timestamped, provenance in the payload), never authored; it re-executes only when this descriptor changes.

receipt · executed 2026-08-17T12:42:14.272Z · HTTP 200
{
  "type": "OK",
  "answers": "ModsWarrantyImpact@1",
  "value": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "evidence": {
    "vin": "5FNRL6H71RB009906",
    "noun": "mods",
    "asOf": "2026-08-10",
    "warranty": "expired",
    "impact": "coverage-expired-no-impact"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Data model

The record shape behind this noun — one entity, each property an evidence field. See the whole estate model on the data model page.

RepairOrder

Modeled

The noun drawn out — its record shape, its lifecycle, and how it is exercised end to end. One diagram, rendered from the estate model.

Mods · Class model


Generated from the catalog. Every capability, answer, gate, and entity on this page is a rendered descriptor — it cannot drift from the wire.