# Bukowskis Auction Scraper (`rastriq/bukowskis-scraper`) Actor

Scrape auction lots from Bukowskis.com: artist, title, estimate, live bid, hammer price, category, images and end date. No login or API key needed.

- **URL**: https://apify.com/rastriq/bukowskis-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** E-commerce, Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.25 / 1,000 results

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Bukowskis Auction Scraper — Nordic Auction Data Without an API Key

Extract auction lots from **Bukowskis.com**, the largest auction house in Northern Europe, without an account, login, or API key. Bukowskis Auction Scraper collects artist, lot title, published estimate, live bid, hammer price, category, high-resolution images, and closing time from the entire live catalogue — then exports to JSON, CSV, or Excel, or feeds any workflow through the Apify API.

> 🚀 **Try it free** — press **Start** with the default settings and you'll have 20 lots in about 15 seconds.

### 📌 What is Bukowskis Auction Scraper?

Bukowskis has sold Nordic art, design, jewellery, and watches since 1870 and runs auctions in Stockholm, Gothenburg, Malmö, and Helsinki. It publishes a rich public catalogue but offers **no public API**, so price research, index building, and competitive tracking normally mean copying lots by hand.

Bukowskis Auction Scraper is an unofficial Bukowskis API that turns that catalogue into structured rows. It reads the server-rendered pages directly — no headless browser — so a full sweep of the live catalogue costs a fraction of a cent in compute.

Use Bukowskis Auction Scraper to:

- 🎨 **Track the Nordic art and design market** — follow estimates and realised bids for Wegner, Aalto, Panton, Måås-Fjetterström, Friberg, and hundreds of other makers
- ⌚ **Monitor watch and jewellery lots** — capture every Rolex, Omega, or Patek lot with its bid ladder and reserve status
- 📈 **Build a price index** — schedule daily runs and accumulate a time series of estimates versus live bids
- 🔍 **Find arbitrage and sourcing opportunities** — filter by category, saleroom city, and estimate band to surface lots that fit your buying criteria
- 🤖 **Feed valuation models** — the catalogue description carries materials, technique, dimensions, and condition notes as published

The Apify platform adds **scheduling**, **monitoring**, **webhooks**, **proxy rotation**, and integrations with Make, Zapier, and Google Sheets on top.

### 📋 What data does Bukowskis Auction Scraper extract?

| Field | Type | Description |
|---|---|---|
| `lotId` | string | 🔑 Bukowskis object number — stable identifier, used for deduplication |
| `auctionId` / `auctionType` | string | Sale code (`E1387`, `F799`) and whether it is an `ONLINE` or `CURATED` sale. Null for marketplace lots not attached to a numbered sale |
| `auctionName` | string | Public sale name, e.g. *Curated Timepieces – August* |
| `artist` / `artistLifetime` | string | 🎨 Attributed artist or maker, with nationality and life dates |
| `title` | string | Lot title as catalogued |
| `estimate` / `estimateCurrency` | number | 💰 Published estimate in the lot's own currency (SEK or EUR) |
| `currentBid` | number | Leading bid while the lot is open |
| `hammerPrice` | number | 🔨 Winning bid excluding buyer's premium, when Bukowskis publishes it |
| `currency` | string | ISO 4217 code of the bid — Swedish lots trade in SEK, Finnish lots in EUR |
| `priceConverted` | number | Bukowskis' own conversion into a secondary currency |
| `status` | string | `ACTIVE`, `NO_BIDS`, `SOLD`, `UNSOLD`, `ENDED`, or `UNKNOWN` |
| `bidCount` / `reserveMet` | number / boolean | Number of bids placed and whether the accepted minimum was reached |
| `bidHistory` | array | 📊 Anonymised bid ladder — bidder sequence number, timestamp, amount |
| `endDate` / `timeLeft` | string | ISO 8601 closing time and the countdown as displayed |
| `description` | string | Full catalogue text: materials, technique, dimensions, condition |
| `categoryPath` / `categoryBreadcrumbs` | string / array | Department and sub-department of the lot |
| `location` | string | Physical storage location of the object |
| `imageThumb` / `imageFull` / `images` | string / array | 🖼 Catalogue images at 350 px, 1200 px, and up to 2000 px |
| `lotUrl` | string | Canonical Bukowskis page for the lot |
| `scrapedAt` | string | Extraction timestamp, ISO 8601 UTC |

> 💡 `description`, `bidCount`, `reserveMet`, `location`, `categoryPath`, and `bidHistory` require **Visit each lot page** to be enabled.

### 🚀 How to use Bukowskis Auction Scraper

Scraping Bukowskis takes under two minutes:

1. **Create a free Apify account** at [apify.com](https://apify.com) — your first $5 of usage is free
2. **Open Bukowskis Auction Scraper** in Apify Console and click **Try for free**
3. **Choose how to target lots** — type search queries, paste auction codes such as `E1387`, drop in Bukowskis URLs, or leave everything empty to sweep the whole live catalogue
4. **Narrow it down (optional)** — pick categories, saleroom cities, an estimate band, and a sort order
5. **Click Save & Start** — the default settings return 20 lots as a sample
6. **Download the results** as JSON, CSV, Excel, or XML, or pull them from the Apify API

To keep a dataset current, open the **Schedules** tab and run it daily; each run re-reads the live catalogue, and `lotId` lets you upsert cleanly.

### ⚙️ Input parameters

| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| `searchQueries` | array | ❌ | — | Free-text searches: artist names, makers, models, object numbers |
| `auctionIds` | array | ❌ | — | Auction codes to sweep entirely, e.g. `["E1387", "F799"]` |
| `startUrls` | array | ❌ | — | Bukowskis index or single-lot URLs; the type is detected automatically |
| `maxItems` | integer | ❌ | `0` | Cap on unique lots. `0` scrapes everything matching the filters |
| `categoryIds` | array | ❌ | all | Departments: Art, Design, Furniture, Lighting, Timepieces, Jewellery, and 11 more |
| `cities` | array | ❌ | all | `stockholm`, `gothenburg`, `malmo`, `helsinki` |
| `minEstimate` / `maxEstimate` | integer | ❌ | — | Estimate band, compared in the lot's own currency |
| `sortBy` | string | ❌ | `ending` | `ending`, `recent`, `high`, `low`, `highest`, `lowest`, `most`, `fewest`, `alphabetical` |
| `scrapeLotDetails` | boolean | ❌ | `false` | Visit each lot page for catalogue text, bid count, location, 2000 px images |
| `includeBidHistory` | boolean | ❌ | `false` | Add the anonymised bid ladder; enables `scrapeLotDetails` automatically |
| `language` | string | ❌ | `en` | `en`, `sv`, or `fi` |
| `proxyConfiguration` | object | ❌ | Residential | Bukowskis blocks datacenter IPs, so residential proxies are the default |
| `maxConcurrency` | integer | ❌ | `5` | Parallel page fetches; the scraper is also capped at 120 requests/minute |

**Example input** — every watch in a curated sale, with catalogue text and bid ladder:

```json
{
  "auctionIds": ["F799"],
  "categoryIds": ["38"],
  "scrapeLotDetails": true,
  "includeBidHistory": true,
  "maxItems": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

### 📦 Output example

A real record from a run of Bukowskis Auction Scraper:

```json
{
  "lotId": "1657690",
  "auctionId": "F799",
  "auctionType": "CURATED",
  "auctionName": "Curated Timepieces – August",
  "title": "Rolex, Datejust, wristwatch, 36 mm",
  "estimate": 60000,
  "estimateCurrency": "SEK",
  "currentBid": 52000,
  "currency": "SEK",
  "hammerPrice": null,
  "priceConverted": 4710,
  "priceConvertedCurrency": "EUR",
  "status": "ACTIVE",
  "resultLabel": "Current bid",
  "bidCount": 5,
  "reserveMet": false,
  "bidHistory": [
    { "bidderNumber": 5, "placedAt": "Aug 18 9:56 AM", "amount": 52000, "currency": "SEK" },
    { "bidderNumber": 4, "placedAt": "Aug 16 8:40 AM", "amount": 50000, "currency": "SEK" }
  ],
  "endDate": "2026-08-23T17:40:00.000Z",
  "saleDate": "2026-08-23",
  "description": "18K gold, automatic, plexiglass, date, leather strap, original 18K gold buckle, circa 1959. Calibre 1065. Reference no. 6605.",
  "categoryPath": "Klockor & Ur/Armbandsur",
  "categoryBreadcrumbs": ["Timepieces", "Wrist watches"],
  "location": "Västberga Allé 3, Hägersten - J391",
  "imageFull": "https://d3tj81smxskx4e.cloudfront.net/.../s:2000:2000/...",
  "lotUrl": "https://www.bukowskis.com/en/auctions/F799/lots/1657690-rolex-datejust-wristwatch-36-mm",
  "scrapedAt": "2026-08-19T18:16:49.536Z"
}
```

The Output tab ships three ready-made table views — **Overview**, **Pricing**, and **Catalogue detail** — so you can switch between market analysis and cataloguing without reshaping the data.

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

Bukowskis Auction Scraper runs on Apify's standard **Compute Unit (CU)** pricing, and it is deliberately cheap because it never launches a browser.

| Workload | Measured cost | Notes |
|---|---|---|
| 170 lots, index only | 0.009 CU | ~32 seconds at 1 GB |
| 1,000 lots, index only | ~0.05 CU | The whole live catalogue |
| 1,000 lots with lot details | ~0.3 CU | One extra request per lot |

At roughly **$0.40 per CU**, a full daily sweep of the Bukowskis catalogue costs about **two cents in compute**. The larger variable is residential proxy traffic, which Apify bills separately — index-only runs transfer far less than detail runs, so start there.

> 💡 **Tip:** set `maxItems` to 20–50 for your first run to confirm the fields you need before removing the cap.

Is scraping Bukowskis free? Your first $5 of Apify credit covers many full catalogue sweeps at no cost.

### 🔗 Related Rastriq Actors

Explore the [Rastriq intelligence portfolio](https://apify.com/rastriq) on Apify Store:

| Actor | Description |
|---|---|
| [Ansorena Scraper](https://apify.com/rastriq/ansorena-scraper) | Lots and results from Ansorena, the leading Spanish auction house |
| [Wallapop Scraper](https://apify.com/rastriq/wallapop-scraper) | Second-hand marketplace listings and pricing from Wallapop |
| [Tesla Inventory Scraper](https://apify.com/rastriq/tesla-inventory-scraper) | Live Tesla inventory and pricing by market |

### ❓ Frequently Asked Questions

#### Is scraping Bukowskis legal?

Bukowskis Auction Scraper reads only **publicly available catalogue pages** — everything any visitor sees without logging in. It honours `robots.txt` (which disallows only `/admin/`, `/cms/`, and PDF endpoints, none of which this scraper touches) and caps itself at 120 requests per minute so it never puts load on the source site.

No personal data is collected. Bukowskis publishes specialist contact details on lot pages and identifies bidders by sequence number; the scraper deliberately skips the contact block and keeps only the anonymous bidder number. You remain responsible for making sure your own use complies with applicable law (GDPR, database rights) and Bukowskis' Terms of Service. See [Apify's guide to the legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

#### Does Bukowskis Auction Scraper need an account or API key?

No. It works entirely against public pages and needs no Bukowskis account, login, or credentials.

#### Can I get historical hammer prices for closed auctions?

Only while Bukowskis publishes them. The site removes result data from lots once a sale has been closed for a while — closed lots drop out of the index and their pages show a valuation prompt instead of a price. To build a history of realised prices, **schedule the scraper daily**: it captures each lot's final state while it is still public, and `hammerPrice` is filled in for lots whose result is displayed. There is no public archive to backfill from.

#### Why is `auctionId` empty on some lots?

Bukowskis publishes part of its catalogue as standalone marketplace lots that are not attached to a numbered sale. Those lots carry no auction code anywhere on the site, so Bukowskis Auction Scraper reports `auctionId` as `null` rather than inventing one. Lots that do belong to a sale always carry their code, whether you reach them through a search, an auction sweep, or a direct URL.

#### Why do some lots have prices in EUR instead of SEK?

Bukowskis operates in Sweden and Finland. Finnish lots are catalogued and bid in EUR, Swedish lots in SEK, and both appear in the same index. Always read `currency` alongside `estimate` and `currentBid` rather than assuming a single currency.

#### How many lots can I get in one run?

The live Bukowskis catalogue holds roughly 1,000 lots at any moment, and Bukowskis Auction Scraper walks all of them with no per-run cap. Filters combine, so `categoryIds` plus `cities` plus an estimate band narrows a sweep down precisely.

#### What proxy configuration should I use?

Keep the default. Bukowskis returns HTTP 403 to datacenter IPs, so **Apify residential proxies** are preselected. The scraper rotates sessions automatically and retries blocked requests up to four times.

#### My run returned fewer lots than the site shows. What happened?

Turn on **Debug logging** and re-run. The most common causes are an estimate band that excludes lots, a `maxItems` cap still in place, or a sale that closed mid-run — Bukowskis removes lots from the index the moment they close.

#### I found a bug. Where do I report it?

Open an issue in the **Issues tab** of this Actor and include your input configuration and the run ID.

***

### 🇪🇸 Versión en español

> Resumen en español del README anterior.

#### ¿Qué es Bukowskis Auction Scraper?

**Bukowskis Auction Scraper** extrae los lotes de subasta publicados en Bukowskis.com, la mayor casa de subastas del norte de Europa (Estocolmo, Gotemburgo, Malmö y Helsinki), sin necesidad de cuenta, login ni API key. Bukowskis no ofrece API pública, así que este actor convierte su catálogo en filas estructuradas listas para análisis.

#### ¿Qué datos extrae?

| Campo | Descripción |
|---|---|
| `lotId` | Número de objeto de Bukowskis, identificador estable |
| `artist`, `title` | Artista o creador y título del lote |
| `estimate`, `estimateCurrency` | Estimación publicada en la moneda del lote (SEK o EUR) |
| `currentBid`, `hammerPrice` | Puja actual y precio de martillo cuando Bukowskis lo publica |
| `status` | `ACTIVE`, `NO_BIDS`, `SOLD`, `UNSOLD`, `ENDED` |
| `bidCount`, `bidHistory` | Número de pujas y escalera de pujas anonimizada |
| `endDate` | Cierre del lote en ISO 8601 |
| `description` | Texto de catálogo: materiales, técnica, medidas y estado |
| `images` | Imágenes del catálogo hasta 2000 px |

#### ¿Cómo se usa?

1. Crea una cuenta gratuita en [apify.com](https://apify.com).
2. Abre **Bukowskis Auction Scraper** y pulsa **Try for free**.
3. Elige el modo: búsquedas de texto, códigos de subasta (`E1387`, `F799`), URLs directas, o déjalo vacío para recorrer todo el catálogo vivo.
4. Filtra por categoría, ciudad, rango de estimación y orden.
5. Pulsa **Save & Start** y descarga en JSON, CSV o Excel.

#### ¿Cuánto cuesta?

Bukowskis Auction Scraper usa el modelo de **Compute Units** de Apify. Una pasada completa del catálogo (~1.000 lotes) consume unas **0,05 CU**, aproximadamente dos céntimos de dólar. Con `scrapeLotDetails` activado sube a unas 0,3 CU. El tráfico de proxies residenciales se factura aparte; empieza siempre sin detalle para medir.

#### Nota sobre precios históricos

Bukowskis retira los resultados de los lotes cerrados pasado un tiempo, y no existe un archivo público de precios de adjudicación. Para construir una serie histórica, programa el actor con ejecuciones diarias: cada pasada captura el estado final de los lotes mientras sigue siendo público.

# Actor input Schema

## `searchQueries` (type: `array`):

Enter free-text searches, one per line — artist names, makers, models or object numbers. Each query is run against the Bukowskis lot index.<br><br>Examples: <code>Hans J. Wegner</code>, <code>Rolex Datejust</code>, <code>Märta Måås-Fjetterström</code>

## `auctionIds` (type: `array`):

Enter Bukowskis auction codes to scrape entire sales. <code>E</code> codes are online auctions, <code>F</code> codes are curated/specialist sales.<br><br>Examples: <code>E1387</code>, <code>F799</code>. You can find current codes at <a href='https://www.bukowskis.com/en/auctions' target='_blank'>bukowskis.com/en/auctions</a>.

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

Paste Bukowskis URLs directly. Both lot index pages and single lot pages are accepted; the scraper detects which is which.<br><br><code>https://www.bukowskis.com/en/lots/category/18-art</code><br><code>https://www.bukowskis.com/en/auctions/F799/lots</code><br><code>https://www.bukowskis.com/en/lots/1657690-rolex-datejust-wristwatch-36-mm</code>

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

Maximum number of unique lots to extract across the whole run. Set to <code>0</code> to scrape everything that matches your filters.

## `categoryIds` (type: `array`):

Select one or more Bukowskis departments. Leave empty to include every category.

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

Only include lots physically located in the selected Bukowskis salerooms. Leave empty to include all locations.

## `minEstimate` (type: `integer`):

Skip lots whose published estimate is below this amount. The value is compared in the lot's own currency (SEK for Swedish lots, EUR for Finnish lots). Lots without a published estimate are always kept.

## `maxEstimate` (type: `integer`):

Skip lots whose published estimate is above this amount. Compared in the lot's own currency, same as the minimum.

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

Controls the order Bukowskis returns lots in. Useful together with <b>Max lots</b> — for example, sort by <i>Highest estimate</i> and cap at 100 to get the top of the market only.

## `scrapeLotDetails` (type: `boolean`):

Fetch every lot's own page to add the full catalogue description, storage location, category path, bid count and 2000px images. Costs one extra request per lot, so a run takes noticeably longer.

## `includeBidHistory` (type: `boolean`):

Add the anonymised bid ladder for each lot — bidder number, timestamp and amount. Bukowskis publishes bidders as sequence numbers only, so no personal data is collected. Automatically enables <b>Visit each lot page</b>.

## `language` (type: `string`):

Language of the catalogue text Bukowskis serves. Artist names, estimates and prices are identical across languages; only titles and descriptions change.

## `proxyConfiguration` (type: `object`):

Bukowskis returns HTTP 403 to datacenter IPs. Residential proxies are strongly recommended and are the default.

## `maxConcurrency` (type: `integer`):

Number of pages fetched in parallel. The scraper is additionally capped at 120 requests per minute out of courtesy to the source site.

## `debugMode` (type: `boolean`):

Print every seed URL, skipped lot and enqueued page. Use it when a run returns fewer results than you expect.

## Actor input object example

```json
{
  "searchQueries": [
    "Hans J. Wegner"
  ],
  "auctionIds": [],
  "startUrls": [],
  "maxItems": 20,
  "categoryIds": [],
  "cities": [],
  "sortBy": "ending",
  "scrapeLotDetails": false,
  "includeBidHistory": false,
  "language": "en",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  },
  "maxConcurrency": 5,
  "debugMode": false
}
```

# Actor output Schema

## `lots` (type: `string`):

Every lot extracted in this run, one item per lot, deduplicated by Bukowskis object number.

## `runSummary` (type: `string`):

Counts of unique and saved lots, the resolved configuration and the seed URLs used for this run.

# 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 = {
    "searchQueries": [
        "Hans J. Wegner"
    ],
    "auctionIds": [],
    "startUrls": [],
    "maxItems": 20,
    "categoryIds": [],
    "cities": [],
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/bukowskis-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 = {
    "searchQueries": ["Hans J. Wegner"],
    "auctionIds": [],
    "startUrls": [],
    "maxItems": 20,
    "categoryIds": [],
    "cities": [],
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/bukowskis-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 '{
  "searchQueries": [
    "Hans J. Wegner"
  ],
  "auctionIds": [],
  "startUrls": [],
  "maxItems": 20,
  "categoryIds": [],
  "cities": [],
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call rastriq/bukowskis-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rastriq/bukowskis-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/LErpOTHihZcXT2vta/builds/vYkrrMS5hjJsmcvuM/openapi.json
