zapimoveis.com.br APIzapimoveis.com.br ↗
Search, filter, and retrieve Brazilian property listings from ZAP Imóveis. Covers sale and rental data, amenities, location autocomplete, and full listing detail.
curl -X GET 'https://api.parse.bot/scraper/724e0e0a-2b10-42c0-85e9-caa4d2f8924d/search_listings?page=1&page_size=3&location_id=BR%3ERio+de+Janeiro%3ENULL%3ERio+de+Janeiro&transaction=RENTAL' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for real estate listings with extensive filters. Returns paginated results including listing details, account info, media, and total count.
| Param | Type | Description |
|---|---|---|
| city | string | City name filter (e.g. 'Rio de Janeiro', 'São Paulo') |
| page | integer | Page number for pagination. |
| sort | string | Sort order for results. |
| state | string | State name filter (e.g. 'Rio de Janeiro', 'São Paulo') |
| bedrooms | integer | Number of bedrooms to filter by. |
| max_area | integer | Maximum area in m². |
| min_area | integer | Minimum area in m². |
| bathrooms | integer | Number of bathrooms to filter by. |
| max_price | integer | Maximum price filter. |
| min_price | integer | Minimum price filter. |
| page_size | integer | Number of results per page. |
| location_id | string | Location ID from get_location_suggestions endpoint (e.g. 'BR>Rio de Janeiro>NULL>Rio de Janeiro'). |
| transaction | string | Transaction type: RENTAL or SALE. |
| is_development | boolean | Filter for new developments only. |
| parking_spaces | integer | Number of parking spaces to filter by. |
| property_types | string | Comma-separated property type slugs (e.g. 'APARTMENT', 'HOME', 'APARTMENT,HOME'). Available types include APARTMENT, HOME, CONDOMINIUM, PENTHOUSE, FLAT, KITNET, VILLAGE_HOUSE, LOFT. |
{
"type": "object",
"fields": {
"page": "object with pagination metadata (uriPagination.total, uriPagination.page, uriPagination.size), SEO content, and breadcrumbs",
"search": "object containing result.listings array (each with listing, account, medias, link) and totalCount"
},
"sample": {
"data": {
"page": {
"uriPagination": {
"from": 0,
"page": 1,
"size": 3,
"total": 511419
}
},
"search": {
"result": {
"listings": [
{
"medias": [
{
"url": "https://resizedimgs.zapimoveis.com.br/img/vr-listing/1f14633766d8f4db37561741e865bd13/{description}.webp?action={action}&dimension={width}x{height}",
"type": "IMAGE"
}
],
"account": {
"id": "6b756288-b313-9656-64b6-2c1760860e7a",
"name": "Imobiliária Linck"
},
"listing": {
"id": "2854455269",
"title": "Apartamento mobiliado de 2 dormitórios no bairro Passo da Areia",
"address": {
"city": "Porto Alegre",
"state": "Rio Grande do Sul",
"neighborhood": "Passo da Areia"
},
"bedrooms": [
2
],
"bathrooms": [
1
],
"unitTypes": [
"APARTMENT"
],
"usableAreas": [
"57"
],
"pricingInfos": [
{
"price": "1990",
"businessType": "RENTAL",
"monthlyCondoFee": "350"
}
]
}
}
]
},
"totalCount": 511419
}
},
"status": "success"
}
}About the zapimoveis.com.br API
This API exposes 5 endpoints covering ZAP Imóveis, Brazil's largest real estate portal, giving developers access to property listings for sale or rent across the country. Use search_listings to query properties by city, state, bedrooms, bathrooms, and area range, then drill into individual records via get_listing_detail — which returns full address, pricing, amenity list, media URLs, and advertiser details in a single call.
Searching and Filtering Listings
search_listings is the main entry point. It accepts filters for city, state, bedrooms, bathrooms, min_area, and max_area, plus a sort parameter and page for pagination. The response wraps two top-level objects: page (containing uriPagination.total, uriPagination.page, and uriPagination.size for cursor-aware iteration) and search (containing result.listings and totalCount). Each listing element carries a listing sub-object, an account sub-object for the advertiser, a medias array, and a link object with the canonical URL path.
Listing Detail and Media
get_listing_detail accepts a numeric listing_id — available as listing.id in search results — and returns the full property record. The listing object includes address fields, pricing, bedroom and bathroom counts, total and usable area, and an amenities array. The medias array provides individual image and video entries, each with id, url, and type. The account object exposes the advertiser's name, logoUrl, licenseNumber, and tier, which is useful for distinguishing individual agents from agencies.
Location Autocomplete and Discovery
get_location_suggestions takes a free-text query (e.g. "Copacabana" or "São Paulo") and an optional transaction_type of RENTAL or SALE. It returns an array of suggestion objects, each containing address.locationId, address.city, address.state, and address.neighborhood. These locationId values feed directly into get_property_types and get_listing_amenities, which return per-type and per-amenity listing counts (e.g. APARTMENT, PENTHOUSE, POOL, ELEVATOR) scoped to that location and transaction type. This makes it straightforward to build faceted search UIs or populate filter dropdowns.
- Aggregate for-sale apartment listings in São Paulo filtered by minimum area and bedroom count
- Build a rental price monitoring dashboard across multiple Brazilian cities using paginated
search_listingsresults - Populate a location autocomplete field using
get_location_suggestionsbefore passinglocationIdto downstream filters - Generate a property detail page by fetching full media, amenities, and advertiser info via
get_listing_detail - Enumerate available property types and their counts per location with
get_property_typesto drive dynamic filter menus - Identify listings with specific amenities (pool, elevator) in a given neighborhood using
get_listing_amenitiescounts - Compare advertiser tiers and license numbers across listings to analyze agency vs. individual seller market share
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does ZAP Imóveis have an official public developer API?+
How do I get the right locationId to use with get_property_types and get_listing_amenities?+
get_location_suggestions returns an array of suggestion objects each containing address.locationId. Pass a neighborhood, city, or zone name as the query parameter, then use the locationId from the matching result as the location_id input to get_property_types or get_listing_amenities. This scopes the returned counts to that specific area.Does the API return rental price history or historical listing data?+
What pagination metadata is available from search_listings?+
page object in the response includes uriPagination.total (total result count), uriPagination.page (current page index), and uriPagination.size (page size). Use the page input parameter in subsequent requests to iterate through results. The search.totalCount field also gives the overall match count.Does the API expose contact details for listing agents or owners?+
account object returned by get_listing_detail includes the advertiser's name, logoUrl, licenseNumber, and tier. Direct contact details such as phone numbers or email addresses are not currently part of the response schema. You can fork this API on Parse and revise it to surface additional account fields if they become available in the source data.