changedOutput 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"
+}