BestPrice Agent Commerce · Schema
Bestprice Get Price History Output
ShoppingPrice ComparisonE-CommerceRetailMCPWebMCPAgentic CommerceGreeceProduct RecommendationsShopping DecisionsDelivered Price
JSON Schema
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"anyOf": [
{
"type": "object",
"properties": {
"schema_version": {
"$ref": "#/$defs/__schema0"
},
"as_of": {
"$ref": "#/$defs/__schema1"
},
"currency": {
"$ref": "#/$defs/__schema2"
},
"locale": {
"$ref": "#/$defs/__schema3"
},
"warnings": {
"$ref": "#/$defs/__schema4"
},
"product_id": {
"type": "string",
"pattern": "^bp_[0-9]{10}$"
},
"product_title": {
"anyOf": [
{
"type": "string",
"minLength": 1,
"maxLength": 220
},
{
"type": "null"
}
]
},
"decision_id": {
"type": "string",
"pattern": "^d1\\.[a-f0-9]{32}\\.[A-Za-z0-9_-]{43}$",
"description": "Signed, anonymous id joining this recommendation to its BestPrice landing and outbound-click telemetry."
},
"bestprice_url": {
"type": "string",
"format": "uri"
},
"period_days": {
"type": "number",
"enum": [
30,
90,
180
]
},
"current_price": {
"$ref": "#/$defs/__schema6"
},
"current_price_source": {
"type": "string",
"enum": [
"live_offer_minimum",
"latest_daily_history",
"unavailable"
]
},
"source_last_observed_at": {
"anyOf": [
{
"$ref": "#/$defs/__schema1"
},
{
"type": "null"
}
]
},
"window_stats": {
"minItems": 3,
"maxItems": 3,
"type": "array",
"items": {
"$ref": "#/$defs/__schema8"
},
"description": "Minimum and median statistics for the 30-, 90- and 180-day windows, whatever period_days was requested."
},
"price_delta_vs_180d_median_pct": {
"anyOf": [
{
"$ref": "#/$defs/__schema9"
},
{
"type": "null"
}
],
"description": "Current price versus the 180-day median, in percent. Always 180 days, independent of period_days."
},
"deal_classification": {
"type": "string",
"enum": [
"record_low",
"excellent_price",
"good_price",
"typical_price",
"above_typical",
"insufficient_data",
"unavailable"
],
"description": "Classification against the 180-day window statistics, independent of period_days."
},
"methodology_id": {
"type": "string",
"maxLength": 100,
"pattern": "^[a-z][a-z0-9_]*_v[1-9][0-9]*$",
"description": "Price-history method. Currently bestprice_daily_min_v1; a revised method is returned as a new <name>_v<N> id without a tools/list change."
},
"quality": {
"type": "object",
"properties": {
"cluster_continuity": {
"type": "string",
"enum": [
"same_cluster",
"discontinuous",
"unknown"
]
},
"outlier_status": {
"type": "string",
"enum": [
"protected",
"unsafe",
"unknown"
]
}
},
"required": [
"cluster_continuity",
"outlier_status"
]
},
"data_gaps": {
"type": "object",
"properties": {
"missing_days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"longest_gap_days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"stale_days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"coverage_note": {
"type": "string",
"minLength": 1,
"maxLength": 180
}
},
"required": [
"missing_days",
"longest_gap_days",
"stale_days",
"coverage_note"
]
},
"series": {
"maxItems": 64,
"type": "array",
"items": {
"$ref": "#/$defs/__schema10"
}
}
},
"required": [
"schema_version",
"as_of",
"currency",
"locale",
"warnings",
"product_id",
"product_title",
"decision_id",
"bestprice_url",
"period_days",
"current_price",
"current_price_source",
"source_last_observed_at",
"window_stats",
"price_delta_vs_180d_median_pct",
"deal_classification",
"methodology_id",
"data_gaps",
"series"
]
},
{
"type": "object",
"properties": {
"schema_version": {
"$ref": "#/$defs/__schema0"
},
"as_of": {
"$ref": "#/$defs/__schema1"
},
"currency": {
"$ref": "#/$defs/__schema2"
},
"locale": {
"$ref": "#/$defs/__schema3"
},
"warnings": {
"$ref": "#/$defs/__schema4"
},
"error": {
"type": "object",
"properties": {
"code": {
"type": "string",
"pattern": "^[A-Z][A-Z0-9_]{2,63}$"
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"retryable": {
"type": "boolean"
}
},
"required": [
"code",
"message",
"retryable"
]
}
},
"required": [
"schema_version",
"as_of",
"currency",
"locale",
"warnings",
"error"
]
}
],
"$defs": {
"__schema0": {
"type": "string",
"pattern": "^[1-9][0-9]*\\.[0-9]+$",
"description": "Result schema version. Currently 2.0; a later <major>.<minor> is returned without a tools/list change."
},
"__schema1": {
"type": "string",
"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)))$"
},
"__schema2": {
"type": "string",
"const": "EUR"
},
"__schema3": {
"type": "string",
"const": "el-GR"
},
"__schema4": {
"maxItems": 20,
"type": "array",
"items": {
"$ref": "#/$defs/__schema5"
}
},
"__schema5": {
"type": "string",
"minLength": 1,
"maxLength": 240
},
"__schema6": {
"anyOf": [
{
"$ref": "#/$defs/__schema7"
},
{
"type": "null"
}
]
},
"__schema7": {
"type": "number",
"minimum": 0,
"maximum": 10000000
},
"__schema8": {
"type": "object",
"properties": {
"days": {
"anyOf": [
{
"type": "number",
"const": 30
},
{
"type": "number",
"const": 90
},
{
"type": "number",
"const": 180
}
]
},
"minimum_price": {
"$ref": "#/$defs/__schema6"
},
"median_price": {
"$ref": "#/$defs/__schema6"
},
"observations": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"coverage_pct": {
"type": "number",
"minimum": 0,
"maximum": 100
},
"longest_gap_days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"days",
"minimum_price",
"median_price",
"observations",
"coverage_pct"
]
},
"__schema9": {
"type": "number"
},
"__schema10": {
"type": "object",
"properties": {
"date": {
"type": "string",
"pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$"
},
"price": {
"$ref": "#/$defs/__schema7"
},
"merchant_count": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
}
},
"required": [
"date",
"price",
"merchant_count"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bestprice-get-price-history-output"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.