ZAP Imóveis Scraper
Pricing
from $1.59 / 1,000 listings
ZAP Imóveis Scraper
Scrape property listings from ZAP Imóveis and VivaReal: prices, condomínio, IPTU, bedrooms, area, location, amenities, lançamentos, and seller contacts. No browser required.
ZAP Imóveis Scraper
Pricing
from $1.59 / 1,000 listings
Scrape property listings from ZAP Imóveis and VivaReal: prices, condomínio, IPTU, bedrooms, area, location, amenities, lançamentos, and seller contacts. No browser required.
You can access the ZAP Imóveis Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "74PRGjDWhajJ02ydZ" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/parsebird~zap-imoveis-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-parsebird-zap-imoveis-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/parsebird~zap-imoveis-scraper/runs": { "post": { "operationId": "runs-sync-parsebird-zap-imoveis-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/parsebird~zap-imoveis-scraper/run-sync": { "post": { "operationId": "run-sync-parsebird-zap-imoveis-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "portal": { "title": "Portal", "enum": [ "ZAP", "VIVA_REAL" ], "type": "string", "description": "ZAP Imóveis and VivaReal share the same listings backend (Grupo OLX) — pick which brand's URLs and headers to use.", "default": "ZAP" }, "business": { "title": "Business type", "type": "array", "description": "Venda (sale) or aluguel (rental).", "items": { "type": "string", "enum": [ "SALE", "RENTAL" ], "enumTitles": [ "Sale (Venda)", "Rental (Aluguel)" ] }, "default": [ "SALE" ] }, "listingType": { "title": "Listing type", "type": "array", "description": "USED = existing resale/rental stock. DEVELOPMENT = lançamentos (new developments/pre-construction).", "items": { "type": "string", "enum": [ "USED", "DEVELOPMENT" ], "enumTitles": [ "Used / resale (Usado)", "New development (Lançamento)" ] }, "default": [ "USED" ] }, "usageTypes": { "title": "Usage type", "type": "array", "description": "Residential or commercial properties.", "items": { "type": "string", "enum": [ "RESIDENTIAL", "COMMERCIAL" ], "enumTitles": [ "Residential", "Commercial" ] }, "default": [ "RESIDENTIAL" ] }, "unitTypes": { "title": "Unit type", "type": "array", "description": "Optional property-type filter. Leave empty to include every unit type.", "items": { "type": "string", "enum": [ "APARTMENT", "HOME", "CONDOMINIUM", "PENTHOUSE", "FLAT", "KITNET", "FARM", "LAND_LOT", "OFFICE", "COMMERCIAL_BUILDING", "COMMERCIAL_PROPERTY", "BUSINESS", "WAREHOUSE_SHED", "GARAGE" ], "enumTitles": [ "Apartamento", "Casa", "Casa de condomínio", "Cobertura", "Flat", "Kitnet/Studio", "Fazenda/Sítio/Chácara", "Terreno/Lote", "Sala comercial", "Prédio comercial", "Conjunto comercial", "Ponto comercial", "Galpão", "Vaga de garagem" ] }, "default": [] }, "states": { "title": "States (UF)", "type": "array", "description": "2-letter Brazilian state codes to search. Leave empty to search nationwide (very broad — combine with cities/neighborhoods instead for most use cases).", "items": { "type": "string", "enum": [ "AC", "AL", "AP", "AM", "BA", "CE", "DF", "ES", "GO", "MA", "MT", "MS", "MG", "PA", "PB", "PR", "PE", "PI", "RJ", "RN", "RS", "RO", "RR", "SC", "SP", "SE", "TO" ], "enumTitles": [ "AC - Acre", "AL - Alagoas", "AP - Amapá", "AM - Amazonas", "BA - Bahia", "CE - Ceará", "DF - Distrito Federal", "ES - Espírito Santo", "GO - Goiás", "MA - Maranhão", "MT - Mato Grosso", "MS - Mato Grosso do Sul", "MG - Minas Gerais", "PA - Pará", "PB - Paraíba", "PR - Paraná", "PE - Pernambuco", "PI - Piauí", "RJ - Rio de Janeiro", "RN - Rio Grande do Norte", "RS - Rio Grande do Sul", "RO - Rondônia", "RR - Roraima", "SC - Santa Catarina", "SP - São Paulo", "SE - Sergipe", "TO - Tocantins" ] }, "default": [ "SP" ] }, "cities": { "title": "Cities", "type": "array", "description": "City names or slugs, e.g. \"sao-paulo\" or \"São Paulo\". 60+ major municipalities are recognized automatically; other cities are used as typed, so prefer the full accented Portuguese name (e.g. \"Ribeirão Preto\") if a slug returns no results.", "default": [ "sao-paulo" ], "items": { "type": "string" } }, "neighborhoods": { "title": "Neighborhoods (bairros)", "type": "array", "description": "Bairro names, e.g. \"Pinheiros\". Requires exactly one city above — each neighborhood is searched against every city/state combination, so keep this to a single city for predictable results.", "default": [], "items": { "type": "string" } }, "minPrice": { "title": "Min price (BRL)", "minimum": 0, "type": "integer", "description": "Minimum sale price or monthly rent in BRL. 0 = no minimum.", "default": 0 }, "maxPrice": { "title": "Max price (BRL)", "minimum": 0, "type": "integer", "description": "Maximum sale price or monthly rent in BRL. 0 = no maximum.", "default": 0 }, "minArea": { "title": "Min usable area (m²)", "minimum": 0, "type": "integer", "description": "Minimum usable area. Applied to the collected results.", "default": 0 }, "maxArea": { "title": "Max usable area (m²)", "minimum": 0, "type": "integer", "description": "Maximum usable area. Applied to the collected results.", "default": 0 }, "minBedrooms": { "title": "Min bedrooms", "minimum": 0, "type": "integer", "description": "Minimum number of quartos. 0 = no minimum.", "default": 0 }, "minParkingSpaces": { "title": "Min parking spaces", "minimum": 0, "type": "integer", "description": "Minimum number of vagas. 0 = no minimum.", "default": 0 }, "guarantorFreeOnly": { "title": "Guarantor-free rentals only", "type": "boolean", "description": "For rentals, keep only listings that accept a rental guarantee alternative to a fiador (guarantor) — e.g. security deposit, insurance guarantee, or capitalization bond.", "default": false }, "sortBy": { "title": "Sort by", "enum": [ "relevance", "newest", "lowest_price", "highest_price", "lowest_area", "highest_area" ], "type": "string", "description": "Sorts the listings collected in this run. Applied after fetching, since the source API does not honor a reliable sort order.", "default": "relevance" }, "maxListings": { "title": "Max listings", "minimum": 0, "type": "integer", "description": "Hard cap on total listings saved across every location/business/listing-type combination. 0 = unlimited (bounded only by Max pages per task).", "default": 100 }, "maxPagesPerTask": { "title": "Max pages per task", "minimum": 1, "maximum": 47, "type": "integer", "description": "Cap on pages fetched per state/city/neighborhood/business/listing-type combination. Each page returns up to Page size listings (slightly fewer on broad searches, since a few slots go to sponsored placements); the source API stops serving results after roughly page 47 (~1,400 listings) per combination regardless of this setting.", "default": 10 }, "pageSize": { "title": "Page size", "minimum": 1, "maximum": 30, "type": "integer", "description": "Listings requested per page. The source API rejects values above 30.", "default": 30 }, "requestDelayMs": { "title": "Delay between requests (ms)", "minimum": 0, "type": "integer", "description": "Pause between consecutive page requests, to stay well under any rate limits.", "default": 500 }, "maxConcurrency": { "title": "Max concurrency", "minimum": 1, "maximum": 5, "type": "integer", "description": "How many location/business/listing-type tasks to run in parallel.", "default": 2 }, "maxRetries": { "title": "Max retries", "minimum": 0, "type": "integer", "description": "Retries per failed request (network errors or 5xx responses) with exponential backoff.", "default": 3 }, "proxyConfiguration": { "title": "Proxy configuration", "type": "object", "description": "The ZAP Imóveis / VivaReal listings API sits behind Cloudflare bot management. A Brazil-based residential proxy is recommended for reliable results.", "default": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ], "apifyProxyCountry": "BR" } } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 }, "PROXY_UNBLOCKER_UNITS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for ZAP Imóveis Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: