changedOutput schema / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "as_of": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
- "type": "string"
- },
- "catalog_min_unquoted_reason": {
- "anyOf": [
- {
- "enum": [
- "promoted",
- "not_in_stock",
- "missing_merchant",
- "filtered",
- "not_on_page",
- "omitted_from_offer_list",
- "no_catalog_price"
- ],
- "type": "string"
- },
- {
- "type": "null"
- }
- ],
- "description": "Why catalog_price_from is absent from the returned page. Null when the catalog min is quoted or the page is cheaper."
- },
- "catalog_price_from": {
- "anyOf": [
- {
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Catalog lowest listed item price in EUR before shipping. Same identity as search_products.price_from. Not a buyable quote."
- },
- "currency": {
- "const": "EUR",
- "type": "string"
- },
- "locale": {
- "const": "el-GR",
- "type": "string"
- },
- "objective": {
- "enum": [
- "lowest_total_cost",
- "lowest_item_price",
- "merchant_rating"
- ],
- "type": "string"
- },
- "offers": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "availability": {
- "enum": [
- "in_stock",
- "delivery_1_3_days",
- "delivery_4_7_days",
- "delivery_4_10_days",
- "delivery_8_14_days",
- "by_order",
- "to_order",
- "preorder",
- "out_of_stock",
- "unknown"
- ],
- "type": "string"
- },
- "bundle_status": {
- "enum": [
- "single",
- "bundle",
- "unknown"
- ],
- "type": "string"
- },
- "condition": {
- "enum": [
- "new",
- "refurbished",
- "used",
- "open_box",
- "unknown"
- ],
- "type": "string"
- },
- "delivery_estimate": {
- "anyOf": [
- {
- "maxLength": 80,
- "minLength": 1,
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "item_price": {
- "description": "Current item price in EUR before shipping.",
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- "merchant_id": {
- "pattern": "^bp_merchant_[0-9]+$",
- "type": "string"
- },
- "merchant_name": {
- "description": "Sanitized public BestPrice store name.",
- "maxLength": 100,
- "minLength": 1,
- "type": "string"
- },
- "merchant_rating": {
- "anyOf": [
- {
- "maximum": 5,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ]
- },
- "merchant_rating_count": {
- "anyOf": [
- {
- "maximum": 9007199254740991,
- "minimum": 0,
- "type": "integer"
- },
- {
- "type": "null"
- }
- ]
- },
- "offer_id": {
- "pattern": "^bp_offer_[0-9]+$",
- "type": "string"
- },
- "offer_title": {
- "maxLength": 220,
- "minLength": 1,
- "type": "string"
- },
- "price_checked_at": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
- "type": "string"
- },
- "ranking_reason": {
- "maxLength": 100,
- "minLength": 1,
- "type": "string"
- },
- "shipping_price": {
- "anyOf": [
- {
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Known or estimated shipping price in EUR; null means unknown."
- },
- "shipping_status": {
- "enum": [
- "known",
- "estimated",
- "unknown"
- ],
- "type": "string"
- },
- "total_price": {
- "anyOf": [
- {
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Delivered total in EUR; null whenever shipping is unknown."
- },
- "variant": {
- "anyOf": [
- {
- "maxLength": 180,
- "minLength": 1,
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "verified_merchant": {
- "description": "True when this is a BestPrice-certified store (Πιστοποιημένο κατάστημα).",
- "type": "boolean"
- }
- },
- "required": [
- "offer_id",
- "merchant_id",
- "merchant_name",
- "merchant_rating",
- "merchant_rating_count",
- "verified_merchant",
- "offer_title",
- "variant",
- "item_price",
- "shipping_price",
- "shipping_status",
- "total_price",
- "availability",
- "condition",
- "bundle_status",
- "delivery_estimate",
- "ranking_reason",
- "price_checked_at"
- ],
- "type": "object"
- },
- "maxItems": 10,
- "type": "array"
- },
- "postal_code": {
- "anyOf": [
- {
- "pattern": "^[0-9]{5}$",
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "product": {
- "additionalProperties": false,
- "properties": {
- "bestprice_url": {
- "format": "uri",
- "type": "string"
- },
- "brand": {
- "anyOf": [
- {
- "maxLength": 80,
- "minLength": 1,
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- },
- "decision_id": {
- "description": "Signed, anonymous id joining this recommendation to its BestPrice landing and outbound-click telemetry.",
- "pattern": "^d1\\.[a-f0-9]{32}\\.[A-Za-z0-9_-]{43}$",
- "type": "string"
- },
- "model": {
- "maxLength": 220,
- "minLength": 1,
- "type": "string"
- },
- "product_id": {
- "pattern": "^bp_[0-9]{10}$",
- "type": "string"
- },
- "title": {
- "maxLength": 220,
- "minLength": 1,
- "type": "string"
- },
- "variant": {
- "anyOf": [
- {
- "maxLength": 180,
- "minLength": 1,
- "type": "string"
- },
- {
- "type": "null"
- }
- ]
- }
- },
- "required": [
- "product_id",
- "title",
- "brand",
- "model",
- "variant",
- "decision_id",
- "bestprice_url"
- ],
- "type": "object"
- },
- "quoted_lowest_item_price": {
- "anyOf": [
- {
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Lowest item_price among the returned offers after public filters. Use this, not catalog_price_from, as a quoted item price."
- },
- "quoted_lowest_total_price": {
- "anyOf": [
- {
- "maximum": 10000000,
- "minimum": 0,
- "type": "number"
- },
- {
- "type": "null"
- }
- ],
- "description": "Lowest delivered total among returned offers with known shipping; null when none are known."
- },
- "schema_version": {
- "const": "2.0",
- "type": "string"
- },
- "warnings": {
- "items": {
- "maxLength": 240,
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 20,
- "type": "array"
- }
- },
- "required": [
- "schema_version",
- "as_of",
- "currency",
- "locale",
- "warnings",
- "product",
- "postal_code",
- "objective",
- "catalog_price_from",
- "quoted_lowest_item_price",
- "quoted_lowest_total_price",
- "catalog_min_unquoted_reason",
- "offers"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "as_of": {
- "format": "date-time",
- "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
- "type": "string"
- },
- "currency": {
- "const": "EUR",
- "type": "string"
- },
- "error": {
- "additionalProperties": false,
- "properties": {
- "code": {
- "pattern": "^[A-Z][A-Z0-9_]{2,63}$",
- "type": "string"
- },
- "message": {
- "maxLength": 240,
- "minLength": 1,
- "type": "string"
- },
- "retryable": {
- "type": "boolean"
- }
- },
- "required": [
- "code",
- "message",
- "retryable"
- ],
- "type": "object"
- },
- "locale": {
- "const": "el-GR",
- "type": "string"
- },
- "schema_version": {
- "const": "2.0",
- "type": "string"
- },
- "warnings": {
- "items": {
- "maxLength": 240,
- "minLength": 1,
- "type": "string"
- },
- "maxItems": 20,
- "type": "array"
- }
- },
- "required": [
- "schema_version",
- "as_of",
- "currency",
- "locale",
- "warnings",
- "error"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "as_of": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
+ "type": "string"
+ },
+ "catalog_min_unquoted_reason": {
+ "anyOf": [
+ {
+ "enum": [
+ "promoted",
+ "not_in_stock",
+ "missing_merchant",
+ "filtered",
+ "not_on_page",
+ "omitted_from_offer_list",
+ "no_catalog_price"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Why catalog_price_from is absent from the returned page. Null when the catalog min is quoted or the page is cheaper."
+ },
+ "catalog_price_from": {
+ "anyOf": [
+ {
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Catalog lowest listed item price in EUR before shipping. Same identity as search_products.price_from. Not a buyable quote."
+ },
+ "currency": {
+ "const": "EUR",
+ "type": "string"
+ },
+ "locale": {
+ "const": "el-GR",
+ "type": "string"
+ },
+ "objective": {
+ "enum": [
+ "lowest_total_cost",
+ "lowest_item_price",
+ "merchant_rating"
+ ],
+ "type": "string"
+ },
+ "offers": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "availability": {
+ "enum": [
+ "in_stock",
+ "delivery_1_3_days",
+ "delivery_4_7_days",
+ "delivery_4_10_days",
+ "delivery_8_14_days",
+ "by_order",
+ "to_order",
+ "preorder",
+ "out_of_stock",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "bundle_status": {
+ "enum": [
+ "single",
+ "bundle",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "certification_level": {
+ "anyOf": [
+ {
+ "enum": [
+ "bronze",
+ "silver",
+ "gold",
+ "platinum"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "BestPrice certification tier of the store (php/classes/Merchant.php verification_level 1..4); null when not certified."
+ },
+ "condition": {
+ "enum": [
+ "new",
+ "refurbished",
+ "used",
+ "open_box",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "delivery_estimate": {
+ "anyOf": [
+ {
+ "maxLength": 80,
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "item_price": {
+ "description": "Current item price in EUR before shipping.",
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ "merchant_id": {
+ "pattern": "^bp_merchant_[0-9]+$",
+ "type": "string"
+ },
+ "merchant_logo_url": {
+ "anyOf": [
+ {
+ "format": "uri",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "BestPrice CDN logo of the store; null when the store has none."
+ },
+ "merchant_name": {
+ "description": "Sanitized public BestPrice store name.",
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "merchant_rating": {
+ "anyOf": [
+ {
+ "maximum": 5,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "merchant_rating_count": {
+ "anyOf": [
+ {
+ "maximum": 9007199254740991,
+ "minimum": 0,
+ "type": "integer"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "offer_id": {
+ "pattern": "^bp_offer_[0-9]+$",
+ "type": "string"
+ },
+ "offer_title": {
+ "maxLength": 220,
+ "minLength": 1,
+ "type": "string"
+ },
+ "price_checked_at": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
+ "type": "string"
+ },
+ "ranking_reason": {
+ "maxLength": 100,
+ "minLength": 1,
+ "type": "string"
+ },
+ "shipping_price": {
+ "anyOf": [
+ {
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Known or estimated shipping price in EUR; null means unknown."
+ },
+ "shipping_status": {
+ "enum": [
+ "known",
+ "estimated",
+ "unknown"
+ ],
+ "type": "string"
+ },
+ "total_price": {
+ "anyOf": [
+ {
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Delivered total in EUR; null whenever shipping is unknown."
+ },
+ "variant": {
+ "anyOf": [
+ {
+ "maxLength": 180,
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "verified_merchant": {
+ "description": "True when this is a BestPrice-certified store (Πιστοποιημένο κατάστημα).",
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "offer_id",
+ "merchant_id",
+ "merchant_name",
+ "merchant_rating",
+ "merchant_rating_count",
+ "verified_merchant",
+ "offer_title",
+ "variant",
+ "item_price",
+ "shipping_price",
+ "shipping_status",
+ "total_price",
+ "availability",
+ "condition",
+ "bundle_status",
+ "delivery_estimate",
+ "ranking_reason",
+ "price_checked_at"
+ ],
+ "type": "object"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ "postal_code": {
+ "anyOf": [
+ {
+ "pattern": "^[0-9]{5}$",
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "product": {
+ "additionalProperties": false,
+ "properties": {
+ "bestprice_url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "brand": {
+ "anyOf": [
+ {
+ "maxLength": 80,
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ },
+ "decision_id": {
+ "description": "Signed, anonymous id joining this recommendation to its BestPrice landing and outbound-click telemetry.",
+ "pattern": "^d1\\.[a-f0-9]{32}\\.[A-Za-z0-9_-]{43}$",
+ "type": "string"
+ },
+ "model": {
+ "maxLength": 220,
+ "minLength": 1,
+ "type": "string"
+ },
+ "product_id": {
+ "pattern": "^bp_[0-9]{10}$",
+ "type": "string"
+ },
+ "title": {
+ "maxLength": 220,
+ "minLength": 1,
+ "type": "string"
+ },
+ "variant": {
+ "anyOf": [
+ {
+ "maxLength": 180,
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ]
+ }
+ },
+ "required": [
+ "product_id",
+ "title",
+ "brand",
+ "model",
+ "variant",
+ "decision_id",
+ "bestprice_url"
+ ],
+ "type": "object"
+ },
+ "quoted_lowest_item_price": {
+ "anyOf": [
+ {
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Lowest item_price among the returned offers after public filters. Use this, not catalog_price_from, as a quoted item price."
+ },
+ "quoted_lowest_total_price": {
+ "anyOf": [
+ {
+ "maximum": 10000000,
+ "minimum": 0,
+ "type": "number"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Lowest delivered total among returned offers with known shipping; null when none are known."
+ },
+ "schema_version": {
+ "const": "2.0",
+ "type": "string"
+ },
+ "warnings": {
+ "items": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ }
+ },
+ "required": [
+ "schema_version",
+ "as_of",
+ "currency",
+ "locale",
+ "warnings",
+ "product",
+ "postal_code",
+ "objective",
+ "catalog_price_from",
+ "quoted_lowest_item_price",
+ "quoted_lowest_total_price",
+ "catalog_min_unquoted_reason",
+ "offers"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "as_of": {
+ "format": "date-time",
+ "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$",
+ "type": "string"
+ },
+ "currency": {
+ "const": "EUR",
+ "type": "string"
+ },
+ "error": {
+ "additionalProperties": false,
+ "properties": {
+ "code": {
+ "pattern": "^[A-Z][A-Z0-9_]{2,63}$",
+ "type": "string"
+ },
+ "message": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "retryable": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "code",
+ "message",
+ "retryable"
+ ],
+ "type": "object"
+ },
+ "locale": {
+ "const": "el-GR",
+ "type": "string"
+ },
+ "schema_version": {
+ "const": "2.0",
+ "type": "string"
+ },
+ "warnings": {
+ "items": {
+ "maxLength": 240,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 20,
+ "type": "array"
+ }
+ },
+ "required": [
+ "schema_version",
+ "as_of",
+ "currency",
+ "locale",
+ "warnings",
+ "error"
+ ],
+ "type": "object"
+ }
+]