docs.vin

technician

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

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

Identity

Nountechnician
PillarServices (facets: 6 data · 7 services · 3 commerce)
Capabilities16 — 0 live · 16 sandbox · 0 declared
EntitiesProvider
Doorsaggregator.vin
SDKVin.technician.* from apis.vin
Address/catalog/technician#{action} — the anchor IS the wire name minus technician.

Events

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

Discover & read

availability

technician.availability · GET /technicians/availability · gate none · sandbox · answers TechnicianAvailability@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.930Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianAvailability@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "availability": {
      "available": true,
      "openJobs": 5,
      "nextSlotDate": "2026-08-11"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "availability": {
      "available": true,
      "openJobs": 5,
      "nextSlotDate": "2026-08-11"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

skillLookup

technician.skillLookup · GET /technicians/skill-lookup · gate none · sandbox · answers TechnicianSkillLookup@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.962Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianSkillLookup@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "skills": [
      {
        "skill": "engine",
        "certified": true
      },
      {
        "skill": "transmission",
        "certified": true
      },
      {
        "skill": "driveline",
        "certified": true
      },
      {
        "skill": "cooling",
        "certified": true
      },
      {
        "skill": "electrical",
        "certified": true
      },
      {
        "skill": "fuelSystem",
        "certified": true
      }
    ]
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "skills": [
      {
        "skill": "engine",
        "certified": true
      },
      {
        "skill": "transmission",
        "certified": true
      },
      {
        "skill": "driveline",
        "certified": true
      },
      {
        "skill": "cooling",
        "certified": true
      },
      {
        "skill": "electrical",
        "certified": true
      },
      {
        "skill": "fuelSystem",
        "certified": true
      }
    ]
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

assign

technician.assign · POST /technicians/assign · gate offer · sandbox · answers TechnicianAssign@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.assignRequested@1 · Technician.assigned@1.

the SDK — technician.assign
import { technician } from 'apis.vin'

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

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:17.930Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianAssign@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "assignment": {
      "status": "already-assigned",
      "woId": "WO-f64615ea",
      "position": "Settled"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "assignment": {
      "status": "already-assigned",
      "woId": "WO-f64615ea",
      "position": "Settled"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

commission

technician.commission · POST /technicians/commission · gate offer · sandbox · answers TechnicianCommission@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.commissionRequested@1 · Technician.commissioned@1.

the SDK — technician.commission
import { technician } from 'apis.vin'

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

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:17.944Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianCommission@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "commission": {
      "basisCents": 93280,
      "amountCents": 4664,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "commission": {
      "basisCents": 93280,
      "amountCents": 4664,
      "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
  }
}

Pay & settle

pay

technician.pay · POST /technicians/pay · gate offer · sandbox · answers TechnicianPay@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.paid@1 · Technician.payFailed@1 · Technician.payRequested@1.

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

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

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:17.953Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianPay@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "payment": {
      "id": "PAY-adfdc602",
      "amountCents": 13200,
      "currency": "USD",
      "status": "settled"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "payment": {
      "id": "PAY-adfdc602",
      "amountCents": 13200,
      "currency": "USD",
      "status": "settled"
    },
    "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
  }
}

flagPay

technician.flagPay · POST /technicians/flag-pay · gate offer · sandbox · answers TechnicianFlagPay@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.flagPaid@1 · Technician.flagPayFailed@1 · Technician.flagPayRequested@1.

the SDK — technician.flagPay
import { technician } from 'apis.vin'

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

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:17.953Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianFlagPay@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "flagPay": {
      "hoursTenths": 20,
      "rateCentsPerHour": 6600,
      "amountCents": 13200,
      "currency": "USD"
    },
    "payer": {
      "name": "Ava Good",
      "castRow": "super-prime",
      "creditTier": "super-prime"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "flagPay": {
      "hoursTenths": 20,
      "rateCentsPerHour": 6600,
      "amountCents": 13200,
      "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
  }
}

Fulfill & operate

perform

technician.perform · POST /technicians/perform · gate offer · sandbox · answers TechnicianPerform@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.performFailed@1 · Technician.performRequested@1 · Technician.performed@1.

the SDK — technician.perform
import { technician } from 'apis.vin'

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

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:17.959Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianPerform@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "operation": "perform",
    "position": "Settled",
    "status": "completed"
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "operation": "perform",
    "position": "Settled",
    "status": "completed"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Authorize & resolve

escalate

technician.escalate · POST /technicians/escalate · gate offer · sandbox · answers TechnicianEscalate@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.escalateRequested@1 · Technician.escalated@1.

the SDK — technician.escalate
import { technician } from 'apis.vin'

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

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:17.952Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianEscalate@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "escalation": {
      "id": "ESC-ff29940c",
      "tier": 2,
      "status": "raised"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "escalation": {
      "id": "ESC-ff29940c",
      "tier": 2,
      "status": "raised"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

recertify

technician.recertify · POST /technicians/recertify · gate key · sandbox · answers TechnicianRecertify@1

No input — this capability takes no request body.

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

EmitsTechnician.recertified@1.

the SDK — technician.recertify
import { technician } from 'apis.vin'

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

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-16T14:50:10.058Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianRecertify@1",
  "value": {
    "vin": "1HGCM82633A004352",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-3f68cc26",
    "recertification": {
      "id": "CERT-6194062e",
      "status": "recertified",
      "expires": "2028-08-09"
    }
  },
  "evidence": {
    "vin": "1HGCM82633A004352",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-3f68cc26",
    "recertification": {
      "id": "CERT-6194062e",
      "status": "recertified",
      "expires": "2028-08-09"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

certification

technician.certification · GET /technicians/certification · gate none · sandbox · answers TechnicianCertification@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.936Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianCertification@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "certification": {
      "id": "CERT-6c306e8e",
      "level": "master",
      "status": "active",
      "expires": "2027-08-10"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "certification": {
      "id": "CERT-6c306e8e",
      "level": "master",
      "status": "active",
      "expires": "2027-08-10"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

clockOff

technician.clockOff · POST /technicians/clock-off · gate offer · sandbox · answers TechnicianClockOff@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.clockOffRequested@1 · Technician.clockedOff@1.

the SDK — technician.clockOff
import { technician } from 'apis.vin'

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

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:17.939Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianClockOff@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "clock": {
      "status": "clocked-off",
      "woId": "WO-f64615ea",
      "position": "Settled"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "clock": {
      "status": "clocked-off",
      "woId": "WO-f64615ea",
      "position": "Settled"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

clockOn

technician.clockOn · POST /technicians/clock-on · gate offer · sandbox · answers TechnicianClockOn@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.clockOnRequested@1 · Technician.clockedIn@1.

the SDK — technician.clockOn
import { technician } from 'apis.vin'

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

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:17.939Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianClockOn@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "clock": {
      "status": "work-already-performed",
      "position": "Settled"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "clock": {
      "status": "work-already-performed",
      "position": "Settled"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

efficiency

technician.efficiency · GET /technicians/efficiency · gate none · sandbox · answers TechnicianEfficiency@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.946Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianEfficiency@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "efficiency": {
      "flagTenths": 20,
      "actualTenths": 39,
      "efficiencyPct": 51
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "efficiency": {
      "flagTenths": 20,
      "actualTenths": 39,
      "efficiencyPct": 51
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

flagHours

technician.flagHours · GET /technicians/flag-hours · gate none · sandbox · answers TechnicianFlagHours@1

FieldTypeRequiredNotes
vinstringno

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await technician.flagHours({"vin":"1C6SRFFM4LN418569"})
GET /technicians/flag-hours
curl 'https://apis.vin/technicians/flag-hours?vin=1C6SRFFM4LN418569'

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:17.953Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianFlagHours@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "flag": {
      "hoursTenths": 20,
      "rateCentsPerHour": 6600
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "flag": {
      "hoursTenths": 20,
      "rateCentsPerHour": 6600
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

requestParts

technician.requestParts · POST /technicians/request-parts · gate offer · sandbox · answers TechnicianRequestParts@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) · /1C6SRFFM4LN418569 (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.

EmitsTechnician.partsRequested@1 · Technician.requestPartsRequested@1.

the SDK — technician.requestParts
import { technician } from 'apis.vin'

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

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:17.962Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianRequestParts@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "request": {
      "status": "already-on-order",
      "roId": "RO-93f7c9a6"
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "request": {
      "status": "already-on-order",
      "roId": "RO-93f7c9a6"
    }
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "wrench-wear-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

workload

technician.workload · GET /technicians/workload · gate none · sandbox · answers TechnicianWorkload@1

FieldTypeRequiredNotes
vinstringno

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

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

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:17.968Z · HTTP 200
{
  "type": "OK",
  "answers": "TechnicianWorkload@1",
  "value": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "workload": {
      "openJobs": 5,
      "byPosition": {
        "Opened": 1,
        "Estimated": 1,
        "Approved": 1,
        "Assigned": 1,
        "Dispatched": 1
      }
    }
  },
  "evidence": {
    "vin": "1C6SRFFM4LN418569",
    "noun": "technician",
    "asOf": "2026-08-10",
    "techId": "TECH-e837c986",
    "workload": {
      "openJobs": 5,
      "byPosition": {
        "Opened": 1,
        "Estimated": 1,
        "Approved": 1,
        "Assigned": 1,
        "Dispatched": 1
      }
    }
  },
  "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.

Provider


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