Skip to content

// docs

Portal Zuk: Search listings

Search and page properties for auction on Portal Zuk. Accepts keyword or structured location, modality/situation, type of property, seller, occupancy, discount, installment plan, rooms, vacancies, price, area and ordering.

portalzuk.com.br:plp · 1 credit per request

Standard credit cost. Your account pricing is shown in the sandbox.

Try this operation in the sandbox

HTTP request

cURL
curl -X POST https://api.geckoapi.com.br/v1/extract \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "target": "portalzuk.com.br",
  "type": "plp",
  "state": "SP",
  "city": "São Paulo",
  "region": "capital",
  "neighborhood": "Centro",
  "propertyTypes": [
    "residential"
  ],
  "seller": "caixa-economica-federal",
  "occupancy": "vacant",
  "minDiscountPercent": 30,
  "installments": true,
  "bedrooms": [
    2
  ],
  "parkingSpots": [
    1
  ],
  "priceMin": 50000,
  "priceMax": 500000,
  "areaMin": 50,
  "areaMax": 300,
  "sort": "lowest_price",
  "page": 1
}'

Keep your API key on your server. See the quickstart for authentication and response handling.

MCP request

The hosted MCP tool fixes target and type for this operation. Its remaining arguments use the same input rules as Extract.

POST /v1/mcp · Bearer or X-API-Key authentication

portalzuk_com_br_plp · tools/call
{
  "jsonrpc": "2.0",
  "id": 3,
  "method": "tools/call",
  "params": {
    "name": "portalzuk_com_br_plp",
    "arguments": {
      "state": "SP",
      "city": "São Paulo",
      "region": "capital",
      "neighborhood": "Centro",
      "propertyTypes": [
        "residential"
      ],
      "seller": "caixa-economica-federal",
      "occupancy": "vacant",
      "minDiscountPercent": 30,
      "installments": true,
      "bedrooms": [
        2
      ],
      "parkingSpots": [
        1
      ],
      "priceMin": 50000,
      "priceMax": 500000,
      "areaMin": 50,
      "areaMax": 300,
      "sort": "lowest_price",
      "page": 1,
      "executionId": "exec_example_123"
    }
  }
}

Supported inputs

Conditional fields depend on the alternatives and constraints in the rule column. Fields marked unsupported are omitted.

FieldTypeRequirementRuleDefaultExample
url
URL extraction target. For some PLPs it can be omitted when API assembles URL from other fields.
string (URL) Optional URL HTTPS of Portal Zuk started by /leilao-de-imoveis. It is usually simpler to use structured filters. - https://www.portalzuk.com.br/leilao-de-imoveis/u/residenciais/sp?order=menor_valor
keyword
Keyword for PLP searches. In Google Search it represents the query sent to Google; in Booking PLP is mandatory; in other PLPs it can replace URL.
string Optional Free search. Do not combine with state, city or neighborhood. - apartamento ribeirão preto
region
Query region. The format depends on API; Temu PDP accepts br (Brazil), us (United States), uk (United Kingdom) and co (Colombia); PLP accepts br, us and uk. The default of Temu without country in URL is br and OLX accepts a textual region.
string Optional Regional segment of the route, such as capital or interior. Requires city and state. - capital
city
City used in structured searches for properties and vehicles and optionally in Catho PLP. In VivaReal, it requires state.
string Optional Search city. Requires state. - São Paulo
neighborhood
Neighborhood used in ZAP Properties PLP, Chaves na Mão PLP and VivaReal PLP. Requires city + state when shipped.
string Optional Search neighborhood. Requires city and state. - Centro
seller
Name or slug of the seller/client to filter property auctions in Portal Zuk.
string Optional Name or slug of the seller/client. The backend normalizes to the route slug. - caixa-economica-federal
occupancy
Occupancy status of the property when searching for Portal Zuk.
"all" | "occupied" | "vacant" Optional all, occupied or vacant. all vacant
auctionType
Type or status of the auction in Portal Zuk. Should not be combined with structured localization when different from all.
"all" | "judicial" | "extrajudicial" | "fiduciary" | "proposals" | "upcoming" | "ended" Optional all, judicial, extrajudicial, fiduciary, proposals, upcoming or ended. Values other than all cannot be combined with location. all judicial
minDiscountPercent
Minimum discount compared to valuation for property searches on Portal Zuk.
integer (0-100) Optional Minimum discount in relation to the evaluation, integer between 0 and 100. - 30
installments
When true, limits the search for Portal Zuk to properties that accept installments.
boolean Optional When true, filters properties that accept installments. false true
state
UF used in structured searches for properties and vehicles and optionally in Catho PLP.
string (UF 2 letters) Optional UF from 2 letters; can be used alone or together with city. - SP
bedrooms
Room filter in real estate searches PLP. Accepts list of integers (ex: [2,3,4]).
integer[] Optional A single integer from 0 to 20 representing the minimum number of bedrooms. - [2]
parkingSpots
Job filter in real estate searches PLP. Accepts list of integers (ex: [2,3,4]).
integer[] Optional A single integer from 0 to 6 representing the minimum number of vacancies. - [1]
propertyTypes
Property types for ZAP Properties, Chaves na Mão and VivaReal PLP. Accepted values depend on API; see specific rules below.
array<string | integer> Optional One value: all, residential, commercial, rural, land, house or apartment. - ["residential"]
priceMin
Minimum price for PLP searches for properties and vehicles.
integer Optional Minimum integer price, greater than or equal to 0. - 50000
priceMax
Maximum price for PLP searches for properties and vehicles.
integer Optional Maximum integer price, greater than or equal to priceMin. - 500000
areaMin
Minimum area (m²) for real estate searches PLP.
integer Optional Minimum area in m², entire and greater than or equal to 0. - 50
areaMax
Maximum area (m²) for real estate searches PLP.
integer Optional Maximum area in m², entire and greater than or equal to areaMin. - 300
sort
Ordering for VivaReal, Chaves na Mão, OLX and Webmotors PLP, Booking Review and Hotels Review. VivaReal: relevance/date/price/biggest_price/biggest_area. Webmotors: relevance/price/biggest_price/year_desc/mileage_asc. OLX: relevance/date/price/biggest_price/price_relevance. Booking/Hotels Review: most_relevant/newest_first/oldest_first/score_desc/score_asc.
"relevance" | "date" | "price" | "biggest_price" | "biggest_area" | "price_relevance" | "most_relevant" | "newest_first" | "oldest_first" | "score_desc" | "score_asc" | "year_desc" | "mileage_asc" Optional auction_date, location, lowest_price, highest_price, newest or biggest_discount. auction_date lowest_price
target
Target source for extraction.
enum Required Always portalzuk.com.br. - portalzuk.com.br
type
Extraction type: pdp, idp, plp, ilp, quote, review or places.
enum Required Always plp. - plp
page
Pagination. In PLP, including Trivago, and in Reclame AQUI ILP starts in 1; in review (MercadoLivre, Booking and Hotels) starts in 0. The Reclame AQUI ILP even accepts the page 100.
integer Optional Page 1-based, from 1 to 100. Each page returns up to 30 batches. 1 1

Request examples

Search by location with filters

Use state alone or combine state, city, neighborhood and region. The example also shows all available quantitative filters.

Search by location with filters
{
  "target": "portalzuk.com.br",
  "type": "plp",
  "state": "SP",
  "city": "São Paulo",
  "region": "capital",
  "neighborhood": "Centro",
  "propertyTypes": [
    "residential"
  ],
  "seller": "caixa-economica-federal",
  "occupancy": "vacant",
  "minDiscountPercent": 30,
  "installments": true,
  "bedrooms": [
    2
  ],
  "parkingSpots": [
    1
  ],
  "priceMin": 50000,
  "priceMax": 500000,
  "areaMin": 50,
  "areaMax": 300,
  "sort": "lowest_price",
  "page": 1
}

Free search by keyword

keyword is its own search mode and should not be combined with state, city or neighborhood.

Free search by keyword
{
  "target": "portalzuk.com.br",
  "type": "plp",
  "keyword": "apartamento ribeirão preto",
  "propertyTypes": [
    "apartment"
  ],
  "sort": "biggest_discount",
  "page": 1
}

Search by modality or situation

auctionType accepts judicial, extrajudicial, fiduciary, proposals, upcoming and ended. When different from all, do not combine with structured localization.

Search by modality or situation
{
  "target": "portalzuk.com.br",
  "type": "plp",
  "auctionType": "judicial",
  "propertyTypes": [
    "commercial"
  ],
  "occupancy": "occupied",
  "sort": "auction_date",
  "page": 2
}

Advanced Public Route

A public URL of /leilao-de-imoveis can also be sent to preserve a site-specific route. page continues to control paging.

Advanced Public Route
{
  "target": "portalzuk.com.br",
  "type": "plp",
  "url": "https://www.portalzuk.com.br/leilao-de-imoveis/u/residenciais/sp?order=menor_valor",
  "page": 1
}

Response schema

Leaf paths and expected types. Field names and enum values are part of the API contract.

responseSchema
{
  "source": "\"portalzuk.com.br\"",
  "type": "\"plp\"",
  "parser": "\"1.0.0\"",
  "requestUrl": "string (URL)",
  "extractedAt": "string (ISO datetime)",
  "query.propertyType": "string",
  "query.occupancy": "string",
  "query.sort": "string",
  "page": "integer",
  "pageSize": "integer",
  "totalResults": "integer",
  "returnedResults": "integer",
  "nextPage": "integer",
  "items[].auctionId": "integer",
  "items[].lotId": "integer",
  "items[].propertyType": "string",
  "items[].title": "string",
  "items[].url": "string (URL)",
  "items[].imageUrl": "string (URL)",
  "items[].currentPrice": "number",
  "items[].address.formatted": "string",
  "items[].address.city": "string",
  "items[].address.state": "string",
  "items[].auctionRounds[].label": "string",
  "items[].auctionRounds[].price": "number",
  "items[].auctionRounds[].date": "string (ISO datetime)",
  "items[].auctionRounds[].discountPercent": "number",
  "items[].metadata.discountPercent": "number",
  "items[].metadata.installmentCount": "integer",
  "items[].metadata.maxAreaM2": "number",
  "items[].metadata.bedrooms": "integer",
  "items[].metadata.parkingSpots": "integer",
  "items[].metadata.occupied": "boolean",
  "items[].metadata.judicial": "boolean",
  "items[].metadata.sellerSlug": "string"
}

Example response

Illustrative response. Product names, reviews and other source content retain their original language. Missing and null values do not imply zero stock, free shipping or zero reviews.

responseExample
{
  "source": "portalzuk.com.br",
  "type": "plp",
  "parser": "1.0.0",
  "url": "https://www.portalzuk.com.br/leilao-de-imoveis/u/residenciais/sp?order=menor_valor",
  "requestUrl": "https://www.portalzuk.com.br/leilao-de-imoveis/u/residenciais/sp?order=menor_valor",
  "extractedAt": "2026-07-15T12:00:00.000Z",
  "query": {
    "keyword": "",
    "state": "SP",
    "city": "",
    "neighborhood": "",
    "region": "",
    "propertyType": "residential",
    "seller": "",
    "occupancy": "all",
    "auctionType": "all",
    "minDiscountPercent": 0,
    "installments": false,
    "bedroomsMin": 0,
    "parkingSpotsMin": 0,
    "priceMin": 0,
    "priceMax": 500000,
    "areaMin": 0,
    "areaMax": 300,
    "sort": "lowest_price"
  },
  "page": 1,
  "pageSize": 30,
  "totalResults": 241,
  "returnedResults": 30,
  "nextPage": 2,
  "items": [
    {
      "position": 1,
      "auctionId": 36801,
      "lotId": 229571,
      "propertyType": "Apartamento",
      "title": "Apartamento à venda em leilão",
      "url": "https://www.portalzuk.com.br/imovel/sp/araraquara/solidariedade/avenida-marginal-do-corrego-dos-martins-445/36801-229571",
      "imageUrl": "https://static.portalzuk.com.br/imovel/listagem/229571.jpg",
      "partner": "Portal Zuk",
      "address": {
        "street": "Avenida Marginal do Córrego dos Martins, 445",
        "neighborhood": "Solidariedade",
        "city": "Araraquara",
        "state": "SP",
        "formatted": "Avenida Marginal do Córrego dos Martins, 445, Solidariedade, Araraquara, SP",
        "latitude": -21.7845,
        "longitude": -48.178,
        "coordinatePrecision": "APPROXIMATE"
      },
      "areas": [
        {
          "label": "Área útil",
          "valueM2": 48.2
        }
      ],
      "auctionRounds": [
        {
          "label": "1º Leilão",
          "price": 28609.55,
          "date": "2026-07-22T14:00:00.000Z",
          "dateLabel": "22/07/2026 às 14h",
          "discountPercent": 42,
          "ended": false
        }
      ],
      "currentPrice": 28609.55,
      "metadata": {
        "residential": true,
        "commercial": false,
        "rural": false,
        "land": false,
        "houseOrApartment": true,
        "discountPercent": 42,
        "installmentCount": 12,
        "listedValue": 28609.55,
        "maxAreaM2": 48.2,
        "usableAreaM2": 48.2,
        "privateAreaM2": 48.2,
        "builtAreaM2": 48.2,
        "landAreaM2": 48.2,
        "totalAreaM2": 48.2,
        "bathrooms": 1,
        "parkingSpots": 1,
        "bedrooms": 2,
        "occupied": false,
        "judicial": true,
        "acceptingProposal": false,
        "fiduciary": false,
        "sellerSlug": "caixa-economica-federal"
      }
    }
  ]
}

Complete field reference

PathTypeDescriptionExample
extractedAt string (ISO datetime) Extraction instant. 2026-07-15T12:00:00.000Z
items[].address.city string City of property. Araraquara
items[].address.formatted string Consolidated address. Avenida Marginal do Córrego dos Martins, 445, Solidariedade, Araraquara, SP
items[].address.state string UF of the property. SP
items[].auctionId integer Auction identifier. 36801
items[].auctionRounds[].date string (ISO datetime) Normalized round date. 2026-07-22T14:00:00.000Z
items[].auctionRounds[].discountPercent number Discount indicated in the round. 42
items[].auctionRounds[].label string Round name. 1º Leilão
items[].auctionRounds[].price number Round value. 28609.55
items[].currentPrice number Current value on the card. 28609.55
items[].imageUrl string (URL) Main card image. https://static.portalzuk.com.br/imovel/listagem/229571.jpg
items[].lotId integer Lot/property identifier. 229571
items[].metadata.bedrooms integer Number of bedrooms. 2
items[].metadata.discountPercent number Discount compared to evaluation. 42
items[].metadata.installmentCount integer Number of installments announced. 12
items[].metadata.judicial boolean Indicates judicial auction. true
items[].metadata.maxAreaM2 number Largest identified area, in m². 48.2
items[].metadata.occupied boolean Indicates whether the property is occupied. false
items[].metadata.parkingSpots integer Number of vacancies. 1
items[].metadata.sellerSlug string Seller/client slug. caixa-economica-federal
items[].propertyType string Displayed type of property. Apartamento
items[].title string Card title. Apartamento à venda em leilão
items[].url string (URL) URL public PDP. https://www.portalzuk.com.br/imovel/sp/araraquara/solidariedade/avenida-marginal-do-corrego-dos-martins-445/36801-229571
nextPage integer Next page when exists. 2
page integer Page returned. 1
pageSize integer Batch limit per page. 30
parser "1.0.0" Stable version of the API response format. 1.0.0
query.occupancy string Standard occupancy filter. all
query.propertyType string Standard property type. residential
query.sort string Standard ordering. lowest_price
requestUrl string (URL) Same value as `url`; never exposes the queried internal endpoint. https://www.portalzuk.com.br/leilao-de-imoveis/u/residenciais/sp?order=menor_valor
returnedResults integer Number of lots in this response. 30
source "portalzuk.com.br" Normalized extraction source. portalzuk.com.br
totalResults integer Total found by source. 241
type "plp" Seam type PLP. plp

Errors and missing data

When supported by this operation, an entity not found upstream can return HTTP 200 with data: null and notFound: true. Check the documented response fields before interpreting an empty result. Source-specific behavior and exceptions are described above.

HTTP statusError codeMeaning
400INVALID_PAYLOADInvalid JSON or a request that violates the documented validation rules.
401UNAUTHORIZEDMissing authorization or an invalid API key or token.
402INSUFFICIENT_CREDITSThe account has insufficient credits for this operation.
403FORBIDDENThe account does not have access, or the API is temporarily disabled.
409EXECUTION_CONFLICTThe execution identifier conflicts with an incompatible execution state.
429RATE_LIMIT_EXCEEDED / TOO_MANY_INFLIGHT_REQUESTSA rate limit or simultaneous request limit was exceeded.
5xxUPSTREAM_TIMEOUT / UPSTREAM_HTTP_ERROR / WORKER_FUNCTION_ERRORAn upstream, worker or gateway failure. Failed requests follow the platform refund policy.

Other Portal Zuk operations