Skip to main content

inventory.vehicle

A vehicle lookup accepts VIN, stock, or vehicle_id and returns one complete vehicle with current status, price, fees, and updated_at

A2A invocation

This skill is invoked through A2A's SendMessage operation — the single A2A operation AAP v1.3.0 uses — not a dedicated REST URL. It travels as the SendMessage JSON-RPC method on AAP's sole transport, the JSON-RPC binding. (The HTTP+JSON binding was removed in v1.1.0.) AAP only defines what goes inside Message.parts[].data.

The inventory.vehicle skill returns the full detail of a single vehicle. The buyer agent identifies the vehicle by VIN, stock number, or dealer-internal vehicle_id.

PropertyValue
Skill idinventory.vehicle
Request typeinventory.vehicle.request
Response typeinventory.vehicle.response
Anonymous allowedyes
Consent requiredno
ADF compatibleno

Request shape

{
"type": "inventory.vehicle.request",
"vin": "string (17 chars, ISO 3779)",
"stock": "string",
"vehicle_id": "string"
}
FieldTypeRequiredDescription
typeconstyesinventory.vehicle.request.
vinstringconditional17-char VIN. Preferred when known.
stockstringconditionalDealer's stock number. Used when VIN is not yet assigned.
vehicle_idstringconditionalDealer-internal identifier (e.g. for in-transit units).

The request MUST include at least one of vin, stock, or vehicle_id (anyOf). Sending more than one is allowed; the dealer agent uses the most specific match.

Response shape

The response wraps a Vehicle object — a Vehicle plus arbitrary additional dealer-specific properties (additionalProperties: true).

{
"type": "inventory.vehicle.response",
"data": {
"...Vehicle (all fields)": "...",
"...optional extra dealer-specific fields": "e.g. carfax_url, warranty, title_status"
},
"message": "Optional contextual note."
}

data SHOULD include vin or stock (recommended for any availability claim) and the identification fields year, make, model to be useful. condition (when present) MUST be one of new | used | cpo. data MUST include updated_at whenever the agent is making availability claims about this listing — see Behavior rules.

The optional vehicle_type field (car | motorcycle | trailer | rv | other) scopes the type-specific detail fields; a listing without vehicle_type is treated as car. Motorcycle detail responses (vehicle_type: "motorcycle") carry the class-agnostic body/segment and displacement_cc, with niche specs (final_drive, engine_stroke, wheel_count, abs) in other_attributes, instead of the car-oriented driveline, interior_color, city_mpg, and highway_mpg.

Electric units (BEV/PHEV, any vehicle type) carry a generic electric-powertrain group: electric_range_mi, battery_kwh, motor_power_hp, dc_fast_charge, and charge_port. These are the same fields whether the unit is an electric car or an electric motorcycle, so combustion-only fields like displacement_cc are simply omitted.

Pricing fields:

FieldAlways present?Notes
msrpoptionalSticker price set by the OEM.
list_priceoptionalBase advertised price before incentives and fees.
priceRECOMMENDED when completeAuthoritative advertised vehicle price including mandatory dealer charges and excluding government charges.
feesoptionalComplete effective itemization. With price, every amount is already included; without price, the itemization is informational and must not be used to derive a payable price. [] affirmatively means no mandatory dealer charges. See Pricing and fee disclosure.

Full example

Request

{
"type": "inventory.vehicle.request",
"vin": "1HGCV1F30KA000001"
}

Response

{
"type": "inventory.vehicle.response",
"data": {
"dealer_id": "dealer_demo_toyota",
"vin": "1HGCV1F30KA000001",
"stock": "T12345",
"year": 2022,
"make": "Honda",
"model": "Civic",
"trim": "EX",
"transmission": "automatic",
"exterior_color": "Crystal Black Pearl",
"interior_color": "Black",
"condition": "cpo",
"description": "One-owner CPO Civic EX with Honda Sensing.",
"driveline": "fwd",
"engine": "2.0L I4",
"fuel": "gas",
"city_mpg": 32,
"highway_mpg": 42,
"msrp": 26500,
"list_price": 24990,
"price": 26780,
"fees": [
{ "name": "Documentation fee", "amount": 500 },
{ "name": "Pre-installed theft protection", "amount": 1290 }
],
"mileage": 22150,
"rooftop": "Demo Toyota San Francisco",
"photos": [
"https://demo-toyota.example.com/photos/T12345-1.jpg",
"https://demo-toyota.example.com/photos/T12345-2.jpg"
],
"vdp_url": "https://demo-toyota.example.com/inventory/T12345",
"status": "available",
"notes": "Honda CPO eligible.",
"inventory_date": "2026-04-12",
"updated_at": "2026-04-30T10:15:00Z",
"features": [
"Adaptive Cruise Control",
"Lane Keeping Assist",
"Apple CarPlay",
"Heated Front Seats"
],
"carfax_url": "https://demo-toyota.example.com/carfax/T12345",
"warranty": "Honda True Certified+, 60 months remaining"
}
}

features is a declared field on the unified Vehicle. The response above also includes extra dealer-specific properties (carfax_url, warranty) that are not part of the base Vehicle schema; AAP allows them via the Vehicle's additionalProperties: true (other common extras include title_status).

Errors

  • VEHICLE_NOT_FOUND — none of the supplied identifiers match a listing.
  • VEHICLE_UNAVAILABLE — the listing exists but is no longer available (e.g. its status is no longer one of available | intransit | pending).

See Errors for full semantics.