Skip To Main Content
All modules

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_find

Read 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.

FieldTypeDescription
typeone of vehicle, logWhich records to read; omit for both.
idstringReturn just this record.
vehicleNamestringLogs of this vehicle, as the user names it ('Civic').
vehicleIdstringLogs of this vehicle.
kindone of service, fuel, charge, trip, damageType 'log': only this kind of entry.
fromstringType 'log': earliest date, inclusive.
tostringType 'log': latest date, inclusive. ALWAYS pass from/to when the question concerns a period.
querystringText to match: a nickname, make, model, plate, title or vendor.
limitintegerRows to return per type, default 25.
detailone 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_update

Add 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.

FieldTypeDescription
typeone of vehicle, logRecord type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage).
record*objectThe record's fields; a log needs a vehicle, kind and date.
record.idstringLeave out to add; a real id updates that record, only the fields you send change.
record.vinstring17-char VIN. Call garage_decodeVin first to fill make/model/year.
record.yearinteger
record.makestringe.g. 'Honda'. Recommended when creating.
record.modelstringe.g. 'Accord'.
record.trimstring
record.nicknamestringFriendly name, e.g. 'The Accord'.
record.vehicleTypeone of car, motorcycle, truck, suv, van, otherDefaults to 'car'.
record.powertrainone of gas, hybrid, plugin_hybrid, diesel, ev, otherDefaults to 'gas'.
record.colorstring
record.licensePlatestring
record.currencystringISO 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.distanceUnitone of km, miWhat the car's odometer reads in. A new vehicle takes the account's unit; set it only when the user says.
record.fuelUnitone of l, galWhat fuel is bought in: liters or US gallons. A new vehicle takes the account's unit.
record.ownershipTypeone of owned, financed, leased
record.purchaseDatestringLocal date YYYY-MM-DD.
record.purchasePricenumber
record.sellerstringDealer or private seller.
record.financeTypeone of cash, loan, lease
record.lenderstring
record.monthlyPaymentnumber
record.aprnumberLoan/lease APR %.
record.loanTermMonthsintegerLoan or lease term in months.
record.downPaymentnumberCash paid up front.
record.payoffBalancenumberRemaining loan balance. Set to 0 when the user says they paid it off.
record.leaseEndDatestringWhen the lease ends (for leased vehicles).
record.odometerintegerA vehicle's current reading, or a log's (a higher one rolls the vehicle's reading forward).
record.efficiencynumberManual efficiency in the vehicle's units (distance per fuelUnit, or per kWh for an EV).
record.registrationDuestringRegistration renewal date: powers a reminder.
record.inspectionDuestringInspection/emissions due date, powers a reminder.
record.insuranceRenewalDuestringInsurance renewal date: powers a reminder.
record.nextServiceDuestringNext service date: powers a reminder.
record.nextServiceMileageintegerOdometer at which the next service is due.
record.insurancePolicyIdstringInsurance policy ID to link (from the Insurance module). Empty string unlinks. When linked, the policy's renewal date drives insuranceRenewalDue.
record.insuranceAnnualnumberAnnual insurance cost, for total cost of ownership.
record.registrationAnnualnumberAnnual registration cost, for total cost of ownership.
record.reminderLeadDaysintegerDays before a dated deadline to remind. Default 14.
record.notesstring
record.primaryDriverPersonIdstringPeople person id of the primary driver; omit for the account owner.
record.vehicleIdstringUse 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.vehicleNamestringThe 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.kindone of service, fuel, charge, trip, damageType 'log': service, fuel, charge, trip or damage. Required for a log.
record.datestringType 'log': when it happened. Required for a log.
record.titlestringShort label for the entry, e.g. 'Front brake pads'.
record.totalCostnumberTotal cost of this entry (repair, fuel, charge).
record.sourceone of manual, sahai, gmail, bankWhere the entry came from. Set by the ingestion pipeline; leave unset.
record.serviceTypeone of oil_change, tire_rotation, tires, brakes, battery, inspection, fluids, filter, spark_plugs, repair, detailing, otherFor kind 'service'.
record.vendorstringShop name (for kind 'service').
record.isDiybooleanDid it themselves (for kind 'service').
record.laborCostnumber
record.partslist of objectParts used (for kind 'service'). Sending this replaces the entry's whole parts list.
record.volumenumberFuel added, in the vehicle's fuelUnit (for kind 'fuel').
record.pricePerUnitnumberPrice per liter or gallon, as the vehicle's fuelUnit (for kind 'fuel').
record.isFullTankbooleanFilled 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.kwhnumberEnergy added in kWh (for kind 'charge').
record.chargeLocationone of home, public, work, otherFor kind 'charge'.
record.tripMilesnumberMiles driven (for kind 'trip').
record.tripCategoryone of business, personal, medical, charity, movingFor kind 'trip'. Server default is 'business' when omitted: pass 'personal' explicitly for non-deductible trips.
record.tripPurposestringWhy the trip happened (for kind 'trip').
record.damageSeverityone of minor, moderate, majorFor kind 'damage'.
record.damageLocationstringWhere on the vehicle, e.g. 'front bumper' (for kind 'damage').
record.damageRepairedbooleanWhether 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_update

Change 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.

FieldTypeDescription
typeone of vehicle, logRecord type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage).
recordobjectThe record's id plus the fields to change.
record.id*stringRecord ID from a prior garage_find result, never invented.
record.vinstring17-char VIN. Call garage_decodeVin first to fill make/model/year.
record.yearinteger
record.makestringe.g. 'Honda'. Recommended when creating.
record.modelstringe.g. 'Accord'.
record.trimstring
record.nicknamestringFriendly name, e.g. 'The Accord'.
record.vehicleTypeone of car, motorcycle, truck, suv, van, otherDefaults to 'car'.
record.powertrainone of gas, hybrid, plugin_hybrid, diesel, ev, otherDefaults to 'gas'.
record.colorstring
record.licensePlatestring
record.currencystringISO 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.distanceUnitone of km, miWhat the car's odometer reads in. A new vehicle takes the account's unit; set it only when the user says.
record.fuelUnitone of l, galWhat fuel is bought in: liters or US gallons. A new vehicle takes the account's unit.
record.ownershipTypeone of owned, financed, leased
record.purchaseDatestringLocal date YYYY-MM-DD.
record.purchasePricenumber
record.sellerstringDealer or private seller.
record.financeTypeone of cash, loan, lease
record.lenderstring
record.monthlyPaymentnumber
record.aprnumberLoan/lease APR %.
record.loanTermMonthsintegerLoan or lease term in months.
record.downPaymentnumberCash paid up front.
record.payoffBalancenumberRemaining loan balance. Set to 0 when the user says they paid it off.
record.leaseEndDatestringWhen the lease ends (for leased vehicles).
record.odometerintegerA vehicle's current reading, or a log's (a higher one rolls the vehicle's reading forward).
record.efficiencynumberManual efficiency in the vehicle's units (distance per fuelUnit, or per kWh for an EV).
record.registrationDuestringRegistration renewal date: powers a reminder.
record.inspectionDuestringInspection/emissions due date, powers a reminder.
record.insuranceRenewalDuestringInsurance renewal date: powers a reminder.
record.nextServiceDuestringNext service date: powers a reminder.
record.nextServiceMileageintegerOdometer at which the next service is due.
record.insurancePolicyIdstringInsurance policy ID to link (from the Insurance module). Empty string unlinks. When linked, the policy's renewal date drives insuranceRenewalDue.
record.insuranceAnnualnumberAnnual insurance cost, for total cost of ownership.
record.registrationAnnualnumberAnnual registration cost, for total cost of ownership.
record.reminderLeadDaysintegerDays before a dated deadline to remind. Default 14.
record.notesstring
record.primaryDriverPersonIdstringPeople person id of the primary driver; omit for the account owner.
record.vehicleIdstringUse 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.vehicleNamestringThe 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.kindone of service, fuel, charge, trip, damageType 'log': service, fuel, charge, trip or damage. Required for a log.
record.datestringType 'log': when it happened. Required for a log.
record.titlestringShort label for the entry, e.g. 'Front brake pads'.
record.totalCostnumberTotal cost of this entry (repair, fuel, charge).
record.sourceone of manual, sahai, gmail, bankWhere the entry came from. Set by the ingestion pipeline; leave unset.
record.serviceTypeone of oil_change, tire_rotation, tires, brakes, battery, inspection, fluids, filter, spark_plugs, repair, detailing, otherFor kind 'service'.
record.vendorstringShop name (for kind 'service').
record.isDiybooleanDid it themselves (for kind 'service').
record.laborCostnumber
record.partslist of objectParts used (for kind 'service'). Sending this replaces the entry's whole parts list.
record.volumenumberFuel added, in the vehicle's fuelUnit (for kind 'fuel').
record.pricePerUnitnumberPrice per liter or gallon, as the vehicle's fuelUnit (for kind 'fuel').
record.isFullTankbooleanFilled 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.kwhnumberEnergy added in kWh (for kind 'charge').
record.chargeLocationone of home, public, work, otherFor kind 'charge'.
record.tripMilesnumberMiles driven (for kind 'trip').
record.tripCategoryone of business, personal, medical, charity, movingFor kind 'trip'. Server default is 'business' when omitted: pass 'personal' explicitly for non-deductible trips.
record.tripPurposestringWhy the trip happened (for kind 'trip').
record.damageSeverityone of minor, moderate, majorFor kind 'damage'.
record.damageLocationstringWhere on the vehicle, e.g. 'front bumper' (for kind 'damage').
record.damageRepairedbooleanWhether it's been repaired (for kind 'damage').
vehicleIdstringWith campaignNumber: the vehicle.
campaignNumberstringExact NHTSA campaign number from the vehicle's recalls list.
resolvedbooleantrue = the user had it fixed / not applicable; false = reopen.
Example input
{
  "record": {
    "id": "veh_rav4",
    "odometer": 32000
  }
}
garage_removeDeletethrough vritto_delete

Remove (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.

FieldTypeDescription
idstringThe record to remove.
typeone of vehicle, logRecord type: 'vehicle' (default) a car or motorcycle; 'log' a logbook entry (service, fuel, charge, trip or damage).
vehicleIdstringOlder name for a vehicle's id.
logIdstringOlder name for a log's id.

VIN Decodervin_catalog

Vehicle details decoded from a VIN.

garage_decodeVinLook Upthrough vritto_lookup

Decode a 17-character VIN via NHTSA into make/model/year/trim/vehicleType/powertrain. Read-only lookup; use to pre-fill fields before garage_add.

FieldTypeDescription
vin*stringThe VIN to decode.

Kept in the Vritto app

  • garage_refreshRecalls: Background upkeep Vritto already runs on its own.