docs.vin

glass

The glass noun — identity, lifecycle, events, and every capability as an anchored section: 20 capabilities, 4 live, 16 sandbox, 0 declared.

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

Identity

Nounglass
PillarData (facets: 7 data · 7 services · 6 commerce)
Capabilities20 — 4 live · 16 sandbox · 0 declared
EntitiesRepairOrder
Doorsaggregator.vin
SDKVin.glass.* from apis.vin
Address/catalog/glass#{action} — the anchor IS the wire name minus glass.

Events

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

Discover & read

spec

glass.spec · GET /glass/spec · gate none · live · answers GlassSpec@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — glass.spec
import { glass } from 'apis.vin'

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

availability

glass.availability · GET /glass/availability · gate none · sandbox · answers GlassAvailability@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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 — glass.availability
import { glass } from 'apis.vin'

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

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:12.110Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassAvailability@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "availability": {
      "inStock": true,
      "etaDays": 2
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "availability": {
      "inStock": true,
      "etaDays": 2
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

fitment

glass.fitment · GET /glass/fitment · gate none · live · answers GlassFitment@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

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

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

damageAssess

glass.damageAssess · GET /glass/damage-assess · gate none · sandbox · answers GlassDamageAssess@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.damageAssessed@1.

the SDK — glass.damageAssess
import { glass } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await glass.damageAssess({"vin":"1C6HJTAGXML605992"})
GET /glass/damage-assess
curl 'https://apis.vin/glass/damage-assess?vin=1C6HJTAGXML605992'

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:12.137Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassDamageAssess@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "glass": {
      "condition": "intact",
      "repairable": false,
      "replaceRequired": false
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "glass": {
      "condition": "intact",
      "repairable": false,
      "replaceRequired": false
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Quote & price

quote

glass.quote · POST /glass/quote · gate offer · sandbox · answers GlassQuote@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.quoteRequested@1 · Glass.quoted@1.

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

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

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:12.142Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassQuote@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "quoteId": "DQ-1",
    "serviceType": "recon",
    "costCents": 39880,
    "priceCents": 51844,
    "marginCents": 11964,
    "currency": "USD",
    "etaMinDays": 1,
    "etaMaxDays": 5,
    "rush": false,
    "expires": "2026-08-17T00:00:00.000Z"
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "quoteId": "DQ-1",
    "serviceType": "recon",
    "costCents": 39880,
    "priceCents": 51844,
    "marginCents": 11964,
    "currency": "USD",
    "etaMinDays": 1,
    "etaMaxDays": 5,
    "rush": false,
    "expires": "2026-08-17T00:00:00.000Z"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "field-services-rail-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

price

glass.price · GET /glass/price · gate none · live · answers GlassPrice@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — glass.price
import { glass } from 'apis.vin'

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

priceLookup

glass.priceLookup · GET /glass/price-lookup · gate none · live · answers GlassPriceLookup@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (the VIN lens).

Try it — live: answers on the wire today. A sandbox key still selects the deterministic simulated mode — drive the full outcome range with the magic triggers.

the SDK — glass.priceLookup
import { glass } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await glass.priceLookup({"vin":"1C6HJTAGXML605992"})
GET /glass/price-lookup
curl 'https://apis.vin/glass/price-lookup?vin=1C6HJTAGXML605992'

Apply & book

order

glass.order · POST /glass/order · gate offer · sandbox · answers GlassOrder@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.completed@1 · Glass.dispatched@1 · Glass.ordered@1 · Order.placed@1 · ServiceOrder.settled@1.

the SDK — glass.order
import { glass } from 'apis.vin'

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

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:12.142Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassOrder@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "order": {
      "id": "ORD-16e01705",
      "item": "windshield",
      "status": "placed",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "order": {
      "id": "ORD-16e01705",
      "item": "windshield",
      "status": "placed",
      "amountCents": 42000,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

schedule

glass.schedule · POST /glass/schedule · gate offer · sandbox · answers GlassSchedule@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.scheduleRequested@1 · Glass.scheduled@1.

the SDK — glass.schedule
import { glass } from 'apis.vin'

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

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:12.151Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassSchedule@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "appointment": {
      "status": "nothing-to-schedule"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "appointment": {
      "status": "nothing-to-schedule"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

mobileDispatch

glass.mobileDispatch · POST /glass/mobile-dispatch · gate offer · sandbox · answers GlassMobileDispatch@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.mobileDispatchFailed@1 · Glass.mobileDispatchRequested@1 · Glass.mobileDispatched@1.

the SDK — glass.mobileDispatch
import { glass } from 'apis.vin'

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

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:12.139Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassMobileDispatch@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "appointment": {
      "status": "nothing-to-schedule"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "appointment": {
      "status": "nothing-to-schedule"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Pay & settle

pay

glass.pay · POST /glass/pay · gate offer · sandbox · answers GlassPay@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.charged@1 · Glass.paid@1 · Glass.payFailed@1 · Glass.payRequested@1 · ServiceOrder.settled@1.

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

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

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:12.142Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassPay@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "payment": {
      "id": "PAY-e0f19233",
      "status": "settled",
      "amountCents": 8900,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "payment": {
      "id": "PAY-e0f19233",
      "status": "settled",
      "amountCents": 8900,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

deductibleCollect

glass.deductibleCollect · POST /glass/deductible-collect · gate offer · sandbox · answers GlassDeductibleCollect@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.deductibleCollectRequested@1 · Glass.deductibleCollected@1.

the SDK — glass.deductibleCollect
import { glass } from 'apis.vin'

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

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:12.139Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassDeductibleCollect@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "collection": {
      "amountCents": 10000,
      "currency": "USD",
      "status": "collected"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "collection": {
      "amountCents": 10000,
      "currency": "USD",
      "status": "collected"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

insuranceBill

glass.insuranceBill · POST /glass/insurance-bill · gate offer · sandbox · answers GlassInsuranceBill@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.insuranceBillRequested@1 · Glass.insuranceBilled@1.

the SDK — glass.insuranceBill
import { glass } from 'apis.vin'

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

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:12.139Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassInsuranceBill@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "bill": {
      "id": "GB-603415c5",
      "billedTo": "policy",
      "amountCents": 8900,
      "currency": "USD",
      "status": "submitted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "bill": {
      "id": "GB-603415c5",
      "billedTo": "policy",
      "amountCents": 8900,
      "currency": "USD",
      "status": "submitted"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Fulfill & operate

replace

glass.replace · POST /glass/replace · gate offer · sandbox · answers GlassReplace@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.replaceFailed@1 · Glass.replaceRequested@1 · Glass.replaced@1.

the SDK — glass.replace
import { glass } from 'apis.vin'

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

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:12.148Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassReplace@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "replacement": {
      "status": "no-replacement-needed"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "replacement": {
      "status": "no-replacement-needed"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

chipRepair

glass.chipRepair · POST /glass/chip-repair · gate offer · sandbox · answers GlassChipRepair@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.chipRepairFailed@1 · Glass.chipRepairRequested@1 · Glass.chipRepaired@1.

the SDK — glass.chipRepair
import { glass } from 'apis.vin'

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

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:12.124Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassChipRepair@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "repair": {
      "status": "no-damage-found"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "repair": {
      "status": "no-damage-found"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

crackRepair

glass.crackRepair · POST /glass/crack-repair · gate offer · sandbox · answers GlassCrackRepair@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.crackRepairFailed@1 · Glass.crackRepairRequested@1 · Glass.crackRepaired@1.

the SDK — glass.crackRepair
import { glass } from 'apis.vin'

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

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:12.130Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassCrackRepair@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "repair": {
      "status": "no-damage-found"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "repair": {
      "status": "no-damage-found"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

recalibrate

glass.recalibrate · POST /glass/recalibrate · gate offer · sandbox · answers GlassRecalibrate@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.recalibrated@1.

the SDK — glass.recalibrate
import { glass } from 'apis.vin'

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

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:12.142Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassRecalibrate@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "calibration": {
      "standing": "not-required",
      "status": "no-calibration-required"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "calibration": {
      "standing": "not-required",
      "status": "no-calibration-required"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

warrantyClaim

glass.warrantyClaim · POST /glass/warranty-claim · gate offer · sandbox · answers GlassWarrantyClaim@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.warrantyClaimFiled@1 · WarrantyClaim.approved@1 · WarrantyClaim.reimbursed@1.

the SDK — glass.warrantyClaim
import { glass } from 'apis.vin'

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

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:12.152Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassWarrantyClaim@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "warranty": "active",
    "claim": {
      "id": "WC-89c852dd",
      "decision": "approved"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "warranty": "active",
    "claim": {
      "id": "WC-89c852dd",
      "decision": "approved"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

oemVsAftermarket

glass.oemVsAftermarket · GET /glass/oem-vs-aftermarket · gate none · sandbox · answers GlassOemVsAftermarket@1

FieldTypeRequiredNotes
vinstringno

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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 — glass.oemVsAftermarket
import { glass } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await glass.oemVsAftermarket({"vin":"1C6HJTAGXML605992"})
GET /glass/oem-vs-aftermarket
curl 'https://apis.vin/glass/oem-vs-aftermarket?vin=1C6HJTAGXML605992'

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:12.139Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassOemVsAftermarket@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "comparison": {
      "oemCents": 42000,
      "aftermarketCents": 26000,
      "currency": "USD",
      "recommendation": "oem"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "comparison": {
      "oemCents": 42000,
      "aftermarketCents": 26000,
      "currency": "USD",
      "recommendation": "oem"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

recalibrateAdas

glass.recalibrateAdas · POST /glass/recalibrate-adas · gate offer · sandbox · answers GlassRecalibrateAdas@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.

Dooraggregator.vin serves this noun on its two routes: / (the landing) · /1C6HJTAGXML605992 (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.

EmitsGlass.recalibrateAdasFailed@1 · Glass.recalibrateAdasRequested@1 · Glass.adasRecalibrated@1.

the SDK — glass.recalibrateAdas
import { glass } from 'apis.vin'

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

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:12.148Z · HTTP 200
{
  "type": "OK",
  "answers": "GlassRecalibrateAdas@1",
  "value": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "calibration": {
      "standing": "not-required",
      "status": "no-calibration-required"
    }
  },
  "evidence": {
    "vin": "1C6HJTAGXML605992",
    "noun": "glass",
    "asOf": "2026-08-10",
    "condition": "intact",
    "calibration": {
      "standing": "not-required",
      "status": "no-calibration-required"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "condition-care-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. 3 diagrams, rendered from the estate model.

Glass · Class model

Glass · State machine

Glass · Sequence


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