PLP sem keyword
Fluxo recomendado: envie city, state, businessType e page. keyword e opcional.
{
"target": "zapimoveis.com.br",
"type": "plp",
"city": "Curitiba",
"state": "PR",
"businessType": "rent",
"page": 1
} // docs
Extrai listagem de imoveis do Zapimoveis por cidade/UF e tipo de negocio, com keyword opcional e filtros de busca.
Nota importante: alguns campos podem retornar null em produção,
dependendo da página de origem. Nesta documentação, os exemplos de output são
preenchidos intencionalmente com valores não nulos para facilitar integração.
curl -X POST https://api.geckoapi.com.br/v1/extract \
-H "Authorization: Bearer SUA_CHAVE" \
-H "Content-Type: application/json" \
-d '{
"target": "zapimoveis.com.br",
"type": "plp",
"city": "Curitiba",
"state": "PR",
"businessType": "rent",
"page": 1
}'
Campos suportados nesta API do POST /v1/extract,
com regras específicas de obrigatoriedade e condicionais.
| Campo | Tipo | Status | Regra | Default | Exemplo |
|---|---|---|---|---|---|
| keyword Palavra-chave para buscas PLP. Em Booking PLP é obrigatória; em outros PLPs pode substituir a URL. | string | Opcional | Opcional para refinar o termo de busca. | - | iphone 15 pro max |
| city Cidade usada em Webmotors PLP e opcionalmente em Catho PLP (deve vir em par com state). | string | Obrigatório | Cidade da busca, usada para montar o path da URL. | - | Sao Paulo |
| state UF usada em Webmotors PLP e opcionalmente em Catho PLP (deve vir em par com city). | string (UF 2 letras) | Obrigatório | UF com 2 letras (ex: PR). | - | SP |
| businessType Tipo de negócio usado no Zapimoveis PLP para escolher entre venda (sale) e aluguel (rent). | "sale" | "rent" | Obrigatório | Tipo de negocio. Valores suportados: sale ou rent (sinonimos venda/aluguel tambem sao aceitos na API). | - | sale |
| bedrooms Filtro de quartos no Zapimoveis PLP. Aceita lista de inteiros (ex: [2,3,4]). | integer[] | Opcional | Filtro de quartos. Aceita lista de inteiros (ex: [2,3,4]). | - | [2,3,4] |
| bathrooms Filtro de banheiros no Zapimoveis PLP. Aceita lista de inteiros (ex: [2,3,4]). | integer[] | Opcional | Filtro de banheiros. Aceita lista de inteiros (ex: [2,3,4]). | - | [2,3,4] |
| parkingSpots Filtro de vagas no Zapimoveis PLP. Aceita lista de inteiros (ex: [2,3,4]). | integer[] | Opcional | Filtro de vagas. Aceita lista de inteiros (ex: [2,3,4]). | - | [2,3,4] |
| priceMin Preço mínimo para busca no Zapimoveis PLP. | integer | Opcional | Preco minimo. Deve ser inteiro >= 0. | - | 1000 |
| priceMax Preço máximo para busca no Zapimoveis PLP. | integer | Opcional | Preco maximo. Deve ser inteiro >= 0 e >= priceMin quando ambos forem enviados. | - | 2000 |
| areaMin Área mínima (m²) para busca no Zapimoveis PLP. | integer | Opcional | Area minima em m². Deve ser inteiro >= 0. | - | 80 |
| areaMax Área máxima (m²) para busca no Zapimoveis PLP. | integer | Opcional | Area maxima em m². Deve ser inteiro >= 0 e >= areaMin quando ambos forem enviados. | - | 220 |
| target Fonte alvo da extração. | enum | Obrigatório | Sempre obrigatorio e deve ser zapimoveis.com.br. | - | mercadolivre.com.br |
| type Tipo da extração: pdp, plp, review ou places. | enum | Obrigatório | Sempre obrigatorio e deve ser plp. | - | pdp |
| page Paginação. Em PLP inicia em 1; em MercadoLivre review inicia em 0. | integer | Opcional | Paginação 1-based. | 1 | 2 |
Fluxo recomendado: envie city, state, businessType e page. keyword e opcional.
{
"target": "zapimoveis.com.br",
"type": "plp",
"city": "Curitiba",
"state": "PR",
"businessType": "rent",
"page": 1
} Exemplo com filtros de quartos, banheiros, vagas, faixa de preco e area.
{
"target": "zapimoveis.com.br",
"type": "plp",
"city": "Curitiba",
"state": "PR",
"businessType": "rent",
"bedrooms": [
2,
3,
4
],
"bathrooms": [
2,
3,
4
],
"parkingSpots": [
2,
3,
4
],
"priceMin": 1000,
"priceMax": 2000,
"areaMin": 80,
"areaMax": 220,
"page": 1
} Mapa de paths de saída com tipo esperado para esta API.
{
"requestId": "string (uuid)",
"executionId": "string (uuid)",
"data.source": "string",
"data.type": "string",
"data.parser": "string",
"data.url": "string",
"data.requestUrl": "string",
"data.extractedAt": "string (iso datetime)",
"data.keyword": "string",
"data.query": "string",
"data.city": "string",
"data.citySlug": "string",
"data.state": "string",
"data.businessType": "string",
"data.searchId": "string",
"data.totalResults": "number",
"data.primaryResults": "number",
"data.page": "number",
"data.resultsPerPage": "number",
"data.offset": "number",
"data.nextPage": "number",
"data.nextPageUrl": "string",
"data.items[].position": "number",
"data.items[].id": "string",
"data.items[].url": "string",
"data.items[].business": "string",
"data.items[].listingType": "string",
"data.items[].description": "string",
"data.items[].address.city": "string",
"data.items[].address.state": "string",
"data.items[].address.neighborhood": "string",
"data.items[].prices.mainValue": "number",
"data.items[].prices.period": "string",
"data.items[].stamps[]": "string",
"data.items[].amenities[]": "string",
"data.items[].advertiser.id": "string",
"data.items[].advertiser.name": "string",
"data.items[].images[].url": "string",
"data.items[].childrenCount": "number"
} {
"requestId": "a1f9c6b6-56da-4be1-b2f2-4ed0f3b2f001",
"executionId": "a1f9c6b6-56da-4be1-b2f2-4ed0f3b2f002",
"data": {
"source": "zapimoveis.com.br",
"type": "plp",
"parser": "next_flight",
"url": "https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=1",
"requestUrl": "https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=1",
"extractedAt": "2026-02-19T13:00:00.000Z",
"keyword": "apartamento 2 quartos",
"query": "apartamento 2 quartos",
"city": "Curitiba",
"citySlug": "curitiba",
"state": "PR",
"businessType": "sale",
"searchId": "search-9fd22f2f",
"totalResults": 824,
"primaryResults": 24,
"page": 1,
"resultsPerPage": 24,
"offset": 0,
"nextPage": 2,
"nextPageUrl": "https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=2",
"items": [
{
"position": 1,
"id": "2670123456",
"url": "https://www.zapimoveis.com.br/imovel/venda-apartamento-2-quartos-centro-curitiba-pr-70m2-id-2670123456/",
"business": "SALE",
"listingType": "USED",
"description": "Apartamento com 2 quartos, 1 suite e vaga coberta no Centro de Curitiba.",
"address": {
"city": "Curitiba",
"state": "PR",
"neighborhood": "Centro"
},
"prices": {
"mainValue": 549000,
"period": "MONTHLY"
},
"stamps": [
"Super Destaque"
],
"amenities": [
"Elevador"
],
"advertiser": {
"id": "55123",
"name": "Imobiliaria Exemplo"
},
"images": [
{
"url": "https://resizedimgs.vivareal.com/{action}/{width}x{height}/vr.images.sp/e7d3cb8f500f42f4b95f316643e2b235.webp"
}
],
"childrenCount": 0
}
]
}
} | Path | Tipo | Descrição | Exemplo |
|---|---|---|---|
| data.businessType | string | Tipo de negócio normalizado (sale ou rent). | sale |
| data.city | string | Cidade normalizada da busca. | Curitiba |
| data.citySlug | string | Slug da cidade usado na URL. | curitiba |
| data.extractedAt | string (iso datetime) | Timestamp UTC da extração. | 2026-02-19T13:00:00.000Z |
| data.items[].address.city | string | Cidade do anúncio. | Curitiba |
| data.items[].address.neighborhood | string | Bairro do anúncio. | Centro |
| data.items[].address.state | string | UF do anúncio. | PR |
| data.items[].advertiser.id | string | Identificador do anunciante. | 55123 |
| data.items[].advertiser.name | string | Nome do anunciante. | Imobiliaria Exemplo |
| data.items[].amenities[] | string | Amenidades resumidas no card. | Elevador |
| data.items[].business | string | Tipo de negócio no anúncio (SALE/RENTAL). | SALE |
| data.items[].childrenCount | number | Quantidade de anúncios filhos/agregados no card. | 0 |
| data.items[].description | string | Descrição curta do imóvel. | Apartamento com 2 quartos, 1 suite e vaga coberta no Centro de Curitiba. |
| data.items[].id | string | Identificador interno do anúncio. | 2670123456 |
| data.items[].images[].url | string | URL da imagem do card. | https://resizedimgs.vivareal.com/{action}/{width}x{height}/vr.images.sp/e7d3cb8f500f42f4b95f316643e2b235.webp |
| data.items[].listingType | string | Tipo do anúncio conforme origem. | USED |
| data.items[].position | number | Posição absoluta do item no resultado. | 1 |
| data.items[].prices.mainValue | number | Preço principal do anúncio. | 549000 |
| data.items[].prices.period | string | Período de cobrança do preço. | MONTHLY |
| data.items[].stamps[] | string | Selos/promos exibidos no card. | Super Destaque |
| data.items[].url | string | URL pública do anúncio. | https://www.zapimoveis.com.br/imovel/venda-apartamento-2-quartos-centro-curitiba-pr-70m2-id-2670123456/ |
| data.keyword | string | Keyword enviada no payload. | apartamento 2 quartos |
| data.nextPage | number | Próxima página disponível. | 2 |
| data.nextPageUrl | string | URL da próxima página, quando disponível. | https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=2 |
| data.offset | number | Offset calculado da paginação. | 0 |
| data.page | number | Página retornada. | 1 |
| data.parser | string | Parser utilizado para extrair os dados (next_flight ou jsonld). | next_flight |
| data.primaryResults | number | Quantidade de itens retornados na página atual. | 24 |
| data.query | string | Termo de busca aplicado na consulta. | apartamento 2 quartos |
| data.requestUrl | string | URL efetivamente consultada no upstream. | https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=1 |
| data.resultsPerPage | number | Quantidade de resultados por página. | 24 |
| data.searchId | string | Identificador de busca retornado pela página. | search-9fd22f2f |
| data.source | string | Fonte da extração. | zapimoveis.com.br |
| data.state | string | UF usada na busca. | PR |
| data.totalResults | number | Total de resultados disponíveis para a consulta. | 824 |
| data.type | string | Tipo de extração. | plp |
| data.url | string | URL canônica montada para a consulta. | https://www.zapimoveis.com.br/venda/imoveis/pr+curitiba/?q=apartamento%202%20quartos&transacao=venda&pagina=1 |
| executionId | string (uuid) | Campo executionId retornado no payload de resposta. | a1f9c6b6-56da-4be1-b2f2-4ed0f3b2f002 |
| requestId | string (uuid) | Campo requestId retornado no payload de resposta. | a1f9c6b6-56da-4be1-b2f2-4ed0f3b2f001 |
| Status | errorCode | Quando acontece |
|---|---|---|
| 400 | INVALID_PAYLOAD | JSON inválido ou violação das regras de validação do payload. |
| 401 | UNAUTHORIZED | Header Authorization ausente ou token/chave inválida. |
| 402 | INSUFFICIENT_CREDITS | Saldo de créditos insuficiente para a API solicitada. |
| 403 | FORBIDDEN | Usuário sem acesso ou API temporariamente desabilitada. |
| 409 | EXECUTION_CONFLICT | executionId conflita com uma execução em estado incompatível. |
| 429 | RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTS | Limite de taxa ou limite de requisições em voo excedido. |
| 5xx | UPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_INVOCATION_FAILED / WORKER_FUNCTION_ERROR / WORKER_INVALID_RESPONSE / INTERNAL_ERROR | Falha de servidor no worker, provider/proxy ou gateway. Nesses casos os créditos são estornados automaticamente. |