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

Form analysis 0 forms found in the DOM

Text 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
   
   }

}