Garage
Fields marked * are required. Updates keep every field they are not given. An AI app can ask vritto_describe for the same details, filtered to what its connection may use.
Vehiclevehicle
A car or motorcycle the user owns, finances, or leases. The same operations reach its logbook (type 'log'): services, fuel fill-ups, charges, trips and damage.
garage_findFindthrough vritto_findRead Garage: one record by id, or vehicles and logbook entries filtered by vehicle (vehicleName or vehicleId), log kind, dates or text. No filter gives headline counts (incl. open recalls) and compact vehicle and recent log rows. detail 'full' for recalls, warranties, deadlines, parts and notes.
Note: No filter returns compact vehicle and recent log rows; type 'log' with vehicleName and from/to reads a period's history.
| Field | Type | Description |
|---|---|---|
| type | one of vehicle, log | Which records to read; omit for both. |
| id | string | Return just this record. |
| vehicleName | string | Logs of this vehicle, as the user names it ('Civic'). |
| vehicleId | string | Logs of this vehicle. |
| kind | one of service, fuel, charge, trip, damage | Type 'log': only this kind of entry. |
| from | string | Type 'log': earliest date, inclusive. |
| to | string | Type 'log': latest date, inclusive. ALWAYS pass from/to when the question concerns a period. |
| query | string | Text to match: a nickname, make, model, plate, title or vendor. |
| limit | integer | Rows to return per type, default 25. |
| detail | one of summary, full | "summary" (default) compact rows; "full" every field incl. recalls, warranties, deadlines, parts, and log notes. |
Example input
{}garage_addCreate or Updatethrough vritto_create or vritto_updateAdd one record: a vehicle (make/model or nickname), or a logbook entry (type 'log': vehicleName as the user said it, kind, date, plus cost, odometer and what the kind needs). A real record.id updates that record instead; sent fields merge.
| Field | Type | Description |
|---|---|---|
| type | one of vehicle, log | Record type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage). |
| record* | object | The record's fields; a log needs a vehicle, kind and date. |
| record.id | string | Leave out to add; a real id updates that record, only the fields you send change. |
| record.vin | string | 17-char VIN. Call garage_decodeVin first to fill make/model/year. |
| record.year | integer | |
| record.make | string | e.g. 'Honda'. Recommended when creating. |
| record.model | string | e.g. 'Accord'. |
| record.trim | string | |
| record.nickname | string | Friendly name, e.g. 'The Accord'. |
| record.vehicleType | one of car, motorcycle, truck, suv, van, other | Defaults to 'car'. |
| record.powertrain | one of gas, hybrid, plugin_hybrid, diesel, ev, other | Defaults to 'gas'. |
| record.color | string | |
| record.licensePlate | string | |
| record.currency | string | ISO 4217 code: a vehicle's money, or the currency a log's cost was charged in (it takes its vehicle's when left out). Never assume USD. |
| record.distanceUnit | one of km, mi | What the car's odometer reads in. A new vehicle takes the account's unit; set it only when the user says. |
| record.fuelUnit | one of l, gal | What fuel is bought in: liters or US gallons. A new vehicle takes the account's unit. |
| record.ownershipType | one of owned, financed, leased | |
| record.purchaseDate | string | Local date YYYY-MM-DD. |
| record.purchasePrice | number | |
| record.seller | string | Dealer or private seller. |
| record.financeType | one of cash, loan, lease | |
| record.lender | string | |
| record.monthlyPayment | number | |
| record.apr | number | Loan/lease APR %. |
| record.loanTermMonths | integer | Loan or lease term in months. |
| record.downPayment | number | Cash paid up front. |
| record.payoffBalance | number | Remaining loan balance. Set to 0 when the user says they paid it off. |
| record.leaseEndDate | string | When the lease ends (for leased vehicles). |
| record.odometer | integer | A vehicle's current reading, or a log's (a higher one rolls the vehicle's reading forward). |
| record.efficiency | number | Manual efficiency in the vehicle's units (distance per fuelUnit, or per kWh for an EV). |
| record.registrationDue | string | Registration renewal date: powers a reminder. |
| record.inspectionDue | string | Inspection/emissions due date, powers a reminder. |
| record.insuranceRenewalDue | string | Insurance renewal date: powers a reminder. |
| record.nextServiceDue | string | Next service date: powers a reminder. |
| record.nextServiceMileage | integer | Odometer at which the next service is due. |
| record.insurancePolicyId | string | Insurance policy ID to link (from the Insurance module). Empty string unlinks. When linked, the policy's renewal date drives insuranceRenewalDue. |
| record.insuranceAnnual | number | Annual insurance cost, for total cost of ownership. |
| record.registrationAnnual | number | Annual registration cost, for total cost of ownership. |
| record.reminderLeadDays | integer | Days before a dated deadline to remind. Default 14. |
| record.notes | string | |
| record.primaryDriverPersonId | string | People person id of the primary driver; omit for the account owner. |
| record.vehicleId | string | Use ONLY when you already know the ID from earlier in this conversation. Never call a query tool just to obtain it, send vehicleName instead. |
| record.vehicleName | string | The vehicle as the user names it (nickname, or make/model like "Civic"). Matched against the garage; an ambiguous name comes back as an error asking which one. |
| record.kind | one of service, fuel, charge, trip, damage | Type 'log': service, fuel, charge, trip or damage. Required for a log. |
| record.date | string | Type 'log': when it happened. Required for a log. |
| record.title | string | Short label for the entry, e.g. 'Front brake pads'. |
| record.totalCost | number | Total cost of this entry (repair, fuel, charge). |
| record.source | one of manual, sahai, gmail, bank | Where the entry came from. Set by the ingestion pipeline; leave unset. |
| record.serviceType | one of oil_change, tire_rotation, tires, brakes, battery, inspection, fluids, filter, spark_plugs, repair, detailing, other | For kind 'service'. |
| record.vendor | string | Shop name (for kind 'service'). |
| record.isDiy | boolean | Did it themselves (for kind 'service'). |
| record.laborCost | number | |
| record.parts | list of object | Parts used (for kind 'service'). Sending this replaces the entry's whole parts list. |
| record.volume | number | Fuel added, in the vehicle's fuelUnit (for kind 'fuel'). |
| record.pricePerUnit | number | Price per liter or gallon, as the vehicle's fuelUnit (for kind 'fuel'). |
| record.isFullTank | boolean | Filled the tank: needed for accurate fuel economy (for kind 'fuel'). Server default is TRUE when omitted, so pass false explicitly for a partial fill. |
| record.kwh | number | Energy added in kWh (for kind 'charge'). |
| record.chargeLocation | one of home, public, work, other | For kind 'charge'. |
| record.tripMiles | number | Miles driven (for kind 'trip'). |
| record.tripCategory | one of business, personal, medical, charity, moving | For kind 'trip'. Server default is 'business' when omitted: pass 'personal' explicitly for non-deductible trips. |
| record.tripPurpose | string | Why the trip happened (for kind 'trip'). |
| record.damageSeverity | one of minor, moderate, major | For kind 'damage'. |
| record.damageLocation | string | Where on the vehicle, e.g. 'front bumper' (for kind 'damage'). |
| record.damageRepaired | boolean | Whether it's been repaired (for kind 'damage'). |
Example input
{
"record": {
"year": 2022,
"make": "Toyota",
"model": "RAV4",
"trim": "XLE Hybrid",
"powertrain": "hybrid",
"odometer": 31250,
"currency": "USD"
}
}garage_changeUpdatethrough vritto_updateChange one record by record.id (set type for a log); only sent fields change. vehicleId + campaignNumber + resolved marks an NHTSA recall fixed (or reopens it). Resolve ids with garage_find first.
Note: vehicleId with campaignNumber and resolved marks an NHTSA recall fixed.
| Field | Type | Description |
|---|---|---|
| type | one of vehicle, log | Record type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage). |
| record | object | The record's id plus the fields to change. |
| record.id* | string | Record ID from a prior garage_find result, never invented. |
| record.vin | string | 17-char VIN. Call garage_decodeVin first to fill make/model/year. |
| record.year | integer | |
| record.make | string | e.g. 'Honda'. Recommended when creating. |
| record.model | string | e.g. 'Accord'. |
| record.trim | string | |
| record.nickname | string | Friendly name, e.g. 'The Accord'. |
| record.vehicleType | one of car, motorcycle, truck, suv, van, other | Defaults to 'car'. |
| record.powertrain | one of gas, hybrid, plugin_hybrid, diesel, ev, other | Defaults to 'gas'. |
| record.color | string | |
| record.licensePlate | string | |
| record.currency | string | ISO 4217 code: a vehicle's money, or the currency a log's cost was charged in (it takes its vehicle's when left out). Never assume USD. |
| record.distanceUnit | one of km, mi | What the car's odometer reads in. A new vehicle takes the account's unit; set it only when the user says. |
| record.fuelUnit | one of l, gal | What fuel is bought in: liters or US gallons. A new vehicle takes the account's unit. |
| record.ownershipType | one of owned, financed, leased | |
| record.purchaseDate | string | Local date YYYY-MM-DD. |
| record.purchasePrice | number | |
| record.seller | string | Dealer or private seller. |
| record.financeType | one of cash, loan, lease | |
| record.lender | string | |
| record.monthlyPayment | number | |
| record.apr | number | Loan/lease APR %. |
| record.loanTermMonths | integer | Loan or lease term in months. |
| record.downPayment | number | Cash paid up front. |
| record.payoffBalance | number | Remaining loan balance. Set to 0 when the user says they paid it off. |
| record.leaseEndDate | string | When the lease ends (for leased vehicles). |
| record.odometer | integer | A vehicle's current reading, or a log's (a higher one rolls the vehicle's reading forward). |
| record.efficiency | number | Manual efficiency in the vehicle's units (distance per fuelUnit, or per kWh for an EV). |
| record.registrationDue | string | Registration renewal date: powers a reminder. |
| record.inspectionDue | string | Inspection/emissions due date, powers a reminder. |
| record.insuranceRenewalDue | string | Insurance renewal date: powers a reminder. |
| record.nextServiceDue | string | Next service date: powers a reminder. |
| record.nextServiceMileage | integer | Odometer at which the next service is due. |
| record.insurancePolicyId | string | Insurance policy ID to link (from the Insurance module). Empty string unlinks. When linked, the policy's renewal date drives insuranceRenewalDue. |
| record.insuranceAnnual | number | Annual insurance cost, for total cost of ownership. |
| record.registrationAnnual | number | Annual registration cost, for total cost of ownership. |
| record.reminderLeadDays | integer | Days before a dated deadline to remind. Default 14. |
| record.notes | string | |
| record.primaryDriverPersonId | string | People person id of the primary driver; omit for the account owner. |
| record.vehicleId | string | Use ONLY when you already know the ID from earlier in this conversation. Never call a query tool just to obtain it, send vehicleName instead. |
| record.vehicleName | string | The vehicle as the user names it (nickname, or make/model like "Civic"). Matched against the garage; an ambiguous name comes back as an error asking which one. |
| record.kind | one of service, fuel, charge, trip, damage | Type 'log': service, fuel, charge, trip or damage. Required for a log. |
| record.date | string | Type 'log': when it happened. Required for a log. |
| record.title | string | Short label for the entry, e.g. 'Front brake pads'. |
| record.totalCost | number | Total cost of this entry (repair, fuel, charge). |
| record.source | one of manual, sahai, gmail, bank | Where the entry came from. Set by the ingestion pipeline; leave unset. |
| record.serviceType | one of oil_change, tire_rotation, tires, brakes, battery, inspection, fluids, filter, spark_plugs, repair, detailing, other | For kind 'service'. |
| record.vendor | string | Shop name (for kind 'service'). |
| record.isDiy | boolean | Did it themselves (for kind 'service'). |
| record.laborCost | number | |
| record.parts | list of object | Parts used (for kind 'service'). Sending this replaces the entry's whole parts list. |
| record.volume | number | Fuel added, in the vehicle's fuelUnit (for kind 'fuel'). |
| record.pricePerUnit | number | Price per liter or gallon, as the vehicle's fuelUnit (for kind 'fuel'). |
| record.isFullTank | boolean | Filled the tank: needed for accurate fuel economy (for kind 'fuel'). Server default is TRUE when omitted, so pass false explicitly for a partial fill. |
| record.kwh | number | Energy added in kWh (for kind 'charge'). |
| record.chargeLocation | one of home, public, work, other | For kind 'charge'. |
| record.tripMiles | number | Miles driven (for kind 'trip'). |
| record.tripCategory | one of business, personal, medical, charity, moving | For kind 'trip'. Server default is 'business' when omitted: pass 'personal' explicitly for non-deductible trips. |
| record.tripPurpose | string | Why the trip happened (for kind 'trip'). |
| record.damageSeverity | one of minor, moderate, major | For kind 'damage'. |
| record.damageLocation | string | Where on the vehicle, e.g. 'front bumper' (for kind 'damage'). |
| record.damageRepaired | boolean | Whether it's been repaired (for kind 'damage'). |
| vehicleId | string | With campaignNumber: the vehicle. |
| campaignNumber | string | Exact NHTSA campaign number from the vehicle's recalls list. |
| resolved | boolean | true = the user had it fixed / not applicable; false = reopen. |
Example input
{
"record": {
"id": "veh_rav4",
"odometer": 32000
}
}garage_removeDeletethrough vritto_deleteRemove (archive) one vehicle (its reminders stop) or logbook entry. Only for explicit removals; resolve the id with garage_find first.
Note: Set type 'log' for a logbook entry.
| Field | Type | Description |
|---|---|---|
| id | string | The record to remove. |
| type | one of vehicle, log | Record type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage). |
| vehicleId | string | Older name for a vehicle's id. |
| logId | string | Older name for a log's id. |
VIN Decodervin_catalog
Vehicle details decoded from a VIN.
garage_decodeVinLook Upthrough vritto_lookupDecode a 17-character VIN via NHTSA into make/model/year/trim/vehicleType/powertrain. Read-only lookup; use to pre-fill fields before garage_add.
| Field | Type | Description |
|---|---|---|
| vin* | string | The VIN to decode. |
Kept in the Vritto app
garage_refreshRecalls: Background upkeep Vritto already runs on its own.