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