# Leilo Brazil Property Auctions & Lots Scraper (`recordsdata/leilo-br-scraper`) Actor

Scrape Leilo.com.br property auctions in Brazil: lots, starting bids, addresses, areas, matricula and edital documents, closed results. Export CSV, Excel, JSON, XML.

- **URL**: https://apify.com/recordsdata/leilo-br-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 property auction lots

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🔨 Leilo Brazil Property Auctions & Lots Scraper

> **Leilo Brazil Property Auctions Scraper exports property auction lots from leilo.com.br as structured data: starting bid in BRL, city and state, area, occupancy, matrícula number, auction date, seller and edital PDF for every lot, plus the results of past auctions. Export CSV, Excel, JSON or XML. No login, no API key, no proxy.**

The Leilo Brazil Property Auctions Scraper turns the online auction catalog of Leilo (a Brazilian online auction platform based in Goiás) into a dataset you can filter, sort and join. Leilo stores each property as a vehicle-style record, so the site has no state, city or area fields. This Actor reads the lot title and description and gives you real columns for them: IBGE city code, state, property type, land and built area, hectares, bedrooms, registry office and occupancy. Checked on 2026-10-11: 58 open property lots from 7 auctions and 5 sellers, with starting bids from R$ 40,000 to R$ 5,200,000. The history holds 561 closed property lots from auctions since September 2023 (513 unsold, 18 sold, 10 awaiting payment, 5 conditional, 15 cancelled).

### 🎯 What does the Leilo scraper do?

- Scrapes **Leilo property auctions in Brazil**: open and live lots with starting bid, bid increment, the buyer commission (5 percent on every lot checked), total to pay, second-round price and date when the auction has one.
- Returns **city, state, IBGE municipality code, address, neighborhood, property type and areas** for each lot, parsed from the lot title and the notice text.
- Reads the **matrícula (property registry) number and registry office**, the **occupancy status** (vacant or occupied) and the **edital and matrícula PDF links**.
- Gets **results of past auctions**: sold, awaiting payment, conditional, unsold or cancelled, with the final bid and the bid count when the lot was sold.
- Filters Leilo lots **by state, city, property type, price range, area range, occupancy, seller, status, auction date and free text**, and sorts by auction date, price or last update.
- Starts from **lot URLs, lot ids, auction event pages or state listing pages** (for example leilo.com.br/leilao/goias/imoveis/).
- Builds **auction rows** (edital, venue, auctioneer, lot totals, price range, states and cities covered) and **seller rows** (bank, cooperative or court with lot counts and value totals).
- Has an **only-new mode** for scheduled runs: you get just the lots that were not in your previous run of the same search.

### 📊 Leilo auction data: which fields do you get?

Every row is one record with `recordType` set to `lot`, `closed-lot`, `auction` or `seller`. A lot row carries around 60 of the 88 columns, depending on what the lot notice states.

| Group | Fields |
|---|---|
| Identity | `listingId`, `url`, `title`, `lotNumber`, `lotCode`, `recordType`, `operation`, `sourceSite`, `scrapedAt` |
| Price | `price`, `currency`, `priceFormatted`, `pricePerM2`, `bidIncrement`, `commissionPercent`, `commissionAmount`, `totalToPay`, `secondRoundPrice`, `currentBid`, `finalBid`, `bidCount` |
| Location | `address`, `neighborhood`, `city`, `cityIbgeCode`, `stateCode`, `region`, `country` |
| Property | `propertyType`, `areaLand`, `areaBuilt`, `areaHectares`, `bedrooms`, `bathrooms`, `parkingSpaces`, `occupancyStatus`, `amenities`, `registryNumber`, `registryOffice` |
| Status and dates | `auctionStatus`, `rawStatus`, `auctionDate`, `secondRoundDate`, `biddingStartsAt`, `biddingEndsAt`, `paymentDueAt`, `updatedAt`, `lastBidAt` |
| Auction and seller | `auctionId`, `auctionName`, `auctionMode`, `auctionVenue`, `auctioneerName`, `auctioneerRegistration`, `editalUrl`, `sellerId`, `sellerName`, `sellerLogoUrl` |
| Media and text | `imageUrl`, `images`, `photoCount`, `documents`, `description` |
| Roll-ups (auction and seller rows) | `lotCount`, `soldCount`, `unsoldCount`, `lowestPrice`, `highestPrice`, `totalStartingBids`, `totalSoldValue`, `states`, `cities`, `propertyTypes`, `nextAuctionDate` |
| Auction house contact (optional) | `auctionHousePhone`, `auctionHouseWhatsapp`, `auctionHouseEmail`, `auctionHouseAddress` |

### 🧾 Leilo lot example: what does a real result look like?

A real lot row (cloud run, 2026-10-11, photo list and description shortened):

```json
{
  "imageUrl": "https://leilo.cdndp.com.br/v1/arquivo/2026/9/25/1790364917695_Foto_4.PNG",
  "recordType": "lot",
  "listingId": "4b1c7b54-b85e-11f1-b169-02420a000008",
  "url": "https://leilo.com.br/lote/4b1c7b54-b85e-11f1-b169-02420a000008/",
  "title": "Marituba/PA - Terreno com 21.250 m²",
  "operation": "auction",
  "propertyType": "land",
  "auctionStatus": "open",
  "address": "Rua Nova Uriboca, nº 58",
  "neighborhood": "Uriboca",
  "city": "Marituba",
  "cityIbgeCode": 1504422,
  "region": "Pará",
  "stateCode": "PA",
  "price": 1500000,
  "currency": "BRL",
  "priceFormatted": "R$ 1.500.000,00",
  "pricePerM2": 70.59,
  "bidIncrement": 300,
  "commissionPercent": 5,
  "commissionAmount": 75000,
  "totalToPay": 1575000,
  "areaLand": 21250,
  "occupancyStatus": "vacant",
  "registryNumber": "11.339",
  "registryOffice": "2º Ofício de Registro de Imóveis de Marituba - PA",
  "auctionDate": "2026-10-16T12:30:00.000Z",
  "auctionName": "Leilão de Imóveis do Banco Luso - Marituba/PA",
  "auctionMode": "online",
  "auctionVenue": "PÁTIO CENTRAL/GO",
  "editalUrl": "https://leilo.cdndp.com.br/v1/arquivo/2026/9/24/1790269245520_52b38319-f574-488d-94e5-0135085b12bb.pdf",
  "sellerName": "BANCO LUSO BRASILEIRO S/A",
  "photoCount": 11,
  "sourceSite": "leilo.com.br"
}
```

Dates are ISO 8601 in UTC (the site shows Brasília time: 12:30Z is 09:30 on the page). Money is in reais as plain numbers.

### 🚀 How to scrape Leilo property auctions in 4 steps

1. Create a free account at [console.apify.com](https://console.apify.com) and open this Actor.
2. Leave the filters empty to get every open property lot, or pick states, cities, property types, a price band or an auction date window. Choose **Lot scope** to read upcoming lots, closed lots (past results) or both.
3. Set **Max Items** and press Start. A 3-lot run with full details finishes in about 3 seconds.
4. Download the dataset as CSV, Excel, JSON or XML, or read it through the Apify API.

To read one auction or one lot, paste its leilo.com.br URL in **Start URLs** or its id in **Lot IDs**.

### ⚙️ Input

| Field | Type | Default | What it does |
|---|---|---|---|
| `startUrls` | array | empty | Lot pages, auction event pages or state listing pages on leilo.com.br |
| `lotIds` | array | empty | Lot ids (UUID from the lot URL), read whatever their status |
| `recordTypes` | array | `lots` | Any of `lots`, `auctions`, `sellers` |
| `lotScope` | string | `upcoming` | `upcoming`, `closed` or `all` (past results) |
| `fetchDetails` | boolean | true | Reads each lot page for description, address, rooms and documents |
| `states` / `cities` | array | empty | Two-letter state codes; city names such as Goiânia or Campinas/SP |
| `propertyTypes` | array | empty | `apartment`, `house`, `land`, `farm`, `commercial`, `warehouse`, `building`, `other` |
| `minPrice` / `maxPrice` | integer | 0 | Starting bid band in BRL |
| `minArea` / `maxArea` | integer | 0 | Area band in m2 |
| `maxEditions` | integer | 12 | Past auction editions read for closed lots |
| `occupancy` | string | `any` | `any`, `vacant` or `occupied` |
| `lotStatuses` | array | empty | `open`, `live`, `sold`, `awaiting-payment`, `conditional`, `unsold`, `cancelled` |
| `auctionDateFrom` / `auctionDateTo` | string | empty | Date window, YYYY-MM-DD |
| `searchText` | string | empty | Free text search |
| `sortBy` | string | `auctionDate` | `auctionDate`, `auctionDateDesc`, `priceAsc`, `priceDesc`, `recentlyUpdated` |
| `onlyNew` / `stateKey` / `resetSeen` | mixed | off | Monitor mode: return only lots not seen in the previous run of the same search |
| `includeContactDetails` | boolean | false | Adds the auction house business phone, WhatsApp and e-mail |
| `maxItems` | integer | none | Cap on delivered rows |

Example input:

```json
{
  "states": ["GO"],
  "propertyTypes": ["land", "farm"],
  "occupancy": "vacant",
  "maxPrice": 800000,
  "sortBy": "priceAsc",
  "maxItems": 100
}
```

### 💰 How much does it cost to scrape Leilo?

The Actor uses pay-per-event pricing. You pay only for rows delivered to your dataset. Prices read from the live Actor on 2026-10-11:

| Event | Price per row | Per 1,000 rows |
|---|---|---|
| Property auction lot (open or upcoming) | $0.0200 | $20.00 |
| Closed auction lot (past result) | $0.0160 | $16.00 |
| Lot detail enrichment (added when the lot page is fetched) | $0.0080 | $8.00 |
| Auction edition record | $0.0240 | $24.00 |
| Seller record | $0.0240 | $24.00 |

Worked examples:

- All 58 open property lots with full details (the default): 58 x $0.0280 = $1.62.
- 1,000 open lots with details: $28.00. The same 1,000 without details (turn off Fetch full lot details): $20.00.
- A daily monitor in only-new mode that finds 5 new lots: 5 x $0.0280 = $0.14 that day, and $0 on days with nothing new.

Error rows and empty searches are never charged, and the run respects your `maxTotalChargeUsd` setting.

### 📈 Leilo scraper vs alternatives

| Option | Covers Leilo lots | Relevant fields | Price per 1,000 |
|---|---|---|---|
| This Actor | Yes, open and closed | Bid, commission, matrícula, edital, results | $20.00 lot, +$8.00 detail |
| brasil-scrapers/caixa-leiloes-api | No, Caixa auctions only | Appraisal, two minimum bids, matrícula | Platform usage only |
| parsebird/imovelweb-scraper | No, Imovelweb only | Auction deal type, listing fields | $1.20 header, $1.99 README |
| fatihtahta and haketa Zap scrapers | No, ZAP portal listings | Listing fields, coordinates, agency | $1.99 and from $3.00 |

Read on 2026-10-11. No other Apify Actor for Leilo was found, so these rows are the nearest alternatives for Brazilian property auctions, not direct rivals. On price we are the most expensive row here: the Imovelweb and Zap scrapers cost roughly $1.20 to $3.00 per 1,000 rows, and the Caixa Actor bills platform usage only. None of them read Leilo, and the Caixa Actor returns appraisal values that Leilo does not publish. What our price buys is Leilo itself, closed-auction history, parsed notice fields and a monitor mode that skips lots you already have. The other option is browsing leilo.com.br lot by lot.

### 💼 Leilo scraper use cases

- **Auction investors**: sort open lots by `pricePerM2`, filter vacant properties in one state and export the shortlist with the edital link for each.
- **Real estate agents and brokers**: watch new lots in your city with the only-new mode and send them to your CRM.
- **Market researchers and lenders**: study starting bids, unsold rates and sold prices by state, seller and property type using the closed-lot history.

### 🔌 Leilo scraper API and integrations

Run it from any language through the Apify API:

```bash
curl -X POST "https://api.apify.com/v2/acts/RecordsData~leilo-br-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"states":["GO"],"propertyTypes":["land"],"maxItems":50}'
```

Connect it to Make, Zapier, n8n, Google Sheets or Slack with the standard Apify integrations, or schedule it and send the new lots to a webhook.

### 🤖 Leilo scraper MCP server for AI agents

AI agents can call this Actor through the Apify MCP server at `https://mcp.apify.com?tools=RecordsData/leilo-br-scraper`. Add this to your MCP client configuration (Claude Desktop, Cursor, VS Code):

```json
{
  "mcpServers": {
    "apify": {
      "url": "https://mcp.apify.com?tools=RecordsData/leilo-br-scraper"
    }
  }
}
```

Example agent prompt:

> Use the Leilo scraper to list vacant land lots in Goiás under R$ 500,000, sorted by price. Give me the city, starting bid, area, total to pay and the edital link for the first 10.

Tool description: scrape property auction lots from leilo.com.br in Brazil, with starting bid, commission, city, state, areas, occupancy, matrícula and edital links, plus past auction results; filter by state, city, type, price, area and date.

### ⚖️ Is it legal to scrape Leilo?

The Actor reads the public catalog that leilo.com.br serves to every visitor, without logging in and without a key. Bidder names, nicknames and cities are never output, and private seller data is not collected. Lot descriptions are the public auction notice and can name the owner of a property when the notice does. The auction house phone, WhatsApp and e-mail are business contacts and are returned only if you turn on the contact option. This is not legal advice: check Leilo's terms and the rules that apply to your use of the data.

### ❓ FAQ: Leilo scraper questions and answers

#### Does the Leilo scraper need a proxy or a Leilo account?

No. The Actor reads the public JSON service behind leilo.com.br with plain requests, at four requests at a time with a short pause between them. It needs no login, no API key and no proxy. You only need an Apify account to start it.

#### How many property auctions does Leilo list?

On 2026-10-11 the open catalog held 58 property lots in 7 auctions from 5 sellers. The number changes every week as auctions are published and close, so schedule the Actor to follow it. The closed history holds 561 property lots from auctions since September 2023, most of them unsold, which is real data and not a gap.

#### Can I get the results of past Leilo auctions?

Yes. Set Lot scope to closed or to upcoming and closed. Closed lots show the outcome in `auctionStatus` (sold, awaiting-payment, conditional, unsold, cancelled) and, for sold lots, the `finalBid` and `bidCount`. The Max past auction editions option controls how far back the Actor reads, 12 editions by default.

#### How do I filter Leilo lots by state or city?

Pick states by their two-letter code, or type cities such as Goiânia or Campinas/SP. Leilo has no location field for property lots, so the Actor takes the place from the lot title and, when the title has none, from the description. Accents and capitals do not matter, and the city was filled for every open lot checked.

#### What is the matrícula number and registry office?

The matrícula is the property registry number in Brazil. The Actor takes it from the lot description together with the registry office (cartório) that holds it. It was filled for 97 percent of the open lots checked, and the registry office for 81 percent. The matrícula PDF link, when Leilo publishes one, is in `documents`.

#### Does it return coordinates or an appraisal value?

No. Leilo does not publish coordinates for these lots and its appraisal field is always zero, so those columns do not exist in the output. You get the city, the address when the notice gives one (67 percent of the open lots checked), the starting bid, the commission, the total to pay and the price per square meter.

#### Why are some fields empty on a lot?

Because the notice does not state them. Areas, rooms, occupancy and address come from free text, so a lot that says nothing about bedrooms has no `bedrooms` key. Keep Fetch full lot details on, which is the default: the search list alone has no description, so address and occupancy come from the lot detail.

#### How do I get only the new Leilo lots every day?

Turn on Only new rows and schedule the Actor. It remembers the lots it already returned for the same search in a store of your own account and skips them, so each run returns just the new lots, and skipped rows are not charged. Use the Monitor name field to keep separate searches apart.

#### Can I scrape a single lot or a single auction?

Yes. Paste lot URLs (leilo.com.br/lote/...) in Start URLs or lot ids in Lot IDs to read those lots whatever their status. Paste an auction event URL (leilo.com.br/leilao/evento/...) to read all property lots of that auction, or a state listing page such as leilo.com.br/leilao/goias/imoveis/ for one state.

#### What happens if the site changes?

When a run delivers no data the Actor ends with a clear failure message and charges nothing. Write to contact.punkrecordsdata@gmail.com and we fix it. Invalid inputs, such as a reversed price band or a URL outside leilo.com.br, return one free error row instead of a failed run, so a bad schedule never costs you money.

### 🔎 Want more real estate and market data?

Browse the complete [RecordsData collection](https://apify.com/RecordsData) for more scrapers.

### 💬 Support

Questions, a missing field or a feature request: **contact.punkrecordsdata@gmail.com**

Last updated: 2026-10-11

> **⚠️ Disclaimer:** independent tool, not affiliated with Leilo or its auction houses. It collects only publicly available data.

# Actor input Schema

## `startUrls` (type: `array`):

Optional leilo.com.br pages to read: a lot page (leilo.com.br/lote/<id>/), an auction event page (leilo.com.br/leilao/evento/<slug>/) or a listing page such as leilo.com.br/leilao/goias/imoveis/. Leave empty to search the whole property catalog with the filters below. A state or city in a listing URL is applied as a filter.

## `lotIds` (type: `array`):

Optional list of lot ids (the UUID in the lot URL, for example a7ce5921-b76b-11f1-97f6-02420a000006). These lots are fetched directly, whatever their status, and the search filters are not applied to them. An id that does not exist returns one free error row.

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `recordTypes` (type: `array`):

What to return. Lots: one row per property lot (price, address, areas, registry number, occupancy, photos, documents). Auctions: one row per auction (edital, house, dates, lot totals) built from the lots found. Sellers: one row per seller (comitente) with lot counts and value totals. Every row counts toward Max Items.

## `lotScope` (type: `string`):

Upcoming and live lots (open for bids today), closed lots (results of past auctions: sold, unsold, awaiting payment, cancelled; reaches back to 2023), or both. Closed lots are charged as their own event.

## `fetchDetails` (type: `boolean`):

Open every lot record for the full description, photo gallery, edital and matricula documents, bid increment, commission, registry office and amenities. Billed as the lot-detail event. Turn off for a cheaper list-only pass.

## `sortBy` (type: `string`):

Order of the lots in the search. Auction date puts the soonest first.

## `states` (type: `array`):

Only lots in these Brazilian states. Leave empty for all states. The state comes from the lot title and description.

## `cities` (type: `array`):

Only lots in these cities, for example Goiânia, Rio de Janeiro or Campinas/SP. Accents and capitals do not matter; add /UF to tell same-name cities apart.

## `propertyTypes` (type: `array`):

Only these property types. Leave empty for all types.

## `minPrice` (type: `integer`):

Only lots whose current starting bid is at least this value, in Brazilian reais. 0 means no minimum.

## `maxPrice` (type: `integer`):

Only lots whose current starting bid is at most this value, in Brazilian reais. 0 means no maximum.

## `minArea` (type: `integer`):

Only lots with at least this land or built area, in square meters. 0 means no minimum.

## `maxArea` (type: `integer`):

Only lots with at most this land or built area, in square meters. 0 means no maximum.

## `occupancy` (type: `string`):

Vacant or occupied properties, read from the lot description. Occupied lots may need an eviction after the sale. This filter needs the lot description, so lots are opened for detail.

## `sellers` (type: `array`):

Only lots from these sellers, matched on part of the seller name without accents or capitals, for example Banco, Caixa, Prefeitura or Tribunal.

## `lotStatuses` (type: `array`):

Only lots in these statuses. Leave empty for all statuses of the chosen scope.

## `auctionDateFrom` (type: `string`):

Only lots whose bidding ends on or after this day (Brasilia time). Example: 2026-11-30. Leave empty for no start date.

## `auctionDateTo` (type: `string`):

Only lots whose bidding ends on or before this day (Brasilia time). Leave empty for no end date.

## `searchText` (type: `string`):

Keep only lots whose title, description, city or seller contains this text (accents and capitals do not matter), for example apartamento, rural or alienação fiduciária.

## `maxEditions` (type: `integer`):

For closed lots: how many of the most recent past auction editions to read, newest first. Each edition holds a few dozen lots. About 80 editions exist back to 2023.

## `maxRunSeconds` (type: `integer`):

Stop collecting after this many seconds and return what was gathered, so a large closed-lot history never runs unbounded.

## `onlyNew` (type: `boolean`):

Only new rows: skip every lot, auction or seller this same search already returned in an earlier run, so a scheduled run returns just the new lots and you are not charged for skipped rows. Max Items then means N new rows. Off by default.

## `stateKey` (type: `string`):

Name of this monitor. Leave empty to derive it from your filters. Use a name to run two monitors with the same filters.

## `resetSeen` (type: `boolean`):

Clear the saved list for this monitor before the run, so everything counts as new again.

## `includeContactDetails` (type: `boolean`):

Add the auction house public business phone, WhatsApp, e-mail and address (from the leilo.com.br home page) to lot, auction and seller rows. Business data only: no bidder or private-seller personal data is ever returned. Off by default.

## Actor input object example

```json
{
  "startUrls": [],
  "lotIds": [],
  "maxItems": 10,
  "recordTypes": [
    "lots"
  ],
  "lotScope": "upcoming",
  "fetchDetails": true,
  "sortBy": "auctionDate",
  "states": [],
  "cities": [],
  "propertyTypes": [],
  "minPrice": 0,
  "maxPrice": 0,
  "minArea": 0,
  "maxArea": 0,
  "occupancy": "any",
  "sellers": [],
  "lotStatuses": [],
  "auctionDateFrom": "",
  "auctionDateTo": "",
  "searchText": "",
  "maxEditions": 12,
  "maxRunSeconds": 600,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false,
  "includeContactDetails": false
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "lotIds": [],
    "maxItems": 10,
    "recordTypes": [
        "lots"
    ],
    "lotScope": "upcoming",
    "sortBy": "auctionDate",
    "cities": [],
    "occupancy": "any",
    "sellers": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/leilo-br-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "lotIds": [],
    "maxItems": 10,
    "recordTypes": ["lots"],
    "lotScope": "upcoming",
    "sortBy": "auctionDate",
    "cities": [],
    "occupancy": "any",
    "sellers": [],
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/leilo-br-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "lotIds": [],
  "maxItems": 10,
  "recordTypes": [
    "lots"
  ],
  "lotScope": "upcoming",
  "sortBy": "auctionDate",
  "cities": [],
  "occupancy": "any",
  "sellers": []
}' |
apify call recordsdata/leilo-br-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/leilo-br-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/PhZDqba1MvVmz8yY2/builds/hD4NoEPQvVYM0lAew/openapi.json
