Search listings on Zap Imóveis. Pass a city (São Paulo, Rio de Janeiro, RJ, Vila Mariana, São Paulo) or a full search URL. 1 credit per call.
Each card includes the listing id, URL, asking price in BRL, IPTU, condominium fee, rooms, area, coordinates, and publisher. Pagination uses results plus pagination.next (full URL or null).
GET https://api.piloterr.com/v2/zapimoveis/search?query=S%C3%A3o%20Paulo&operation=sale&property_type=apartment
GET https://api.piloterr.com/v2/zapimoveis/search?query=Rio%20de%20Janeiro,%20RJ&operation=rent&property_type=apartment&page=2
GET https://api.piloterr.com/v2/zapimoveis/search?query=https://www.zapimoveis.com.br/venda/apartamentos/sp+sao-paulo/
| Parameter |
Type |
Required |
Description |
query |
string |
yes |
City, City, UF, neighborhood, location path (sp+sao-paulo), or full zapimoveis.com.br search URL |
operation |
string |
no |
sale (default) or rent. Aliases: venda, aluguel, buy, rental |
property_type |
string |
no |
apartment, house, penthouse, land, studio, condo, flat, loft, commercial, office, warehouse, store, farm, building, sobrado. Empty means all types |
page |
integer |
no |
Page number. Default: 1. Overrides pagina on a full URL when greater than 1 |
min_price / max_price |
number |
no |
Asking price in BRL |
min_area / max_area |
number |
no |
Area in m² |
min_bedrooms |
integer |
no |
Minimum bedrooms |
min_bathrooms |
integer |
no |
Minimum bathrooms |
min_parking |
integer |
no |
Minimum parking spaces |
| Field |
Type |
Description |
results[] |
array |
Listing cards |
results[].id / url / title |
string |
Zap id, listing URL (/imovel/ or /lancamentos/), title |
results[].price / price_max |
number | null |
Asking price in BRL. price_max is set when a development spans a range |
results[].currency |
string | null |
BRL when a price is present |
results[].iptu / condominium |
number | null |
Yearly property tax and monthly condo fee, in BRL |
results[].price_period |
string | null |
monthly for rent, null for sale |
results[].bedrooms / bathrooms / suites / parking_spaces |
integer | null |
Room counts |
results[].area_m2 / area_max / floor |
number | null |
Usable area in m², upper area when a range exists, floor |
results[].property_type |
string |
Lowercase type: apartment, house, condo_house, penthouse, flat, loft, studio, duplex, land, office, commercial, building, warehouse, farm |
results[].operation |
string |
sale or rent |
results[].city / state / state_code / neighborhood / address |
string | null |
Place names keep their original casing |
results[].latitude / longitude |
number | null |
Coordinates |
results[].thumbnail_url |
string | null |
Card image |
results[].publisher_name |
string | null |
Agency or advertiser |
results[].published_at |
string | null |
ISO 8601 |
results[].price_per_m2 |
integer | null |
Price divided by area_m2 |
pagination.page / per_page |
integer |
Current page and page size |
pagination.total_results / total_pages |
integer |
Totals from the search |
pagination.next |
string | null |
Next page URL, or null on the last page |
- Response is
{ results, pagination }.
- Enum values are lowercase:
operation, property_type, price_period. Currency stays BRL. City, neighborhood, title, and publisher name are not lowercased.
price_max and area_max are set on new developments (/lancamentos/) that publish a range.
- A full search URL keeps its path. Price, area, and room filters are merged onto it.
page greater than 1 sets pagina.
- Development indexes such as
https://www.zapimoveis.com.br/lancamentos/imoveis/na-planta/ are valid search URLs.
- Empty or unparseable pages return
404, not an empty 200.
| Code |
Meaning |
400 |
Empty query, unknown city, unknown type or operation, bad filter, or a non-Zap / listing URL |
404 |
Page not found or no listings |
500 |
Fetch or parse failed |
- Track asking prices, IPTU, and condominium fees by Brazilian city
- Compare sale and rent supply across apartments, houses, and land
- Page through Zap Imóveis results and open each
url with the ad endpoint