# Otomoto.pl Scraper - Budżetowy Low-cost💲🔥🚗🇵🇱 (`delectable_incubator/otomoto-pl-scraper-budzetowy-low-cost`) Actor

🚗🇵🇱 Extract vehicle listings from Otomoto search pages with ease. Collect car titles, prices, years, mileage, fuel types, gearboxes, locations, seller details, vehicle specifications, and listing URLs. Ideal for automotive market research, dealership monitoring and vehicle datasets 📊🔎

- **URL**: https://apify.com/delectable\_incubator/otomoto-pl-scraper-budzetowy-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

<p align="center">
<img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Otomoto Search Scraper" width="100%">
</p>

---

## 🚗🇵🇱 Otomoto Search Scraper | Bulk Vehicle Listings Scraper | Apify Actor

### 🚀 Extract Otomoto Vehicle Listings in Seconds (No Code)

The **Otomoto Search Scraper (Apify Actor)** is a powerful, scalable and SEO-optimized automotive data extraction tool designed to scrape vehicle listings directly from Otomoto, one of the largest automotive marketplaces in Poland.

Extract thousands of car listings, dealership inventories, pricing data, vehicle specifications and market intelligence datasets with just a few clicks.

Perfect for:

✅ Automotive market research

✅ Vehicle price monitoring

✅ Dealer inventory tracking

✅ Automotive lead generation

✅ Data analytics

✅ AI training datasets

✅ Car marketplace aggregation platforms

---

### 🔥 Why This Otomoto Scraper?

✔ Best Otomoto scraper on Apify

✔ Bulk URL scraping support

✔ Supports search pages, category pages and filtered searches

✔ Automatic pagination handling

✔ Fast & scalable extraction engine

✔ Structured JSON / CSV / Excel output

✔ Perfect for automotive market intelligence

✔ No coding required

---

### 🎯 What This Scraper Does

This Apify Actor extracts vehicle listings directly from Otomoto search and category result pages.

#### 📌 Core Features

✅ Scrape Otomoto vehicle listings

✅ Bulk URL scraping mode

✅ Brand category scraping

✅ Model category scraping

✅ Filtered search scraping

✅ Automatic pagination

✅ Extract vehicle specifications

✅ Extract pricing information

✅ Extract dealer information

✅ Extract listing URLs and images

✅ Structured export-ready datasets

---

### ⚡ Input Configuration (Bulk URL Mode)

#### 🔥 BULK URL SCRAPING

````

{
"startUrls": \[
"https://www.otomoto.pl/osobowe",
"https://www.otomoto.pl/osobowe/alfa-romeo",
"https://www.otomoto.pl/osobowe/bmw",
"https://www.otomoto.pl/osobowe/volkswagen/golf",
"https://www.otomoto.pl/osobowe?page=5"
],
"maxItems": 200
}

```

Start from any Otomoto search or category URL.

The scraper automatically continues pagination until:

• Maximum results are reached

• Or consecutive pages return no new listings

---

### 📊 Extracted Vehicle Data

| Field         | Description                |
| ------------- | -------------------------- |
| adId          | Unique vehicle listing ID  |
| title         | Vehicle title              |
| subtitle      | Vehicle specifications     |
| year          | Production year            |
| mileage       | Vehicle mileage            |
| fuelType      | Fuel type                  |
| gearbox       | Transmission type          |
| price         | Vehicle price              |
| currency      | Price currency             |
| priceEval     | Price evaluation indicator |
| location      | Vehicle location           |
| sellerType    | Dealer or private seller   |
| publishedAt   | Publication date           |
| isHighlighted | Promoted listing flag      |
| dealerName    | Dealer name                |
| dealerUrl     | Dealer profile URL         |
| imageUrl      | Vehicle image URL          |
| listingUrl    | Direct listing URL         |

---

### 📦 Example Output

```

{
"adId": "6144361420",
"title": "Ferrari 296 GTB",
"subtitle": "3855 cm3 • 830 KM • Oficial Ferrari Dealer",
"year": "2021",
"mileage": "27 450 km",
"fuelType": "Benzyna",
"gearbox": "Automatyczna",
"price": "1 299 000",
"currency": "PLN",
"priceEval": null,
"location": "Warszawa (Mazowieckie)",
"sellerType": "Firma",
"publishedAt": "Podbite 3 dni temu",
"isHighlighted": false,
"dealerName": "Ferrari Warszawa",
"dealerUrl": "https://ferrariwarszawa.otomoto.pl",
"imageUrl": "https://ireland.apollo.olxcdn.com/v1/files/dd2ofv3xv8wm2-OTOMOTOPL/image",
"listingUrl": "https://www.otomoto.pl/osobowe/oferta/ferrari-296-gtb-ID6HP75y.html"
}

````

---

### 💡 Use Cases

#### 🚗 Automotive Market Analysis

Track vehicle pricing trends across Poland.

#### 💰 Car Price Monitoring

Monitor prices by:

• Brand

• Model

• Region

• Dealer

#### 🏢 Dealer Intelligence

Track dealership inventories and stock availability.

#### 📊 Vehicle Market Research

Analyze:

• Supply trends

• Vehicle popularity

• Pricing distribution

• Regional market dynamics

#### 🤖 AI & Machine Learning

Generate automotive datasets for:

• AI training

• Vehicle valuation models

• Market forecasting

• Automotive analytics

---

### 🚀 Key Features

⚡ Bulk URL scraping support

🚗 Automotive-focused extraction

📌 Smart pagination engine

📊 Structured vehicle datasets

🧠 Clean JSON output

💾 Export-ready results

🔁 Auto retry system

⚙️ Scalable Apify cloud execution

🌍 Otomoto marketplace coverage

---

### 📤 Export Formats Supported

✔ JSON

✔ CSV

✔ Excel (XLSX)

✔ XML

✔ HTML

✔ API Access

---

### 🔥 Why This Is The BEST Otomoto Scraper On Apify?

✔ Optimized for Apify marketplace ranking

✔ Bulk URL support

✔ Fast vehicle extraction engine

✔ Automatic pagination

✔ Structured dealer & vehicle data

✔ Enterprise-ready scalability

✔ Built for automotive intelligence workflows

✔ Ideal for analysts, dealerships & aggregators

---

### 💸 Pricing

This scraper runs on a **pay-per-result pricing model**.

You only pay for successfully extracted records.

💳 **Price: $0.98 / 1,000 results**

---

### ❓ FAQ

#### Can I scrape multiple Otomoto URLs at once?

Yes. Bulk URL mode is fully supported.

#### Does the scraper handle pagination automatically?

Yes. Pagination is handled automatically.

#### Can I scrape brand pages?

Yes.

Examples:

• BMW

• Audi

• Mercedes-Benz

• Volkswagen

• Toyota

and any other Otomoto category page.

#### Can I export data?

Yes.

Supported formats:

• JSON

• CSV

• Excel

• XML

• HTML

#### Is coding required?

No.

This is a fully no-code Apify Actor.

---

### ⚠️ Disclaimer

This tool is an independent automation and data extraction solution.

It is not affiliated with, endorsed by, or sponsored by Otomoto.

---

### 🔗 Related Actors

Explore the PrimeScrape ecosystem for additional scraping solutions:

🚀 Vehicle marketplaces

🚀 Real estate intelligence

🚀 E-commerce data extraction

🚀 Job scraping

🚀 Company intelligence

🚀 Lead generation

🚀 AI datasets

More actors coming soon.

---

### 🌍 PrimeScrape Ecosystem

Built for large-scale:

📊 Data extraction

🚀 Automation

🏢 Business intelligence

📈 Market research

🤖 AI datasets

⚙️ Scalable cloud scraping

---

### 📬 Support

⭐⭐⭐⭐⭐ Leave a review if you enjoy this scraper.

📩 Need custom scraping solutions or enterprise features?

Contact PrimeScrape through Apify.

# Actor input Schema

## `urls` (type: `array`):

List of Otomoto search or category URLs to scrape. Pagination is handled automatically.

Examples:
• https://www.otomoto.pl/osobowe
• https://www.otomoto.pl/osobowe/alfa-romeo
• https://www.otomoto.pl/osobowe/volkswagen/golf
• https://www.otomoto.pl/osobowe?page=5  (starts from page 5)

⚠️ URLs must be from otomoto.pl. You can start from any page — pagination continues automatically from there.
## `maxitems` (type: `integer`):

Maximum number of car listings to collect per URL. 

## Actor input object example

```json
{
  "urls": [
    "https://www.otomoto.pl/osobowe/bmw",
    "https://www.otomoto.pl/osobowe/volkswagen/golf"
  ],
  "maxitems": 60
}
````

# Actor output Schema

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

No description

# 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 = {
    "urls": [
        "https://www.otomoto.pl/osobowe/bmw",
        "https://www.otomoto.pl/osobowe/volkswagen/golf"
    ],
    "maxitems": 60
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/otomoto-pl-scraper-budzetowy-low-cost").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 = {
    "urls": [
        "https://www.otomoto.pl/osobowe/bmw",
        "https://www.otomoto.pl/osobowe/volkswagen/golf",
    ],
    "maxitems": 60,
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/otomoto-pl-scraper-budzetowy-low-cost").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.otomoto.pl/osobowe/bmw",
    "https://www.otomoto.pl/osobowe/volkswagen/golf"
  ],
  "maxitems": 60
}' |
apify call delectable_incubator/otomoto-pl-scraper-budzetowy-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=delectable_incubator/otomoto-pl-scraper-budzetowy-low-cost",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Otomoto.pl Scraper - Budżetowy Low-cost💲🔥🚗🇵🇱",
        "description": "🚗🇵🇱 Extract vehicle listings from Otomoto search pages with ease. Collect car titles, prices, years, mileage, fuel types, gearboxes, locations, seller details, vehicle specifications, and listing URLs. Ideal for automotive market research, dealership monitoring and vehicle datasets 📊🔎",
        "version": "0.0",
        "x-build-id": "p3ClaLR8Kczxr4gLz"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/delectable_incubator~otomoto-pl-scraper-budzetowy-low-cost/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-delectable_incubator-otomoto-pl-scraper-budzetowy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/delectable_incubator~otomoto-pl-scraper-budzetowy-low-cost/runs": {
            "post": {
                "operationId": "runs-sync-delectable_incubator-otomoto-pl-scraper-budzetowy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/delectable_incubator~otomoto-pl-scraper-budzetowy-low-cost/run-sync": {
            "post": {
                "operationId": "run-sync-delectable_incubator-otomoto-pl-scraper-budzetowy-low-cost",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "urls",
                    "maxitems"
                ],
                "properties": {
                    "urls": {
                        "title": "Otomoto Search URLs 🚗",
                        "type": "array",
                        "description": "List of Otomoto search or category URLs to scrape. Pagination is handled automatically.\n\nExamples:\n• https://www.otomoto.pl/osobowe\n• https://www.otomoto.pl/osobowe/alfa-romeo\n• https://www.otomoto.pl/osobowe/volkswagen/golf\n• https://www.otomoto.pl/osobowe?page=5  (starts from page 5)\n\n⚠️ URLs must be from otomoto.pl. You can start from any page — pagination continues automatically from there.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "maxitems": {
                        "title": "Maximum Listings per URL 📄",
                        "type": "integer",
                        "description": "Maximum number of car listings to collect per URL. ",
                        "default": 60
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
