Discover/Zapimoveis API
live

Zapimoveis 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.

Endpoint health
verified 6d ago
get_location_suggestions
get_listing_amenities
get_listing_detail
search_listings
get_property_types
5/5 passing latest checkself-healing
Endpoints
5
Updated
22d ago

What is the Zapimoveis 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.

Try it
City name filter (e.g. 'Rio de Janeiro', 'São Paulo').
Page number for pagination.
Sort order for results.
State name filter (e.g. 'Rio de Janeiro', 'São Paulo').
Number of bedrooms to filter by.
Maximum area in m².
Minimum area in m².
Number of bathrooms to filter by.
Maximum price filter.
Minimum price filter.
Number of results per page.
Location ID from get_location_suggestions endpoint (e.g. 'BR>Rio de Janeiro>NULL>Rio de Janeiro').
Transaction type: RENTAL or SALE.
Filter for new developments only.
Number of parking spaces to filter by.
Comma-separated property type slugs (e.g. 'APARTMENT', 'HOME', 'APARTMENT,HOME'). Available types include APARTMENT, HOME, CONDOMINIUM, PENTHOUSE, FLAT, KITNET, VILLAGE_HOUSE, LOFT.
api.parse.bot/scraper/724e0e0a-2b10-42c0-85e9-caa4d2f8924d/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/724e0e0a-2b10-42c0-85e9-caa4d2f8924d/search_listings?city=S%C3%A3o+Paulo&page=1&page_size=3&location_id=BR%3ERio+de+Janeiro%3ENULL%3ERio+de+Janeiro&transaction=RENTAL' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace zapimoveis-com-br-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: ZAP Imóveis SDK — search listings, drill into details, discover locations."""
from parse_apis.zap_imóveis_api import ZapImoveis, TransactionType, ListingNotFound

client = ZapImoveis()

# Discover locations matching a query
for suggestion in client.locationsuggestions.search(query="Copacabana", limit=3):
    print(suggestion.category, suggestion.address.city, suggestion.address.location_id)

# Construct a location and check available property types
rio = client.location(location_id="BR>Rio de Janeiro>NULL>Rio de Janeiro")
types = rio.property_types(transaction=TransactionType.RENTAL)
for prop_type, count in types.items():
    print(prop_type, count)

# Search listings in that location with filters
listing = rio.search(transaction=TransactionType.RENTAL, bedrooms=2, limit=1).first()
if listing:
    print(listing.id, listing.listing.title, listing.listing.property_type)
    print(listing.listing.address.city, listing.listing.address.neighborhood)
    for pricing in listing.listing.pricing_infos:
        print(pricing.price, pricing.business_type, pricing.monthly_condo_fee)

# Fetch a specific listing by ID with error handling
try:
    detail = client.listings.get(listing_id="2874967379")
    print(detail.id, detail.listing.title)
    print(detail.account.name, detail.account.tier)
    for media in detail.medias:
        print(media.url, media.type)
except ListingNotFound as exc:
    print(f"Listing not found: {exc.listing_id}")

print("exercised: locationsuggestions.search / location.property_types / location.search / listings.get")
All endpoints · 5 totalmissing one? ·

Search for real estate listings with extensive filters. Returns paginated results including listing details, account info, media, and total count. Supports filtering by location, property type, price range, bedrooms, bathrooms, area, and parking spaces. Pagination via page number; each page returns up to page_size results.

Input
ParamTypeDescription
citystringCity name filter (e.g. 'Rio de Janeiro', 'São Paulo').
pageintegerPage number for pagination.
sortstringSort order for results.
statestringState name filter (e.g. 'Rio de Janeiro', 'São Paulo').
bedroomsintegerNumber of bedrooms to filter by.
max_areaintegerMaximum area in m².
min_areaintegerMinimum area in m².
bathroomsintegerNumber of bathrooms to filter by.
max_priceintegerMaximum price filter.
min_priceintegerMinimum price filter.
page_sizeintegerNumber of results per page.
location_idstringLocation ID from get_location_suggestions endpoint (e.g. 'BR>Rio de Janeiro>NULL>Rio de Janeiro').
transactionstringTransaction type: RENTAL or SALE.
is_developmentbooleanFilter for new developments only.
parking_spacesintegerNumber of parking spaces to filter by.
property_typesstringComma-separated property type slugs (e.g. 'APARTMENT', 'HOME', 'APARTMENT,HOME'). Available types include APARTMENT, HOME, CONDOMINIUM, PENTHOUSE, FLAT, KITNET, VILLAGE_HOUSE, LOFT.
Response
{
  "type": "object",
  "fields": {
    "page": "integer current page number",
    "size": "integer page size",
    "total": "integer total number of results",
    "listings": "array of listing result objects, each containing listing, account, medias, link, and id",
    "total_count": "integer total number of matching listings"
  },
  "sample": {
    "data": {
      "page": 1,
      "size": 24,
      "total": 173079,
      "listings": [
        {
          "id": "2877108789",
          "link": {
            "href": "/imovel/aluguel-apartamento-id-2877108789/"
          },
          "medias": [
            {
              "id": "c3b199ef",
              "url": "https://resizedimgs.zapimoveis.com.br/img/c3b199ef.webp",
              "type": "IMAGE"
            }
          ],
          "account": {
            "id": "fcc4c0ee",
            "name": "Yuca",
            "tier": "diamond"
          },
          "listing": {
            "id": "2877108789",
            "title": "Apartamento com 1 Quarto para alugar, 36m²",
            "address": {
              "city": "São Paulo",
              "state": "São Paulo",
              "neighborhood": "Campos Elíseos"
            },
            "bedrooms": [
              1
            ],
            "amenities": [
              "INTERNET_ACCESS",
              "ELEVATOR"
            ],
            "bathrooms": [
              1
            ],
            "usableAreas": [
              "36"
            ],
            "pricingInfos": [
              {
                "price": "2463",
                "businessType": "RENTAL",
                "monthlyCondoFee": "983"
              }
            ],
            "parkingSpaces": [
              0
            ]
          }
        }
      ],
      "total_count": 173079
    },
    "status": "success"
  }
}

About the Zapimoveis API

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.

Reliability & maintenanceVerified

The Zapimoveis API is a managed, monitored endpoint for zapimoveis.com.br — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when zapimoveis.com.br changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official zapimoveis.com.br API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
6d ago
Latest check
5/5 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • 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_listings results
  • Populate a location autocomplete field using get_location_suggestions before passing locationId to 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_types to drive dynamic filter menus
  • Identify listings with specific amenities (pool, elevator) in a given neighborhood using get_listing_amenities counts
  • Compare advertiser tiers and license numbers across listings to analyze agency vs. individual seller market share
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does ZAP Imóveis have an official public developer API?+
ZAP Imóveis does not publish a public developer API or API documentation for third-party access. This Parse API provides structured access to the same listing data available on the site.
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?+
Not currently. The API covers current listing prices and attributes — what is live on ZAP Imóveis at query time. Historical pricing or price-change timelines are not included in the response schema. You can fork this API on Parse and revise it to add an endpoint that tracks price changes over time by storing and diffing repeated calls.
What pagination metadata is available from search_listings?+
The 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?+
The 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.
Page content last updated . Spec covers 5 endpoints from zapimoveis.com.br.
Related APIs in Real EstateSee all →
vivareal.com.br API
Search for properties across Brazil's real estate marketplace and access detailed listings with photos, amenities, contact information, and agency portfolios. Discover homes by location, browse available property types, and connect directly with real estate advertisers.
imovelweb.com.br API
Search and browse detailed real estate listings on imovelweb.com.br by city, state, and neighborhood. Retrieve structured property data including pricing, size, room counts, features, and full listing descriptions — ready for analysis, comparison, or portfolio tracking.
zonaprop.com.ar API
Search and retrieve property listings from Zonaprop, Argentina's leading real estate portal. Filter by operation type, property category, and location, then fetch full details for any listing.
imovirtual.com API
Search and browse real estate listings across Portugal, view detailed property information including prices and specifications, and discover new housing developments. Find your ideal home by accessing comprehensive market data all in one place.
olx.com.br API
Search and browse OLX Brazil real estate listings for properties available for sale or rent, with advanced filtering options to narrow down your search. Access comprehensive property details including descriptions, prices, locations, and other key information for each listing.
idealista.pt API
Search and filter property listings across Portugal by location, price, and size, then access detailed information about each property including its characteristics and pricing history. Monitor how property prices change over time to help you make informed decisions about buying or selling real estate.
propiedades.com API
Search and browse real estate listings from Mexico's Propiedades.com, view detailed property information including images and descriptions, and use location autocomplete to find homes in your desired area. Access comprehensive listing data to compare properties and make informed real estate decisions.
casasapo.pt API
Search and browse Portuguese real estate listings from Casa Sapo for both sale and rent, view detailed property information, access bank-owned properties, and analyze market statistics to make informed decisions. Track new listings and price reductions to stay updated on the latest opportunities in the Portuguese property market.