# Drom.ru Auto Search Scraper (`stealth_mode/drom-auto-search-scraper`) Actor

Efficiently scrape vehicle listings from Drom.ru, Russia's largest automotive marketplace. Extract comprehensive car data including prices, specifications, dealer information, and images from search results. Ideal for price comparison, market analysis, and automotive data intelligence.

- **URL**: https://apify.com/stealth\_mode/drom-auto-search-scraper.md
- **Developed by:** [Stealth mode](https://apify.com/stealth_mode) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 24 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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.
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 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

## Drom.ru Product Search Scraper: Extract Russian Automotive Marketplace Data

### Understanding Drom.ru and Its Market Significance

Drom.ru stands as Russia's premier online automotive marketplace, connecting millions of buyers and sellers across vehicles, parts, and automotive services. The platform dominates the Russian-speaking automotive market, hosting extensive listings from private sellers and dealerships across Russia, Kazakhstan, and neighboring regions.

The platform captures unique regional market dynamics—pricing patterns, vehicle availability, dealer networks, and consumer preferences specific to Russian and CIS automotive markets. For automotive businesses, market researchers, or price comparison platforms, this data provides essential insights into one of the world's largest emerging automotive markets.

Manual data collection across multiple searches, regions, and vehicle categories would require extensive time navigating through pages and recording information. The Drom.ru Product Search Scraper automates this process, converting search results into structured datasets ready for analysis.

### What This Scraper Extracts and Who Should Use It

The Drom.ru Product Search Scraper processes search result pages, capturing multiple vehicle listings efficiently. This approach suits broad data collection across different searches, locations, or vehicle types.

**Key extracted data includes:** vehicle identifiers, pricing (current and minimal), URLs, titles, descriptions, image galleries, technical specifications (frame type, car state), listing metadata (date, location), seller information (dealer name, deal type), and status indicators (sold, marks).

**Target users:**

**Automotive marketplace platforms** aggregate multi-regional vehicle data for comparison services. **Market researchers** analyze pricing trends, inventory patterns, and regional demand across Russian automotive markets. **Dealerships** monitor competitor pricing, inventory strategies, and market positioning. **Price intelligence services** track vehicle valuations and market dynamics. **Import/export businesses** identify cross-border arbitrage opportunities and regional price differentials.

### Input Configuration: Search URLs and Parameters

The scraper processes Drom.ru search result pages displaying multiple vehicle listings with applied filters.

**Example Input Configuration:**

```json
{
  "proxy": {
    "useApifyProxy": false
  },
  "max_items_per_url": 20,
  "ignore_url_failures": true,
  "urls": [
    "https://auto.drom.ru/moscow/all/page2/?distance=200&order=price"
  ]
}
```

#### Example Screenshot:

![](https://i.ibb.co/MyVxh8Xh/Screenshot-from-2025-12-23-00-00-37.png)

**Parameter Breakdown:**

**proxy configuration:** Set `useApifyProxy: false` for direct access, or enable residential proxies if encountering blocking. Direct access often works for Drom.ru, but proxies provide additional reliability.

**max\_items\_per\_url:** Limits extraction to 20 listings per search page. Drom.ru typically displays 20-30 vehicles per page. Adjust higher (50-100) for comprehensive page extraction or lower for testing.

**ignore\_url\_failures:** When `true`, continues processing remaining URLs if some fail. Essential for batch processing multiple search pages—prevents single failures from stopping entire runs.

**urls array:** Contains search result page URLs to scrape. Build URLs by performing searches on Drom.ru with desired filters (location, price range, vehicle type, condition), then copy the resulting URLs. Include multiple URLs to collect different vehicle categories or regions in one run.

**URL Structure Example:** `https://auto.drom.ru/[city]/[category]/page[N]/?[filters]`

- `city`: Moscow, novosibirsk, vladivostok, etc.
- `category`: all, cars, trucks, moto, etc.
- `page[N]`: Pagination number
- `filters`: distance, order (sorting), price range, year, etc.

**Pro tip:** Test search filters manually on Drom.ru first to verify they return relevant results. For large datasets spanning multiple pages, systematically increment the page parameter in URLs.

### Complete Output Structure and Field Definitions

**Bull ID:** Unique listing identifier assigned by Drom.ru. **Purpose:** Primary key for databases, tracking specific listings over time, avoiding duplicates when merging datasets.

**Price:** Current asking price in rubles. **Purpose:** Primary pricing analysis, market value assessment, price trend tracking across time and regions.

**Minimal Price:** Lowest acceptable price or historical minimum. **Purpose:** Negotiation insights, price flexibility indicators, identifying motivated sellers.

**URL:** Direct link to full vehicle listing page. **Purpose:** Accessing complete details, verification of scraped data, sharing opportunities with buyers.

**Title:** Vehicle listing headline including make, model, year. **Purpose:** Quick identification, search indexing, categorization.

**Description:** Seller's text description including condition details, features, history. **Purpose:** Natural language processing for feature extraction, sentiment analysis, fraud detection patterns.

**Images:** Array of image URLs showing vehicle exterior, interior, documents. **Purpose:** Visual cataloging, condition assessment, image recognition for damage detection, listing enhancement.

**Frame Type:** Vehicle body style (sedan, SUV, hatchback, coupe). **Purpose:** Category filtering, body style demand analysis, inventory composition tracking.

**Show Placeholder:** Boolean indicating placeholder status. **Purpose:** Identifying draft or incomplete listings, data quality filtering.

**Deal Type:** Transaction type (sale, exchange, lease). **Purpose:** Understanding market transaction methods, filtering by purchase type.

**Sold:** Boolean indicating if vehicle was sold. **Purpose:** Calculating time-to-sale, identifying active vs. historical listings, turnover analysis.

**Marks:** Special indicators or featured listing flags. **Purpose:** Premium listing identification, seller investment analysis, prioritization signals.

**Info:** Additional metadata or technical specifications array. **Purpose:** Detailed filtering, specification matching, feature prevalence analysis.

**Dealer Name:** Seller organization name if commercial entity. **Purpose:** Dealer inventory tracking, competitive monitoring, distinguishing professional vs. private sales.

**Has Dealer Name:** Boolean indicating commercial seller. **Purpose:** Segmenting dealer vs. private seller markets, analyzing pricing differences between seller types.

**Subtitle:** Additional listing description or highlights. **Purpose:** Secondary feature emphasis, promotional text analysis.

**Attributes:** Structured vehicle specifications (engine, transmission, mileage, color). **Purpose:** Technical filtering, specification-based matching, feature demand analysis.

**Date:** Listing publication or update timestamp. **Purpose:** Freshness tracking, identifying stale inventory, posting velocity analysis.

**Location:** Geographic location (city, region). **Purpose:** Regional market segmentation, geographic pricing analysis, local inventory assessment.

**Car State:** Vehicle condition (new, used, damaged, requires repair). **Purpose:** Condition-based filtering, pricing tier analysis, market composition by condition.

**Sample Output:**

```json
[
  {
  "bull_id": 714642613,
  "price": 25000,
  "minimal_price": 0,
  "url": "https://auto.drom.ru/moscow/lada/2109/714642613.html",
  "title": "Лада 2109, 1990",
  "description": null,
  "images": {
    "total": 4,
    "items": [
      {
        "src": "https://s6.auto.drom.ru/photo/v2/HewzyLJXy0llHHt3SuykU4i22E0A4QgEUp_IDEy-UDrcOhLc9hH4keQs-4JoYWmdQdZxrOgaybMogCXT/gen272wb.jpg",
        "src2x": "https://s6.auto.drom.ru/photo/v2/HewzyLJXy0llHHt3SuykU4i22E0A4QgEUp_IDEy-UDrcOhLc9hH4keQs-4JoYWmdQdZxrOgaybMogCXT/gen544wb.jpg",
        "width": 273,
        "height": 205,
        "alt": "Хэтчбек Лада 2109 1990 года, 25000 рублей, Москва"
      },
      {
        "src": "https://s6.auto.drom.ru/photo/v2/WKM3IkSXkxctzRQKWEg5iyPz4G4Kvw0vjlNgJ1TrWMsVHy6jXM1YtfJh1q4xNvdH5PZ6e8CMTbAzZFuD/gen272wb.jpg",
        "src2x": "https://s6.auto.drom.ru/photo/v2/WKM3IkSXkxctzRQKWEg5iyPz4G4Kvw0vjlNgJ1TrWMsVHy6jXM1YtfJh1q4xNvdH5PZ6e8CMTbAzZFuD/gen544wb.jpg",
        "width": 273,
        "height": 205,
        "alt": "Хэтчбек Лада 2109 1990 года, 25000 рублей, Москва"
      },
      {
        "src": "https://s6.auto.drom.ru/photo/v2/HtDfQ0AnevmXaQKpymIbmPa9tqcVyA03rhx62ofoQTEwot3mDvfV2vduZ4_fsq0zVnOs-NvQ1fZxyrOc/gen272wb.jpg",
        "src2x": "https://s6.auto.drom.ru/photo/v2/HtDfQ0AnevmXaQKpymIbmPa9tqcVyA03rhx62ofoQTEwot3mDvfV2vduZ4_fsq0zVnOs-NvQ1fZxyrOc/gen544wb.jpg",
        "width": 272,
        "height": 363,
        "alt": "Хэтчбек Лада 2109 1990 года, 25000 рублей, Москва"
      },
      {
        "src": "https://s6.auto.drom.ru/photo/v2/sm2yMBmXHGVlwB6H5hoOicFVETMYWRbO_sLtpm4xWYD19Q01S4RTxal3aPMC-xr6-Fj5yz1XM5zq5UJj/gen272wb.jpg",
        "src2x": "https://s6.auto.drom.ru/photo/v2/sm2yMBmXHGVlwB6H5hoOicFVETMYWRbO_sLtpm4xWYD19Q01S4RTxal3aPMC-xr6-Fj5yz1XM5zq5UJj/gen544wb.jpg",
        "width": 272,
        "height": 363,
        "alt": "Хэтчбек Лада 2109 1990 года, 25000 рублей, Москва"
      }
    ]
  },
  "frame_type": 5,
  "show_placeholder": false,
  "deal_type": 6,
  "sold": false,
  "marks": [],
  "info": null,
  "dealer_name": null,
  "has_dealer_name": false,
  "subtitle": "1.3 MT",
  "attributes": [
    {
      "type": "plain",
      "payload": "1.3 л (64 л.с.)"
    },
    {
      "type": "plain",
      "payload": "бензин"
    },
    {
      "type": "plain",
      "payload": "механика"
    },
    {
      "type": "plain",
      "payload": "передний"
    },
    {
      "type": "plain",
      "payload": "300 000 км"
    }
  ],
  "date": "5 декабря",
  "location": "Москва",
  "car_state": [],
  "from_url": "https://auto.drom.ru/moscow/all/page2/?distance=200&order=price"
}
]
```

### Step-by-Step Usage Guide

**1. Define Target Data:** Identify vehicle types, regions, and price ranges needed. Perform test searches on Drom.ru to verify filters return relevant results.

**2. Build Search URLs:** Copy URLs from test searches. For comprehensive data, create multiple URLs with different locations or vehicle categories. For deep extraction, include pagination: `...page1/`, `...page2/`, etc.

**3. Configure Input:** Set up JSON with collected URLs. Adjust `max_items_per_url` based on needs (20 for standard pages, higher for complete extraction). Enable `ignore_url_failures` for robustness.

**4. Execute Scraping:** Launch through Apify console. Monitor real-time progress. Processing 5-10 search pages with 20 items each typically completes in 2-4 minutes.

**5. Review and Export:** Preview results in dataset tab. Verify data quality—check that prices, titles, and locations appear correct. Export in JSON for databases, CSV for spreadsheet analysis.

**6. Handle Pagination:** For large datasets, either include multiple page URLs in one run or set `max_items_per_url` higher than page display limits to enable automatic pagination.

**Error Handling:** If URLs consistently fail, verify they're search result pages, not detail pages. Check filter parameters are valid. Review activity log for detailed error information.

### Strategic Applications for Automotive Intelligence

**Price Benchmarking:** Track pricing patterns across regions, vehicle types, and seller categories. Identify underpriced opportunities or regional price premiums. Compare dealer vs. private seller pricing strategies.

**Inventory Analysis:** Monitor dealer inventory composition, turnover rates (via sold flags), and listing freshness. Track which vehicles move quickly vs. stale listings.

**Market Entry Research:** Assess competitive landscapes before entering new regions. Analyze dealer density, vehicle availability, typical pricing, and popular vehicle segments.

**Geographic Arbitrage:** Identify price differentials across regions. Find vehicles selling below market in one region for potential resale in higher-price markets.

**Seller Intelligence:** Track dealer strategies—which dealers dominate specific segments, pricing aggressiveness, inventory scale, listing quality (images, descriptions).

**Demand Forecasting:** Analyze listing volumes, time-to-sale patterns, and price movements to forecast demand trends for specific makes, models, or vehicle types.

### Maximizing Data Value and Best Practices

**Schedule Regular Scraping:** Russian automotive market changes rapidly. Weekly scraping captures new listings and tracks market dynamics. Store historical data for trend analysis.

**Segment Searches:** Create targeted URLs by vehicle type, region, or price range rather than broad searches. Produces cleaner datasets easier to analyze.

**Enrich Data:** Combine Drom.ru data with VIN databases, insurance databases, or import/export records. Cross-reference with exchange rates for international market analysis.

**Quality Assurance:** Implement checks for missing critical fields (price, title, location). Flag unusual patterns—extreme prices, missing images, incomplete descriptions.

**Respect Platform:** Avoid excessive concurrent requests. Space out large scraping runs. Sustainable practices ensure continued access.

**Data Organization:** Store with timestamps and source URLs. Track when listings first appeared and when they sold. Temporal analysis reveals market velocity and competitiveness.

### Conclusion

The Drom.ru Product Search Scraper transforms Russia's largest automotive marketplace into actionable intelligence. Whether building price comparison platforms, conducting market research, or analyzing competitive landscapes in Russian automotive markets, this tool delivers comprehensive data. Start extracting Russian automotive market insights today.

# Actor input Schema

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

Add the URLs of the Cars list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://auto.drom.ru/moscow/all/page2/?distance=200&order=price"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}
```

# 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://auto.drom.ru/moscow/all/page2/?distance=200&order=price"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("stealth_mode/drom-auto-search-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 = {
    "urls": ["https://auto.drom.ru/moscow/all/page2/?distance=200&order=price"],
    "ignore_url_failures": True,
    "max_items_per_url": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("stealth_mode/drom-auto-search-scraper").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://auto.drom.ru/moscow/all/page2/?distance=200&order=price"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 20
}' |
apify call stealth_mode/drom-auto-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=stealth_mode/drom-auto-search-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

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