# Bolha Autos Scraper: Slovenia Cars, Motorcycles, Parts, Tyres (`recordsdata/bolha-autos-scraper`) Actor

Scrape bolha.com Avto-moto, the Slovenian vehicle classifieds: used and new cars, damaged cars, oldtimers, motorcycles, commercial vehicles, caravans, spare parts, accessories, tuning, tyres and rims with prices, mileage, power, photos and seller type. No login, no proxy. Export JSON, CSV or Excel.

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

## Pricing

from $22.00 / 1,000 vehicle ads

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)

## Bolha Autos Scraper: Slovenia Cars, Motorcycles, Parts and Tyres from bolha.com

> Bolha Autos Scraper is an Apify Actor that extracts vehicle listings from bolha.com, a leading classifieds site in Slovenia: used, new and damaged cars, oldtimers, motorcycles, commercial vehicles, caravans, parts, accessories, tuning, tyres and rims. Each row has price in EUR, make, model, year, mileage, fuel, power, photos and the seller type. Filter by make, price, year or region, then export JSON, CSV or Excel.

Export the result as JSON, CSV, Excel, XML or HTML, or read it through the Apify API. The actor reads the same public pages that bolha.com shows to visitors, at a gentle pace of at most four requests per second.

### What can you scrape from Bolha?

On 2026-10-23 the vehicle part of bolha.com ("Avto-moto") listed about 453,500 ads. The actor reads all of these sections:

- **Cars**: 1,710 used cars, 634 new cars, 1,609 damaged cars and cars for parts, and 661 oldtimers (cars, motorcycles and others).
- **Other vehicles**: 2,923 motorcycles, mopeds and quads, 1,355 commercial vehicles, trucks and forklifts, and 1,445 motorhomes, caravans and trailers.
- **Parts and equipment**: 313,845 spare parts, 20,454 accessories and 7,332 tuning ads.
- **Tyres and wheels**: 95,230 tyre ads and 6,369 rim and wheel ads, with tyre size, season, number of tyres and whether rims are included.
- **Ad details** (optional): the seller's description, the whole photo gallery, the equipment list, the video, the seller store and the map point of businesses.
- **Monitoring**: a repeat run returns only ads it has not delivered before.

### Why use this Bolha scraper?

- **Built for vehicles**: 72 flat, typed columns with the vehicle data in its own fields (make, model, trim, year, body, fuel, gearbox, drive, power in kW and hp, colour, doors, seats, owners, Euro standard, consumption, CO2, mileage, damage, forklift lift height, tyre size). The Store scraper for bolha.com is a general classifieds tool with 11 fields.
- **Filters the site applies itself**: make, model, price, year, mileage, engine size, power, fuel, body type, drive, transmission, colour, doors, seats, owners, condition, region and category. The actor checks that bolha.com really applied each filter, so you never pay for unfiltered results.
- **Names are checked before the run**: a misspelled make, model or category ends with one free error row that suggests the closest names. Asking for "Golf" selects every Golf generation the site lists.
- **Clean output**: numbers are numbers, enums are English, dates are ISO 8601 and absent values are left out instead of printed as null. Placeholder prices (0 EUR, or up to 2 EUR for vehicles) are flagged with `priceIsPlaceholder`.
- **Privacy built in**: private sellers' names, phone numbers, addresses and map points are never output, and phone numbers are removed from their titles and descriptions.
- **Fast and light**: plain HTTP, no browser, no proxy. A 3-result cloud run takes about 4 seconds and uses about 51 MB of memory.

### How to scrape Bolha listings in four steps

1. Choose the **Sections** you want, for example used cars or tyres.
2. Add makes such as `BMW` or `Volkswagen`, categories, keywords and filters such as price, year, fuel or region.
3. Set **Maximum items** and click **Start**.
4. Download the dataset from the **Storage** tab as JSON, CSV, Excel or XML.

### Two ways to collect data

| Mode (`mode`) | Use it to | Input |
|---|---|---|
| `search` | Find ads by section, make, model, category, keywords and the full filter set | `sections`, `makes`, `models`, `categories`, filters |
| `urls` | Read known ads by number or address, or replay a bolha.com list page | `listingIds`, `startUrls` |

Make, model and category names are looked up on the site, so they are not case sensitive and accents do not matter. Switch on **Add ad details** to read every ad page: vehicle rows then carry the full description, the gallery and the equipment list.

### What data do you get from Bolha?

Every row has a `recordType`: `vehicle`, `part` (parts, accessories, tuning) or `tire` (tyres and rims). Fields that do not apply to a row are left out, never printed as null.

| Field | Description |
|---|---|
| `recordType`, `listingId`, `url`, `imageUrl`, `title` | Record type, ad number, address of the ad, cover photo and title |
| `sourceSite`, `country`, `section`, `category`, `listingType`, `vehicleType` | `bolha.com`, `SI` or `HR`, the section you searched, the site category (its Slovenian name), `sale` and the vehicle type (`car`, `oldtimer`, `motorcycle`, `commercial`, `caravan`, `part`, `accessory`, `tuning`, `tire`, `rim`) |
| `make`, `model`, `trim`, `year`, `firstRegistrationYear`, `registrationValidUntil` | Vehicle identity; model as the site spells it ("Golf VII"); first registration and technical inspection validity |
| `bodyType`, `fuelType`, `engineType`, `transmission`, `gears`, `driveType` | Specification as English labels, for example `Hatchback`, `Petrol`, `Manual`, `Front-wheel drive`; engine type for motorcycles |
| `engineSize`, `powerKw`, `powerHp`, `color`, `doors`, `seats` | Engine size in cm3, power in kW and hp, colour, doors and seats |
| `mileage`, `mileageUnit`, `condition`, `owners` | Odometer in km, and `new`, `demo`, `used`, `repairable`, `for-parts` or `defective`, number of owners |
| `euroStandard`, `fuelConsumption`, `co2Emission` | Euro norm, l/100 km and CO2 in g/km (when the seller typed them) |
| `engineCondition`, `damage` | Running or not running, and the damaged parts of damaged cars |
| `price`, `currency`, `priceOnRequest`, `priceIsPlaceholder` | Asking price in EUR, `true` when the seller shows no price, and `true` for a placeholder price (0 EUR, or up to 2 EUR for vehicles) |
| `operatingHours`, `loadCapacityKg`, `liftHeightMm` | Hours, load capacity and lift height of forklifts and machines |
| `tireSize`, `tireWidth`, `tireProfile`, `rimDiameter`, `tireSeason`, `kit`, `quantity` | Tyre size such as `195/55 R16`, width, profile, rim diameter, season, whether rims are included and the number of pieces |
| `referenceCode`, `features`, `description`, `videoUrl` | Seller's reference, equipment list, the seller's text with private contacts removed, and video (detail rows) |
| `city`, `municipality`, `region`, `address`, `latitude`, `longitude` | Place; the street and map point are filled for businesses only |
| `images`, `imageCount`, `publishedAt`, `viewCount` | Full-size gallery (detail rows), photo count, publication time (UTC) and views |
| `isPrivateSeller`, `sellerName`, `sellerUrl`, `sellerWebsite` | Private or business; the business name, its store page and its website (website only with contact details) |
| `scrapedAt` | The time of the run |

The actor leaves out columns bolha.com never fills for vehicles, such as VIN. Some columns are filled only when the seller typed them, for example the Euro standard, CO2 and consumption.

#### Sample output

A real detail row from a business seller (equipment list, description and gallery shortened):

```json
{
  "imageUrl": "https://www.bolha.com/image-xlsize/avto-oglasi/volkswagen-golf-1.5-tsi-life-96-kamera-navi-acc-led-samo-53.000-km-slika-63334823.jpg",
  "recordType": "vehicle",
  "title": "Volkswagen Golf 1.5 TSI Life 96.KAMERA.NAVI.ACC.LED.SAMO 53.000 KM",
  "listingId": "16578712",
  "url": "https://www.bolha.com/avto-oglasi/volkswagen-golf-1.5-tsi-life-96-kamera-navi-acc-led-samo-53.000-km-oglas-16578712",
  "sourceSite": "bolha.com",
  "country": "SI",
  "section": "used-cars",
  "listingType": "sale",
  "vehicleType": "car",
  "make": "Volkswagen",
  "model": "Golf VII",
  "trim": "1.5 TSI Life 96.KAMERA.NAVI.ACC.LED.SAMO 53.000 KM",
  "year": 2021,
  "bodyType": "Hatchback",
  "fuelType": "Petrol",
  "transmission": "Manual",
  "gears": 6,
  "engineSize": 1498,
  "powerKw": 96,
  "powerHp": 131,
  "color": "Dark blue",
  "doors": 5,
  "seats": 5,
  "mileage": 53800,
  "mileageUnit": "km",
  "condition": "used",
  "owners": 1,
  "euroStandard": "Euro 6",
  "price": 17999,
  "currency": "EUR",
  "features": ["aluminijasta platišča", "3. zavorna luč", "navigacija", "..."],
  "description": "Seller text, phone numbers of private sellers removed...",
  "city": "Ptuj",
  "municipality": "Ptuj",
  "region": "Podravska",
  "latitude": 46.421,
  "longitude": 15.86682,
  "images": [
    "https://www.bolha.com/image-xlsize/avto-oglasi/volkswagen-golf-1.5-tsi-life-96-kamera-navi-acc-led-samo-53.000-km-slika-63334823.jpg",
    "..."
  ],
  "imageCount": 18,
  "publishedAt": "2026-10-19T23:04:45.000Z",
  "viewCount": 80,
  "isPrivateSeller": false,
  "sellerName": "paaglobal2",
  "sellerUrl": "https://www.bolha.com/trgovina/paaglobal2",
  "scrapedAt": "2026-10-23T22:14:49.772Z"
}
```

A real `tire` row from a private seller (no name, address or phone, only the town):

```json
{
  "imageUrl": "https://www.bolha.com/image-big/16-colne-pnevmatike/pnevmatike-sava-195-55-16-zimska-kolicina-4-slika-62703028.jpg",
  "recordType": "tire",
  "title": "Pnevmatike Sava 195/55/16 zimska Količina: 4",
  "listingId": "16441375",
  "url": "https://www.bolha.com/16-colne-pnevmatike/pnevmatike-sava-195-55-16-zimska-kolicina-4-oglas-16441375",
  "sourceSite": "bolha.com",
  "country": "SI",
  "section": "tyres",
  "category": "16-colne pnevmatike",
  "listingType": "sale",
  "vehicleType": "tire",
  "condition": "used",
  "price": 60,
  "currency": "EUR",
  "tireSize": "195/55 R16",
  "tireWidth": 195,
  "tireProfile": 55,
  "rimDiameter": 16,
  "kit": "Tyres only",
  "quantity": 4,
  "city": "Logatec",
  "municipality": "Logatec",
  "region": "Osrednjeslovenska",
  "isPrivateSeller": true,
  "scrapedAt": "2026-10-23T22:17:50.322Z"
}
```

### Monitor new Bolha listings

Switch on **Only new ads (monitor)** and the actor remembers every ad it delivered, in a named key-value store of your own account. A scheduled run of the same search then returns only unseen ads. Sort by newest and give each saved search its own **Monitor name**. Skipped ads are never charged. In a test, a first run delivered the one Aston Martin ad on the site and the second run with the same input delivered 0.

### How does it compare with other Bolha scrapers?

The only Apify Store actor for bolha.com that covers vehicles is [studio-amba/bolha-scraper](https://apify.com/studio-amba/bolha-scraper), a general classifieds scraper. Its published output has 11 fields, read on 2026-10-23.

| | Bolha Autos Scraper | studio-amba/bolha-scraper |
|---|---|---|
| Focus | Vehicle sections of bolha.com | Classifieds in general |
| Output fields | 72 flat, typed columns | 11 fields |
| Vehicle data | Make, model, year, mileage, fuel, power, body, drive, colour, owners, Euro norm, tyre size | `condition` and `category` only |
| Filters | Make, model, price, year, mileage, engine, power, fuel, body, region and more, checked against the site | Not stated |
| Seller privacy | Private sellers flagged, no personal data | `sellerType` field |

Use this actor when you need structured vehicle, parts or tyre data from Slovenia.

### Is it legal to scrape Bolha? Limits and responsible use

The actor reads public pages that the bolha.com website itself serves. It does not log in, solve captchas or bypass any protection. The robots.txt of bolha.com disallows `/search` and `/papi/`, and the actor never opens them. It sends at most about four requests per second. The terms of use of bolha.com restrict copying site content without the operator's permission, so check them against your own use case. Private sellers' names, phone numbers, addresses and map points are never output. You are responsible for how you use the data, including data protection rules in your country.

Limits:

- bolha.com shows at most 10,000 results per search (400 pages). For bigger searches, such as all tyres, the actor splits the search by region and category; otherwise add filters.
- The site has no seller-type filter and no keyword search outside motorcycles and commercial vehicles, so those two filters are applied by the actor after reading; a narrow window can scan many pages (up to 3,000 ads per search).
- Several models of one make (or a model family such as Golf) are searched one after another, so the newest-first order holds inside each model, not across them.
- Oldtimers accept a price filter only; power, year and mileage are not offered there.
- Ads without a price carry `priceOnRequest: true` and no `price`. Some sellers type a price of 1 EUR; the row keeps the number and sets `priceIsPlaceholder`.
- Free Apify plans are limited to 10 results per run.

### Use with AI agents (MCP)

Connect the Apify MCP server to Claude, Cursor or another MCP client and this actor appears as a tool: `https://mcp.apify.com?tools=RecordsData/bolha-autos-scraper`.

Example prompt: "List the 20 cheapest diesel BMW from 2015 or newer on Bolha with mileage and region." The agent sends `{ "sections": ["used-cars"], "makes": ["BMW"], "fuelTypes": ["diesel"], "yearFrom": 2015, "sortBy": "price-asc", "maxItems": 20 }` and analyzes the rows.

### Run it from code

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

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });
const run = await client.actor('RecordsData/bolha-autos-scraper').call({
    sections: ['used-cars'],
    makes: ['Volkswagen'],
    models: ['Golf'],
    yearFrom: 2018,
    scrapeDetails: true,
    maxItems: 100,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, items[0].title, items[0].price);
```

You can also call the actor from the Python client, Make, Zapier or n8n, and schedule it from the Apify Console.

### Frequently Asked Questions

#### How do I scrape bolha.com vehicle listings?

Open the actor, pick one or more sections, add makes, categories and filters, set **Maximum items** and start. The dataset has one row per ad. To refresh known ads, use the `urls` mode with ad numbers or bolha.com list addresses.

#### Which vehicles and products does the Bolha scraper cover?

Everything in the Avto-moto part of bolha.com: used, new and damaged cars, oldtimers, motorcycles and mopeds, commercial vehicles and forklifts, caravans and trailers, parts, accessories, tuning, tyres and rims. The column `vehicleType` tells the types apart. Parts, accessories, tyres and rims have no make or model on the site, so those columns are left out for them.

#### Do I need a proxy, a login or an API key?

No. The actor makes plain HTTP requests to the public site and needs no proxy, browser or Bolha account. You only need an Apify account to start runs.

#### Is it legal to scrape Bolha?

The actor reads publicly visible listings and does not log in. It keeps to the paths robots.txt allows and paces its requests. Private sellers' personal data is not output. The site terms restrict copying content without permission, and you remain responsible for how you use the data.

#### How many Bolha listings can I get in one run?

The site shows at most 10,000 results per search. Set `maxItems` to what you need. For the large sections (tyres, parts) the actor splits the search by region and category to go beyond that. Free Apify plans are limited to 10 results per run.

#### Can I search a make and a model?

Yes, for cars. Add the make to `makes` and the model to `models`. The site lists models by generation, so "Golf" searches every Golf generation. Motorcycles accept makes; commercial vehicles accept models as text; use `keywords` where a section has no make list.

#### Can I get only the ads published since my last run?

Yes. Switch on **Only new ads (monitor)**, sort by newest and keep the same search and **Monitor name**. A scheduled run returns only unseen ads, and skipped ads are never charged.

#### Why is there no seller name or address on some rows?

Those rows belong to private sellers. Their name, phone, address and map point are never output; only the town is, because the ad page shows it. Business rows carry the shop name and store page, and the street, website and phone numbers in the text appear when you switch on **Include business contact details**.

#### What does a price on request look like?

Some sellers leave the price empty or type a placeholder such as 1 EUR. An empty price gives `priceOnRequest: true` and no `price`; a placeholder price (0 EUR, or up to 2 EUR for vehicles) keeps the number and sets `priceIsPlaceholder: true`, so it never slips into an average by accident.

#### What happens when the search finds nothing or the input is wrong?

A search with no hits ends as succeeded with an empty dataset and charges nothing. A wrong input value, such as an unknown make or a filter the chosen section does not offer, ends as succeeded with one free error row that explains the problem and suggests close names.

### Support

Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com. Reviews on the actor page help other people find it.

This actor is an independent tool and is not affiliated with bolha.com.

# Actor input Schema

## `mode` (type: `string`):

search = ads of the sections, makes and filters below. urls = bolha.com category pages, make pages, ad addresses or ad numbers.

## `sections` (type: `array`):

Which parts of bolha.com Avto-moto to read. Each section is searched on its own, and every row says which section it came from. Vehicles are charged as vehicle rows, spare parts, accessories and tuning as part rows, tyres and rims as tyre rows.

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

Stops after this many rows (all sections together). 0 means no limit. Free plans are limited to 10 rows per run.

## `makes` (type: `array`):

Makes as the site lists them, for example BMW, Audi, Mercedes-Benz, Volkswagen. Works in the three car sections and in motorcycles. Not case sensitive. A make the site does not list gives a clear error with suggestions. Sections without a make filter (such as commercial vehicles) are skipped when you set this; use Keywords there.

## `models` (type: `array`):

Models of the makes above, for example 320, A4, Golf. Car sections need the make. In commercial vehicles it is the model name text of the ad (for example Sprinter). A model the make does not have gives a clear error with suggestions.

## `categories` (type: `array`):

Sub-categories of the section, as the site names them, for example Mopedi, Dostavna vozila, Viličarji, 16-colne pnevmatike. Used by oldtimers, motorcycles, commercial vehicles, caravans, parts, accessories, tuning, tyres and rims. A name the section does not list gives a clear error with suggestions.

## `keywords` (type: `string`):

Words that must appear in the ad. Motorcycles and commercial vehicles search the site for them; other sections keep the ads whose title contains every word.

## `regions` (type: `array`):

Statistical regions of Slovenia where the vehicle is located. Croatia is the bucket the site uses for ads located in Croatia. Leave empty for everywhere.

## `sellerType` (type: `string`):

Private sellers, businesses (dealers and shops), or both. The site has no such filter, so the actor reads ads and keeps the matching ones (up to 3,000 ads read per search).

## `onlyWithPhotos` (type: `boolean`):

Skips ads that have no photo.

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

Order of the results. Newest first is best for monitoring.

## `priceFrom` (type: `integer`):

Only ads priced at or above this amount in euros. 0 or empty means no limit.

## `priceTo` (type: `integer`):

Only ads priced at or below this amount in euros. 0 or empty means no limit.

## `yearFrom` (type: `integer`):

Only vehicles of this model year or newer. Cars, motorcycles and commercial vehicles. 0 or empty means no limit.

## `yearTo` (type: `integer`):

Only vehicles of this model year or older. Cars, motorcycles and commercial vehicles. 0 or empty means no limit.

## `mileageFrom` (type: `integer`):

Only vehicles with at least this odometer reading. Used and damaged cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `mileageTo` (type: `integer`):

Only vehicles with at most this odometer reading. Used and damaged cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `engineSizeFrom` (type: `integer`):

Only engines of at least this displacement in cubic centimetres, for example 1600. Cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `engineSizeTo` (type: `integer`):

Only engines of at most this displacement in cubic centimetres, for example 2500. Cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `powerFrom` (type: `integer`):

Only vehicles with at least this power in kilowatts (the unit of the site; 1 kW is about 1.36 hp). Cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `powerTo` (type: `integer`):

Only vehicles with at most this power in kilowatts. Cars, motorcycles, commercial vehicles. 0 or empty means no limit.

## `fuelTypes` (type: `array`):

Cars: petrol, diesel, hybrid, electric. Commercial vehicles: also gas, petrol-and-gas, diesel-and-gas. Motorcycles: two-stroke, four-stroke, electric. A value a section does not offer is ignored for it. The site filters one value at a time, so several values run as several searches. Leave empty for all.

## `bodyTypes` (type: `array`):

Body types of new and used cars. The site filters one value at a time, so several values run as several searches. Leave empty for all.

## `driveTypes` (type: `array`):

Drive wheels of new and used cars. Several values run as several searches. Leave empty for all.

## `transmissions` (type: `array`):

Gearbox types of cars. Damaged cars accept one value. Leave empty for all.

## `colors` (type: `array`):

Exterior colours of cars. Several values run as several searches. Leave empty for all.

## `doors` (type: `array`):

Number of doors of new and used cars. Several values run as several searches. Leave empty for all.

## `seats` (type: `array`):

Number of seats of new and used cars. Several values run as several searches. Leave empty for all.

## `owners` (type: `array`):

Owners so far, for used cars. Several values run as several searches. Leave empty for all.

## `conditions` (type: `array`):

Condition of the vehicle or part. Which values exist depends on the section (new cars are always new, used cars are used or demo). Leave empty for all.

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

urls mode. bolha.com addresses: a section, make, model or category page (for example https://www.bolha.com/rabljeni-avtomobili/bmw?yearManufactured\[min]=2018) or a single ad. Search addresses (/search) are not accepted because the site blocks them for robots.

## `listingIds` (type: `array`):

urls mode. The number at the end of an ad address, for example 16018745.

## `scrapeDetails` (type: `boolean`):

On: one extra request per ad adds the full description, the equipment list, every photo, the video, the seller store and the exact map point of businesses. Vehicle rows then count as detail rows.

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

Adds the website and street address of business sellers (needs Add ad details) and keeps phone numbers inside their descriptions. Private sellers never get contact data.

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

Skips every ad seen in an earlier run with the same monitor name and the same search, and does not charge for them. Schedule the actor to get only new ads.

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

Name of the memory used by Only new ads. Use one name per saved search. Empty uses the filters themselves.

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

Clears the memory of the monitor name before this run.

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

How many ad page requests run at the same time (1 to 8). Request starts are spaced by the actor anyway.

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

Optional. Empty means direct requests, which work. Add a proxy only if the site starts refusing your runs.

## Actor input object example

```json
{
  "mode": "search",
  "sections": [
    "used-cars"
  ],
  "maxItems": 10,
  "makes": [
    "BMW"
  ],
  "models": [],
  "categories": [],
  "keywords": "",
  "regions": [],
  "sellerType": "any",
  "onlyWithPhotos": false,
  "sortBy": "newest",
  "fuelTypes": [],
  "bodyTypes": [],
  "driveTypes": [],
  "transmissions": [],
  "colors": [],
  "doors": [],
  "seats": [],
  "owners": [],
  "conditions": [],
  "startUrls": [],
  "listingIds": [],
  "scrapeDetails": false,
  "includeContactDetails": false,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false,
  "maxConcurrency": 4,
  "proxyConfiguration": {
    "useApifyProxy": 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 = {
    "sections": [
        "used-cars"
    ],
    "maxItems": 10,
    "makes": [
        "BMW"
    ],
    "models": [],
    "categories": [],
    "priceFrom": 0,
    "priceTo": 0,
    "yearFrom": 0,
    "yearTo": 0,
    "mileageFrom": 0,
    "mileageTo": 0,
    "engineSizeFrom": 0,
    "engineSizeTo": 0,
    "powerFrom": 0,
    "powerTo": 0,
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/bolha-autos-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 = {
    "sections": ["used-cars"],
    "maxItems": 10,
    "makes": ["BMW"],
    "models": [],
    "categories": [],
    "priceFrom": 0,
    "priceTo": 0,
    "yearFrom": 0,
    "yearTo": 0,
    "mileageFrom": 0,
    "mileageTo": 0,
    "engineSizeFrom": 0,
    "engineSizeTo": 0,
    "powerFrom": 0,
    "powerTo": 0,
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/bolha-autos-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 '{
  "sections": [
    "used-cars"
  ],
  "maxItems": 10,
  "makes": [
    "BMW"
  ],
  "models": [],
  "categories": [],
  "priceFrom": 0,
  "priceTo": 0,
  "yearFrom": 0,
  "yearTo": 0,
  "mileageFrom": 0,
  "mileageTo": 0,
  "engineSizeFrom": 0,
  "engineSizeTo": 0,
  "powerFrom": 0,
  "powerTo": 0,
  "startUrls": [],
  "listingIds": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/bolha-autos-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/bolha-autos-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/J7NzKJLLHsSYTfaQW/builds/I6aHRWWBtsdOjtSmr/openapi.json
