QuintoAndar homes to rent or buy
Homes on QuintoAndar in a Brazilian city or neighbourhood, to rent or buy, with price (total monthly cost, rent or sale price), bedrooms, bathrooms, suites, parking, area, home type, furnished, pets and near-subway filters and sort. Each result has id, link, type, rent, total monthly cost, condo plus IPTU, sale price, area, rooms, parking, furnished, pets, subway, street, neighbourhood, region, city, coordinates, installations, amenities, tags, rental yield, publication date and captioned photos. Pass next_page back as page; null on the last page.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
location | string | QuintoAndar place slug: city (sao-paulo-sp-brasil, rio-de-janeiro-rj-brasil, belo-horizonte-mg-brasil...) or neighbourhood (pinheiros-sao-paulo-sp-brasil). Example: sao-paulo-sp-brasil |
business | rent | sale | Rent or buy. Example: rent |
price_min | number | Minimum price (BRL). |
price_max | number | Maximum price (BRL). |
price_type | total | rent | For rent: filter on the total monthly cost (default) or the rent alone. |
bedrooms_min | integer | Minimum bedrooms. |
bedrooms_max | integer | Maximum bedrooms. |
bathrooms_min | integer | Minimum bathrooms. |
bathrooms_max | integer | Maximum bathrooms. |
suites_min | integer | Minimum suites. |
suites_max | integer | Maximum suites. |
parking_min | integer | Minimum parking spaces. |
parking_max | integer | Maximum parking spaces. |
area_min | number | Minimum area (m²). |
area_max | number | Maximum area (m²). |
home_types | string | Home types, comma-separated: APARTMENT, HOUSE. |
furnished | boolean | true or false. |
accepts_pets | boolean | true: pets allowed. |
near_subway | boolean | true: near a subway station. |
sort | relevance | cheapest | most_expensive | Sort order (price = total cost). Example: relevance |
limit | integer | Results per page, 1-60. Example: 24 |
page | integer | Page number, starting at 1. Pass next_page back as page; it is null on the last page. Example: 1 |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/quintoandar/v1/search?location=sao-paulo-sp-brasil" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/quintoandar/v1/search",
params={"location": "sao-paulo-sp-brasil"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/quintoandar/v1/search");
url.searchParams.set("location", "sao-paulo-sp-brasil");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).