pr-111-web.dev.api.espressoresearch.com
Open in
urlscan Pro
34.141.201.90
Public Scan
URL:
https://pr-111-web.dev.api.espressoresearch.com/
Submission: On April 17 via api from US — Scanned from NL
Submission: On April 17 via api from US — Scanned from NL
Form analysis
0 forms found in the DOMText Content
* Documentation * Statistics * Version * V1 * V2 Login * Authentication * APIs * References * getGet types * getGet features * getGet conditions * getGet agencies * getGet agents * getGet sources * postGet locations * postGet zipcode boundary by zipcode and country code * Alerts * getGet feeds list * postCreate feed * getGet alerts by feed * delDelete feed * postSearch alerts * putUpdate feed * Comparables * postSearch comparables * Properties * getGet property by ID * postSearch properties * postGet property by listing IDs * Valuation * postSearch estimated prices Documentation Powered by ReDoc CASAFARI API (6F1BD958) Download OpenAPI specification:Download The Casafari API provides clients with methods for manipulating alerts feeds, accounts, and consulting a reference of available locations, features and conditions. AUTHENTICATION AUTHENTICATION VIA TOKEN The API endpoints require an authentication token to be provided with each request. The token must be sent via the Authorization HTTP header, containing the keyword Token followed by your authentication token. As an example, using curl: curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ https://develop.dev.api.espressoresearch.com/v6f1bd958/references/types You can see your authentication token already in the examples in this page. Security Scheme Type HTTP HTTP Authorization Scheme Authorization header with Token REFERENCES GET TYPES Returns a list of all possible estate types. AUTHORIZATIONS: Authentication via Token RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/types https://develop.dev.api.espressoresearch.com/v1/references/types REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/types" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "types": [ * { * "group": "apartment", * "names": [ * "apartment", * "studio", * "duplex", * "penthouse" ] }, * { * "group": "house", * "names": [ * "country_house", * "house", * "palace", * "townhouse", * "villa", * "country_estate", * "chalet", * "bungalow" ] }, * { * "group": "investment", * "names": [ * "retail", * "office", * "industrial", * "warehouse", * "hotel", * "other_commercial" ] }, * { * "group": "plot", * "names": [ * "plot" ] }, * { * "group": "room", * "names": [ * "room" ] }, * { * "group": "other", * "names": [ * "parking", * "garage", * "other" ] }, * { * "group": "building", * "names": [ * "apartment_building", * "office_building", * "mix_use_building" ] } ] } GET FEATURES Returns a list of all possible property features. AUTHORIZATIONS: Authentication via Token RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/features https://develop.dev.api.espressoresearch.com/v1/references/features REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/features" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "features": [ * { * "group": "floor", * "names": [ * "no_floor", * "ground", * "middle", * "top" ] }, * { * "group": "orientation", * "names": [ * "exterior", * "interior" ] }, * { * "group": "views", * "names": [ * "water", * "landscape", * "city", * "golf", * "park" ] }, * { * "group": "directions", * "names": [ * "north", * "south", * "east", * "west" ] }, * { * "group": "characteristics", * "names": [ * "balcony", * "elevator", * "no_elevator", * "garage", * "garden", * "parking", * "storage", * "swimming_pool", * "terrace", * "rental_license", * "furniture", * "rented_out", * "life_annuity" ] } ] } GET CONDITIONS Returns a list of all possible estate conditions. AUTHORIZATIONS: Authentication via Token RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/conditions https://develop.dev.api.espressoresearch.com/v1/references/conditions REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/conditions" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "conditions": [ * "used", * "ruin", * "very-good", * "new", * "other" ] } GET AGENCIES Returns a list of all possible agencies with user restrictions. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS name required string A name of the agency to search. RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/agencies https://develop.dev.api.espressoresearch.com/v1/references/agencies REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/agencies?name=Comp" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "agencies": [ * { * "name": "ComprarCasa Guimarães & Guimarães Centro", * "agency_type": "company", * "source_ids": [ * 1616, * 2492 ] }, * { * "name": "ComprarCasa Setúbal Estádio", * "agency_type": "company", * "source_ids": [ * 1616 ] } ] } GET AGENTS Returns a list of all possible agents with user restrictions. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS name required string A name of the agent to search. RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/agents https://develop.dev.api.espressoresearch.com/v1/references/agents REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/agents?name=paul" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "agents": [ * "Paulo Diogo", * "Paulo Costa" ] } GET SOURCES Returns a list of all domains for the requested location. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS locationId required integer The location ID to search sources for. RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/references/sources https://develop.dev.api.espressoresearch.com/v1/references/sources REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/references/sources?locationId=1600" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "domains": [ * "barnes-portugal.com" ] } GET LOCATIONS Returns a list of all possible locations with user restrictions. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON name string Location name to search. coordinates Array of objects >= 4 items Limit search to locations within a closed polygon. First and last points must match. zip_codes Array of strings <= 15 items List of zip codes to filter by. RESPONSES 200 401 Unauthorized 403 Forbidden post/v1/references/locations https://develop.dev.api.espressoresearch.com/v1/references/locations REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "name": "ferreiras", * "coordinates": [ * { * "longitude": -8.183479, * "latitude": 37.1404 }, * { * "longitude": -8.18482, * "latitude": 37.13909 }, * { * "longitude": -8.1854, * "latitude": 37.13805 }, * { * "longitude": -8.21646, * "latitude": 37.11383 }, * { * "longitude": -8.183479, * "latitude": 37.1404 } ] } RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "locations": [ * { * "location_id": 1603, * "name": "Ferreiras", * "parent_id": 1602, * "administrative_level": "Freguesia", * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "País", * "zip_codes": [ * "1200-224" ], * "level": 1 }, * { * "location_id": 1597, * "name": "Faro", * "administrative_level": "Distrito", * "zip_codes": [ ], * "level": 2 }, * { * "location_id": 1602, * "name": "Albufeira", * "administrative_level": "Concelho", * "zip_codes": [ ], * "level": 3 }, * { * "location_id": 1603, * "name": "Ferreiras", * "administrative_level": "Freguesia", * "zip_codes": [ ], * "level": 4 } ] } ] } GET ZIPCODE BOUNDARY BY ZIPCODE AND COUNTRY CODE Get zipcode boundary by zipcode and country code. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON zip_code required string Zipcode. country_code required string Enum: "ES" "FR" "DE" "RE" "GP" "MQ" "GY" "YT" "AD" "MC" Country code following the ISO 3166-1 alpha-2 rules. RESPONSES 200 401 Unauthorized 403 Forbidden post/v1/references/zipcode-boundary https://develop.dev.api.espressoresearch.com/v1/references/zipcode-boundary REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "zip_code": "36116", * "country_code": "ES" } RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "zip_code": "36116", * "boundary": [ * [ * { * "latitude": 42.59448, * "longitude": -8.3877 }, * { * "latitude": 42.58795, * "longitude": -8.38622 }, * { * "latitude": 42.58338, * "longitude": -8.38604 }, * { * "latitude": 42.59568, * "longitude": -8.39284 }, * { * "latitude": 42.59448, * "longitude": -8.3877 } ] ] } ALERTS GET FEEDS LIST Returns all alerts feeds for currently authenticated user. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS filter boolean Whether to include information about feed filters in the response. only_self boolean Indicates if manager user wants to see only own feeds. RESPONSES 200 401 Unauthorized 403 Forbidden get/v1/listing-alerts/feeds https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds" RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all [ * { * "id": 887, * "user": "user@email.com", * "name": "Apartments for sale" }, * { * "id": 888, * "user": "user@email.com", * "name": "Houses for sale" } ] CREATE FEED Create alerts feed for currently authenticated user. Feed is a predefined set of conditions to filter alerts by. The id of created feed then should be used as URL parameter for get alerts by feed endpoint to get alerts filtered by feed filter conditions. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON name required string <= 200 characters Name of the feed. filter required object Set of clauses to filter alerts. request_source integer RESPONSES 201 400 Bad Request 401 Unauthorized 403 Forbidden post/v1/listing-alerts/feeds https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "name": "Apartments for sale in Cascais, Oeiras, Lisbon", * "filter": { * "operation": "sale", * "types": [ * "apartment", * "studio", * "duplex", * "penthouse" ], * "location_ids": [ * 2942, * 1861, * 1600 ], * "conditions": [ * "used", * "very-good", * "new" ], * "statuses": [ * "active", * "reserved" ], * "price_from": 150000, * "price_to": 800000, * "price_per_sqm_from": 2000, * "price_per_sqm_to": 8000, * "bedrooms_from": 1, * "bedrooms_to": 3, * "total_area_from": 30, * "total_area_to": 130, * "construction_year_from": 1950, * "floors": [ * "middle", * "top" ], * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "parking" ], * "private": false, * "new_development": false, * "has_agency_name": true, * "has_email": false, * "without_agencies": [ * "Airbnb", * "Casa.Sapo" ] } } RESPONSE SAMPLES * 201 * 400 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "id": 887, * "user": "user@email.com", * "name": "Apartments for sale in Cascais, Oeiras, Lisbon", * "filter": { * "operation": "sale", * "types": [ * "apartment", * "studio", * "duplex", * "penthouse" ], * "location_ids": [ * 2942, * 1861, * 1600 ], * "conditions": [ * "used", * "very-good", * "new" ], * "statuses": [ * "active", * "reserved" ], * "price_from": 150000, * "price_to": 800000, * "price_per_sqm_from": 2000, * "price_per_sqm_to": 8000, * "bedrooms_from": 1, * "bedrooms_to": 3, * "total_area_from": 30, * "total_area_to": 130, * "construction_year_from": 1950, * "floors": [ * "middle", * "top" ], * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "parking" ], * "private": false, * "new_development": false, * "has_agency_name": true, * "has_email": false, * "without_agencies": [ * "Airbnb", * "Casa.Sapo" ] } } GET ALERTS BY FEED Returns paginated list of alerts (by feed ID) for currently authenticated user. AUTHORIZATIONS: Authentication via Token PATH PARAMETERS id required string A unique integer value identifying this alerts feed. QUERY PARAMETERS limit integer Number of results to return per page. offset integer Offset from which to start the search. Maximum value is 50000. order_by string Default: "-alert_date" Enum: "alert_date" "-alert_date" "alert_id" "-alert_id" "created_at" "-created_at" "updated_at" "-updated_at" The field by which to sort the results. alert_date_from string <date> Start date (in the format YYYY-MM-DD) of the period for alerts of interest. Overrides alert_date_from value if it was specified in the feed filter. Invalid values are ignored. alert_date_to string <date> End date (in the format YYYY-MM-DD) of the period for alerts of interest. Overrides alert_date_to value if it was specified in the feed filter. Invalid values are ignored. alert_subtype string Enum: "new" "price_up" "price_down" "reserved" "delisted" "sold" Get only alerts of the specific subtype (for the requested feed). Invalid values are ignored. RESPONSES 200 400 Bad Request 401 Unauthorized 403 Forbidden 404 Not Found get/v1/listing-alerts/feeds/{id} https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds/{id} REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds/887?limit=50&alert_date_from=2021-09-01" RESPONSE SAMPLES * 200 * 400 * 401 * 403 * 404 Content type application/json Copy Expand all Collapse all { * "count": 79, * "next": "http://api.casafari.com/v1/listing-alerts/feeds/887?alert_date_from=2021-09-01&limit=50&offset=50", * "previous": null, * "results": [ * { * "alert_id": 412269711, * "listing_id": 110358519, * "ref": "ID-124021076-47", * "alert_type": "sale_price", * "alert_subtype": "price_down", * "old_value": "549000", * "new_value": "545000", * "alert_date": "2021-10-24", * "alert_date_and_time": "2021-10-24T05:37:09", * "property_url": "https://www.casafari.com/home-sale/property-51277418", * "listing_url": "https://www.idealista.pt/imovel/31407575/", * "listing_uid": "1054046", * "property_id": 51277418, * "type": "apartment", * "type_group": "apartment", * "location": { * "location_id": 28649, * "name": "Santa Engrácia", * "administrative_level": "Localidade", * "zip_codes": [ ] }, * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "País", * "zip_codes": [ * "1200-224" ] }, * { * "location_id": 1599, * "name": "Lisbon", * "administrative_level": "Distrito", * "zip_codes": [ ] }, * { * "location_id": 1600, * "name": "Lisbon", * "administrative_level": "Concelho", * "zip_codes": [ ] }, * { * "location_id": 1760, * "name": "São Vicente", * "administrative_level": "Freguesia", * "zip_codes": [ ] }, * { * "location_id": 28649, * "name": "Santa Engrácia", * "administrative_level": "Localidade", * "zip_codes": [ ] } ], * "address": "", * "coordinates": { * "latitude": 38.7194, * "longitude": -9.12209 }, * "condition": "used", * "contacts_info": { * "name": null, * "email": null, * "phone": "215551538" }, * "total_area": 130, * "living_area": 128, * "plot_area": 0, * "terrace_area": 15, * "bedrooms": 3, * "rooms": 0, * "bathrooms": 2, * "features": { * "floor": "middle", * "orientation": null, * "views": [ * "city", * "landscape" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "garage", * "parking", * "storage" ] }, * "construction_year": 2015, * "operations": [ * "sale" ], * "is_bank_property": false, * "is_auction_property": false, * "is_new_development_property": false, * "is_private_property": false, * "sale_status": "active", * "sale_currency": "EUR", * "sale_price": 545000, * "sale_price_base": 545000, * "sale_price_per_sqm": 4192, * "sale_price_per_sqm_base": 4192, * "rent_status": "none", * "rent_currency": "EUR", * "rent_price": 0, * "rent_price_base": 0, * "rent_price_per_sqm": 0, * "rent_price_per_sqm_base": 0, * "rent_period": "none", * "agency": "Helena Almeida Pires", * "agent": "", * "source_name": "Idealista", * "description": "O apartamento é composto de sala de estar e jantar ampla, com janelas de vidro duplo que dão enorme luminosidade, ao ambiente.", * "thumbnails": [ * "https://st2.retelligence.co/c/2875/4/7f/5a0fc6ebf8e4e41d062342a29b50647f350.jpg", * "https://st2.retelligence.co/c/2875/c/f0/b0c609e7e242f55b2fb02efd33258cf0350.jpg" ], * "pictures": [ * "https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcdc.jpg", * "https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcd5.jpg" ], * "created_at": "2021-02-19T02:35:53.273581", * "updated_at": "2021-04-05T17:47:19.191211", * "energy_certificate": "B", * "energy_rating": "B", * "heating_type": "Central heating" } ] } DELETE FEED Delete alerts feed (by feed ID) for currently authenticated user. AUTHORIZATIONS: Authentication via Token PATH PARAMETERS id required string A unique integer value identifying this alerts feed. RESPONSES 200 401 Unauthorized 403 Forbidden 404 Not Found delete/v1/listing-alerts/feeds/{id} https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds/{id} REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X DELETE "https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds/887" RESPONSE SAMPLES * 200 * 401 * 403 * 404 Content type application/json Copy Expand all Collapse all { * "success": true } SEARCH ALERTS Returns paginated list of alerts (by requested parameters) for currently authenticated user. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS limit integer <= 100 Default: 20 Number of results to return per page. offset integer <= 50000 The initial index from which to return the results. order_by string Default: "-alert_date" Enum: "alert_date" "-alert_date" "alert_id" "-alert_id" "created_at" "-created_at" "updated_at" "-updated_at" The field by which to sort the results. alert_subtype string Enum: "new" "price_up" "price_down" "reserved" "delisted" "sold" Get only alerts of the specific subtype. Invalid values are ignored. REQUEST BODY SCHEMA: APPLICATION/JSON operation required string Enum: "sale" "rent" Operation type. location_ids Array of integers <= 100 items List of location IDs, as returned by the /references/locations endpoint. custom_location Array of objects >= 4 items Closed polygon of geo-points to search within. First and last points must match. This field is deprecated and will be removed in the next major update. Please, use custom_locations field instead. custom_locations Array of Array of objects <= 4 items List of closed polygons of geo-points to search within. Each polygon must contain at least 4 points. First and last points must match in each polygon. Maximum 4 polygons allowed. types Array of strings Items Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" conditions Array of strings Items Enum: "used" "ruin" "very-good" "new" "other" alert_date_from string <date> Start date (in the format YYYY-MM-DD) of the period for alerts of interest. alert_date_to string <date> End date (in the format YYYY-MM-DD) of the period for alerts of interest. statuses Array of strings Items Enum: "active" "reserved" "hold" "sold" "rented" Current status of the listing. price_from integer [ 1 .. 2147483647 ] Minimum price value. price_to integer [ 1 .. 2147483647 ] Maximum price value. price_per_sqm_from integer [ 1 .. 2147483647 ] Minimum value for price per square meter. price_per_sqm_to integer [ 1 .. 2147483647 ] Maximum value for price per square meter. bedrooms_from integer [ 0 .. 15000 ] Minimum number of bedrooms. bedrooms_to integer [ 0 .. 15000 ] Maximum number of bedrooms. bathrooms_from integer [ 1 .. 15000 ] Minimum number of bathrooms. bathrooms_to integer [ 1 .. 15000 ] Maximum number of bathrooms. total_area_from integer [ 1 .. 1000000 ] Minimum total area. total_area_to integer [ 1 .. 1000000 ] Maximum total area. plot_area_from integer [ 1 .. 1000000 ] Minimum plot area. plot_area_to integer [ 1 .. 1000000 ] Maximum plot area. construction_year_from integer [ 1 .. 3000 ] Minimum construction year. construction_year_to integer [ 1 .. 3000 ] Maximum construction year. floor string Enum: "no_floor" "ground" "middle" "top" Floor type. This field is deprecated and will be removed in the next major update. Please, use floors field instead. floors Array of strings Items Enum: "no_floor" "ground" "middle" "top" List of floor types. orientation string Enum: "exterior" "interior" view string Enum: "water" "landscape" "city" "golf" "park" View from the property. This field is deprecated and will be removed in the next major update. Please, use views field instead. views Array of strings Items Enum: "water" "landscape" "city" "golf" "park" List of views from the property. direction string Enum: "north" "south" "east" "west" 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 of strings Items Enum: "north" "south" "east" "west" List of cardinal directions the property faces. characteristics Array of strings Items Enum: "balcony" "elevator" "no_elevator" "garage" "garden" "parking" "storage" "swimming_pool" "terrace" "rental_license" "furniture" "rented_out" "life_annuity" private boolean Whether to return alerts only from properties listed by a private individual, as opposed to an agent or a professional. auction boolean Whether to return alerts from auction property listings. bank boolean Whether to return alerts from bank property listings. new_development boolean Whether to return alerts from new development property listings. listing_agents Array of strings Return alerts only for properties from specified agents. To find allowed agent names use the /references/agents endpoint. with_agencies Array of strings Return alerts only for properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. without_agencies Array of strings Exclude alerts for properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. exclusive boolean Whether to return alerts exclusively from specific listings rather than from all related to the property listings. Can be passed only along with at least one of the fields: private, with_agencies, without_agencies. ref_numbers Array of strings List of reference numbers from listings. has_phone boolean Whether to return alerts only from listings with or without phone number. has_email boolean Whether to return alerts only from listings with or without email. has_agency_name boolean Whether to return alerts only from listings with or without agency name. RESPONSES 200 400 Bad Request 401 Unauthorized 403 Forbidden post/v1/listing-alerts/search https://develop.dev.api.espressoresearch.com/v1/listing-alerts/search REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "operation": "sale", * "types": [ * "apartment", * "studio", * "duplex", * "penthouse" ], * "location_ids": [ * 2942, * 1861, * 1600 ], * "conditions": [ * "used", * "very-good", * "new" ], * "statuses": [ * "active", * "reserved" ], * "price_from": 150000, * "price_to": 800000, * "price_per_sqm_from": 2000, * "price_per_sqm_to": 8000, * "bedrooms_from": 1, * "bedrooms_to": 3, * "total_area_from": 30, * "total_area_to": 130, * "construction_year_from": 1950, * "floors": [ * "middle", * "top" ], * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "parking" ], * "private": false, * "new_development": false, * "has_agency_name": true, * "has_email": false, * "without_agencies": [ * "Airbnb", * "Casa.Sapo" ], * "alert_date_from": "2021-09-01" } RESPONSE SAMPLES * 200 * 400 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "count": 79, * "next": "https://api.casafari.com/v1/listing-alerts/search?limit=50&offset=50", * "previous": null, * "results": [ * { * "alert_id": 412269711, * "listing_id": 110358519, * "ref": "ID-124021076-47", * "alert_type": "sale_price", * "alert_subtype": "price_down", * "old_value": "549000", * "new_value": "545000", * "alert_date": "2021-10-24", * "alert_date_and_time": "2021-10-24T05:37:09", * "property_url": "https://www.casafari.com/home-sale/property-51277418", * "listing_url": "https://www.idealista.pt/imovel/31407575/", * "listing_uid": "1054046", * "property_id": 51277418, * "type": "apartment", * "type_group": "apartment", * "location": { * "location_id": 28649, * "name": "Santa Engrácia", * "administrative_level": "Localidade", * "zip_codes": [ ] }, * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "País", * "zip_codes": [ * "1200-224" ] }, * { * "location_id": 1599, * "name": "Lisbon", * "administrative_level": "Distrito", * "zip_codes": [ ] }, * { * "location_id": 1600, * "name": "Lisbon", * "administrative_level": "Concelho", * "zip_codes": [ ] }, * { * "location_id": 1760, * "name": "São Vicente", * "administrative_level": "Freguesia", * "zip_codes": [ ] }, * { * "location_id": 28649, * "name": "Santa Engrácia", * "administrative_level": "Localidade", * "zip_codes": [ ] } ], * "address": "", * "coordinates": { * "latitude": 38.7194, * "longitude": -9.12209 }, * "condition": "used", * "contacts_info": { * "name": null, * "email": null, * "phone": "215551538" }, * "total_area": 130, * "living_area": 128, * "plot_area": 0, * "terrace_area": 15, * "bedrooms": 3, * "rooms": 0, * "bathrooms": 2, * "features": { * "floor": "middle", * "orientation": null, * "views": [ * "city", * "landscape" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "garage", * "parking", * "storage" ] }, * "construction_year": 2015, * "operations": [ * "sale" ], * "is_bank_property": false, * "is_auction_property": false, * "is_new_development_property": false, * "is_private_property": false, * "sale_status": "active", * "sale_currency": "EUR", * "sale_price": 545000, * "sale_price_base": 545000, * "sale_price_per_sqm": 4192, * "sale_price_per_sqm_base": 4192, * "rent_status": "none", * "rent_currency": "EUR", * "rent_price": 0, * "rent_price_base": 0, * "rent_price_per_sqm": 0, * "rent_price_per_sqm_base": 0, * "rent_period": "none", * "agency": "Helena Almeida Pires", * "agent": "", * "source_name": "Idealista", * "description": "O apartamento é composto de sala de estar e jantar ampla, com janelas de vidro duplo que dão enorme luminosidade, ao ambiente.", * "thumbnails": [ * "https://st2.retelligence.co/c/2875/4/7f/5a0fc6ebf8e4e41d062342a29b50647f350.jpg", * "https://st2.retelligence.co/c/2875/c/f0/b0c609e7e242f55b2fb02efd33258cf0350.jpg" ], * "pictures": [ * "https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcdc.jpg", * "https://media.casasapo.pt/Z1140x855/Wnone/S5/C2729/P20091734/Tphoto/ID56933201-0000-0500-0000-00000d1ffcd5.jpg" ], * "created_at": "2021-02-19T02:35:53.273581", * "updated_at": "2021-04-05T17:47:19.191211", * "energy_certificate": "B", * "energy_rating": "B", * "heating_type": "Central heating" } ] } UPDATE FEED Update alerts feed by id. AUTHORIZATIONS: Authentication via Token PATH PARAMETERS id required string A unique integer value identifying this alerts feed. REQUEST BODY SCHEMA: APPLICATION/JSON name required string <= 200 characters Name of the feed. filter required object Set of clauses to filter alerts. request_source integer RESPONSES 200 401 Unauthorized 403 Forbidden 404 Not Found put/v1/listing-alerts/feeds/{id}/update https://develop.dev.api.espressoresearch.com/v1/listing-alerts/feeds/{id}/update REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "name": "Apartments for sale in Cascais, Oeiras, Lisbon", * "filter": { * "operation": "sale", * "types": [ * "apartment", * "studio", * "duplex", * "penthouse" ], * "location_ids": [ * 2942, * 1861, * 1600 ], * "conditions": [ * "used", * "very-good", * "new" ], * "statuses": [ * "active", * "reserved" ], * "price_from": 150000, * "price_to": 800000, * "price_per_sqm_from": 2000, * "price_per_sqm_to": 8000, * "bedrooms_from": 1, * "bedrooms_to": 3, * "total_area_from": 30, * "total_area_to": 130, * "construction_year_from": 1950, * "floors": [ * "middle", * "top" ], * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "parking" ], * "private": false, * "new_development": false, * "has_agency_name": true, * "has_email": false, * "without_agencies": [ * "Airbnb", * "Casa.Sapo" ] } } RESPONSE SAMPLES * 200 * 401 * 403 * 404 Content type application/json Copy Expand all Collapse all { * "id": 887, * "name": "Apartments for sale in Cascais, Oeiras, Lisbon", * "filter": { * "operation": "sale", * "types": [ * "apartment", * "studio", * "duplex", * "penthouse" ], * "location_ids": [ * 2942, * 1861, * 1600 ], * "conditions": [ * "used", * "very-good", * "new" ], * "statuses": [ * "active", * "reserved" ], * "price_from": 150000, * "price_to": 800000, * "price_per_sqm_from": 2000, * "price_per_sqm_to": 8000, * "bedrooms_from": 1, * "bedrooms_to": 3, * "total_area_from": 30, * "total_area_to": 130, * "construction_year_from": 1950, * "floors": [ * "middle", * "top" ], * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "characteristics": [ * "balcony", * "elevator", * "parking" ], * "private": false, * "new_development": false, * "has_agency_name": true, * "has_email": false, * "without_agencies": [ * "Airbnb", * "Casa.Sapo" ] }, * "user": "user@email.com" } COMPARABLES SEARCH COMPARABLES Returns comparable properties by the given parameters. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON comparables_count required integer [ 1 .. 50 ] 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 required object Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided. distance number [ 0.05 .. 50 ] Default: 5 Maximum distance in kilometers from the requested target_point to comparable properties. sold_or_rented_after string <date> Nullable 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 required string Enum: "sale" "rent" Operation type. business_type string Enum: "sale" "rent" Operation type. This field is deprecated and will be removed in the next major update. Please, use operation field instead. comparables_type string Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" Comparables property type. This field is deprecated and will be removed in the next major update. Please, use comparables_types field instead. comparables_types required Array of strings Items Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" The list of comparables property types. Property type groups: apartment: ["apartment", "duplex", "penthouse", "studio"] house: ["bungalow", "chalet", "country_estate", "country_house", "house", "palace", "townhouse", "villa"] room: ["room"] building: ["apartment_building", "mix_use_building", "office_building"] investment: ["hotel", "industrial", "office", "other_commercial", "retail", "warehouse"] plot: ["plot"] other: ["garage", "other", "parking"] Note that you can select multiple types only from one property type group. property_type string Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" Comparables property type. This field is deprecated and will be removed in the next major update. Please, use comparables_types field instead. min_price integer [ 0 .. 2147483647 ] Default: 0 The minimum price filter for comparables result. max_price integer [ 1 .. 2147483647 ] The maximum price filter for comparables result. condition string Enum: "used" "ruin" "very-good" "new" "other" Property condition, as returned by the /references/conditions endpoint. bedrooms integer [ 0 .. 15000 ] Number of bedrooms (cannot be used together with rooms). rooms integer [ 0 .. 15000 ] Number of rooms (cannot be used together with bedrooms). bathrooms integer [ 1 .. 15000 ] Number of bathrooms. construction_year integer [ 1 .. 3000 ] Desired construction year. total_area integer [ 5 .. 1000000 ] Desired total area, square meters. This field is required for hotel, industrial, office, other_commercial, retail, warehouse property types if target_point.cadastral_reference is not provided. plot_area integer [ 20 .. 1000000 ] Desired plot area, square meters. This field is required for plot property type if target_point.cadastral_reference is not provided. floor string Enum: "no_floor" "ground" "middle" "top" Floor type. This field is deprecated and will be removed in the next major update. Please, use floors field instead. floors Array of strings Items Enum: "no_floor" "ground" "middle" "top" List of floor types. floor_number Array of integers Desired list of floor numbers. Minimum value is 1. Maximum value is 250. orientation string Enum: "exterior" "interior" Property view orientation. view string Enum: "water" "landscape" "city" "golf" "park" View from the property. This field is deprecated and will be removed in the next major update. Please, use views field instead. views Array of strings Items Enum: "water" "landscape" "city" "golf" "park" List of views from the property. direction string Enum: "north" "south" "east" "west" 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 of strings Items Enum: "north" "south" "east" "west" List of cardinal directions the property faces. characteristics object Property characteristics. energy_certificate string Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" Energy certificate. This field is deprecated and will be removed in the next major update. Please, use energy_ratings field instead. energy_certificates Array of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" 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 of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" List of energy ratings. with_agencies Array of strings Return properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. without_agencies Array of strings Exclude properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. RESPONSES 200 400 Bad Request 401 Unauthorized 403 Forbidden post/v1/comparables/search https://develop.dev.api.espressoresearch.com/v1/comparables/search REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "comparables_count": 20, * "target_point": { * "coordinates": { * "latitude": 38.74, * "longitude": -9.17 } }, * "sold_or_rented_after": "2020-06-01", * "operation": "sale", * "comparables_types": [ * "apartment" ], * "distance": 3.5, * "bedrooms": 2, * "construction_year": 2010, * "total_area": 125, * "condition": "used", * "floors": [ * "middle", * "top" ], * "floor_number": [ * 3, * 5 ], * "views": [ * "city", * "landscape" ], * "directions": [ * "west", * "north" ], * "characteristics": { * "must_have": [ * "balcony", * "elevator" ], * "nice_to_have": [ * "garage", * "parking", * "storage" ] }, * "energy_ratings": [ * "A", * "B", * "C" ] } RESPONSE SAMPLES * 200 * 400 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "results": [ * { * "property_id": 256778247, * "property_url": "https://www.casafari.com/home-sale/property-256778247", * "primary_listing_id": 186140786, * "type": "apartment", * "type_group": "apartment", * "coordinates": { * "latitude": 38.7109, * "longitude": -9.16226 }, * "location": { * "location_id": 1721, * "name": "Lapa", * "administrative_level": "Localidade", * "zip_codes": [ ] }, * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "País", * "zip_codes": [ ] }, * { * "location_id": 1599, * "name": "Lisbon", * "administrative_level": "Distrito", * "zip_codes": [ ] }, * { * "location_id": 1600, * "name": "Lisbon", * "administrative_level": "Concelho", * "zip_codes": [ ] }, * { * "location_id": 1719, * "name": "Estrela", * "administrative_level": "Freguesia", * "zip_codes": [ ] }, * { * "location_id": 1721, * "name": "Lapa", * "administrative_level": "Localidade", * "zip_codes": [ ] } ], * "address": "", * "distance": 3.305, * "construction_year": 0, * "total_area": 122, * "living_area": 122, * "plot_area": 0, * "terrace_area": 26, * "bedrooms": 2, * "rooms": 0, * "bathrooms": 2, * "floor_number": 1, * "condition": "used", * "features": { * "floor": "middle", * "orientation": "exterior", * "view": "city", * "views": [ * "city" ], * "direction": "south", * "directions": [ * "south" ], * "characteristics": [ * "balcony", * "elevator", * "garage", * "garden", * "parking", * "storage", * "terrace" ] }, * "operations": [ * "sale" ], * "sale_status": "sold", * "sale_currency": "EUR", * "sale_price": 695000, * "sale_price_base": 695000, * "sale_price_per_sqm": 5697, * "sale_price_per_sqm_base": 5697, * "rent_status": "none", * "rent_currency": "EUR", * "rent_price": 0, * "rent_price_base": 0, * "rent_price_per_sqm": 0, * "rent_price_per_sqm_base": 0, * "rent_period": "none", * "title": "Apartamento T2 à venda em Lapa", * "description": "Apartamento T2 com estacionamento situado na Lapa...", * "thumbnails": [ * "https://st2.retelligence.co/c/2506/4/0f/98684d26c1300adf96eea8b9c70cc40f350.jpg", * "https://st2.retelligence.co/c/2506/5/02/10c59c86fd7ed3719c725370338e9502350.jpg", * "https://st2.retelligence.co/c/2506/1/ec/c89d5a300735d01b7881124d333bd1ec350.jpg" ], * "gross_yield": 0, * "sold_at": "2023-01-18T00:00:00", * "rented_at": null, * "total_sale_price_change": -10.9, * "total_rent_price_change": 0, * "last_sale_price_reduction": 8.55, * "last_rent_price_reduction": 0, * "sale_price_last_change": { * "change_date": "2022-12-29", * "old_value": 760000, * "new_value": 695000 }, * "rent_price_last_change": null, * "sale_time_on_market": { * "date_start": "2022-02-21", * "date_end": "2023-01-18", * "days_on_market": 332, * "has_untracked_period": false }, * "rent_time_on_market": null, * "sale_active_listings_count": 0, * "rent_active_listings_count": 0, * "similarity_score": 0.644, * "listing_urls": [ ], * "is_dvf": false, * "is_private_property": false, * "energy_certificate": "C", * "energy_rating": "C" } ], * "statistics": { * "average_price": 1506739, * "average_price_per_sqm": 12321, * "average_time_on_the_market": 43, * "average_listings_per_property": 2.7, * "sold_or_rented_in_last_six_months": 26 }, * "estimated_prices": { * "fast_sell_price": 1432316, * "fair_market_price": 1540125, * "out_of_market_price": 1647934 }, * "casafari_link": "https://develop.dev.application.espressoresearch.com/market-analytics/valuation?valuation_businessType=sale&val..." } PROPERTIES GET PROPERTY BY ID Returns a property object. AUTHORIZATIONS: Authentication via Token PATH PARAMETERS property_id required string RESPONSES 200 401 Unauthorized 403 Forbidden 404 Not Found get/v1/properties/search/{property_id} https://develop.dev.api.espressoresearch.com/v1/properties/search/{property_id} REQUEST SAMPLES * cURL * Python Copy curl -H "Authorization: Token {AUTHORIZATION_TOKEN}" \ -X GET "https://develop.dev.api.espressoresearch.com/v1/properties/search/6256230" RESPONSE SAMPLES * 200 * 401 * 403 * 404 Content type application/json Copy Expand all Collapse all { * "property_id": 6256230, * "primary_listing_id": 23587829, * "type": "other", * "type_group": "other", * "operations": [ * "rent" ], * "location": { * "location_id": 5699, * "name": "Laranjeiras", * "administrative_level": "Localidade", * "zip_codes": [ * "3250-151" ] }, * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "Pais", * "zip_codes": [ * "1200-224" ] }, * { * "location_id": 1599, * "name": "Lisbon", * "administrative_level": "Distrito", * "zip_codes": [ * "1000-017" ] }, * { * "location_id": 1600, * "name": "Lisbon", * "administrative_level": "Concelho", * "zip_codes": [ * "1000-017" ] }, * { * "location_id": 2818, * "name": "Sao Domingos De Benfica", * "administrative_level": "Freguesia", * "zip_codes": [ * "1500-561" ] }, * { * "location_id": 5699, * "name": "Laranjeiras", * "administrative_level": "Localidade", * "zip_codes": [ * "3250-151" ] } ], * "coordinates": { * "latitude": 38.7482, * "longitude": -9.17304 }, * "total_area": 0, * "plot_area": 0, * "terrace_area": 0, * "bathrooms": 0, * "bedrooms": null, * "rooms": 0, * "floor_number": null, * "rent_currency": "EUR", * "rent_period": "none", * "rent_price": 75, * "rent_status": "rented", * "sale_currency": "EUR", * "sale_price": 0, * "sale_status": "none", * "is_private_property": true, * "features": { * "floor": "no_floor", * "orientation": "exterior", * "view": "city", * "views": [ * "city" ], * "direction": "south", * "directions": [ * "east", * "north", * "south", * "west" ], * "characteristics": [ * "balcony", * "elevator", * "garage", * "garden", * "parking", * "swimming_pool" ] }, * "condition": "other", * "sale_time_on_market": null, * "rent_time_on_market": { * "date_start": "2020-06-12", * "date_end": "2020-06-24", * "days_on_market": 13, * "has_untracked_period": false }, * "listings": [ * { * "listing_id": 23587829, * "total_area": 0, * "plot_area": 0, * "terrace_area": 0, * "bedrooms": null, * "bathrooms": 0, * "rooms": 0, * "sale_status": "none", * "sale_currency": "EUR", * "sale_price": 0, * "sale_price_base": 0, * "rent_status": "hold", * "rent_currency": "EUR", * "rent_price": 75, * "rent_price_base": 75, * "agency": "Susana Pires", * "listing_url": null, * "listing_old_url": "https://www.idealista.pt/imovel/31407575/", * "description": "Temos disponível para aluguer ...", * "listing_uid": "595677247", * "construction_year": 0, * "source_name": "OLX", * "contacts_info": { * "name": null, * "email": "test@email.com", * "phone": "+0 123456789" }, * "energy_certificate": "Unknown", * "energy_rating": "Unknown", * "heating_type": "Central heating", * "companies": [ * { * "name": "Company name", * "casafari_connect_on": true } ], * "created_at": "2020-06-25T00:00:00", * "floor_number": 5, * "is_private": true, * "thumbnails": [ * "https://st2.retelligence.co/c/829/a/5c/b2ce05100bc5bfeac4ff1e26d0b1da5c350.jpg", * "https://st2.retelligence.co/c/829/5/48/c3c0b9a8fbf962ef3e1bd9bc370d2548350.jpg", * "https://st2.retelligence.co/c/829/4/4c/a56ceed6847a157120f0db798b94844c350.jpg" ], * "pictures": [ * "https://ireland.apollo.olxcdn.com:443/v1/files/9ch7n2jh2aj92-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/0mghzm4vvrrm2-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/aim442ored301-PT/image;s=1000x700" ], * "ref_numbers": [ * "ref_number_1", * "ref_number_2" ], * "is_private_property": false, * "is_auction_property": false, * "is_bank_property": false } ], * "history": [ * { * "sale_price": 0, * "sale_currency": "EUR", * "rent_price": 70, * "rent_currency": "EUR", * "changed_at": "2021-03-09" } ], * "sale_price_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "sale_price_new": 1000, * "sale_price_old": 900 } ], * "rent_price_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "rent_price_new": 75, * "rent_price_old": 70 } ], * "sale_status_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "sale_status_new": "active", * "sale_status_old": "sold" } ], * "rent_status_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "rent_price_new": "rented", * "rent_price_old": "active" } ], * "property_url": "https://www.casafari.com/home-sale/property-6256230", * "address": "", * "distance": null, * "description": "Temos disponível para aluguer ...", * "construction_year": 0, * "rent_price_base": 75, * "rent_price_per_sqm": 0, * "rent_price_per_sqm_base": 0, * "sale_price_base": 0, * "sale_price_per_sqm": 0, * "sale_price_per_sqm_base": 0, * "is_auction_property": false, * "is_bank_property": false, * "changed_at": "2020-06-25T00:00:00", * "sale_price_last_change": null, * "rent_price_last_change": null, * "thumbnails": [ * "https://st2.retelligence.co/c/829/a/5c/b2ce05100bc5bfeac4ff1e26d0b1da5c350.jpg", * "https://st2.retelligence.co/c/829/5/48/c3c0b9a8fbf962ef3e1bd9bc370d2548350.jpg", * "https://st2.retelligence.co/c/829/4/4c/a56ceed6847a157120f0db798b94844c350.jpg" ], * "pictures": [ * "https://ireland.apollo.olxcdn.com:443/v1/files/9ch7n2jh2aj92-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/0mghzm4vvrrm2-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/aim442ored301-PT/image;s=1000x700" ], * "gross_yield": 0, * "title": "Aluga-de Lugar de Garagem, Laranjeiras, Lisboa", * "energy_certificate": "A", * "energy_rating": "A", * "ref_numbers": [ * "ref_number_1", * "ref_number_2" ], * "source_floor_numbers": [ * 1, * 5 ] } SEARCH PROPERTIES Returns properties by the given parameters. AUTHORIZATIONS: Authentication via Token QUERY PARAMETERS limit integer <= 100 Default: 20 Number of results to return per page. offset integer <= 50000 The initial index from which to return the results. order string Default: "asc" Enum: "asc" "desc" The order of search results. order_by string Enum: "price" "price_per_sqm" "total_area" "plot_area" "bedrooms" "construction_year" "last_update" "time_on_market" The field by which to sort the results. REQUEST BODY SCHEMA: APPLICATION/JSON search_operations required Array of strings Items Enum: "sale" "sold" "sale_hold" "rent" "rented" "rent_hold" Search business types for which the property is available. location_ids Array of integers <= 100 items List of location IDs, as returned by the /references/locations endpoint. custom_location_boundary object Custom 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. conditions Array of strings Items Enum: "used" "ruin" "very-good" "new" "other" Property condition, as returned by the /references/conditions endpoint. property_date_from string <date> Start date (in the format YYYY-MM-DD) of the period for property of interest. property_date_to string <date> End date (in the format YYYY-MM-DD) of the period for property of interest. created_date_from string <date> Created date from (in the format YYYY-MM-DD). created_date_to string <date> Created date to (in the format YYYY-MM-DD). updated_date_from string <date> Updated date from (in the format YYYY-MM-DD). updated_date_to string <date> Updated date to (in the format YYYY-MM-DD). price_from integer [ 1 .. 2147483647 ] Minimum price value. price_to integer [ 1 .. 2147483647 ] Maximum price value. price_per_sqm_from integer [ 1 .. 2147483647 ] Minimum value for price per square meter. price_per_sqm_to integer [ 1 .. 2147483647 ] Maximum value for price per square meter. bedrooms_from integer [ 0 .. 15000 ] Minimum number of bedrooms. bedrooms_to integer [ 0 .. 15000 ] Maximum number of bedrooms. bathrooms_from integer [ 1 .. 15000 ] Minimum number of bathrooms. bathrooms_to integer [ 1 .. 15000 ] Maximum number of bathrooms. total_area_from integer [ 1 .. 1000000 ] Minimum total area. total_area_to integer [ 1 .. 1000000 ] Maximum total area. plot_area_from integer [ 1 .. 1000000 ] Minimum plot area. plot_area_to integer [ 1 .. 1000000 ] Maximum plot area. construction_year_from integer [ 1 .. 3000 ] Minimum construction year. construction_year_to integer [ 1 .. 3000 ] Maximum construction year. floor string Enum: "no_floor" "ground" "middle" "top" Floor type. This field is deprecated and will be removed in the next major update. Please, use floors field instead. floors Array of strings Items Enum: "no_floor" "ground" "middle" "top" List of floor types. orientation string Enum: "exterior" "interior" Property view orientation. view string Enum: "water" "landscape" "city" "golf" "park" View from the property. This field is deprecated and will be removed in the next major update. Please, use views field instead. views Array of strings Items Enum: "water" "landscape" "city" "golf" "park" List of views from the property. direction string Enum: "north" "south" "east" "west" 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 of strings Items Enum: "north" "south" "east" "west" List of cardinal directions the property faces. characteristics object Property characteristics. The field was changed from Array of strings to object. Backwards compatibility is still supported. types Array of strings Items Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" Property types, as returned by the /references/types endpoint. property_types Array of strings Items Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" Property types, as returned by the /references/types endpoint. This field is deprecated and will be removed in the next major update. Please, use types field instead. private boolean Whether to return properties listed by a private individual, as opposed to an agent or a professional. auction boolean Whether to return auction properties. (If the bank filter is also set, the result will contain both auction and bank properties) bank boolean Whether to return bank properties. (If the auction filter is also set, the result will contain both bank and auction properties) listing_agents Array of strings Return properties from specified agents. To find allowed agent names use the /references/agents endpoint. with_agencies Array of strings Return properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. without_agencies Array of strings Exclude properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. exclusive boolean Whether to return properties that are available on market exclusively from a single agency or private individual. Can be passed only along with at least one of the fields: private, with_agencies, without_agencies. ref_numbers Array of strings List of reference numbers from listings. energy_certificate string Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" Energy certificate. This field is deprecated and will be removed in the next major update. Please, use energy_ratings field instead. energy_certificates Array of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" 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 of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" List of energy ratings. RESPONSES 200 400 Bad Request 401 Unauthorized 403 Forbidden post/v1/properties/search https://develop.dev.api.espressoresearch.com/v1/properties/search REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "search_operations": [ * "rented", * "rent" ], * "conditions": [ * "used" ], * "location_ids": [ * 499 ], * "custom_location_boundary": { * "circle": { * "distance": 30, * "target_point": { * "coordinates": { * "latitude": 38.71, * "longitude": -9.17 } } } }, * "price_from": 800, * "price_to": 10000, * "price_per_sqm_from": 5, * "price_per_sqm_to": 50, * "bedrooms_from": 1, * "bedrooms_to": 3, * "bathrooms_from": 1, * "bathrooms_to": 2, * "total_area_from": 30, * "total_area_to": 1000, * "views": [ * "city" ], * "directions": [ * "west", * "south" ], * "floors": [ * "middle", * "top" ], * "energy_ratings": [ * "A", * "B", * "C" ] } RESPONSE SAMPLES * 200 * 400 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "count": 349, * "next": "https://api.casafari.com/v1/properties/search?limit=20&offset=20&order=asc&order_by=price", * "previous": null, * "results": [ * { * "property_id": 6256230, * "primary_listing_id": 23587829, * "type": "other", * "type_group": "other", * "operations": [ * "rent" ], * "location": { * "location_id": 5699, * "name": "Laranjeiras", * "administrative_level": "Localidade", * "zip_codes": [ * "3250-151" ] }, * "locations_structure": [ * { * "location_id": 499, * "name": "Portugal", * "administrative_level": "Pais", * "zip_codes": [ * "1200-224" ] }, * { * "location_id": 1599, * "name": "Lisbon", * "administrative_level": "Distrito", * "zip_codes": [ * "1000-017" ] }, * { * "location_id": 1600, * "name": "Lisbon", * "administrative_level": "Concelho", * "zip_codes": [ * "1000-017" ] }, * { * "location_id": 2818, * "name": "Sao Domingos De Benfica", * "administrative_level": "Freguesia", * "zip_codes": [ * "1500-561" ] }, * { * "location_id": 5699, * "name": "Laranjeiras", * "administrative_level": "Localidade", * "zip_codes": [ * "3250-151" ] } ], * "coordinates": { * "latitude": 38.7482, * "longitude": -9.17304 }, * "total_area": 0, * "plot_area": 0, * "terrace_area": 0, * "bathrooms": 0, * "bedrooms": null, * "rooms": 0, * "floor_number": null, * "rent_currency": "EUR", * "rent_period": "none", * "rent_price": 75, * "rent_status": "rented", * "sale_currency": "EUR", * "sale_price": 0, * "sale_status": "none", * "is_private_property": true, * "features": { * "floor": "no_floor", * "orientation": "exterior", * "view": "city", * "views": [ * "city" ], * "direction": "south", * "directions": [ * "east", * "north", * "south", * "west" ], * "characteristics": [ * "balcony", * "elevator", * "garage", * "garden", * "parking", * "swimming_pool" ] }, * "condition": "other", * "sale_time_on_market": null, * "rent_time_on_market": { * "date_start": "2020-06-12", * "date_end": "2020-06-24", * "days_on_market": 13, * "has_untracked_period": false }, * "listings": [ * { * "listing_id": 23587829, * "total_area": 0, * "plot_area": 0, * "terrace_area": 0, * "bedrooms": null, * "bathrooms": 0, * "rooms": 0, * "sale_status": "none", * "sale_currency": "EUR", * "sale_price": 0, * "sale_price_base": 0, * "rent_status": "hold", * "rent_currency": "EUR", * "rent_price": 75, * "rent_price_base": 75, * "agency": "Susana Pires", * "listing_url": null, * "listing_old_url": "https://www.idealista.pt/imovel/31407575/", * "description": "Temos disponível para aluguer ...", * "listing_uid": "595677247", * "construction_year": 0, * "source_name": "OLX", * "contacts_info": { * "name": null, * "email": "test@email.com", * "phone": "+0 123456789" }, * "energy_certificate": "Unknown", * "energy_rating": "Unknown", * "heating_type": "Central heating", * "companies": [ * { * "name": "Company name", * "casafari_connect_on": true } ], * "created_at": "2020-06-25T00:00:00", * "floor_number": 5, * "is_private": true, * "thumbnails": [ * "https://st2.retelligence.co/c/829/a/5c/b2ce05100bc5bfeac4ff1e26d0b1da5c350.jpg", * "https://st2.retelligence.co/c/829/5/48/c3c0b9a8fbf962ef3e1bd9bc370d2548350.jpg", * "https://st2.retelligence.co/c/829/4/4c/a56ceed6847a157120f0db798b94844c350.jpg" ] } ], * "history": [ * { * "sale_price": 0, * "sale_currency": "EUR", * "rent_price": 70, * "rent_currency": "EUR", * "changed_at": "2021-03-09" } ], * "sale_price_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "sale_price_new": 1000, * "sale_price_old": 900 } ], * "rent_price_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "rent_price_new": 75, * "rent_price_old": 70 } ], * "sale_status_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "sale_status_new": "active", * "sale_status_old": "sold" } ], * "rent_status_history": [ * { * "date_end": "2021-06-26", * "date_start": "2021-03-09", * "rent_price_new": "rented", * "rent_price_old": "active" } ], * "property_url": "https://www.casafari.com/home-sale/property-6256230", * "address": "", * "distance": null, * "description": "Temos disponível para aluguer ...", * "construction_year": 0, * "rent_price_base": 75, * "rent_price_per_sqm": 0, * "rent_price_per_sqm_base": 0, * "sale_price_base": 0, * "sale_price_per_sqm": 0, * "sale_price_per_sqm_base": 0, * "is_auction_property": false, * "is_bank_property": false, * "changed_at": "2020-06-25T00:00:00", * "sale_price_last_change": null, * "rent_price_last_change": null, * "thumbnails": [ * "https://st2.retelligence.co/c/829/a/5c/b2ce05100bc5bfeac4ff1e26d0b1da5c350.jpg", * "https://st2.retelligence.co/c/829/5/48/c3c0b9a8fbf962ef3e1bd9bc370d2548350.jpg", * "https://st2.retelligence.co/c/829/4/4c/a56ceed6847a157120f0db798b94844c350.jpg" ], * "pictures": [ * "https://ireland.apollo.olxcdn.com:443/v1/files/9ch7n2jh2aj92-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/0mghzm4vvrrm2-PT/image;s=1000x700", * "https://ireland.apollo.olxcdn.com:443/v1/files/aim442ored301-PT/image;s=1000x700" ], * "gross_yield": 0, * "title": "Aluga-de Lugar de Garagem, Laranjeiras, Lisboa", * "energy_certificate": "A", * "energy_rating": "A", * "ref_numbers": [ * "ref_number_1", * "ref_number_2" ], * "source_floor_numbers": [ * 1, * 5 ] } ] } GET PROPERTY BY LISTING IDS Returns a mapping properties IDs to listing IDs. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON listing_ids required Array of integers <= 100 items List of listing IDs. RESPONSES 200 401 Unauthorized 403 Forbidden post/v1/properties/match-by-listings https://develop.dev.api.espressoresearch.com/v1/properties/match-by-listings REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "listing_ids": [ * 1, * 2, * 3, * 4 ] } RESPONSE SAMPLES * 200 * 401 * 403 Content type application/json Copy Expand all Collapse all [ * { * "property_id": 12, * "listing_ids": [ * 1, * 2, * 3 ] }, * { * "property_id": 34, * "listing_ids": [ * 3, * 4 ] } ] VALUATION SEARCH ESTIMATED PRICES Returns estimated prices by the given parameters. AUTHORIZATIONS: Authentication via Token REQUEST BODY SCHEMA: APPLICATION/JSON comparables_count required integer [ 1 .. 50 ] Maximum number of comparable properties in results. target_point required object Target point to search around. Can be defined as coordinates, address or cadastral reference of the property. Only one value should be provided. distance number [ 0.05 .. 50 ] Default: 5 Maximum distance in kilometers from the requested target_point to comparable properties. sold_or_rented_after string <date> Nullable 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 required string Enum: "sale" "rent" Operation type. comparables_type string Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" Comparables property type. This field is deprecated and will be removed in the next major update. Please, use comparables_types field instead. comparables_types required Array of strings Items Enum: "apartment" "studio" "duplex" "penthouse" "country_house" "house" "palace" "townhouse" "villa" "country_estate" "chalet" "bungalow" "retail" "office" "industrial" "warehouse" "hotel" "other_commercial" "plot" "room" "parking" "garage" "other" "apartment_building" "office_building" "mix_use_building" The list of comparables property types. Property type groups: apartment: ["apartment", "duplex", "penthouse", "studio"] house: ["bungalow", "chalet", "country_estate", "country_house", "house", "palace", "townhouse", "villa"] room: ["room"] building: ["apartment_building", "mix_use_building", "office_building"] investment: ["hotel", "industrial", "office", "other_commercial", "retail", "warehouse"] plot: ["plot"] other: ["garage", "other", "parking"] Note that you can select multiple types only from one property type group. min_price integer [ 0 .. 2147483647 ] Default: 0 The minimum price filter for comparables result. max_price integer [ 1 .. 2147483647 ] The maximum price filter for comparables result. condition string Enum: "used" "ruin" "very-good" "new" "other" Property condition, as returned by the /references/conditions endpoint. bedrooms integer [ 0 .. 15000 ] Number of bedrooms (cannot be used together with rooms). rooms integer [ 0 .. 15000 ] Number of rooms (cannot be used together with bedrooms). bathrooms integer [ 1 .. 15000 ] Number of bathrooms. construction_year integer [ 1 .. 3000 ] Desired construction year. total_area integer [ 5 .. 1000000 ] Desired total area, square meters. This field is required for hotel, industrial, office, other_commercial, retail, warehouse property types if target_point.cadastral_reference is not provided. plot_area integer [ 20 .. 1000000 ] Desired plot area, square meters. This field is required for plot property type if target_point.cadastral_reference is not provided. floors Array of strings Items Enum: "no_floor" "ground" "middle" "top" List of floor types. floor_number Array of integers Desired list of floor numbers. Minimum value is 1. Maximum value is 250. orientation string Enum: "exterior" "interior" Property view orientation. views Array of strings Items Enum: "water" "landscape" "city" "golf" "park" List of views from the property. directions Array of strings Items Enum: "north" "south" "east" "west" List of cardinal directions the property faces. characteristics object Property characteristics. energy_certificate string Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" Energy certificate. This field is deprecated and will be removed in the next major update. Please, use energy_ratings field instead. energy_certificates Array of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" 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 of strings Items Enum: "Unknown" "A+" "A" "B" "C" "D" "E" "F" "G" "H" List of energy ratings. with_agencies Array of strings Return properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. without_agencies Array of strings Exclude properties from specified agencies, companies or sources. To find allowed agency names use the /references/agencies endpoint. RESPONSES 200 400 Bad Request 401 Unauthorized 403 Forbidden post/v1/valuation/comparables-prices https://develop.dev.api.espressoresearch.com/v1/valuation/comparables-prices REQUEST SAMPLES * Payload * cURL * Python Content type application/json Copy Expand all Collapse all { * "comparables_count": 20, * "target_point": { * "coordinates": { * "latitude": 38.74, * "longitude": -9.17 } }, * "sold_or_rented_after": "2020-06-01", * "operation": "sale", * "comparables_types": [ * "apartment" ], * "distance": 3.5, * "bedrooms": 2, * "construction_year": 2010, * "total_area": 125, * "condition": "used", * "floors": [ * "middle", * "top" ], * "floor_number": [ * 3, * 5 ], * "views": [ * "city", * "landscape" ], * "directions": [ * "west", * "north" ], * "characteristics": { * "must_have": [ * "balcony", * "elevator" ], * "nice_to_have": [ * "garage", * "parking", * "storage" ] }, * "energy_ratings": [ * "A", * "B", * "C" ] } RESPONSE SAMPLES * 200 * 400 * 401 * 403 Content type application/json Copy Expand all Collapse all { * "statistics": { * "average_price": 767950, * "average_price_per_sqm": 6376, * "average_time_on_the_market": 169, * "average_listings_per_property": 6.2, * "sold_or_rented_in_last_six_months": 453 }, * "estimated_prices": { * "fast_sell_price": 741210, * "fair_market_price": 797000, * "out_of_market_price": 852790 } }