Registered sale prices around a property
https://platform.casafari.com/v1/property-sourcing/properties/{property_id}/closing-pricesSend Authorization: Bearer $CASAFARI_API_KEY: a platform API key (cf_sk_...) from the console, or an OAuth access token; X-API-Key carries the key too. See platform API keys. Costs 5 tokens a call (1 token = EUR 0.04).
Over MCP: property-sourcing_get_closing_prices (equivalent). See MCP and REST compared.
Description
Costs 5 tokens a call. Aggregated registered sale prices, not asking prices: the count and the median, p10, p90 and range per square metre of recent sales of similar homes (same type group, size within 30 percent of the living or total area; implausible rows such as parking spaces are left out and counted in excluded) around the property, with their source, and, for France and Poland only, the closest sales (sold date, price, price per m2, area, distance, type; never an address; Spain and Italy answer the summary alone). Spain, France, Italy and Poland; Portugal answers INE's official median per square metre for the nearest municipality (price_type says it is an area median); Italy answers the OMI quotation range of the home's zone from the Agenzia delle Entrate where there is one (price_type says it is a quotation range, not a closing price); another country answers 400 and is not billed. radius_m (100 to 5000, default 1500) months (1 to 60, default 24) narrow it; sales (0 to 25, default 10) sets the list length.
Path parameters
property_idstringrequiredQuery parameters
radius_mintegermonthsintegersalesintegerExample request
Placeholders only: replace the token and the values with your own.
curl "https://platform.casafari.com/v1/property-sourcing/properties/<property_id>/closing-prices" \
-H "Authorization: Bearer $CASAFARI_API_KEY"Responses
200 Success.
Type: object.
Errors
Every error is an application/problem+json body (RFC 9457) with type (a page that explains it), title, status, detail (what to do), instance, code and request_id (what to quote to support). A 402 carries an upgrade_url, a 429 a Retry-After header. The codes each status can carry:
- 400
invalid_request,key_in_query(https://platform.casafari.com/errors/invalid-request, https://platform.casafari.com/errors/key-in-query) - 401
unauthorized,invalid_credential,credential_revoked,token_expired(https://platform.casafari.com/errors/unauthorized, https://platform.casafari.com/errors/invalid-credential, https://platform.casafari.com/errors/credential-revoked, https://platform.casafari.com/errors/token-expired) - 402
payment_required(https://platform.casafari.com/errors/payment-required) - 403
insufficient_scope,not_entitled,account_suspended(https://platform.casafari.com/errors/insufficient-scope, https://platform.casafari.com/errors/not-entitled, https://platform.casafari.com/errors/account-suspended) - 404
not_found(https://platform.casafari.com/errors/not-found) - 405
method_not_allowed(https://platform.casafari.com/errors/method-not-allowed) - 429
rate_limited,daily_limit_reached,request_limit_reached,usage_limit_reached(https://platform.casafari.com/errors/rate-limited, https://platform.casafari.com/errors/daily-limit-reached, https://platform.casafari.com/errors/request-limit-reached, https://platform.casafari.com/errors/usage-limit-reached) - 500
internal_error(https://platform.casafari.com/errors/internal-error) - 502
upstream_error(https://platform.casafari.com/errors/upstream-error) - 503
capacity_exhausted,unavailable(https://platform.casafari.com/errors/capacity-exhausted, https://platform.casafari.com/errors/unavailable) - 504
upstream_timeout(https://platform.casafari.com/errors/upstream-timeout)