{"openapi":"3.1.0","info":{"title":"Benchlot API","version":"1.0.0","description":"Prices, listings and identification for used woodworking hand tools and machines, aggregated from dealers, forums and marketplaces.\n\nFree. Attribution required: show \"via Benchlot\" and link the `guide_url` or `source_url` returned with any figure or listing. Policy: https://benchlot.com/developers/policy.\n\nBenchlot is not a marketplace: it holds no inventory, brokers nothing and takes no commission. Every listing links to its source, unaltered.\n\nHonesty fields: read `confidence`, `freshness` and `coverage` on every price answer, and `price_status` on every listing. A `confidence` of `low` means fewer than 8 recorded sales; do not state a sold median.\n\nRate limits: 30/min anonymous and 5 identify scans per 15 minutes; higher with a free key (POST /api/v1/keys). MCP server: https://benchlot.com/mcp.","termsOfService":"https://benchlot.com/developers/policy","contact":{"url":"https://benchlot.com/developers"}},"servers":[{"url":"https://benchlot.com/api/v1"}],"security":[{},{"ApiKey":[]},{"Bearer":[]}],"paths":{"/prices":{"get":{"operationId":"getPriceGuide","summary":"What a tool sells for","description":"Resolves type/brand (+model or size) to a price-guide page. 200 with `data: null` and `errors[0].code = insufficient_evidence` when fewer than 8 sales and 10 asks exist; `meta.suggestions` lists nearby pages.","parameters":[{"name":"type","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":60,"description":"Tool type, by name or slug: \"Bench Plane\", \"bench-plane\", \"hand saw\". Case-insensitive. See /api/v1/types."},"description":"Tool type, by name or slug: \"Bench Plane\", \"bench-plane\", \"hand saw\". Case-insensitive. See /api/v1/types."},{"name":"brand","in":"query","required":true,"schema":{"type":"string","minLength":1,"maxLength":60,"description":"Maker, by name or slug: \"Stanley\", \"lie-nielsen\", \"Millers Falls\". Known aliases are folded."},"description":"Maker, by name or slug: \"Stanley\", \"lie-nielsen\", \"Millers Falls\". Known aliases are folded."},{"name":"model","in":"query","required":false,"schema":{"description":"Model designation, e.g. \"No. 4\", \"D-8\", \"A5\". Narrows to the model page when one exists.","type":"string","minLength":1,"maxLength":40},"description":"Model designation, e.g. \"No. 4\", \"D-8\", \"A5\". Narrows to the model page when one exists."},{"name":"size","in":"query","required":false,"schema":{"description":"Primary size, e.g. \"26 inch\", \"1/2 inch\". Ignored when `model` is given.","type":"string","minLength":1,"maxLength":40},"description":"Primary size, e.g. \"26 inch\", \"1/2 inch\". Ignored when `model` is given."},{"name":"plane_type","in":"query","required":false,"schema":{"description":"Stanley bench-plane type-study number (1-20). Needs `model`.","type":"integer","minimum":1,"maximum":20},"description":"Stanley bench-plane type-study number (1-20). Needs `model`."},{"name":"include_comps","in":"query","required":false,"schema":{"description":"Also return up to 12 recent sold comps and 12 live listings that back the numbers.","type":"string"},"description":"Also return up to 12 recent sold comps and 12 live listings that back the numbers."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"oneOf":[{"$ref":"#/components/schemas/PriceGuide"},{"type":"null"}]},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"},"resolved":{"type":"object"},"suggestions":{"type":"array","items":{"$ref":"#/components/schemas/PriceGuideRef"}}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/prices/search":{"get":{"operationId":"searchPriceGuide","summary":"Find price-guide pages by free text","parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string","minLength":2,"maxLength":120,"description":"Free text: \"millers falls brace\", \"stanley 45\"."},"description":"Free text: \"millers falls brace\", \"stanley 45\"."},{"name":"limit","in":"query","required":false,"schema":{"default":20,"type":"integer","minimum":1,"maximum":60}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/PriceGuideRef"}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/listings":{"get":{"operationId":"searchListings","summary":"Listings for sale now, or recorded sales","description":"Full-text search plus canonical filters. Rows carry `source.url`; link it. eBay asking prices are withheld after 24 hours (`price_status: stale`); fetch the source for a live price.","parameters":[{"name":"q","in":"query","required":false,"schema":{"description":"Full-text search over titles and canonical fields.","type":"string","minLength":2,"maxLength":120},"description":"Full-text search over titles and canonical fields."},{"name":"type","in":"query","required":false,"schema":{"type":"string","minLength":2,"maxLength":60,"description":"Tool type, by name or slug: \"Bench Plane\", \"bench-plane\", \"hand saw\". Case-insensitive. See /api/v1/types."},"description":"Tool type, by name or slug: \"Bench Plane\", \"bench-plane\", \"hand saw\". Case-insensitive. See /api/v1/types."},{"name":"brand","in":"query","required":false,"schema":{"type":"string","minLength":1,"maxLength":60,"description":"Maker, by name or slug: \"Stanley\", \"lie-nielsen\", \"Millers Falls\". Known aliases are folded."},"description":"Maker, by name or slug: \"Stanley\", \"lie-nielsen\", \"Millers Falls\". Known aliases are folded."},{"name":"status","in":"query","required":false,"schema":{"default":"active","description":"`active`: for sale now (seen within 45 days). `sold`: recorded sales, newest first.","type":"string","enum":["active","sold"]},"description":"`active`: for sale now (seen within 45 days). `sold`: recorded sales, newest first."},{"name":"source","in":"query","required":false,"schema":{"description":"Source id from /api/v1/meta, e.g. \"ebay\", \"jimbode\".","type":"string","minLength":2,"maxLength":40},"description":"Source id from /api/v1/meta, e.g. \"ebay\", \"jimbode\"."},{"name":"min_price","in":"query","required":false,"schema":{"description":"USD.","type":"number","minimum":0},"description":"USD."},{"name":"max_price","in":"query","required":false,"schema":{"description":"USD.","type":"number","minimum":0},"description":"USD."},{"name":"include_lots","in":"query","required":false,"schema":{"description":"Include multi-item lots and parts/project listings, which the price guide excludes.","type":"string"},"description":"Include multi-item lots and parts/project listings, which the price guide excludes."},{"name":"limit","in":"query","required":false,"schema":{"default":25,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"description":"Opaque; from `meta.next_cursor` of the previous page.","type":"string","maxLength":200},"description":"Opaque; from `meta.next_cursor` of the previous page."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Listing"}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"},"next_cursor":{"type":["string","null"]},"count":{"type":"integer"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/listings/{id}":{"get":{"operationId":"getListing","summary":"One listing","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string","pattern":"^\\d+$"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"$ref":"#/components/schemas/Listing"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"404":{"description":"No such listing"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/types":{"get":{"operationId":"listTypes","summary":"Tool types the guide knows, with evidence counts","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/brands":{"get":{"operationId":"listBrands","summary":"Makers with price-guide pages","parameters":[{"name":"type","in":"query","required":false,"schema":{"description":"Restrict to makers with a price-guide page for this type.","type":"string","minLength":2,"maxLength":60},"description":"Restrict to makers with a price-guide page for this type."}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"array","items":{"type":"object"}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/meta":{"get":{"operationId":"getMeta","summary":"Coverage, freshness, sources, thresholds, licensing","responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"object"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/identify":{"post":{"operationId":"identifyTool","summary":"Identify a tool from photos","security":[{},{"ApiKey":[]},{"Bearer":[]}],"description":"One tool, one to five photos. Returns the identification with its own confidence, the price-guide reference band and live listings for the same tool. 5 scans per 15 minutes without a key, 20 with one.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"images":{"minItems":1,"maxItems":5,"type":"array","items":{"type":"object","properties":{"data":{"type":"string","minLength":100,"description":"Base64, no data: prefix."},"media_type":{"type":"string","enum":["image/jpeg","image/png","image/webp"]}},"required":["data","media_type"],"additionalProperties":false},"description":"One to five photos of ONE tool. Total base64 under 3 MB; downscale to ~1600px first."},"context":{"description":"Anything the photos do not show: markings, measurements, what the seller said.","type":"string","maxLength":500},"previous_scan_id":{"description":"Scan id from an earlier call, to add photos of the same tool.","type":"string","maxLength":64}},"required":["images"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"object"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"413":{"description":"Body over 3 MB"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/alerts":{"post":{"operationId":"createAlert","summary":"Email alert for new listings of a tool","security":[{},{"ApiKey":[]},{"Bearer":[]}],"description":"Always answers 200 with the same message, whatever happened (no email enumeration). The address must click a confirmation email before any alert is sent.","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$","description":"The person who will receive the alert. They must confirm by email before anything is sent."},"type":{"type":"string","minLength":2,"maxLength":60,"description":"Tool type, by name or slug: \"Bench Plane\", \"bench-plane\", \"hand saw\". Case-insensitive. See /api/v1/types."},"brand":{"type":"string","minLength":1,"maxLength":60,"description":"Maker, by name or slug: \"Stanley\", \"lie-nielsen\", \"Millers Falls\". Known aliases are folded."},"size":{"type":"string","minLength":1,"maxLength":40},"max_price":{"description":"USD ceiling; listings above it are not sent.","type":"number","exclusiveMinimum":0,"maximum":100000}},"required":["email","type","brand"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"object","properties":{"status":{"type":"string","const":"pending_confirmation"},"message":{"type":"string"}}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}},"/keys":{"post":{"operationId":"requestKey","summary":"Request a free API key by email","requestBody":{"required":true,"content":{"application/json":{"schema":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"email":{"type":"string","maxLength":254,"format":"email","pattern":"^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"name":{"type":"string","minLength":2,"maxLength":80,"description":"Who or what will use the key: \"Acme shopping agent\"."}},"required":["email","name"],"additionalProperties":false}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"object","properties":{"status":{"type":"string"},"message":{"type":"string"}}},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"400":{"description":"Invalid parameter","content":{"application/json":{"schema":{"type":"object","required":["data","meta","errors"],"properties":{"data":{"type":"null"},"meta":{"type":"object","properties":{"generated_at":{"type":"string","format":"date-time"},"api_version":{"type":"string","const":"v1"},"attribution":{"type":"object","description":"Repeat `text` and link `guide_url`/`source_url` wherever you show a figure or listing."},"license_url":{"type":"string"},"docs_url":{"type":"string"}}},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}}}}}}},"401":{"description":"Unknown, revoked or missing API key"},"429":{"description":"Rate limited; see Retry-After and X-RateLimit-*"}}}}},"components":{"securitySchemes":{"Bearer":{"type":"http","scheme":"bearer","description":"Authorization: Bearer bl_live_…"},"ApiKey":{"type":"apiKey","in":"header","name":"X-Api-Key"}},"schemas":{"Error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"field":{"type":"string"}}},"PriceGuide":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cluster_key":{"type":"string"},"grain":{"type":"string","enum":["coarse","fine","model-fine","type-fine"]},"type":{"type":"string"},"brand":{"type":"string"},"model":{"type":["string","null"]},"size":{"type":["string","null"]},"plane_type_number":{"type":["number","null"]},"guide_url":{"type":"string","format":"uri","description":"Cite this page."},"confidence":{"type":"string","enum":["high","medium","low","none"],"description":"high: 20+ recorded sales. medium: 8-19. low: fewer than 8 sales (asking prices only; do not quote a sold median). none: no evidence."},"confidence_note":{"type":"string"},"sold":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"median":{"type":["number","null"]},"mean":{"type":["number","null"]},"p10":{"type":["number","null"]},"p25":{"type":["number","null"]},"p75":{"type":["number","null"]},"p90":{"type":["number","null"]},"by_source_kind":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}],"description":"Dealer / Marketplace / Forum breakdown."},"window":{"type":"string","const":"all_time"}},"required":["count","median","mean","p10","p25","p75","p90","by_source_kind","window"],"additionalProperties":false,"description":"Recorded sales, USD. Percentiles are null below 8 sales."},"asking":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"median":{"type":["number","null"]},"mean":{"type":["number","null"]},"p25":{"type":["number","null"]},"p75":{"type":["number","null"]},"by_source_kind":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}],"description":"Dealer / Marketplace / Forum breakdown."},"count_active":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"window_days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["count","median","mean","p25","p75","by_source_kind","count_active","window_days"],"additionalProperties":false,"description":"Asking prices from the last 365 days, USD. Percentiles are null below 10 asks."},"for_sale_now":{"type":"object","properties":{"count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"low":{"type":["number","null"]},"high":{"type":["number","null"]}},"required":["count","low","high"],"additionalProperties":false},"freshness":{"type":"object","properties":{"stats_built_at":{"type":["string","null"]},"first_sale_at":{"type":["string","null"]},"last_sale_at":{"type":["string","null"]},"sales_last_365d":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"active_window_days":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["stats_built_at","first_sale_at","last_sale_at","sales_last_365d","active_window_days"],"additionalProperties":false},"coverage":{"type":"object","properties":{"sources":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"sales":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["name","sales"],"additionalProperties":false}},"sales_total":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"lots_excluded":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"parts_excluded":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"method":{"type":"string"}},"required":["sources","sales_total","lots_excluded","parts_excluded","method"],"additionalProperties":false},"comps":{"type":"object","properties":{"sold":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["active","sold","expired"]},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]},"price_status":{"type":"string","enum":["current","stale","realized","unknown"],"description":"current: asking price seen within the source licence window. stale: withheld (eBay prices are not redistributed past 24h; fetch source.url). realized: the sale price."},"price_observed_at":{"type":["string","null"]},"price_valid_until":{"type":["string","null"]},"condition":{"type":["string","null"]},"images":{"type":"array","items":{"type":"string"}},"location":{"type":["string","null"]},"listed_at":{"type":["string","null"]},"sold_at":{"type":["string","null"]},"first_seen_at":{"type":["string","null"]},"last_seen_at":{"type":["string","null"]},"type":{"type":["string","null"]},"brand":{"type":["string","null"]},"model":{"type":["string","null"]},"size":{"type":["string","null"]},"era":{"type":["string","null"]},"guide_url":{"type":["string","null"]},"source":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","name","kind","url"],"additionalProperties":false},"attribution":{"type":"object","properties":{"text":{"type":"string"},"link":{"type":"string","format":"uri"},"link_required":{"type":"boolean","const":true}},"required":["text","link","link_required"],"additionalProperties":false}},"required":["id","title","status","price","price_status","price_observed_at","price_valid_until","condition","images","location","listed_at","sold_at","first_seen_at","last_seen_at","type","brand","model","size","era","guide_url","source","attribution"],"additionalProperties":false}},"active":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["active","sold","expired"]},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]},"price_status":{"type":"string","enum":["current","stale","realized","unknown"],"description":"current: asking price seen within the source licence window. stale: withheld (eBay prices are not redistributed past 24h; fetch source.url). realized: the sale price."},"price_observed_at":{"type":["string","null"]},"price_valid_until":{"type":["string","null"]},"condition":{"type":["string","null"]},"images":{"type":"array","items":{"type":"string"}},"location":{"type":["string","null"]},"listed_at":{"type":["string","null"]},"sold_at":{"type":["string","null"]},"first_seen_at":{"type":["string","null"]},"last_seen_at":{"type":["string","null"]},"type":{"type":["string","null"]},"brand":{"type":["string","null"]},"model":{"type":["string","null"]},"size":{"type":["string","null"]},"era":{"type":["string","null"]},"guide_url":{"type":["string","null"]},"source":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","name","kind","url"],"additionalProperties":false},"attribution":{"type":"object","properties":{"text":{"type":"string"},"link":{"type":"string","format":"uri"},"link_required":{"type":"boolean","const":true}},"required":["text","link","link_required"],"additionalProperties":false}},"required":["id","title","status","price","price_status","price_observed_at","price_valid_until","condition","images","location","listed_at","sold_at","first_seen_at","last_seen_at","type","brand","model","size","era","guide_url","source","attribution"],"additionalProperties":false}}},"required":["sold","active"],"additionalProperties":false}},"required":["cluster_key","grain","type","brand","model","size","plane_type_number","guide_url","confidence","confidence_note","sold","asking","for_sale_now","freshness","coverage"],"additionalProperties":false},"PriceGuideRef":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"cluster_key":{"type":"string"},"grain":{"type":"string"},"type":{"type":"string"},"brand":{"type":"string"},"model":{"type":["string","null"]},"size":{"type":["string","null"]},"plane_type":{"type":["number","null"]},"sold_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"sold_median":{"type":["number","null"]},"asking_count":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"for_sale_now":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"confidence":{"type":"string","enum":["high","medium","low","none"],"description":"high: 20+ recorded sales. medium: 8-19. low: fewer than 8 sales (asking prices only; do not quote a sold median). none: no evidence."},"guide_url":{"type":"string","format":"uri"},"stats_built_at":{"type":["string","null"]}},"required":["cluster_key","grain","type","brand","model","size","plane_type","sold_count","sold_median","asking_count","for_sale_now","confidence","guide_url","stats_built_at"],"additionalProperties":false},"Listing":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["active","sold","expired"]},"price":{"anyOf":[{"type":"object","properties":{"amount":{"type":"number"},"currency":{"type":"string"}},"required":["amount","currency"],"additionalProperties":false},{"type":"null"}]},"price_status":{"type":"string","enum":["current","stale","realized","unknown"],"description":"current: asking price seen within the source licence window. stale: withheld (eBay prices are not redistributed past 24h; fetch source.url). realized: the sale price."},"price_observed_at":{"type":["string","null"]},"price_valid_until":{"type":["string","null"]},"condition":{"type":["string","null"]},"images":{"type":"array","items":{"type":"string"}},"location":{"type":["string","null"]},"listed_at":{"type":["string","null"]},"sold_at":{"type":["string","null"]},"first_seen_at":{"type":["string","null"]},"last_seen_at":{"type":["string","null"]},"type":{"type":["string","null"]},"brand":{"type":["string","null"]},"model":{"type":["string","null"]},"size":{"type":["string","null"]},"era":{"type":["string","null"]},"guide_url":{"type":["string","null"]},"source":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"kind":{"type":"string"},"url":{"type":"string","format":"uri"}},"required":["id","name","kind","url"],"additionalProperties":false},"attribution":{"type":"object","properties":{"text":{"type":"string"},"link":{"type":"string","format":"uri"},"link_required":{"type":"boolean","const":true}},"required":["text","link","link_required"],"additionalProperties":false}},"required":["id","title","status","price","price_status","price_observed_at","price_valid_until","condition","images","location","listed_at","sold_at","first_seen_at","last_seen_at","type","brand","model","size","era","guide_url","source","attribution"],"additionalProperties":false},"Confidence":{"$schema":"https://json-schema.org/draft/2020-12/schema","type":"string","enum":["high","medium","low","none"],"description":"high: 20+ recorded sales. medium: 8-19. low: fewer than 8 sales (asking prices only; do not quote a sold median). none: no evidence."}}}}