Agentic Dealer Network
Server Details
Live franchised-dealer inventory, quotes, and consented salesperson handoffs.
- Status
- Healthy
- Uptime
- 99.9% over 56 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 12 tools
Most tools have clearly distinct purposes (inventory detail, stats, comparables, search, snapshot, sync). However, deal_quote and quote_preview both return out-the-door quotes and differ mainly by persistence/authentication, and network_directory vs stores overlap in rooftop information, creating possible misselection.
Names are consistently snake_case with meaningful domain prefixes (inventory_, network_, lead_), but the pattern mixes noun-based tools (inventory_comparables, network_snapshot) with verb-based ones (inventory_get, network_search). The standalone deal_quote, quote_preview, and stores also deviate slightly from the prefix pattern.
12 tools is well within the ideal 3-15 range and each tool serves a distinct operational need: search, detail, stats, comparables, pricing, leads, directory, and catalog sync. The scope feels appropriately sized without redundancy or bloat.
The tool surface covers the core vehicle-shopping workflow: browse, search, detail, price quotes, lead preparation and submission, plus snapshot and delta sync. A minor gap is the lack of any tool to retrieve or manage a deal thread created via authenticated deal_quote calls, but this may be outside the intended scope.
Available Tools
12 toolsdeal_quoteRequest a quoteDestructiveIdempotentInspect
Out-the-door quote for one available unit at a named rooftop. Anonymous calls are stateless; authenticated calls persist a deal thread. Anonymous calls persist nothing; quote_preview is the read-only equivalent for browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | ||
| rooftop_slug | Yes | ||
| idempotency_key | No | Required when authenticated (durable quote); ignored meaningfully only with an agent key. |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
inventory_changesSync catalog changesRead-onlyIdempotentInspect
State synchronization for a mirror built from network_snapshot: pass the sync_cursor and receive upserts (current rows in the same view) and tombstones since that position, with has_more and next_cursor. Bounded eventual consistency: take a fresh snapshot at least every 24 hours and whenever resync_required is true. Example: {"cursor": ""}. Pass country=CA for Canadian dealers.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | ||
| cursor | Yes | ||
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
| rooftop_slug | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
inventory_comparablesCompare a vehicle's price to like unitsRead-onlyIdempotentInspect
Price context for one vehicle against like units across the network (same make, model, exact model year, condition; optional trim and geo). Example: {"identity": "", "rooftop_slug": "mms"} or {"make": "Subaru", "model": "Outback", "model_year": 2024, "condition": "used"}. Returns count, price quartiles, the subject's rank and up to 5 cheapest peers. Advertised prices only; call quote_preview for a total. Pass country=CA for Canadian dealers.
| Name | Required | Description | Default |
|---|---|---|---|
| make | No | ||
| trim | No | ||
| model | No | ||
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
| currency | No | ||
| identity | No | ||
| latitude | No | ||
| condition | No | ||
| longitude | No | ||
| model_year | No | ||
| radius_miles | No | ||
| rooftop_slug | No | ||
| model_year_expand | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
inventory_getGet vehicle detailsRead-onlyIdempotentInspect
Fetch one available unit by identity (VIN) from a named rooftop (rooftop_slug from network_search results). Returns the full detail shape — ordered photo gallery, options, plain-text description; embed the first few photo_urls as markdown images when presenting the vehicle. Unknown or ineligible identity/rooftop returns unit_not_found. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Optional consistency assertion: must equal the rooftop's country; omit it unless you are checking. | |
| identity | Yes | ||
| rooftop_slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
inventory_statsCount and summarize network inventoryRead-onlyIdempotentInspect
Aggregate available inventory across the network in ONE call: counts, effective-price min/median/max and the top values per facet. Example: {"dimensions": ["make_model", "body_style"], "condition": "used", "rooftop_slugs": ["mms"]}. Geo (latitude and longitude, optional radius_miles) and oem_program_slug scope exactly as network_search. Pivot mode (group_by, up to 2 of the facets plus state, dealer_group, price_band, age_band) returns one row per group with count and medians; dimensions and group_by are mutually exclusive; format csv returns the rows as CSV. Pass country=CA for Canadian dealers.
| Name | Required | Description | Default |
|---|---|---|---|
| make | No | ||
| trim | No | ||
| model | No | ||
| format | No | ||
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
| group_by | No | ||
| latitude | No | ||
| condition | No | ||
| fuel_type | No | ||
| longitude | No | ||
| price_max | No | Maximum expiry-gated effective price. | |
| price_min | No | Minimum expiry-gated effective price. | |
| body_style | No | ||
| dimensions | No | One to four unique facets. make_model values join nonblank make and model with one space; rooftop values are rooftop slugs. | |
| drivetrain | No | ||
| listed_only | No | When true, only units with at least one stored photo and a vehicle detail page (vdp_url). Absent or false returns every available unit, including stock the dealer has not merchandised yet. | |
| is_certified | No | ||
| odometer_max | No | ||
| radius_miles | No | ||
| transmission | No | ||
| rooftop_slugs | No | Restrict the single-snapshot aggregation to these network rooftops. | |
| exterior_color | No | ||
| interior_color | No | ||
| model_year_max | No | ||
| model_year_min | No | ||
| oem_program_slug | No | ||
| passenger_capacity_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
lead_prepareAsk the dealership to reach out — prepareRead-onlyIdempotentInspect
Prepare a named dealership's exact contact disclosure and a short-lived signed binding.
| Name | Required | Description | Default |
|---|---|---|---|
| channels | Yes | ||
| comments | No | ||
| customer | Yes | ||
| rooftop_slug | Yes | ||
| include_quote | No | Set false when the shopper was not shown a quote: the disclosure then makes no price claim and quote_included is false. | |
| unit_identity | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
lead_submitAsk the dealership to reach out — confirmDestructiveIdempotentInspect
Submit the shopper's bound contact request to the named dealership.
| Name | Required | Description | Default |
|---|---|---|---|
| binding | Yes | ||
| comments | No | ||
| customer | Yes | ||
| rooftop_slug | Yes | ||
| disclosure_text | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
network_directoryList dealershipsRead-onlyIdempotentInspect
Directory of active ADN rooftops: slug, name, dealer group, OEM programs, location metadata, and per-rooftop manifest URL. Pass country=CA for Canadian dealers.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| offset | No | ||
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
network_searchSearch network inventoryRead-onlyIdempotentInspect
Browse available inventory across the network, one page at a time. For counts or distributions call inventory_stats; to copy the catalog call network_snapshot (one download replaces hundreds of pages). Results are slim summary rows; embed hero_photo_url as a markdown image when presenting a vehicle, and call inventory_get with rooftop_slug for its full photo gallery. Optional OEM program scope; optional geographic radius — latitude and longitude together; radius_miles defaults to 50 (max 500) and needs both. Rooftops without coordinates are excluded from geo-scoped results. Pass country=CA for Canadian dealers. Listed prices may exclude doc/government fees and tax — call quote_preview for the estimated total. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| make | No | ||
| sort | No | Optional ordering; defaults to price_asc. The sort key uses NULLS LAST and is deterministically terminated by rooftop and unit ids. distance requires latitude and longitude (radius_miles defaults to 50). | |
| trim | No | ||
| view | No | summary | |
| limit | No | 1–500 with view manifest; 1–50 for summary and full (server-enforced) | |
| model | No | ||
| format | No | json | |
| offset | No | Zero-based row offset. Results are totally ordered and stable for an unchanged catalog, but pagination is NOT snapshot-isolated: ingestion between two page requests shifts offsets, so a traversal may duplicate or omit rows. To copy the catalog consistently: record catalog_watermark AND total from the first page, compare both on every subsequent page, and restart the traversal if either changes. Narrowing by rooftop_slug shortens each traversal and so reduces the chance of a restart. Offsets beyond 10000 are rejected; narrow the query instead. | |
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
| latitude | No | ||
| condition | No | ||
| fuel_type | No | ||
| longitude | No | ||
| price_max | No | Maximum expiry-gated effective price: an unexpired special price when present, otherwise asking price. | |
| price_min | No | Minimum expiry-gated effective price: an unexpired special price when present, otherwise asking price. | |
| body_style | No | ||
| drivetrain | No | ||
| listed_only | No | When true, only units with at least one stored photo and a vehicle detail page (vdp_url). Absent or false returns every available unit, including stock the dealer has not merchandised yet. | |
| is_certified | No | ||
| odometer_max | No | ||
| radius_miles | No | ||
| rooftop_slug | No | Restrict results to one rooftop, as listed by network_directory. A slug that matches no rooftop returns no results rather than an error. | |
| transmission | No | ||
| rooftop_slugs | No | Restrict results to these network rooftops. | |
| exterior_color | No | ||
| interior_color | No | ||
| model_year_max | No | ||
| model_year_min | No | ||
| oem_program_slug | No | ||
| passenger_capacity_min | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
network_snapshotExport the catalogRead-onlyIdempotentInspect
Export the whole network catalog (or one rooftop with rooftop_slug) as one gzip artifact instead of paging: returns a descriptor with a generation URL, strong ETag, row and byte counts, expiry and (when available) sync_cursor; small results are inlined as rows_inline. Views: manifest (identity, pricing, key attributes; default), summary (the network_search row), full (the inventory_get row). Formats: csv (default), json. Example: {"view": "manifest", "format": "csv"}. Re-download only when the ETag changes; poll inventory_changes with sync_cursor to stay current. Pass country=CA for Canadian dealers.
| Name | Required | Description | Default |
|---|---|---|---|
| view | No | manifest | |
| format | No | csv | |
| country | No | Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles. | US |
| rooftop_slug | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
quote_previewPreview an out-the-door priceRead-onlyIdempotentInspect
Read-only out-the-door price preview for one available unit at a named rooftop (pass rooftop_slug): base price plus itemized fees and taxes — fees already included in the listed price are flagged included_in_price and add nothing on top. Persists nothing; free to call while browsing. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer. Totals are estimates at best; when pricing_coverage is "partial_estimate", present the total as a subtotal excluding the charges in excluded. Always relay pricing_disclosure.
| Name | Required | Description | Default |
|---|---|---|---|
| identity | Yes | ||
| rooftop_slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
storesGet dealership detailsRead-onlyIdempotentInspect
One named rooftop's store record: name, dealer group, OEM programs, location/contact metadata, and fee schedule. Pass rooftop_slug. Whether a specific unit's listed price already includes a fee varies per unit — quote_preview returns the estimated total. Fee schedules may be incomplete — an unlisted fee is not a guarantee that no such fee applies; confirm final charges with the dealer.
| Name | Required | Description | Default |
|---|---|---|---|
| rooftop_slug | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| data | No | |
| error | No | Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message "unknown thread_id" (anti-enumeration). |
| freshness | No |
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
12 tool updates
- Changed
deal_quote1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "durable": { + "type": "boolean" + }, + "expires_at": { + "format": "date-time", + "type": [ + "string", + "null" + ] + }, + "freshness_disclosure": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + }, + "generated_at": { + "format": "date-time", + "type": "string" + }, + "inventory_last_seen_at": { + "format": "date-time", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "generated_at", + "inventory_last_seen_at", + "by_rooftop" + ], + "type": "object" + }, + "pricing": { + "additionalProperties": false, + "dependentRequired": { + "excluded": [ + "pricing_coverage", + "pricing_disclosure" + ], + "pricing_coverage": [ + "excluded", + "pricing_disclosure" + ], + "pricing_disclosure": [ + "pricing_coverage", + "excluded" + ] + }, + "properties": { + "base_price": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "currency": { + "const": "USD" + }, + "excluded": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "sales_tax", + "title", + "registration" + ] + }, + "label": { + "maxLength": 40, + "type": "string" + }, + "reason": { + "const": "varies_by_location" + } + }, + "required": [ + "code", + "label", + "reason" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "fees_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "line_items": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "basis": { + "enum": [ + "firm", + "estimated" + ] + }, + "category": { + "maxLength": 40, + "type": "string" + }, + "code": { + "maxLength": 80, + "type": "string" + }, + "fee_type": { + "enum": [ + "flat", + "percent" + ] + }, + "included_in_price": { + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "taxable": { + "type": "boolean" + } + }, + "required": [ + "code", + "label", + "category", + "fee_type", + "amount", + "taxable" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "otd_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "pricing_coverage": { + "enum": [ + "otd_estimate", + "partial_estimate" + ] + }, + "pricing_disclosure": { + "maxLength": 500, + "type": "string" + }, + "tax_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + } + }, + "required": [ + "base_price", + "fees_total", + "tax_total", + "otd_total", + "currency", + "line_items" + ], + "type": "object" + }, + "quote_id": { + "oneOf": [ + { + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "thread_id": { + "oneOf": [ + { + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "unit": { + "additionalProperties": false, + "properties": { + "condition": { + "enum": [ + "new", + "used" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model" + ], + "type": "object" + } + }, + "required": [ + "durable", + "thread_id", + "quote_id", + "expires_at", + "unit", + "pricing", + "assumptions", + "freshness_disclosure" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
inventory_changes1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "catalog_version": { + "type": "string" + }, + "has_more": { + "type": "boolean" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "next_cursor": { + "maxLength": 2048, + "minLength": 8, + "type": "string" + }, + "resync_required": { + "type": "boolean" + }, + "round_upper": { + "format": "date-time", + "type": "string" + }, + "rows_emitted": { + "maximum": 500, + "minimum": 0, + "type": "integer" + }, + "rows_scanned": { + "maximum": 5000, + "minimum": 0, + "type": "integer" + }, + "scope": { + "anyOf": [ + { + "pattern": "^network:(?:US|CA)$", + "type": "string" + }, + { + "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$", + "type": "string" + } + ] + }, + "tombstones": { + "items": { + "additionalProperties": false, + "properties": { + "changed_at": { + "format": "date-time", + "type": "string" + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "identity", + "changed_at" + ], + "type": "object" + }, + "maxItems": 500, + "type": "array" + }, + "upserts": { + "items": { + "anyOf": [ + { + "additionalProperties": false, + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "condition": { + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "date_in_stock": { + "format": "date", + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "rooftop_slug", + "identity", + "stock_number", + "condition", + "is_certified", + "model_year", + "make", + "model", + "trim", + "currency", + "asking_price", + "special_price", + "special_expiry", + "effective_price", + "effective_price_source", + "msrp", + "odometer", + "odometer_unit", + "body_style", + "date_in_stock", + "vdp_url", + "price_basis" + ], + "type": "object" + }, + { + "allOf": [ + { + "description": "The slim public projection of one inventory search result. Heavy merchandising fields are available through inventory_get.", + "not": { + "anyOf": [ + { + "required": [ + "photo_urls" + ] + }, + { + "required": [ + "options" + ] + }, + { + "required": [ + "description" + ] + }, + { + "required": [ + "date_in_stock" + ] + } + ] + }, + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description_snippet": { + "maxLength": 200, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "hero_photo_url": { + "maxLength": 300, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options_count": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_count": { + "maximum": 60, + "minimum": 0, + "type": "integer" + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "hero_photo_url", + "photo_count", + "options_count", + "description_snippet", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "properties": { + "distance_km": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "distance_miles": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rooftop_name": { + "maxLength": 200, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "rooftop_name" + ], + "type": "object" + } + ] + }, + { + "allOf": [ + { + "description": "The public projection of one inventory unit. No source attributes, internal ids, or ingest metadata ever appear here.", + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description": { + "maxLength": 10000, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 100, + "type": [ + "array", + "null" + ] + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_urls": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 60, + "type": [ + "array", + "null" + ] + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "properties": { + "distance_km": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "distance_miles": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rooftop_name": { + "maxLength": 200, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "rooftop_name" + ], + "type": "object" + } + ] + } + ] + }, + "maxItems": 500, + "type": "array" + }, + "view": { + "enum": [ + "manifest", + "summary", + "full" + ] + } + }, + "required": [ + "scope", + "view", + "upserts", + "tombstones", + "has_more", + "next_cursor", + "catalog_version", + "resync_required", + "round_upper", + "rows_scanned", + "rows_emitted" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
inventory_comparables1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "catalog_version": { + "type": "string" + }, + "cheapest": { + "items": { + "allOf": [ + { + "description": "The slim public projection of one inventory search result. Heavy merchandising fields are available through inventory_get.", + "not": { + "anyOf": [ + { + "required": [ + "photo_urls" + ] + }, + { + "required": [ + "options" + ] + }, + { + "required": [ + "description" + ] + }, + { + "required": [ + "date_in_stock" + ] + } + ] + }, + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description_snippet": { + "maxLength": 200, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "hero_photo_url": { + "maxLength": 300, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options_count": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_count": { + "maximum": 60, + "minimum": 0, + "type": "integer" + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "hero_photo_url", + "photo_count", + "options_count", + "description_snippet", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "properties": { + "distance_km": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "distance_miles": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rooftop_name": { + "maxLength": 200, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "rooftop_name" + ], + "type": "object" + } + ] + }, + "maxItems": 5, + "type": "array" + }, + "count": { + "minimum": 0, + "type": "integer" + }, + "disclosure": { + "enum": [ + "Advertised prices only; call quote_preview for an estimated total.", + "Advertised prices only, as published by the dealer." + ] + }, + "filters_applied": { + "additionalProperties": false, + "properties": { + "condition": { + "enum": [ + "new", + "used" + ] + }, + "currency": { + "pattern": "^[A-Z]{3}$", + "type": "string" + }, + "make": { + "type": "string" + }, + "model": { + "type": "string" + }, + "model_year": { + "type": "integer" + }, + "model_year_expand": { + "enum": [ + 0, + 1 + ], + "type": "integer" + }, + "radius_miles": { + "exclusiveMinimum": 0, + "maximum": 500, + "type": "number" + }, + "trim": { + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "make", + "model", + "model_year", + "model_year_expand", + "currency" + ], + "type": "object" + }, + "low_sample": { + "type": "boolean" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "price": { + "additionalProperties": false, + "properties": { + "max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "p25": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "p75": { + "minimum": 0, + "type": [ + "number", + "null" + ] + } + }, + "required": [ + "min", + "p25", + "median", + "p75", + "max" + ], + "type": "object" + }, + "priced_count": { + "minimum": 0, + "type": "integer" + }, + "subject": { + "oneOf": [ + { + "type": "null" + }, + { + "additionalProperties": false, + "properties": { + "identity": { + "type": "string" + }, + "price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rank": { + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "rooftop_slug": { + "type": "string" + }, + "ties": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "identity", + "rooftop_slug", + "price", + "rank", + "ties" + ], + "type": "object" + } + ] + } + }, + "required": [ + "filters_applied", + "count", + "priced_count", + "price", + "subject", + "cheapest", + "low_sample", + "disclosure", + "catalog_version" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
inventory_get2 fields changed- added
Input schema / properties / countryAdded value: +{ + "description": "Optional consistency assertion: must equal the rooftop's country; omit it unless you are checking.", + "enum": [ + "US", + "CA" + ], + "type": "string" +} - changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "unit": { + "allOf": [ + { + "description": "The public projection of one inventory unit. No source attributes, internal ids, or ingest metadata ever appear here.", + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description": { + "maxLength": 10000, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 100, + "type": [ + "array", + "null" + ] + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_urls": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 60, + "type": [ + "array", + "null" + ] + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "not": { + "required": [ + "date_in_stock" + ] + } + } + ] + } + }, + "required": [ + "unit" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
inventory_stats1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "catalog_watermark": { + "type": [ + "string", + "null" + ] + }, + "dimensions": { + "additionalProperties": false, + "description": "Contains one property for each requested dimension.", + "properties": { + "body_style": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "condition": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "drivetrain": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "exterior_color": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "fuel_type": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "make": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "make_model": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "model": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "model_year": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + }, + "rooftop": { + "additionalProperties": false, + "description": "values contains at most 20 nonmissing values ordered by count descending then value ascending. other_count covers nonmissing values outside the top 20; missing_count includes both null and blank strings.", + "properties": { + "missing_count": { + "minimum": 0, + "type": "integer" + }, + "other_count": { + "minimum": 0, + "type": "integer" + }, + "values": { + "items": { + "additionalProperties": false, + "properties": { + "count": { + "minimum": 1, + "type": "integer" + }, + "value": { + "type": "string" + } + }, + "required": [ + "value", + "count" + ], + "type": "object" + }, + "maxItems": 20, + "type": "array" + } + }, + "required": [ + "values", + "other_count", + "missing_count" + ], + "type": "object" + } + }, + "type": "object" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "price": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "priced_count", + "min", + "max", + "median" + ], + "type": "object" + }, + "rooftop_slugs_covered": { + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "total": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "dimensions", + "price", + "catalog_watermark" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "catalog_version": { + "type": "string" + }, + "catalog_watermark": { + "type": [ + "string", + "null" + ] + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "pivot": { + "additionalProperties": false, + "properties": { + "group_by": { + "items": { + "type": "string" + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true + }, + "missing": { + "additionalProperties": false, + "properties": { + "age_band": { + "type": "integer" + }, + "body_style": { + "type": "integer" + }, + "condition": { + "type": "integer" + }, + "dealer_group": { + "type": "integer" + }, + "drivetrain": { + "type": "integer" + }, + "exterior_color": { + "type": "integer" + }, + "fuel_type": { + "type": "integer" + }, + "make": { + "type": "integer" + }, + "make_model": { + "type": "integer" + }, + "model": { + "type": "integer" + }, + "model_year": { + "type": "integer" + }, + "price_band": { + "type": "integer" + }, + "rooftop": { + "type": "integer" + }, + "state": { + "type": "integer" + } + }, + "type": "object" + }, + "other": { + "oneOf": [ + { + "additionalProperties": false, + "properties": { + "age_band": { + "type": "string" + }, + "body_style": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "count": { + "minimum": 0, + "type": "integer" + }, + "days_in_stock_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "dealer_group": { + "type": "string" + }, + "dealer_group_name": { + "type": [ + "string", + "null" + ] + }, + "drivetrain": { + "type": "string" + }, + "exterior_color": { + "type": "string" + }, + "fuel_type": { + "type": "string" + }, + "make": { + "type": "string" + }, + "make_model": { + "type": "string" + }, + "model": { + "type": "string" + }, + "model_year": { + "type": "string" + }, + "odometer_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_band": { + "type": "string" + }, + "price_max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + }, + "rooftop": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "count", + "priced_count", + "price_min", + "price_median", + "price_max", + "odometer_median", + "days_in_stock_median" + ], + "type": "object" + }, + { + "type": "null" + } + ] + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "age_band": { + "type": "string" + }, + "body_style": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "count": { + "minimum": 0, + "type": "integer" + }, + "days_in_stock_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "dealer_group": { + "type": "string" + }, + "dealer_group_name": { + "type": [ + "string", + "null" + ] + }, + "drivetrain": { + "type": "string" + }, + "exterior_color": { + "type": "string" + }, + "fuel_type": { + "type": "string" + }, + "make": { + "type": "string" + }, + "make_model": { + "type": "string" + }, + "model": { + "type": "string" + }, + "model_year": { + "type": "string" + }, + "odometer_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_band": { + "type": "string" + }, + "price_max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + }, + "rooftop": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "count", + "priced_count", + "price_min", + "price_median", + "price_max", + "odometer_median", + "days_in_stock_median" + ], + "type": "object" + }, + "maxItems": 200, + "type": "array" + } + }, + "required": [ + "group_by", + "rows", + "other", + "missing" + ], + "type": "object" + }, + "price": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "priced_count", + "min", + "max", + "median" + ], + "type": "object" + }, + "rooftop_slugs_covered": { + "items": { + "type": "string" + }, + "maxItems": 20, + "type": "array", + "uniqueItems": true + }, + "total": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "total", + "pivot", + "price", + "catalog_watermark", + "catalog_version" + ], + "type": "object" + }, + { + "additionalProperties": false, + "properties": { + "catalog_version": { + "type": "string" + }, + "catalog_watermark": { + "type": [ + "string", + "null" + ] + }, + "csv": { + "type": "string" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "price": { + "additionalProperties": false, + "properties": { + "currency": { + "type": "string" + }, + "max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "currency", + "priced_count", + "min", + "max", + "median" + ], + "type": "object" + }, + "rows": { + "items": { + "additionalProperties": false, + "properties": { + "age_band": { + "type": "string" + }, + "body_style": { + "type": "string" + }, + "condition": { + "type": "string" + }, + "count": { + "minimum": 0, + "type": "integer" + }, + "days_in_stock_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "dealer_group": { + "type": "string" + }, + "dealer_group_name": { + "type": [ + "string", + "null" + ] + }, + "drivetrain": { + "type": "string" + }, + "exterior_color": { + "type": "string" + }, + "fuel_type": { + "type": "string" + }, + "make": { + "type": "string" + }, + "make_model": { + "type": "string" + }, + "model": { + "type": "string" + }, + "model_year": { + "type": "string" + }, + "odometer_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_band": { + "type": "string" + }, + "price_max": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_median": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "price_min": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "minimum": 0, + "type": "integer" + }, + "rooftop": { + "type": "string" + }, + "state": { + "type": "string" + } + }, + "required": [ + "count", + "priced_count", + "price_min", + "price_median", + "price_max", + "odometer_median", + "days_in_stock_median" + ], + "type": "object" + }, + "maxItems": 201, + "type": "array" + }, + "total": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "csv", + "rows", + "total", + "price", + "catalog_watermark", + "catalog_version" + ], + "type": "object" + } + ] + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
lead_prepare1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "binding": { + "maxLength": 16384, + "minLength": 1, + "type": "string" + }, + "disclosure_text": { + "maxLength": 5000, + "minLength": 10, + "type": "string" + }, + "expires_at": { + "format": "date-time", + "maxLength": 40, + "type": "string" + }, + "quote_included": { + "type": "boolean" + } + }, + "required": [ + "disclosure_text", + "binding", + "expires_at", + "quote_included" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
lead_submit1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "lead_id": { + "maxLength": 36, + "pattern": "^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$", + "type": "string" + }, + "status": { + "const": "accepted" + } + }, + "required": [ + "lead_id", + "status" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
network_directory1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "rooftops": { + "items": { + "additionalProperties": false, + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "available_units": { + "description": "null when the rooftop is not part of network aggregation (network opt-out)", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "city": { + "maxLength": 100, + "type": "string" + }, + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "dealer_group": { + "additionalProperties": false, + "properties": { + "name": { + "maxLength": 200, + "type": "string" + }, + "slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "hours": { + "type": "object" + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "limitations": { + "items": { + "type": "string" + }, + "type": "array" + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "manifest_url": { + "maxLength": 300, + "type": "string" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "new_units": { + "description": "null when the rooftop is not part of network aggregation (network opt-out)", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "oem_programs": { + "items": { + "maxLength": 80, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "phone": { + "maxLength": 30, + "type": "string" + }, + "price_median": { + "description": "null when the rooftop is not part of network aggregation (network opt-out)", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "priced_count": { + "description": "null when the rooftop is not part of network aggregation (network opt-out)", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "slug": { + "maxLength": 80, + "type": "string" + }, + "state": { + "maxLength": 50, + "type": "string" + }, + "top_makes": { + "items": { + "maxLength": 80, + "type": "string" + }, + "maxItems": 3, + "type": "array" + }, + "used_units": { + "description": "null when the rooftop is not part of network aggregation (network opt-out)", + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "website_url": { + "maxLength": 300, + "type": "string" + }, + "zip": { + "maxLength": 20, + "type": "string" + } + }, + "required": [ + "name", + "slug", + "country", + "dealer_group", + "oem_programs", + "available_units", + "new_units", + "used_units", + "top_makes", + "priced_count", + "price_median", + "freshness" + ], + "type": "object" + }, + "maxItems": 500, + "type": "array" + }, + "total": { + "minimum": 0, + "type": "integer" + } + }, + "required": [ + "rooftops", + "total" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
network_search1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "catalog_version": { + "type": "string" + }, + "catalog_watermark": { + "description": "Opaque revision token for the network catalog. Changes whenever an inventory ingestion is applied anywhere in the network; monotonic per catalog but carries NO timestamp semantics — compare for equality only. Null before the first ingest. Covers ingestion only: administrative reconfiguration (rooftop activation, exclusion rules, coordinates) can shift result rows without changing this token — most such events also change total, which the traversal recipe compares as well.", + "type": [ + "string", + "null" + ] + }, + "count": { + "minimum": 0, + "type": "integer" + }, + "csv": { + "type": "string" + }, + "format": { + "enum": [ + "json", + "csv" + ] + }, + "has_more": { + "type": "boolean" + }, + "hint": { + "additionalProperties": false, + "properties": { + "arguments": { + "type": "object" + }, + "reason": { + "enum": [ + "page_cap", + "deep_offset" + ] + }, + "tool": { + "enum": [ + "inventory_stats", + "network_snapshot" + ] + } + }, + "required": [ + "tool", + "arguments", + "reason" + ], + "type": "object" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "next_offset": { + "minimum": 0, + "type": "integer" + }, + "total": { + "minimum": 0, + "type": "integer" + }, + "units": { + "items": { + "anyOf": [ + { + "allOf": [ + { + "description": "The slim public projection of one inventory search result. Heavy merchandising fields are available through inventory_get.", + "not": { + "anyOf": [ + { + "required": [ + "photo_urls" + ] + }, + { + "required": [ + "options" + ] + }, + { + "required": [ + "description" + ] + }, + { + "required": [ + "date_in_stock" + ] + } + ] + }, + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description_snippet": { + "maxLength": 200, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "hero_photo_url": { + "maxLength": 300, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options_count": { + "maximum": 100, + "minimum": 0, + "type": "integer" + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_count": { + "maximum": 60, + "minimum": 0, + "type": "integer" + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "hero_photo_url", + "photo_count", + "options_count", + "description_snippet", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "properties": { + "distance_km": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "distance_miles": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rooftop_name": { + "maxLength": 200, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "rooftop_name" + ], + "type": "object" + } + ] + }, + { + "additionalProperties": false, + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "condition": { + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "date_in_stock": { + "format": "date", + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "rooftop_slug", + "identity", + "stock_number", + "condition", + "is_certified", + "model_year", + "make", + "model", + "trim", + "currency", + "asking_price", + "special_price", + "special_expiry", + "effective_price", + "effective_price_source", + "msrp", + "odometer", + "odometer_unit", + "body_style", + "date_in_stock", + "vdp_url", + "price_basis" + ], + "type": "object" + }, + { + "allOf": [ + { + "description": "The public projection of one inventory unit. No source attributes, internal ids, or ingest metadata ever appear here.", + "properties": { + "asking_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "body_style": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "carfax_one_owner": { + "type": [ + "boolean", + "null" + ] + }, + "carfax_report_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "city_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "condition": { + "description": "Normalized vehicle condition. CLOSED vocabulary: ADN normalizes every dealer feed into exactly these values at ingestion, and the database enforces them, so consumers may switch on this field exhaustively. Certification is separate — see is_certified.", + "enum": [ + "new", + "used" + ] + }, + "currency": { + "maxLength": 3, + "type": [ + "string", + "null" + ] + }, + "description": { + "maxLength": 10000, + "type": [ + "string", + "null" + ] + }, + "doors": { + "maximum": 10, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "drivetrain": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "effective_price": { + "description": "An unexpired special price when present, otherwise asking price; null when neither is available.", + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "effective_price_source": { + "description": "The field selected for effective_price, or null when effective_price is null.", + "enum": [ + "special_price", + "asking_price", + null + ] + }, + "engine": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "engine_cylinders": { + "maximum": 16, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "engine_displacement": { + "maxLength": 80, + "minLength": 1, + "type": [ + "string", + "null" + ] + }, + "exterior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "fuel_type": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "highway_mpg": { + "maximum": 999, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "interior_color": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "is_certified": { + "type": [ + "boolean", + "null" + ] + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + }, + "msrp": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "odometer": { + "minimum": 0, + "type": [ + "integer", + "null" + ] + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + }, + "options": { + "items": { + "maxLength": 100, + "type": "string" + }, + "maxItems": 100, + "type": [ + "array", + "null" + ] + }, + "passenger_capacity": { + "maximum": 20, + "minimum": 1, + "type": [ + "integer", + "null" + ] + }, + "photo_urls": { + "items": { + "maxLength": 300, + "type": "string" + }, + "maxItems": 60, + "type": [ + "array", + "null" + ] + }, + "price_basis": { + "const": "dealer_published", + "type": "string" + }, + "provenance": { + "additionalProperties": false, + "properties": { + "enriched_fields": { + "items": { + "enum": [ + "photo_urls", + "options", + "description", + "vdp_url", + "video_url", + "city_mpg", + "highway_mpg", + "doors", + "passenger_capacity", + "engine_cylinders", + "engine_displacement", + "carfax_one_owner", + "carfax_report_url", + "is_certified", + "trim", + "body_style", + "transmission", + "drivetrain", + "asking_price" + ] + }, + "maxItems": 19, + "type": "array", + "uniqueItems": true + }, + "merch_updated_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "merch_updated_at", + "enriched_fields" + ], + "type": "object" + }, + "special_expiry": { + "format": "date", + "maxLength": 10, + "type": [ + "string", + "null" + ] + }, + "special_price": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "stock_number": { + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "transmission": { + "maxLength": 80, + "type": [ + "string", + "null" + ] + }, + "trim": { + "maxLength": 120, + "type": [ + "string", + "null" + ] + }, + "vdp_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + }, + "video_url": { + "maxLength": 500, + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model", + "odometer_unit", + "price_basis" + ], + "type": "object" + }, + { + "properties": { + "distance_km": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "distance_miles": { + "minimum": 0, + "type": [ + "number", + "null" + ] + }, + "rooftop_name": { + "maxLength": 200, + "type": "string" + }, + "rooftop_slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "rooftop_slug", + "rooftop_name" + ], + "type": "object" + } + ] + } + ] + }, + "maxItems": 500, + "type": "array" + }, + "view": { + "enum": [ + "summary", + "manifest", + "full" + ] + } + }, + "required": [ + "total", + "count", + "units", + "catalog_watermark", + "has_more", + "catalog_version" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
network_snapshot1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "as_of_business_date": { + "format": "date", + "type": "string" + }, + "bytes": { + "minimum": 0, + "type": "integer" + }, + "bytes_compressed": { + "minimum": 0, + "type": "integer" + }, + "catalog_version": { + "type": "string" + }, + "etag": { + "type": "string" + }, + "expires_at": { + "format": "date-time", + "type": "string" + }, + "format": { + "enum": [ + "csv", + "json" + ] + }, + "generated_at": { + "format": "date-time", + "type": "string" + }, + "market": { + "additionalProperties": false, + "properties": { + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "currency": { + "type": "string" + }, + "odometer_unit": { + "enum": [ + "mi", + "km" + ], + "type": "string" + } + }, + "required": [ + "country", + "currency", + "odometer_unit" + ], + "type": "object" + }, + "rows": { + "minimum": 0, + "type": "integer" + }, + "rows_inline": { + "items": { + "type": "object" + }, + "type": "array" + }, + "schema_version": { + "const": 1 + }, + "scope": { + "anyOf": [ + { + "pattern": "^network:(?:US|CA)$", + "type": "string" + }, + { + "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$", + "type": "string" + } + ] + }, + "snapshot_id": { + "pattern": "^[0-9a-f]{24}$", + "type": "string" + }, + "sync_cursor": { + "type": "string" + }, + "url": { + "format": "uri", + "type": "string" + }, + "view": { + "enum": [ + "manifest", + "summary", + "full" + ] + } + }, + "required": [ + "snapshot_id", + "schema_version", + "scope", + "view", + "format", + "generated_at", + "as_of_business_date", + "rows", + "bytes", + "bytes_compressed", + "etag", + "url", + "expires_at", + "catalog_version" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
quote_preview1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "assumptions": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 50, + "type": "array" + }, + "freshness_disclosure": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + }, + "generated_at": { + "format": "date-time", + "type": "string" + }, + "inventory_last_seen_at": { + "format": "date-time", + "type": [ + "string", + "null" + ] + } + }, + "required": [ + "generated_at", + "inventory_last_seen_at", + "by_rooftop" + ], + "type": "object" + }, + "pricing": { + "additionalProperties": false, + "dependentRequired": { + "excluded": [ + "pricing_coverage", + "pricing_disclosure" + ], + "pricing_coverage": [ + "excluded", + "pricing_disclosure" + ], + "pricing_disclosure": [ + "pricing_coverage", + "excluded" + ] + }, + "properties": { + "base_price": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "currency": { + "const": "USD" + }, + "excluded": { + "items": { + "additionalProperties": false, + "properties": { + "code": { + "enum": [ + "sales_tax", + "title", + "registration" + ] + }, + "label": { + "maxLength": 40, + "type": "string" + }, + "reason": { + "const": "varies_by_location" + } + }, + "required": [ + "code", + "label", + "reason" + ], + "type": "object" + }, + "maxItems": 3, + "type": "array" + }, + "fees_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "line_items": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "basis": { + "enum": [ + "firm", + "estimated" + ] + }, + "category": { + "maxLength": 40, + "type": "string" + }, + "code": { + "maxLength": 80, + "type": "string" + }, + "fee_type": { + "enum": [ + "flat", + "percent" + ] + }, + "included_in_price": { + "type": "boolean" + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "taxable": { + "type": "boolean" + } + }, + "required": [ + "code", + "label", + "category", + "fee_type", + "amount", + "taxable" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + }, + "otd_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + }, + "pricing_coverage": { + "enum": [ + "otd_estimate", + "partial_estimate" + ] + }, + "pricing_disclosure": { + "maxLength": 500, + "type": "string" + }, + "tax_total": { + "description": "Exact decimal amount with two places (never a JSON float).", + "pattern": "^-?[0-9]+\\.[0-9]{2}$", + "type": "string" + } + }, + "required": [ + "base_price", + "fees_total", + "tax_total", + "otd_total", + "currency", + "line_items" + ], + "type": "object" + }, + "unit": { + "additionalProperties": false, + "properties": { + "condition": { + "enum": [ + "new", + "used" + ] + }, + "identity": { + "maxLength": 30, + "minLength": 5, + "type": "string" + }, + "make": { + "maxLength": 80, + "type": "string" + }, + "model": { + "maxLength": 80, + "type": "string" + }, + "model_year": { + "maximum": 2100, + "minimum": 1950, + "type": "integer" + } + }, + "required": [ + "identity", + "condition", + "model_year", + "make", + "model" + ], + "type": "object" + } + }, + "required": [ + "unit", + "pricing", + "assumptions", + "freshness_disclosure" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
- Changed
stores1 field changed- changed
Output schema / (root)Previous value: -nullNew value: +{ + "additionalProperties": false, + "properties": { + "data": { + "additionalProperties": false, + "properties": { + "store": { + "allOf": [ + { + "description": "The public projection of one rooftop's store metadata. NULL holders are omitted, never fabricated.", + "properties": { + "address": { + "maxLength": 200, + "type": "string" + }, + "city": { + "maxLength": 100, + "type": "string" + }, + "country": { + "enum": [ + "US", + "CA" + ], + "type": "string" + }, + "dealer_group": { + "additionalProperties": false, + "properties": { + "name": { + "maxLength": 200, + "type": "string" + }, + "slug": { + "maxLength": 80, + "type": "string" + } + }, + "required": [ + "name", + "slug" + ], + "type": "object" + }, + "hours": { + "type": "object" + }, + "latitude": { + "maximum": 90, + "minimum": -90, + "type": "number" + }, + "limitations": { + "items": { + "maxLength": 500, + "type": "string" + }, + "maxItems": 1, + "type": "array" + }, + "longitude": { + "maximum": 180, + "minimum": -180, + "type": "number" + }, + "manifest_url": { + "maxLength": 300, + "type": "string" + }, + "name": { + "maxLength": 200, + "type": "string" + }, + "oem_programs": { + "items": { + "maxLength": 80, + "type": "string" + }, + "maxItems": 20, + "type": "array" + }, + "phone": { + "maxLength": 30, + "type": "string" + }, + "slug": { + "maxLength": 80, + "type": "string" + }, + "state": { + "maxLength": 50, + "type": "string" + }, + "website_url": { + "maxLength": 300, + "type": "string" + }, + "zip": { + "maxLength": 20, + "type": "string" + } + }, + "required": [ + "name", + "slug", + "country", + "dealer_group", + "oem_programs" + ], + "type": "object" + }, + { + "properties": { + "fee_schedule": { + "items": { + "additionalProperties": false, + "properties": { + "amount": { + "minimum": 0, + "type": "number" + }, + "applies_to": { + "enum": [ + "new", + "used", + "all" + ] + }, + "category": { + "enum": [ + "fee", + "tax", + "title_reg" + ] + }, + "code": { + "maxLength": 60, + "type": "string" + }, + "effective_from": { + "format": "date", + "type": "string" + }, + "fee_type": { + "enum": [ + "flat", + "percent" + ] + }, + "jurisdiction": { + "maxLength": 60, + "type": [ + "string", + "null" + ] + }, + "label": { + "maxLength": 200, + "type": "string" + }, + "taxable": { + "type": "boolean" + } + }, + "required": [ + "code", + "label", + "category", + "fee_type", + "amount" + ], + "type": "object" + }, + "maxItems": 100, + "type": "array" + } + }, + "type": "object" + } + ] + } + }, + "required": [ + "store" + ], + "type": "object" + }, + "error": { + "additionalProperties": false, + "description": "Unknown and foreign thread ids are deliberately indistinguishable: both return invalid_params with message \"unknown thread_id\" (anti-enumeration).", + "properties": { + "auth_help_url": { + "description": "Present only when no credential was supplied for a capability that requires one. Points to human documentation for obtaining a key. Absent for invalid, pending, or disabled credentials, which are deliberately indistinguishable.", + "format": "uri", + "maxLength": 500, + "type": "string" + }, + "code": { + "enum": [ + "rooftop_not_found", + "rooftop_inactive", + "unit_not_found", + "invalid_params", + "rate_limited", + "upstream_unavailable", + "capability_unavailable", + "identity_required", + "quota_exceeded", + "unit_held", + "quote_expired", + "rooftop_paused", + "handoff_duplicate", + "idempotency_conflict", + "price_unavailable", + "snapshot_expired", + "artifact_too_large", + "cursor_invalid", + "cursor_expired", + "ambiguous_identity", + "unsupported_in_country" + ] + }, + "message": { + "maxLength": 500, + "type": "string" + }, + "retry_after_seconds": { + "minimum": 0, + "type": "integer" + }, + "retryable": { + "type": "boolean" + } + }, + "required": [ + "code", + "message", + "retryable" + ], + "type": "object" + }, + "freshness": { + "additionalProperties": false, + "properties": { + "by_rooftop": { + "additionalProperties": { + "additionalProperties": false, + "properties": { + "last_ingest_at": { + "format": "date-time", + "maxLength": 40, + "type": [ + "string", + "null" + ] + }, + "status": { + "enum": [ + "fresh", + "stale", + "no_data" + ] + } + }, + "required": [ + "status", + "last_ingest_at" + ], + "type": "object" + }, + "maxProperties": 500, + "type": "object" + } + }, + "required": [ + "by_rooftop" + ], + "type": "object" + } + }, + "type": "object" +}
2 tool updates
- Changed
inventory_stats1 field changed- added
Input schema / properties / listed_onlyAdded value: +{ + "description": "When true, only units with at least one stored photo and a vehicle detail page (vdp_url). Absent or false returns every available unit, including stock the dealer has not merchandised yet.", + "type": "boolean" +}
- Changed
network_search1 field changed- added
Input schema / properties / listed_onlyAdded value: +{ + "description": "When true, only units with at least one stored photo and a vehicle detail page (vdp_url). Absent or false returns every available unit, including stock the dealer has not merchandised yet.", + "type": "boolean" +}
1 tool update
- Changed
lead_prepare1 field changed- added
Input schema / properties / include_quoteAdded value: +{ + "default": true, + "description": "Set false when the shopper was not shown a quote: the disclosure then makes no price claim and quote_included is false.", + "type": "boolean" +}
1 tool update
- Changed
network_search1 field changed- added
Input schema / properties / rooftop_slugsAdded value: +{ + "description": "Restrict results to these network rooftops.", + "items": { + "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$", + "type": "string" + }, + "maxItems": 20, + "minItems": 1, + "type": "array", + "uniqueItems": true +}
1 tool update
- Changed
inventory_comparables1 field changed- added
Input schema / properties / currencyAdded value: +{ + "pattern": "^[A-Z]{3}$", + "type": "string" +}
6 tool updates
- Changed
inventory_changes2 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +} - added
Input schema / properties / rooftop_slugAdded value: +{ + "pattern": "^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$", + "type": "string" +}
- Changed
inventory_comparables2 fields changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +} - removed
Input schema / properties / currencyRemoved value: -{ - "pattern": "^[A-Z]{3}$", - "type": "string" -}
- Changed
inventory_stats1 field changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +}
- Changed
network_directory1 field changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +}
- Changed
network_search1 field changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +}
- Changed
network_snapshot1 field changed- added
Input schema / properties / countryAdded value: +{ + "default": "US", + "description": "Market to search; rooftops in the other country are excluded. Prices are in that country's currency; the radius stays in miles.", + "enum": [ + "US", + "CA" + ], + "type": "string" +}
6 tool updates
- Added
inventory_changes - Added
inventory_comparables - Changed
inventory_stats8 fields changed- changed
Input schema / descriptionPrevious value: -"Categorical arrays are ORed within their field; separate filter fields are ANDed together. Aggregation has no pagination or sorting input."New value: +"Categorical arrays are ORed within their field; separate filter fields are ANDed together. Aggregation has no pagination or sorting input. Server-enforced: latitude requires longitude; longitude requires latitude; radius_miles requires latitude and longitude. Exactly one of dimensions | group_by is required. Additional argument rules are enforced server-side." - added
Input schema / properties / formatAdded value: +{ + "enum": [ + "json", + "csv" + ] +} - added
Input schema / properties / group_byAdded value: +{ + "items": { + "enum": [ + "make", + "model", + "make_model", + "condition", + "body_style", + "fuel_type", + "drivetrain", + "exterior_color", + "model_year", + "rooftop", + "state", + "dealer_group", + "price_band", + "age_band" + ] + }, + "maxItems": 2, + "minItems": 1, + "type": "array", + "uniqueItems": true +} - added
Input schema / properties / latitudeAdded value: +{ + "maximum": 90, + "minimum": -90, + "type": "number" +} - added
Input schema / properties / longitudeAdded value: +{ + "maximum": 180, + "minimum": -180, + "type": "number" +} - added
Input schema / properties / oem_program_slugAdded value: +{ + "maxLength": 80, + "minLength": 1, + "type": "string" +} - added
Input schema / properties / radius_milesAdded value: +{ + "exclusiveMinimum": 0, + "maximum": 500, + "type": "number" +} - removed
Input schema / requiredRemoved value: -[ - "dimensions" -]
- Changed
lead_prepare2 fields changed- removed
Input schema / allOfRemoved value: -[ - { - "if": { - "properties": { - "customer": { - "required": [ - "email" - ] - } - } - }, - "then": { - "properties": { - "channels": { - "contains": { - "const": "email" - } - } - } - } - }, - { - "if": { - "properties": { - "customer": { - "required": [ - "phone" - ] - } - } - }, - "then": { - "properties": { - "channels": { - "contains": { - "const": "phone" - } - } - } - } - } -] - added
Input schema / descriptionAdded value: +"customer.email requires channels to include email. customer.phone requires channels to include phone."
- Changed
network_search7 fields changed- removed
Input schema / allOfRemoved value: -[ - { - "if": { - "properties": { - "sort": { - "const": "distance" - } - }, - "required": [ - "sort" - ] - }, - "then": { - "required": [ - "latitude", - "longitude" - ] - } - } -] - removed
Input schema / dependentRequiredRemoved value: -{ - "latitude": [ - "longitude" - ], - "longitude": [ - "latitude" - ], - "radius_miles": [ - "latitude", - "longitude" - ] -} - changed
Input schema / descriptionPrevious value: -"Categorical arrays are ORed within their field; separate filter fields are ANDed together. The default ordering is price_asc."New value: +"Categorical arrays are ORed within their field; separate filter fields are ANDed together. The default ordering is price_asc. Server-enforced: latitude requires longitude; longitude requires latitude; radius_miles requires latitude and longitude. sort = distance requires latitude and longitude. Additional argument rules are enforced server-side." - added
Input schema / properties / formatAdded value: +{ + "default": "json", + "enum": [ + "json", + "csv" + ] +} - added
Input schema / properties / limit / descriptionAdded value: +"1–500 with view manifest; 1–50 for summary and full (server-enforced)" - changed
Input schema / properties / limit / maximumPrevious value: -50New value: +500 - added
Input schema / properties / viewAdded value: +{ + "default": "summary", + "enum": [ + "summary", + "manifest", + "full" + ] +}
- Added
network_snapshot
1 tool update
- Changed
network_search4 fields changed- changed
Input schema / allOfPrevious value: -[ - { - "if": { - "properties": { - "sort": { - "const": "distance" - } - }, - "required": [ - "sort" - ] - }, - "then": { - "required": [ - "latitude", - "longitude", - "radius_miles" - ] - } - } -]New value: +[ + { + "if": { + "properties": { + "sort": { + "const": "distance" + } + }, + "required": [ + "sort" + ] + }, + "then": { + "required": [ + "latitude", + "longitude" + ] + } + } +] - changed
Input schema / dependentRequired / latitudePrevious value: -[ - "longitude", - "radius_miles" -]New value: +[ + "longitude" +] - changed
Input schema / dependentRequired / longitudePrevious value: -[ - "latitude", - "radius_miles" -]New value: +[ + "latitude" +] - changed
Input schema / properties / sort / descriptionPrevious value: -"Optional ordering; defaults to price_asc. The sort key uses NULLS LAST and is deterministically terminated by rooftop and unit ids. distance requires latitude, longitude, and radius_miles."New value: +"Optional ordering; defaults to price_asc. The sort key uses NULLS LAST and is deterministically terminated by rooftop and unit ids. distance requires latitude and longitude (radius_miles defaults to 50)."
2 tool updates
- Added
inventory_stats - Changed
network_search22 fields changed- added
Input schema / allOfAdded value: +[ + { + "if": { + "properties": { + "sort": { + "const": "distance" + } + }, + "required": [ + "sort" + ] + }, + "then": { + "required": [ + "latitude", + "longitude", + "radius_miles" + ] + } + } +] - added
Input schema / descriptionAdded value: +"Categorical arrays are ORed within their field; separate filter fields are ANDed together. The default ordering is price_asc." - added
Input schema / properties / body_styleAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - added
Input schema / properties / drivetrainAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - added
Input schema / properties / exterior_colorAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - added
Input schema / properties / fuel_typeAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - added
Input schema / properties / interior_colorAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - removed
Input schema / properties / make / maxLengthRemoved value: -80 - removed
Input schema / properties / make / minLengthRemoved value: -1 - added
Input schema / properties / make / oneOfAdded value: +[ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } +] - removed
Input schema / properties / make / typeRemoved value: -"string" - removed
Input schema / properties / model / maxLengthRemoved value: -80 - removed
Input schema / properties / model / minLengthRemoved value: -1 - added
Input schema / properties / model / oneOfAdded value: +[ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } +] - removed
Input schema / properties / model / typeRemoved value: -"string" - added
Input schema / properties / odometer_maxAdded value: +{ + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / passenger_capacity_minAdded value: +{ + "maximum": 20, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / price_max / descriptionAdded value: +"Maximum expiry-gated effective price: an unexpired special price when present, otherwise asking price." - added
Input schema / properties / price_min / descriptionAdded value: +"Minimum expiry-gated effective price: an unexpired special price when present, otherwise asking price." - added
Input schema / properties / sortAdded value: +{ + "description": "Optional ordering; defaults to price_asc. The sort key uses NULLS LAST and is deterministically terminated by rooftop and unit ids. distance requires latitude, longitude, and radius_miles.", + "enum": [ + "price_asc", + "price_desc", + "year_desc", + "mileage_asc", + "distance" + ] +} - added
Input schema / properties / transmissionAdded value: +{ + "oneOf": [ + { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + { + "items": { + "maxLength": 80, + "minLength": 1, + "type": "string" + }, + "maxItems": 10, + "minItems": 1, + "type": "array" + } + ] +} - added
Input schema / properties / trimAdded value: +{ + "maxLength": 120, + "minLength": 1, + "type": "string" +}
2 tool updates
- Added
quote_preview - Added
stores
6 tool updates
- First observed
deal_quote - First observed
inventory_get - First observed
lead_prepare - First observed
lead_submit - First observed
network_directory - First observed
network_search
Related MCP Connectors
Search live US dealership inventory, get market prices, and send buyer inquiries. Free, no API key.
Find and compare live vehicle inventory from participating US dealers and contact them with consent.
Automotive inventory search for AI assistants: vehicles, dealers, deals, and market data.
Live vehicle warranty (service contract) quotes by VIN, plate, or make/model/year.
Related MCP Servers
AlicenseNot gradedqualityBmaintenanceEnables decoding VINs into complete vehicle specifications, searching active used car listings from US dealers, and retrieving vehicle valuations with total cost of ownership estimates.18 npmMIT- FlicenseNot gradedqualityBmaintenanceProvides dealership intelligence by integrating CRM, DMS, CDP, and analytics data, enabling tools for lead management, inventory, customer 360, and OEM KPI queries through a FastMCP server.-
- AlicenseNot gradedqualityBmaintenanceEnables calculation of vehicle registration, title, and out-the-door fees, state-specific fee lookups, and VIN validation.MIT
- AlicenseAqualityDmaintenanceEnables AI assistants to search and aggregate used-vehicle listings across Cars.com, Autotrader, and KBB, with filters for price, mileage, dealer information, and CARFAX-style history conditions.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.