Casafari API and MCP Platform · Schema
ApiSearchComparablesRequestV2
Real Estate DataProperty SourcingValuationMarket AnalyticsCRMReal Estate Software
Properties
| Name | Type | Description |
|---|---|---|
| comparables_count | integer | Maximum number of comparable properties in results. |
| coordinates | object | Target point coordinates to search around. This field is deprecated and will be removed in the next major update. Please, use `target_point.coordinates` field instead |
| target_point | object | Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided. This field is deprecated and will be remove |
| distance | number | Maximum distance in kilometers from the requested `target_point` to comparable properties. This field is deprecated and will be removed in the next major update. Pleas |
| location_boundary | object | Location to search within. Can be defined as a polygon of geo-points or a circle with a given target point and a distance. Only one value should be provided. |
| sold_or_rented_after | stringnull | Properties sold/rented since this date (in the format `YYYY-MM-DD`) will be considered as possible comparables. Default value: 9 months ago, counting from today. If `null` is passed, only active prope |
| operation | string | Operation type. |
| business_type | string | Operation type. This field is deprecated and will be removed in the next major update. Please, use `operation` field instead. |
| comparables_type | string | Comparables property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint. This field is deprecated and will be removed in the next |
| comparables_types | array | Country availability per type is available at the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint. Property types by type groups: apartment: |
| property_type | string | Comparables property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint. This field is deprecated and will be removed in the next |
| min_price | integer | The minimum price filter for comparables result. |
| max_price | integer | The maximum price filter for comparables result. |
| condition | string | Property condition, as returned by the [GET /api/v1/references/conditions](/#operation/api__get__v1__references__conditions) endpoint. |
| bedrooms | integer | Number of bedrooms (cannot be used together with `rooms`). |
| rooms | integer | Number of rooms (cannot be used together with `bedrooms`). |
| bathrooms | integer | Number of bathrooms. |
| construction_year | integer | Desired construction year. |
| total_area | integer | Desired total area, square meters. This field is required for `hotel`, `industrial`, `office`, `other_commercial`, `restaurant`, `retail`, `warehouse`, `werkstatt` property types if `target_point.cada |
| plot_area | integer | Desired plot area, square meters. This field is required for `rural_plot` and `urban_plot` property types if `target_point.cadastral_reference` is not provided. |
| floor | string | Floor type. This field is deprecated and will be removed in the next major update. Please, use `floors` field instead. |
| floors | array | List of floor types. |
| floor_number | array | Desired list of floor numbers. Negative values indicate underground floors (e.g. basements). Minimum value is -250. Maximum value is 250. |
| orientation | string | Property view orientation. |
| view | string | View from the property. This field is deprecated and will be removed in the next major update. Please, use `views` field instead. |
| views | array | List of views from the property. |
| direction | string | Cardinal direction the property faces. This field is deprecated and will be removed in the next major update. Please, use `directions` field instead. |
| directions | array | List of cardinal directions the property faces. |
| characteristics | object | Property characteristics. |
| energy_certificate | string | Energy certificate. This field is deprecated and will be removed in the next major update. Please, use `energy_ratings` field instead. |
| energy_certificates | array | List of energy certificates. This field is deprecated and will be removed in the next major update. Please, use `energy_ratings` field instead. |
| energy_ratings | array | List of energy ratings. |
| days_on_market_from | integer | Minimum days on market value. |
| days_on_market_to | integer | Maximum days on market value. |
| with_agencies | array | Return properties from specified agencies, companies or sources. To find allowed agency names use the [GET /api/v1/references/agencies](/#operation/api__get__v1__references__agencies) endpoint. |
| without_agencies | array | Exclude properties from specified agencies, companies or sources. To find allowed agency names use the [GET /api/v1/references/agencies](/#operation/api__get__v1__references__agencies) endpoint. |
| exclude_outliers | boolean | Exclude properties that are significantly underpriced or overpriced compared to similar properties. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/casafari/main/json-schema/casafari-api-search-comparables-request-v2-schema.json",
"title": "ApiSearchComparablesRequestV2",
"x-generated": "2026-10-15",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/_original/casafari-api-openapi.json#/components/schemas/ApiSearchComparablesRequestV2",
"properties": {
"comparables_count": {
"type": "integer",
"maximum": 50.0,
"minimum": 1.0,
"description": "Maximum number of comparable properties in results."
},
"coordinates": {
"properties": {
"latitude": {
"type": "number",
"maximum": 90.0,
"minimum": -90.0,
"description": "Latitude."
},
"longitude": {
"type": "number",
"maximum": 180.0,
"minimum": -180.0,
"description": "Longitude."
}
},
"type": "object",
"required": [
"latitude",
"longitude"
],
"description": "Target point coordinates to search around. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `target_point.coordinates` field instead.</strong>"
},
"target_point": {
"properties": {
"coordinates": {
"properties": {
"latitude": {
"type": "number",
"maximum": 90.0,
"minimum": -90.0,
"description": "Latitude."
},
"longitude": {
"type": "number",
"maximum": 180.0,
"minimum": -180.0,
"description": "Longitude."
}
},
"type": "object",
"required": [
"latitude",
"longitude"
],
"description": "Target point coordinates to search around."
},
"address": {
"type": "string",
"description": "Address of the property to define the point to search around."
},
"cadastral_reference": {
"properties": {
"country_code": {
"type": "string",
"enum": [
"ES"
],
"description": "Country code following the ISO 3166-1 alpha-2 rules.",
"writeOnly": true
},
"cadastral_reference": {
"type": "string",
"description": "Cadastral reference of the estate.",
"writeOnly": true
},
"province": {
"type": "string",
"description": "Name of the estate's province.",
"writeOnly": true
},
"municipality": {
"type": "string",
"description": "Name of the estate's municipality.",
"writeOnly": true
}
},
"type": "object",
"required": [
"country_code",
"cadastral_reference"
],
"description": "Cadastral reference of the property to define the point to search around. <br/>For now available only for Spain."
}
},
"type": "object",
"description": "Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `location_boundary.circle` field instead.</strong>"
},
"distance": {
"type": "number",
"maximum": 50.0,
"minimum": 0.05,
"description": "Maximum distance in kilometers from the requested `target_point` to comparable properties.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `location_boundary.circle` field instead.</strong>",
"default": 5
},
"location_boundary": {
"properties": {
"polygon": {
"items": {
"properties": {
"latitude": {
"type": "number",
"maximum": 90.0,
"minimum": -90.0,
"description": "Latitude."
},
"longitude": {
"type": "number",
"maximum": 180.0,
"minimum": -180.0,
"description": "Longitude."
}
},
"type": "object",
"required": [
"latitude",
"longitude"
]
},
"type": "array",
"minItems": 4,
"description": "Closed polygon of geo-points to search within. First and last points must match. "
},
"circle": {
"properties": {
"distance": {
"type": "number",
"maximum": 50.0,
"minimum": 0.05,
"description": "Maximum distance in kilometers from the requested `target_point` to the properties.",
"default": 5
},
"target_point": {
"properties": {
"coordinates": {
"properties": {
"latitude": {
"type": "number",
"maximum": 90.0,
"minimum": -90.0,
"description": "Latitude."
},
"longitude": {
"type": "number",
"maximum": 180.0,
"minimum": -180.0,
"description": "Longitude."
}
},
"type": "object",
"required": [
"latitude",
"longitude"
],
"description": "Target point coordinates to search around."
},
"address": {
"type": "string",
"description": "Address of the property to define the point to search around."
},
"cadastral_reference": {
"properties": {
"country_code": {
"type": "string",
"enum": [
"ES"
],
"description": "Country code following the ISO 3166-1 alpha-2 rules.",
"writeOnly": true
},
"cadastral_reference": {
"type": "string",
"description": "Cadastral reference of the estate.",
"writeOnly": true
},
"province": {
"type": "string",
"description": "Name of the estate's province.",
"writeOnly": true
},
"municipality": {
"type": "string",
"description": "Name of the estate's municipality.",
"writeOnly": true
}
},
"type": "object",
"required": [
"country_code",
"cadastral_reference"
],
"description": "Cadastral reference of the property to define the point to search around. <br/>For now available only for Spain."
}
},
"type": "object",
"description": "Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided."
}
},
"type": "object",
"required": [
"target_point"
],
"description": "Circle boundary to search within."
}
},
"type": "object",
"description": "Location to search within. Can be defined as a polygon of geo-points or a circle with a given target point and a distance. Only one value should be provided."
},
"sold_or_rented_after": {
"type": [
"string",
"null"
],
"format": "date",
"description": "Properties sold/rented since this date (in the format `YYYY-MM-DD`) will be considered as possible comparables. Default value: 9 months ago, counting from today. If `null` is passed, only active properties will be considered."
},
"operation": {
"type": "string",
"enum": [
"sale",
"rent"
],
"description": "Operation type."
},
"business_type": {
"type": "string",
"enum": [
"sale",
"rent"
],
"description": "Operation type.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `operation` field instead.</strong>"
},
"comparables_type": {
"type": "string",
"enum": [
"apartment",
"studio",
"duplex",
"penthouse",
"dachgeschosswohnung",
"etagenwohnung",
"erdgeschosswohnung",
"country_house",
"house",
"palace",
"townhouse",
"villa",
"country_estate",
"chalet",
"bungalow",
"family_house",
"reihenhaus",
"reihenendhaus",
"reihenmittelhaus",
"einfamilienhaus",
"zweifamilienhaus",
"landwirtschaftliche_betriebe",
"retail",
"office",
"industrial",
"warehouse",
"hotel",
"other_commercial",
"restaurant",
"werkstatt",
"plot",
"urban_plot",
"rural_plot",
"room",
"other",
"garage",
"parking",
"apartment_building",
"office_building",
"mix_use_building"
],
"description": "Comparables property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `comparables_types` field instead.</strong>"
},
"comparables_types": {
"items": {
"type": "string",
"enum": [
"apartment",
"studio",
"duplex",
"penthouse",
"dachgeschosswohnung",
"etagenwohnung",
"erdgeschosswohnung",
"country_house",
"house",
"palace",
"townhouse",
"villa",
"country_estate",
"chalet",
"bungalow",
"family_house",
"reihenhaus",
"reihenendhaus",
"reihenmittelhaus",
"einfamilienhaus",
"zweifamilienhaus",
"landwirtschaftliche_betriebe",
"retail",
"office",
"industrial",
"warehouse",
"hotel",
"other_commercial",
"restaurant",
"werkstatt",
"plot",
"urban_plot",
"rural_plot",
"room",
"other",
"garage",
"parking",
"apartment_building",
"office_building",
"mix_use_building"
]
},
"type": "array",
"description": "<br>Country availability per type is available at the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint.<br><br>Property types by type groups:<br/><strong>apartment:</strong> penthouse, erdgeschosswohnung, studio, etagenwohnung, apartment, duplex, dachgeschosswohnung<br/><strong>house:</strong> reihenhaus, reihenmittelhaus, palace, country_estate, townhouse, einfamilienhaus, landwirtschaftliche_betriebe, house, chalet, reihenendhaus, villa, bungalow, family_house (<span style=\"color:red\">DEPRECATED</span>), country_house, zweifamilienhaus<br/><strong>room:</strong> room<br/><strong>building:</strong> office_building, mix_use_building, apartment_building<br/><strong>investment:</strong> warehouse, restaurant, werkstatt, office, industrial, hotel, retail, other_commercial<br/><strong>plot:</strong> plot (<span style=\"color:red\">DEPRECATED</span>), urban_plot, rural_plot<br/><strong>other:</strong> parking, other, garage<br/><br/><i><span style=\"color:red\">Note that you can select multiple types only from one property type group.</span></i>"
},
"property_type": {
"type": "string",
"enum": [
"apartment",
"studio",
"duplex",
"penthouse",
"dachgeschosswohnung",
"etagenwohnung",
"erdgeschosswohnung",
"country_house",
"house",
"palace",
"townhouse",
"villa",
"country_estate",
"chalet",
"bungalow",
"family_house",
"reihenhaus",
"reihenendhaus",
"reihenmittelhaus",
"einfamilienhaus",
"zweifamilienhaus",
"landwirtschaftliche_betriebe",
"retail",
"office",
"industrial",
"warehouse",
"hotel",
"other_commercial",
"restaurant",
"werkstatt",
"plot",
"urban_plot",
"rural_plot",
"room",
"other",
"garage",
"parking",
"apartment_building",
"office_building",
"mix_use_building"
],
"description": "Comparables property type, as returned by the [GET /api/v1/references/types](/#operation/api__get__v1__references__types) endpoint.<br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `comparables_types` field instead.</strong>"
},
"min_price": {
"type": "integer",
"maximum": 2147483647.0,
"minimum": 0.0,
"description": "The minimum price filter for comparables result.",
"default": 0
},
"max_price": {
"type": "integer",
"maximum": 2147483647.0,
"minimum": 1.0,
"description": "The maximum price filter for comparables result."
},
"condition": {
"type": "string",
"enum": [
"used",
"ruin",
"very-good",
"new",
"other"
],
"description": "Property condition, as returned by the [GET /api/v1/references/conditions](/#operation/api__get__v1__references__conditions) endpoint."
},
"bedrooms": {
"type": "integer",
"maximum": 15000.0,
"minimum": 0.0,
"description": "Number of bedrooms (cannot be used together with `rooms`)."
},
"rooms": {
"type": "integer",
"maximum": 15000.0,
"minimum": 0.0,
"description": "Number of rooms (cannot be used together with `bedrooms`)."
},
"bathrooms": {
"type": "integer",
"maximum": 15000.0,
"minimum": 1.0,
"description": "Number of bathrooms."
},
"construction_year": {
"type": "integer",
"maximum": 3000.0,
"minimum": 1.0,
"description": "Desired construction year."
},
"total_area": {
"type": "integer",
"maximum": 10000000.0,
"minimum": 5.0,
"description": "Desired total area, square meters. This field is required for `hotel`, `industrial`, `office`, `other_commercial`, `restaurant`, `retail`, `warehouse`, `werkstatt` property types if `target_point.cadastral_reference` is not provided."
},
"plot_area": {
"type": "integer",
"maximum": 10000000.0,
"minimum": 20.0,
"description": "Desired plot area, square meters. This field is required for `rural_plot` and `urban_plot` property types if `target_point.cadastral_reference` is not provided."
},
"floor": {
"type": "string",
"enum": [
"no_floor",
"ground",
"middle",
"top"
],
"description": "Floor type. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `floors` field instead.</strong>"
},
"floors": {
"items": {
"type": "string",
"enum": [
"no_floor",
"ground",
"middle",
"top"
]
},
"type": "array",
"description": "List of floor types."
},
"floor_number": {
"items": {
"type": "integer",
"maximum": 250.0,
"minimum": -250.0
},
"type": "array",
"description": "Desired list of floor numbers. Negative values indicate underground floors (e.g. basements).<br>Minimum value is -250.<br>Maximum value is 250."
},
"orientation": {
"type": "string",
"enum": [
"exterior",
"interior"
],
"description": "Property view orientation."
},
"view": {
"type": "string",
"enum": [
"water",
"landscape",
"city",
"golf",
"park"
],
"description": "View from the property. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `views` field instead.</strong>"
},
"views": {
"items": {
"type": "string",
"enum": [
"water",
"landscape",
"city",
"golf",
"park"
]
},
"type": "array",
"description": "List of views from the property."
},
"direction": {
"type": "string",
"enum": [
"north",
"south",
"east",
"west"
],
"description": "Cardinal direction the property faces. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `directions` field instead.</strong>"
},
"directions": {
"items": {
"type": "string",
"enum": [
"north",
"south",
"east",
"west"
]
},
"type": "array",
"description": "List of cardinal directions the property faces."
},
"characteristics": {
"properties": {
"must_have": {
"items": {
"type": "string",
"enum": [
"balcony",
"elevator",
"no_elevator",
"garage",
"garden",
"parking",
"storage",
"swimming_pool",
"terrace",
"rental_license",
"furniture",
"rented_out",
"life_annuity"
]
},
"type": "array",
"description": "Include only properties that have all these characteristics."
},
"nice_to_have": {
"items": {
"type": "string",
"enum": [
"balcony",
"elevator",
"no_elevator",
"garage",
"garden",
"parking",
"storage",
"swimming_pool",
"terrace",
"rental_license",
"furniture",
"rented_out",
"life_annuity"
]
},
"type": "array",
"description": "Include properties that have any of these characteristics."
},
"exclude": {
"items": {
"type": "string",
"enum": [
"balcony",
"elevator",
"no_elevator",
"garage",
"garden",
"parking",
"storage",
"swimming_pool",
"terrace",
"rental_license",
"furniture",
"rented_out",
"life_annuity"
]
},
"type": "array",
"description": "Exclude properties that contain any of these characteristics."
}
},
"type": "object",
"description": "Property characteristics."
},
"energy_certificate": {
"type": "string",
"enum": [
"Unknown",
"A+",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H"
],
"description": "Energy certificate. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_ratings` field instead.</strong>"
},
"energy_certificates": {
"items": {
"type": "string",
"enum": [
"Unknown",
"A+",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H"
]
},
"type": "array",
"description": "List of energy certificates. <br/><strong>This field is deprecated and will be removed in the next major update.</strong><br/><strong>Please, use `energy_ratings` field instead.</strong>"
},
"energy_ratings": {
"items": {
"type": "string",
"enum": [
"Unknown",
"A+",
"A",
"B",
"C",
"D",
"E",
"F",
"G",
"H"
]
},
"type": "array",
"description": "List of energy ratings."
},
"days_on_market_from": {
"type": "integer",
"maximum": 10000.0,
"minimum": 1.0,
"description": "Minimum days on market value."
},
"days_on_market_to": {
"type": "integer",
"maximum": 10000.0,
"minimum": 1.0,
"description": "Maximum days on market value."
},
"with_agencies": {
"items": {
"type": "string"
},
"type": "array",
"description": "Return properties from specified agencies, companies or sources. To find allowed agency names use the [GET /api/v1/references/agencies](/#operation/api__get__v1__references__agencies) endpoint."
},
"without_agencies": {
"items": {
"type": "string"
},
"type": "array",
"description": "Exclude properties from specified agencies, companies or sources. To find allowed agency names use the [GET /api/v1/references/agencies](/#operation/api__get__v1__references__agencies) endpoint."
},
"exclude_outliers": {
"type": "boolean",
"description": "Exclude properties that are significantly underpriced or overpriced compared to similar properties.",
"default": true
}
},
"type": "object",
"required": [
"comparables_count",
"location_boundary",
"operation",
"comparables_types"
]
}
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/casafari-api-search-comparables-request-v2"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.