{"openapi":"3.2.0","info":{"title":"Property Comparable Sales API","description":"Comparable property sales from 16 government registries: UK, France, Ireland, Singapore, Taiwan, Dubai and 10 US cities. 51M+ recorded transactions, one request shape for every market. Actual sales, not estimates or listings.","version":"1.0.0"},"servers":[{"url":"https://jckzc.jojapi.net"}],"security":[{"ApiKeyAuth":[]}],"x-agent-commerce":{"catalog_url":"https://jckzc.jojapi.net/_jojapi/agent/plans","discovery_url":"https://jckzc.jojapi.net/.well-known/x402","directory_url":"https://agents.jojapi.net/apis/property-comparable-sales","docs":"https://docs.jojapi.com/consumers/agents"},"paths":{"/health":{"get":{"operationId":"get_health","summary":"Health check","description":"Service status, the number of markets online and the date the data was last refreshed.","responses":{"200":{"description":"Service status, how many of the 16 markets are online, and the date of the last data refresh."},"503":{"description":"One or more market backends are unavailable."}}}},"/markets":{"get":{"operationId":"get_markets","summary":"List markets","description":"All 16 markets with currency, transaction count, the name of the location parameter and a working example value. Call this first to discover how to query a market.","responses":{"200":{"description":"All 16 markets with currency, transaction count, location parameter name and example value."},"500":{"description":"The market registry service is unavailable. Retry; no request is billed for a 5xx."}}}},"/v1/comps":{"get":{"operationId":"get_v1_comps","summary":"Search comparable sales","description":"Recorded sales within a radius of a location, with median, average, min, max and count. Returns unit-level sales by default so portfolio transfers do not distort the median.","responses":{"200":{"description":"Matching sales with median, average, min, max and count. A relaxed search is marked in the response headers."},"400":{"description":"Unknown market code, or no location parameter supplied for that market."}},"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"code_postal","in":"query","required":false,"schema":{"type":"string","example":"75001"}},{"name":"zip_code","in":"query","required":false,"schema":{"type":"string","example":"10001"}},{"name":"postal_code","in":"query","required":false,"schema":{"type":"string","example":"310195"}},{"name":"area_name","in":"query","required":false,"schema":{"type":"string","example":"Dubai Marina"}},{"name":"town","in":"query","required":false,"schema":{"type":"string","example":"Greenwich"}},{"name":"county","in":"query","required":false,"schema":{"type":"string","example":"Dublin"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","example":"Taipei"}},{"name":"radius_miles","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"radius_km","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":12}},{"name":"property_type","in":"query","required":false,"schema":{"type":"string","example":"F"}},{"name":"min_price","in":"query","required":false,"schema":{"type":"integer","example":200000}},{"name":"max_price","in":"query","required":false,"schema":{"type":"integer","example":2000000}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","example":25}},{"name":"min_beds","in":"query","required":false,"schema":{"type":"integer","example":2}},{"name":"min_baths","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"relax","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/v1/comps/csv":{"get":{"operationId":"get_v1_comps_csv","summary":"CSV export","description":"The same search as the comparable sales endpoint, returned as text/csv for spreadsheet use.","responses":{"200":{"description":"The search results as text/csv, one recorded sale per row."},"400":{"description":"Unknown market code, or no location parameter supplied for that market."}},"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"radius_miles","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":12}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","example":25}},{"name":"min_beds","in":"query","required":false,"schema":{"type":"integer","example":2}},{"name":"min_baths","in":"query","required":false,"schema":{"type":"number","example":1}}]}},"/v1/resolve":{"get":{"operationId":"get_v1_resolve","summary":"Resolve an address to a market","description":"Turns free text, a place name or a postcode into a market code, the correct location parameter and a ready-to-call URL.","responses":{"200":{"description":"The resolved market, the location parameter to use, and a ready-to-call URL."},"400":{"description":"The text could not be resolved to any covered market."}},"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","example":"10 Downing Street, London"}},{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","example":25}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":24}}]}},"/v1/stats":{"get":{"operationId":"get_v1_stats","summary":"Area statistics","description":"Median, average, percentiles and counts by property type. US markets also return gross rental yield from HUD SAFMR FY2026 or Census ACS 5-Year 2023.","responses":{"200":{"description":"Median, average, percentiles and counts by property type, plus gross rental yield on US markets."},"400":{"description":"Unknown market code, or no location parameter supplied for that market."}},"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"code_postal","in":"query","required":false,"schema":{"type":"string","example":"75001"}},{"name":"zip_code","in":"query","required":false,"schema":{"type":"string","example":"10001"}},{"name":"postal_code","in":"query","required":false,"schema":{"type":"string","example":"310195"}},{"name":"area_name","in":"query","required":false,"schema":{"type":"string","example":"Dubai Marina"}},{"name":"town","in":"query","required":false,"schema":{"type":"string","example":"Greenwich"}},{"name":"county","in":"query","required":false,"schema":{"type":"string","example":"Dublin"}},{"name":"city","in":"query","required":false,"schema":{"type":"string","example":"Taipei"}},{"name":"radius_miles","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":12}},{"name":"min_beds","in":"query","required":false,"schema":{"type":"integer","example":2}},{"name":"min_baths","in":"query","required":false,"schema":{"type":"number","example":1}}]}},"/v1/trends":{"get":{"operationId":"get_v1_trends","summary":"Monthly price trends","description":"Monthly median and average sale price for an area, with year-over-year change.","responses":{"200":{"description":"Monthly median and average sale price with year-over-year change."},"400":{"description":"Unknown market code, or no location parameter supplied for that market."}},"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":24}}]}},"/v1/valuation":{"get":{"operationId":"get_v1_valuation","summary":"Indicative valuation","description":"An indicative value derived from recorded comparable sales, returned with the comparables used, the method and a confidence score. Returns 422 rather than guessing when the evidence is too thin.","responses":{"200":{"description":"An indicative value with the comparables used, the method and a confidence score."},"422":{"description":"Too few comparable sales to support a value. Nothing is returned rather than a guess."}},"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","example":"10 Downing Street, London"}},{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"property_type","in":"query","required":false,"schema":{"type":"string","example":"F"}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":24}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","example":50}},{"name":"include_comparables","in":"query","required":false,"schema":{"type":"integer","example":10}},{"name":"relax","in":"query","required":false,"schema":{"type":"boolean"}}]}},"/v1/valuation/pdf":{"get":{"operationId":"get_v1_valuation_pdf","summary":"PDF valuation report","description":"A multi-page PDF with charts, statistics, the method and the comparables table. Available in English, French, Spanish and Traditional Chinese.","responses":{"200":{"description":"A multi-page PDF valuation report with charts, statistics, method and comparables."},"400":{"description":"Unknown market code, or an unsupported report language."}},"parameters":[{"name":"market","in":"query","required":false,"schema":{"type":"string","example":"uk"}},{"name":"postcode","in":"query","required":false,"schema":{"type":"string","example":"SW1A1AA"}},{"name":"radius_miles","in":"query","required":false,"schema":{"type":"number","example":1}},{"name":"months","in":"query","required":false,"schema":{"type":"integer","example":12}},{"name":"lang","in":"query","required":false,"schema":{"type":"string","example":"en"}},{"name":"min_beds","in":"query","required":false,"schema":{"type":"integer","example":2}},{"name":"min_baths","in":"query","required":false,"schema":{"type":"number","example":1}}]}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"X-JoJAPI-Key","description":"Your JoJ API key."}}}}