ZAP Imóveis Scraper
Pricing
from $3.00 / 1,000 results
ZAP Imóveis Scraper
Scrape ZAP Imóveis, Brazil's premium real estate portal (QuintoAndar Group): property listings, commercial real estate (sala, galpão, conjunto), lançamentos and 200K+ imobiliária profiles. Get price, condomínio, IPTU, CRECI, agency, building class, sem fiador and FGTS data.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Extract property listings and agency profiles from ZAP Imóveis — Brazil's 25-year-old premium broker-centric real estate portal (QuintoAndar Group, ex-Globo Group). Covers residential, commercial real estate (sala/conjunto/galpão), lançamentos pipeline and the imobiliária directory.
Why ZAP (and not just VivaReal)?
ZAP and VivaReal share the same Glue API backend but serve different personas. VivaReal is mass-market and classifieds-leaning; ZAP is the premium, broker-trusted, B2B/professional brand. Same shop, different inventory tier:
- ZAP listings skew higher price-point, longer broker-written descriptions
- ZAP agency directory is a unique 200K+ imobiliária profile layer (B2B intelligence goldmine)
- ZAP has a deeper commercial vertical (sala, conjunto comercial, galpão, andar corporativo)
- ZAP carries premium constructor pipelines (Cyrela CYRE3, EZTec EZTC3, Tegra, Even EVEN3, Mitre MTRE3)
- ZAP's "sem fiador" segment tracks the modern rental model competing with QuintoAndar/Loft
This actor also supports VivaReal via the portal parameter — same code, switch one input.
How It Works
ZAP exposes a Glue API REST endpoint used by its own web UI. This actor calls it directly:
GET https://glue-api.zapimoveis.com.br/v2/listings?portal=ZAP&business=SALE&listingType=USED&usageTypes=RESIDENTIAL&addressState=São Paulo&addressCity=São Paulo&size=24&from=0
For agencies (mode: "agencies"):
GET https://glue-api.zapimoveis.com.br/v2/account/{id}?portal=ZAPGET https://glue-api.zapimoveis.com.br/v2/account/{id}/listings?portal=ZAP
No browser, no headless Chrome. Pure HTTP with realistic headers.
Cloudflare & Proxy
ZAP sits behind Cloudflare. Brazilian residential proxies are strongly recommended — data-center IPs get challenged or blocked within a few requests. Default input prefills the Apify residential proxy with BR country:
"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "BR"}
If you bring your own proxies, point proxyUrls at a BR residential pool. Without proxies you will likely see HTTP 403 / 503 errors after a handful of requests.
Input
{"mode": "listings","portal": "ZAP","business": ["SALE"],"listingType": ["USED"],"usageTypes": ["RESIDENTIAL"],"unitTypes": ["APARTMENT"],"states": ["SP"],"cities": ["sao-paulo"],"neighborhoods": ["pinheiros"],"minPrice": 0,"maxPrice": 0,"minBedrooms": 2,"sortBy": "newest","maxListings": 200,"pageSize": 24}
Listings mode
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | listings | listings or agencies |
portal | string | ZAP | ZAP or VIVA_REAL |
business | array | ["SALE"] | SALE, RENTAL |
listingType | array | ["USED"] | USED, DEVELOPMENT (lançamentos) |
usageTypes | array | ["RESIDENTIAL"] | RESIDENTIAL, COMMERCIAL |
unitTypes | array | [] | APARTMENT, HOME, OFFICE, WAREHOUSE_SHED, etc. |
states | array | ["SP"] | 2-letter UF codes |
cities | array | ["sao-paulo"] | URL-slug format (lowercase, hyphenated) |
neighborhoods | array | [] | Bairro slugs |
minPrice / maxPrice | integer | 0 | BRL range filter |
minArea / maxArea | integer | 0 | m² range filter |
minBedrooms | integer | 0 | Minimum quartos |
minParkingSpaces | integer | 0 | Minimum vagas |
semFiador | boolean | false | Rentals without guarantor requirement |
sortBy | string | relevance | newest, lowest_price, highest_price, lowest_area, highest_area |
Agencies mode
| Parameter | Type | Default | Description |
|---|---|---|---|
agencyIds | array | [] | Explicit imobiliária IDs to fetch |
agencyIdRangeStart | integer | 0 | Start of sequential ID range crawl |
agencyIdRangeEnd | integer | 0 | End of sequential range (max span 100K) |
fetchAgencyListings | boolean | false | Also fetch each agency's listings portfolio |
Common controls
| Parameter | Type | Default | Description |
|---|---|---|---|
maxListings | integer | 200 | Total record cap (0 = unlimited) |
maxPages | integer | 20 | Pages per task (24 listings/page) |
pageSize | integer | 24 | Records per API call |
requestDelay | integer (ms) | 800 | Delay between requests |
maxConcurrency | integer | 1 | Parallel tasks (keep low) |
maxRetries | integer | 3 | Retries on 403/503/429 |
proxyConfiguration | object | BR residential | Proxy settings |
Brazilian UF Codes
| UF | State | UF | State | UF | State |
|---|---|---|---|---|---|
SP | São Paulo | RJ | Rio de Janeiro | MG | Minas Gerais |
RS | Rio Grande do Sul | PR | Paraná | SC | Santa Catarina |
BA | Bahia | DF | Distrito Federal | GO | Goiás |
PE | Pernambuco | CE | Ceará | ES | Espírito Santo |
PA | Pará | AM | Amazonas | MA | Maranhão |
MT | Mato Grosso | MS | Mato Grosso do Sul | AL | Alagoas |
City Slugs (Selection)
ZAP uses URL-friendly lowercase hyphenated slugs (no accents):
| Slug | City | Slug | City |
|---|---|---|---|
sao-paulo | São Paulo | rio-de-janeiro | Rio de Janeiro |
belo-horizonte | Belo Horizonte | brasilia | Brasília |
salvador | Salvador | fortaleza | Fortaleza |
curitiba | Curitiba | porto-alegre | Porto Alegre |
florianopolis | Florianópolis | recife | Recife |
niteroi | Niterói | campinas | Campinas |
santos | Santos | goiania | Goiânia |
vitoria | Vitória | cajamar | Cajamar (logistics hub) |
Unknown slugs fall back to title-case (some-bairro → Some Bairro). For accent-sensitive cities, prefer the curated map.
Unit Types
Residential
APARTMENT, HOME, CONDOMINIUM, PENTHOUSE, FLAT, KITNET
Commercial (ZAP's strong vertical)
OFFICE (sala comercial), COMMERCIAL_BUILDING (prédio comercial), COMMERCIAL_PROPERTY (conjunto comercial), BUSINESS (ponto comercial), WAREHOUSE_SHED (galpão), HOTEL
Other
FARM (sítio/fazenda), LAND_LOT (terreno), GARAGE
Output
Listing record example
{"recordType": "listing","listingId": "2853746","portal": "ZAP","url": "https://www.zapimoveis.com.br/imovel/apartamento-3-quartos-pinheiros-sao-paulo-sp-id-2853746/","title": "Apartamento 3 quartos Pinheiros 95m²","business": "SALE","listingType": "USED","usageType": "RESIDENTIAL","unitType": "APARTMENT","category": "residential","subCategory": "apartamento","priceBRL": 1250000,"condominioMonthlyBRL": 1800,"iptuYearlyBRL": 7800,"pricePerSqmBRL": 13157,"usableArea": 95,"bedrooms": 3,"bathrooms": 3,"suites": 1,"parkingSpaces": 2,"uf": "SP","city": "São Paulo","neighborhood": "Pinheiros","zone": "Zona Oeste","latitude": -23.5677,"longitude": -46.6856,"amenities": ["GYM", "POOL", "PARTY_HALL", "PLAYGROUND"],"isLancamento": false,"isFiadorFree": false,"isFGTSEligible": true,"agencyId": "122847","agencyName": "Premium Real Estate","agencyCRECI": "J-12345","agencyTier": "premium","publishedAt": "2026-04-15T10:00:00Z","updatedAt": "2026-05-09T14:00:00Z","imageCount": 24,"listingQualityScore": 95,"searchBusiness": "SALE","searchState": "SP","searchCity": "sao-paulo","searchNeighborhood": "pinheiros","scrapedAt": "2026-05-12T10:00:00Z"}
Agency record example
{"recordType": "agency","listingId": "122847","portal": "ZAP","url": "https://www.zapimoveis.com.br/imobiliaria/122847/","title": "Premium Real Estate","agencyId": "122847","agencyName": "Premium Real Estate","agencyCRECI": "J-12345","agencyCNPJ": "00.000.000/0001-00","agencyPhone": "+5511999999999","agencyAddress": "Rua dos Pinheiros, 100, Pinheiros, São Paulo, SP","agencyTier": "premium","agencyTotalListings": 234,"uf": "SP","city": "São Paulo","neighborhood": "Pinheiros","scrapedAt": "2026-05-12T10:00:00Z"}
Notes
agencyCNPJ/agencyEmail/agencyWebsitemay benullfor listings (only present in agency profile responses)isLancamento,launchPhase,constructorNameonly populated whenlistingType=DEVELOPMENTalsoOnVivaReal/vivaRealIdare reserved for a future cross-portal correlation actorlatitude/longitudemay benullfor hidden-address listingsmobileNoequivalent (agencyPhone) is publisher contact, not seller direct
Use Cases
- Brazilian CRE intelligence — CBRE/JLL/Cushman & Wakefield Brasil prime office vacancy, galpão demand
- Listed constructor equity research — Cyrela/EZTec/Tegra/MRV/Tenda launch pipeline for buy/sell calls
- FII (REIT) fund manager input — BCFF11, HGLG11, HGRE11 property selection & pricing
- B2B PropTech lead pipeline — Agency directory crawl → CRM/training/SaaS targeting (Vista, Apolo, Tabela)
- QuintoAndar/Loft competitive analysis — Track "sem fiador" inventory share
- Cross-portal arbitrage (with VivaReal) — Detect same listing at different price tiers
- Brazilian Portuguese real estate NLP corpus — Broker-written long descriptions, premium tier
Cost & Performance
- ~0.005 CU per 100 listings (no browser, just HTTP)
- ~1 record/sec with 800ms delay + BR residential proxy (Cloudflare-safe)
- No CAPTCHA solving needed in normal operation — if you hit one, increase
requestDelayand verify proxy quality
Limitations
- Agency phone unlock: ZAP requires an authenticated employer session for some agency contact info. This actor only scrapes publicly visible search/profile data.
- Cloudflare: occasional 403/503; the actor retries with backoff but persistent failures need better proxy quality.
- GraphQL? No. Despite some external references, the public-facing search uses REST-style
v2/listings. The endpoint is stable as of April 2026 but ZAP's frontend team can change parameter names — feedback welcome. - Address granularity: Brazilian addresses with hidden street/number show city + bairro only; this is a publisher choice, not a scraper limit.
Changelog
| Version | Date | Notes |
|---|---|---|
| 1.0.0 | 2026-05-13 | Initial release — Glue API direct integration, listings + agency modes, ZAP & VivaReal portal switch |