docs.vin

testDrive

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

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

Identity

NountestDrive
PillarServices (facets: 2 data · 6 services)
Capabilities8 — 0 live · 8 sandbox · 0 declared
EntitiesAppointment
Doorsaggregator.vin
SDKVin.testDrive.* from apis.vin
Address/catalog/testDrive#{action} — the anchor IS the wire name minus testDrive.

Events

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

Discover & read

insuranceVerify

testDrive.insuranceVerify · GET /test-drives/insurance-verify · gate none · sandbox · answers TestDriveInsuranceVerify@1

No input — this capability takes no request body.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.insuranceVerify()
GET /test-drives/insurance-verify
curl 'https://apis.vin/test-drives/insurance-verify'

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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveInsuranceVerify@1",
  "value": {
    "id": "testDrive_e228e493",
    "vin": "vin-3fe75e07",
    "scheduledAt": "2027-03-19T00:00:00.000Z",
    "bay": "bay-198c5d32",
    "technicianId": "provider_5eb17b09"
  },
  "evidence": {
    "id": "testDrive_e228e493",
    "vin": "vin-3fe75e07",
    "scheduledAt": "2027-03-19T00:00:00.000Z",
    "bay": "bay-198c5d32",
    "technicianId": "provider_5eb17b09"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

Apply & book

schedule

testDrive.schedule · POST /test-drives/schedule · gate key · sandbox · answers TestDriveSchedule@1

No input — this capability takes no request body.

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

EmitsTestDrive.scheduled@1.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.schedule()
POST /test-drives/schedule
curl -X POST https://apis.vin/test-drives/schedule \
  -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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveSchedule@1",
  "value": {
    "id": "testDrive_95d975bd",
    "vin": "vin-4017564d",
    "scheduledAt": "2027-03-02T00:00:00.000Z",
    "bay": "bay-aefe58d4",
    "technicianId": "provider_91168a7b"
  },
  "evidence": {
    "id": "testDrive_95d975bd",
    "vin": "vin-4017564d",
    "scheduledAt": "2027-03-02T00:00:00.000Z",
    "bay": "bay-aefe58d4",
    "technicianId": "provider_91168a7b"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

checkIn

testDrive.checkIn · POST /test-drives/check-in · gate key · sandbox · answers TestDriveCheckIn@1

No input — this capability takes no request body.

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

EmitsTestDrive.checkedIn@1.

the SDK — testDrive.checkIn
import { testDrive } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.checkIn()
POST /test-drives/check-in
curl -X POST https://apis.vin/test-drives/check-in \
  -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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveCheckIn@1",
  "value": {
    "id": "testDrive_6238fa54",
    "vin": "vin-3a9edaee",
    "scheduledAt": "2027-01-27T00:00:00.000Z",
    "bay": "bay-a385d403",
    "technicianId": "provider_85c77b7a"
  },
  "evidence": {
    "id": "testDrive_6238fa54",
    "vin": "vin-3a9edaee",
    "scheduledAt": "2027-01-27T00:00:00.000Z",
    "bay": "bay-a385d403",
    "technicianId": "provider_85c77b7a"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

checkOut

testDrive.checkOut · POST /test-drives/check-out · gate key · sandbox · answers TestDriveCheckOut@1

No input — this capability takes no request body.

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

EmitsTestDrive.checkedOut@1.

the SDK — testDrive.checkOut
import { testDrive } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.checkOut()
POST /test-drives/check-out
curl -X POST https://apis.vin/test-drives/check-out \
  -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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveCheckOut@1",
  "value": {
    "id": "testDrive_8bd84349",
    "vin": "vin-6db2c559",
    "scheduledAt": "2027-01-20T00:00:00.000Z",
    "bay": "bay-5b2f4190",
    "technicianId": "provider_33543f77"
  },
  "evidence": {
    "id": "testDrive_8bd84349",
    "vin": "vin-6db2c559",
    "scheduledAt": "2027-01-20T00:00:00.000Z",
    "bay": "bay-5b2f4190",
    "technicianId": "provider_33543f77"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

More actions

atHome

testDrive.atHome · POST /test-drives/at-home · gate key · sandbox · answers TestDriveAtHome@1

No input — this capability takes no request body.

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

EmitsTestDrive.atHomeScheduled@1.

the SDK — testDrive.atHome
import { testDrive } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.atHome()
POST /test-drives/at-home
curl -X POST https://apis.vin/test-drives/at-home \
  -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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveAtHome@1",
  "value": {
    "id": "testDrive_bc179e8c",
    "vin": "vin-29c09e86",
    "scheduledAt": "2027-01-13T00:00:00.000Z",
    "bay": "bay-b2ced96b",
    "technicianId": "provider_f2f1c6c2"
  },
  "evidence": {
    "id": "testDrive_bc179e8c",
    "vin": "vin-29c09e86",
    "scheduledAt": "2027-01-13T00:00:00.000Z",
    "bay": "bay-b2ced96b",
    "technicianId": "provider_f2f1c6c2"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

convert

testDrive.convert · POST /test-drives/convert · gate key · sandbox · answers TestDriveConvert@1

No input — this capability takes no request body.

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

EmitsTestDrive.converted@1.

the SDK — testDrive.convert
import { testDrive } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.convert()
POST /test-drives/convert
curl -X POST https://apis.vin/test-drives/convert \
  -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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveConvert@1",
  "value": {
    "id": "testDrive_cba4ba2f",
    "vin": "vin-a8b34073",
    "scheduledAt": "2026-12-14T00:00:00.000Z",
    "bay": "bay-33221abe",
    "technicianId": "provider_3716d2e5"
  },
  "evidence": {
    "id": "testDrive_cba4ba2f",
    "vin": "vin-a8b34073",
    "scheduledAt": "2026-12-14T00:00:00.000Z",
    "bay": "bay-33221abe",
    "technicianId": "provider_3716d2e5"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

feedback

testDrive.feedback · GET /test-drives/feedback · gate none · sandbox · answers TestDriveFeedback@1

No input — this capability takes no request body.

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

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.feedback()
GET /test-drives/feedback
curl 'https://apis.vin/test-drives/feedback'

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.062Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveFeedback@1",
  "value": {
    "id": "testDrive_42bf5f1f",
    "vin": "vin-ba2fe2a3",
    "scheduledAt": "2026-08-29T00:00:00.000Z",
    "bay": "bay-c2b356ae",
    "technicianId": "provider_c96c2af5"
  },
  "evidence": {
    "id": "testDrive_42bf5f1f",
    "vin": "vin-ba2fe2a3",
    "scheduledAt": "2026-08-29T00:00:00.000Z",
    "bay": "bay-c2b356ae",
    "technicianId": "provider_c96c2af5"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-sandbox"
  },
  "events": [],
  "meter": {
    "charged": "0.00",
    "posted": false
  }
}

waiver

testDrive.waiver · POST /test-drives/waiver · gate key · sandbox · answers TestDriveWaiver@1

No input — this capability takes no request body.

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

EmitsTestDrive.waived@1.

the SDK — testDrive.waiver
import { testDrive } from 'apis.vin'

// the gate law is in the type system: Answer<T> = Ok | Empty | Blocked | Offer
const answer = await testDrive.waiver()
POST /test-drives/waiver
curl -X POST https://apis.vin/test-drives/waiver \
  -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.064Z · HTTP 200
{
  "type": "OK",
  "answers": "TestDriveWaiver@1",
  "value": {
    "id": "testDrive_9f9eaf2d",
    "vin": "vin-741cec3d",
    "scheduledAt": "2026-09-02T00:00:00.000Z",
    "bay": "bay-a077f684",
    "technicianId": "provider_4641dbcb"
  },
  "evidence": {
    "id": "testDrive_9f9eaf2d",
    "vin": "vin-741cec3d",
    "scheduledAt": "2026-09-02T00:00:00.000Z",
    "bay": "bay-a077f684",
    "technicianId": "provider_4641dbcb"
  },
  "provenance": {
    "simulated": true,
    "environment": "sandbox",
    "source": "test-drive-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.

Appointment


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