# DubiCars scraper: دوبي كارز سيارات الإمارات (`getascraper/dubicars-scraper`) Actor

Scrape public DubiCars UAE listings and .html vehicle pages into normalized JSON with prices, specs, seller signals, images, and safe change events. Use Apify Datasets, REST API, MCP, or n8n. Skip browser automation and contact harvesting. استخراج بيانات السيارات دوبي كارز. Usage-based pricing.

- **URL**: https://apify.com/getascraper/dubicars-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 12 total users, 8 monthly users, 97.2% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.30 / 1,000 vehicle records

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/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

## DubiCars scraper: دوبي كارز سيارات الإمارات

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;margin-bottom:0">
<tr>
<td colspan="3" style="padding:14px 18px;background:#FFF7ED;border:none;border-top:3px solid #C2410C;border-left:1px solid #FED7AA;border-right:1px solid #FED7AA;color:#1C1917;border-radius:10px 10px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">UAE's DubiCars listings, now part of a regional used-car data suite.</span> <span style="font-size:15px;color:#57534E">DubiCars vehicle records sit alongside AutoTrader South Africa and YallaMotor coverage, for teams tracking used-car inventory across South Africa, the UAE, and the Gulf.</span>
</td>
</tr>
<tr>
<td colspan="3" style="padding:10px 14px;background:#C2410C;border:none;border-left:1px solid #FED7AA;border-right:1px solid #FED7AA;color:#FFFFFF">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">MIDDLE EAST AND AFRICA USED-CAR MARKETPLACES</span>
<span style="color:#FFFFFF;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;South Africa, UAE, and wider Middle East used-car listings in one product line</span>
</td>
</tr>
<tr>
<td style="padding:10px 12px;border:none;border-left:1px solid #FED7AA;border-bottom:1px solid #FED7AA;vertical-align:top;width:33.333%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-cb6cBSNcP7QgaNfzZ-QTKTxVKMSF-images_%2842%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/autotrader-za-cars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">AutoTrader SA</a></span><br>
<span style="color:#57534E;font-size:11px">South Africa's largest car marketplace</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #FED7AA;border-bottom:1px solid #FED7AA;vertical-align:top;width:33.333%;background:#FFF7ED;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-fNhrHrILPlfsWbJdt-Wtb1FIPTuf-images_%2838%29.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/dubicars-scraper" style="color:#C2410C;text-decoration:none;font-weight:700;font-size:13px">DubiCars UAE</a></span><br>
<span style="color:#C2410C;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td style="padding:10px 12px;border:none;border-left:1px solid #FED7AA;border-right:1px solid #FED7AA;border-bottom:1px solid #FED7AA;vertical-align:top;width:33.333%;background:#FFFFFF;color:#1C1917">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-KyYnxEXfNgAiGsE9u-TLgd6MjZOe-ym-default-logo.png" width="20" height="20" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/yallamotor-cars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">YallaMotor Gulf</a></span><br>
<span style="color:#57534E;font-size:11px">UAE and Gulf used-car data</span>
</td>
</tr>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;min-width:100%;table-layout:fixed;margin:0;margin-top:0;margin-bottom:0">
<tbody>
<tr style="width:100%">
<td style="width:100%;padding:24px 28px;background:#FFF7ED;border:1px solid #FED7AA;border-top:none;color:#1C1917">
<span style="font-size:23px;font-weight:800;line-height:1.3;color:#431407">Turn public DubiCars pages into a clean UAE vehicle data feed.</span><br>
<span style="font-size:15px;line-height:1.6;color:#57534E">Collect focused listing snapshots or monitor selected vehicles for new, updated, and price-changed records.</span>
</td>
</tr>
</tbody>
</table>
<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0;min-width:100%;table-layout:fixed;margin:0;margin-top:0">
<tbody>
<tr style="width:100%">
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #FED7AA;border-right:none;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 0 10px">
<span style="font-size:15px;font-weight:800;color:#C2410C">🔎 Public page coverage</span><br>
<span style="font-size:12px;color:#57534E">Use category, brand, model, dealer, or direct vehicle pages.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #FED7AA;border-right:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#C2410C">💰 Price context</span><br>
<span style="font-size:12px;color:#57534E">Keep current, original, export, currency, and financing values together.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #FED7AA;border-right:none;vertical-align:top;border-top:none;color:#1C1917">
<span style="font-size:15px;font-weight:800;color:#C2410C">🚘 Vehicle detail</span><br>
<span style="font-size:12px;color:#57534E">Capture public specifications, regional data, images, and seller signals.</span>
</td>
<td style="width:25%;padding:14px 12px;background:#FFFFFF;border:1px solid #FED7AA;vertical-align:top;border-top:none;color:#1C1917;border-radius:0 0 10px 0">
<span style="font-size:15px;font-weight:800;color:#C2410C">🔄 Scoped monitoring</span><br>
<span style="font-size:12px;color:#57534E">Compare repeat runs without treating a partial scan as a removal.</span>
</td>
</tr>
</tbody>
</table>

**Get normalized UAE vehicle listings from public DubiCars pages.** This DubiCars scraper is built for teams working with دوبي كارز inventory: it supports category, brand, model, dealer, and direct vehicle URLs, then returns prices, specs, seller signals, images, and bounded change events. Send results to Apify Datasets, the REST API, MCP, or n8n. It excludes phone, email, WhatsApp, and private contact data.

### 👥 Who should use this Actor?

- **UAE dealers and sourcing teams** who need a repeatable inventory view across selected DubiCars pages.
- **Automotive data aggregators** who need normalized prices, specifications, seller signals, and source timestamps.
- **Market analysts** who want a bounded price and availability snapshot without building a custom parser.

### 🎯 What does the Actor do?

Provide one or more public DubiCars URLs. The Actor identifies category pages and `.html` vehicle pages automatically. It reads source-published page content and returns consistent vehicle records.

Discovery pages return compact inventory records by default. Direct vehicle pages return full public detail when `detailLevel` is `auto` or `full`. Discovery records can also receive bounded detail enrichment.

Use `changesOnly` for recurring checks. A stable `monitorScope` keeps state for the selected sources and filters. The Actor emits `new`, `updated`, and `price_changed` records. It does not emit `removed` records because a bounded page scan cannot prove that a vehicle disappeared from the market.

Blocked pages are reported as failures. They never become a successful empty inventory. Monitoring state advances only after every requested source and enrichment page completes successfully.

### 🧭 How it works

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-radius:10px 0 0 10px;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Add public DubiCars URLs</span><br>
<span style="font-size:12px;color:#57534E">Choose a category, dealer, brand, model, or <span style="font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:0.9em;background:#FFFFFF;color:#1C1917;border:1px solid #D6D3D1;padding:1px 6px;border-radius:4px;white-space:nowrap">.html</span> listing page.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-left:none;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Filter and enrich safely</span><br>
<span style="font-size:12px;color:#57534E">Set item, page, detail, image, pacing, and concurrency caps.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FFF7ED;border:1px solid #FED7AA;border-left:none;border-radius:0 10px 10px 0;vertical-align:top;color:#1C1917">
<span style="font-size:12px;font-weight:800;color:#C2410C;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export or monitor results</span><br>
<span style="font-size:12px;color:#57534E">Use the four dataset views for sourcing, pricing, details, and changes.</span>
</td>
</tr>
</table>

### ⚙️ Input

The Console form is organized into six accordion sections. The schema has no required form fields, but the Actor requires at least one valid public DubiCars URL at runtime.

#### Sources

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>sourceUrls</code> | array of URLs | No | Add 1 to 20 public category, brand, model, dealer, or `.html` vehicle URLs. |
| <code>sourceMode</code> | enum | No | Use `auto`, `discovery`, or `details`. Auto classification is the default. |

Only HTTPS DubiCars URLs are accepted. The only query parameter allowed is bounded `page=N` pagination. Search, API, AJAX, authentication, off-domain, and malformed URLs are rejected.

#### Vehicle and search filters

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>keyword</code> | text | No | Match title, description, make, model, or trim after extraction. |
| <code>make</code>, <code>model</code> | text | No | Filter source-published vehicle identity values. |
| <code>condition</code>, <code>sellerType</code> | text | No | Filter condition or seller type. Custom source values are allowed. |
| <code>bodyType</code>, <code>fuelType</code> | text | No | Filter body and fuel values. |
| <code>emirate</code>, <code>regionalSpecs</code> | text | No | Filter public location and regional specification values. |
| <code>exportStatus</code> | text | No | Filter source-published export availability. |
| <code>minPrice</code>, <code>maxPrice</code> | number | No | Filter the normalized current price. |
| <code>minYear</code>, <code>maxYear</code> | integer | No | Filter model year. |
| <code>maxMileageKm</code> | integer | No | Exclude vehicles above the normalized kilometer limit. |

These are post-extraction filters. They do not recreate DubiCars search URL grammar.

#### Data source and reliability

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>sourceFailurePolicy</code> | enum | No | Continue and report source failures, or fail the run. |
| <code>runMode</code> | enum | No | Use `snapshot` for current records or `changesOnly` for monitored changes. |
| <code>monitorScope</code> | text | Only for changesOnly | Stable scope for recurring monitoring state. |

#### Enrichment

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>detailLevel</code> | enum | No | Choose `auto`, `summary`, or `full`. |
| <code>includeImages</code> | boolean | No | Keep public image URLs when available. |
| <code>includeDescription</code> | boolean | No | Keep a cleaned public listing description when available. |
| <code>includeSellerProfile</code> | boolean | No | Keep public seller identity, profile, and marketplace signals. |

#### Output and limits

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>maxItems</code> | integer | No | Total record cap. The default is 10. |
| <code>maxPagesPerSource</code> | integer | No | Discovery page cap per source. The default is 1. |
| <code>maxDetailPages</code> | integer | No | Full-detail enrichment cap. The default is 10. |
| <code>maxImagesPerListing</code> | integer | No | Image URL cap per listing. The default is 8. |
| <code>emitUnchanged</code> | boolean | No | In `changesOnly`, also emit records with no detected changes. |

#### Advanced

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| <code>maxConcurrency</code> | integer | No | Concurrent public source requests. The default is 1. |
| <code>requestDelayMs</code> | integer | No | Delay before each public request and retry. The default is 1000 ms. |
| <code>proxyConfiguration</code> | object | No | Apify Proxy configuration. Defaults to UAE residential IPs. |

All finite limits are bounded by the input schema. Standby mode is disabled, so this Actor runs as a standard on-demand batch job.

### 📦 Data table

Missing values are omitted. The Actor never inserts `Unknown`, `N/A`, fabricated specifications, or fallback seller names.

| Field | Type | Description |
| --- | --- | --- |
| <code>source</code>, <code>sourceType</code> | string | Source name and `discovery` or `details` classification. |
| <code>listingId</code>, <code>identityType</code> | string | Stable source listing identity and identity method. |
| <code>canonicalUrl</code>, <code>sourceUrl</code> | string | Clean vehicle URL and the page that produced the record. |
| <code>title</code>, <code>description</code> | string | Public listing title and cleaned description. |
| <code>condition</code>, <code>listingStatus</code> | string | Source-published condition and listing status. |
| <code>make</code>, <code>model</code>, <code>trim</code>, <code>year</code> | string, integer | Vehicle identity and model year. |
| <code>bodyType</code>, <code>regionalSpecs</code>, <code>fuelType</code> | string | Body, regional, and fuel values. |
| <code>transmission</code>, <code>drivetrain</code> | string | Gearbox and drive configuration. |
| <code>engineCapacityLiters</code>, <code>horsepower</code>, <code>cylinders</code> | number, integer | Available technical specifications. |
| <code>mileageKm</code>, <code>mileageText</code> | integer, string | Normalized mileage and source text. |
| <code>seats</code>, <code>doors</code>, <code>wheelSize</code> | integer, string | Available size and capacity values. |
| <code>steeringSide</code>, <code>exteriorColor</code>, <code>interiorColor</code> | string | Public vehicle appearance and steering values. |
| <code>city</code>, <code>emirate</code>, <code>locationText</code> | string | Public location values. |
| <code>priceAmount</code>, <code>priceOriginalAmount</code>, <code>priceExportAmount</code> | number | Current, original, and export price values. |
| <code>priceText</code>, <code>currency</code> | string | Source price display and normalized currency. |
| <code>financingAvailable</code>, <code>monthlyPaymentAmount</code> | boolean, number | Public financing signals and monthly payment when shown. |
| <code>sellerId</code>, <code>sellerName</code>, <code>sellerType</code> | string | Public seller identity values. |
| <code>sellerUrl</code>, <code>businessSegment</code> | string | Public profile URL and source business segment. |
| <code>isVerifiedSeller</code>, <code>isHighlyResponsive</code>, <code>isExclusive</code> | boolean | Public seller or listing signals. |
| <code>isCertifiedPreOwned</code>, <code>isWarranty</code>, <code>isInspected</code> | boolean | Public certification, warranty, and inspection signals. |
| <code>warrantyText</code>, <code>serviceHistory</code> | string | Public warranty and service history values. |
| <code>imageUrl</code>, <code>imageUrls</code>, <code>imageCount</code> | string, array, integer | Bounded public image gallery values. |
| <code>hasVideo</code>, <code>has360</code>, <code>badges</code> | boolean, array | Public media and badge signals. |
| <code>sourcePublishedAt</code>, <code>sourceUpdatedAt</code>, <code>observedAt</code> | string | Source timestamps and observation time. |
| <code>detailLevel</code>, <code>sourceComplete</code> | enum, boolean | Extraction depth and scan completeness. |
| <code>changeType</code>, <code>changedFields</code>, <code>previousPriceAmount</code> | enum, array, number | Optional Changes Only event details. |
| <code>firstSeenAt</code>, <code>lastSeenAt</code>, <code>monitorScope</code> | string | Optional monitoring state metadata. |

#### Dataset views

- **Overview:** image, title, make, model, year, price, mileage, city, and vehicle URL.
- **Pricing:** current, original, and export prices, currency, export status, seller, and URL.
- **Vehicle details:** technical specifications, regional data, mileage, and URL.
- **Seller and changes:** seller signals, badges, timestamps, and Changes Only fields.

#### Example output

```json
{
  "source": "dubicars",
  "sourceType": "details",
  "listingId": "991084",
  "identityType": "listingId",
  "canonicalUrl": "https://www.dubicars.com/example-car-991084.html",
  "sourceUrl": "https://www.dubicars.com/dubai/new",
  "title": "2026 Porsche 911 Turbo S",
  "condition": "new",
  "make": "Porsche",
  "model": "911",
  "year": 2026,
  "regionalSpecs": "GCC",
  "mileageKm": 35,
  "priceAmount": 1299000,
  "priceOriginalAmount": 1499000,
  "priceExportAmount": 355900,
  "currency": "AED",
  "sellerName": "Blackline Motor Company",
  "sellerType": "Dealer",
  "isVerifiedSeller": true,
  "isWarranty": true,
  "imageCount": 20,
  "observedAt": "2026-08-18T00:00:00.000Z",
  "detailLevel": "full",
  "sourceComplete": true
}
```

### 🔌 Integrations

Use the dataset directly in Apify, export JSON or CSV for a warehouse, call the Actor through the Apify REST API, connect an AI agent with Apify MCP, or trigger scheduled runs from n8n. The normalized fields are designed for dealer inventory, pricing research, and marketplace data workflows.

### 💡 Tips

- Start with one category URL and the default limits before expanding to multiple sources.
- Use a direct `.html` URL with `detailLevel: "full"` when you need the richest public vehicle record.
- Keep `monitorScope` stable for the same recurring scope. Use `changesOnly` for new, updated, and price-changed records.
- Treat `sourceComplete` as the trust signal for downstream automation. Blocked or partial scans do not advance monitoring state.

### 💰 Pricing

This Actor uses usage-based pricing configured in the Store. Empty runs cost nothing. There is no subscription requirement.

### ⭐ Enjoying DubiCars scraper?

<table width="100%" style="display:table;width:100%;border-collapse:separate;border-spacing:0">
<tr>
<td style="padding:20px 24px 14px;background:#FFF7ED;border:1px solid #FED7AA;border-left:5px solid #C2410C;border-radius:10px 10px 0 0;color:#1C1917">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">A short review helps other automotive teams choose a focused data source.</span><br>
<span style="font-size:14px;color:#57534E">Tell us whether the listing fields and bounded monitoring fit your workflow.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#C2410C;border:1px solid #C2410C;border-left:5px solid #C2410C;border-top:none;border-radius:0 0 10px 10px;text-align:center;color:#FFFFFF">
<a href="https://apify.com/getascraper/dubicars-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### ❓ FAQ

#### Can I scrape a DubiCars category and a direct vehicle page?

Yes. Add public category, brand, model, dealer, or `.html` vehicle URLs. Auto mode classifies each source. Discovery and detail modes can enforce one source type.

#### هل يمكن استخراج بيانات سيارات DubiCars؟

Yes. The Actor extracts public listing content from selected DubiCars pages and returns normalized UAE vehicle records. It does not collect direct contact details.

#### Does changesOnly track vehicles that disappear?

No. It emits new, updated, and price-changed records. It does not emit removals because bounded page scans cannot safely prove absence.

#### What happens when DubiCars blocks a page?

The page is reported as a failed source. It never becomes a successful empty result, and an incomplete scan cannot advance monitoring state.

#### Does the Actor collect phone or WhatsApp details?

No. Public seller identity and marketplace signals may be included. Phone numbers, email addresses, WhatsApp details, and private contact information are excluded.

### ⚖️ Responsible use

This is an unofficial Actor and is not affiliated with DubiCars.

Use only public DubiCars pages that you are permitted to collect. Keep the configured limits and delays respectful. Do not use this Actor to bypass access controls or infer unavailable inventory.

### 🔗 Other actors

- [YallaMotor Cars Scraper: Private Beta](https://apify.com/getascraper/yallamotor-cars-scraper) ↗ - UAE and regional vehicle source validation.
- [Autohero Cars Scraper: All Europe Used Cars Catalog](https://apify.com/getascraper/autohero-cars-scraper) ↗ - European used-car catalog records.
- [Avito Auto Scraper: Парсер Авито Авто](https://apify.com/getascraper/avito-auto-scraper) ↗ - Public automotive marketplace listings.
- [Collector Car Auction Monitor: Sold Prices & Outcomes](https://apify.com/getascraper/collector-car-auction-outcome-monitor) ↗ - Auction outcomes and sold-price research.

# Changelog

This Actor's version history is a separate document: https://apify.com/getascraper/dubicars-scraper/changelog.md

# Actor input Schema

## `sourceMode` (type: `string`):

Automatically classify public category pages and .html vehicle pages, or enforce one source type.

## `sourceUrls` (type: `array`):

Public DubiCars URLs to scan. The Actor rejects search, API, AJAX, authentication, off-domain, and malformed URLs.

## `keyword` (type: `string`):

Optional post-extraction keyword match across the title, description, make, model, and trim.

## `make` (type: `string`):

Optional make filter, such as Toyota or Porsche.

## `model` (type: `string`):

Optional model filter. Custom model values remain allowed.

## `condition` (type: `string`):

Optional condition filter. Use any to disable it.

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

Optional seller type filter. Use any to disable it.

## `bodyType` (type: `string`):

Optional body type filter, such as SUV, sedan, coupe, or pickup.

## `fuelType` (type: `string`):

Optional fuel type filter. Custom source values remain allowed.

## `emirate` (type: `string`):

Optional emirate or region filter.

## `regionalSpecs` (type: `string`):

Optional regional specification filter, such as GCC, American, European, or Japanese.

## `exportStatus` (type: `string`):

Optional source-published export status filter. Use any to disable it.

## `minPrice` (type: `number`):

Optional lower price bound in the source currency. Zero disables the lower bound.

## `maxPrice` (type: `number`):

Optional upper price bound in the source currency. The finite default covers ordinary UAE listings.

## `minYear` (type: `integer`):

Optional lower model-year bound. Zero disables the lower bound.

## `maxYear` (type: `integer`):

Optional upper model-year bound.

## `maxMileageKm` (type: `integer`):

Optional upper mileage bound. The finite default covers ordinary used-car listings.

## `sourceFailurePolicy` (type: `string`):

Choose whether one blocked or failed source stops the run or is reported alongside successful sources.

## `runMode` (type: `string`):

Snapshot emits current records. Changes Only emits new, updated, and price-changed records when a monitor scope is supplied.

## `monitorScope` (type: `string`):

Stable scope for recurring changesOnly runs. Required only when Run Mode is Changes Only.

## `detailLevel` (type: `string`):

Auto uses full public extraction for direct .html URLs and summary cards for discovery pages.

## `includeImages` (type: `boolean`):

Include public vehicle image URLs when available.

## `includeDescription` (type: `boolean`):

Include the public vehicle description when available.

## `includeSellerProfile` (type: `boolean`):

Include public seller name, type, profile URL, and seller signals when available.

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

Maximum vehicle records emitted across all sources.

## `maxPagesPerSource` (type: `integer`):

Maximum public discovery pages to inspect for each category, brand, model, or dealer URL.

## `maxDetailPages` (type: `integer`):

Maximum public .html detail pages requested for full enrichment across a run.

## `maxImagesPerListing` (type: `integer`):

Maximum image URLs retained for each vehicle record.

## `emitUnchanged` (type: `boolean`):

In Changes Only mode, also emit records with no detected field changes.

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

Maximum number of public HTTP sources processed concurrently.

## `requestDelayMs` (type: `integer`):

Delay before each public HTTP request, including bounded retries.

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

Apify Proxy configuration. The default uses UAE residential IPs, which DubiCars accepts reliably.

## Actor input object example

```json
{
  "sourceMode": "auto",
  "sourceUrls": [
    {
      "url": "https://www.dubicars.com/dubai/new"
    }
  ],
  "keyword": "",
  "make": "",
  "model": "",
  "condition": "any",
  "sellerType": "any",
  "bodyType": "",
  "fuelType": "",
  "emirate": "",
  "regionalSpecs": "",
  "exportStatus": "any",
  "minPrice": 0,
  "maxPrice": 100000000,
  "minYear": 0,
  "maxYear": 2100,
  "maxMileageKm": 100000000,
  "sourceFailurePolicy": "continueAndReport",
  "runMode": "snapshot",
  "monitorScope": "",
  "detailLevel": "auto",
  "includeImages": true,
  "includeDescription": true,
  "includeSellerProfile": true,
  "maxItems": 10,
  "maxPagesPerSource": 1,
  "maxDetailPages": 10,
  "maxImagesPerListing": 8,
  "emitUnchanged": false,
  "maxConcurrency": 1,
  "requestDelayMs": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AE"
  }
}
```

# Actor output Schema

## `dataset` (type: `string`):

No description

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

No description

## `monitorState` (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 = {
    "sourceMode": "auto",
    "sourceUrls": [
        {
            "url": "https://www.dubicars.com/dubai/new"
        }
    ],
    "keyword": "",
    "make": "",
    "model": "",
    "condition": "any",
    "sellerType": "any",
    "bodyType": "",
    "fuelType": "",
    "emirate": "",
    "regionalSpecs": "",
    "exportStatus": "any",
    "minPrice": 0,
    "maxPrice": 100000000,
    "minYear": 0,
    "maxYear": 2100,
    "maxMileageKm": 100000000,
    "sourceFailurePolicy": "continueAndReport",
    "runMode": "snapshot",
    "monitorScope": "",
    "detailLevel": "auto",
    "includeImages": true,
    "includeDescription": true,
    "includeSellerProfile": true,
    "maxItems": 10,
    "maxPagesPerSource": 1,
    "maxDetailPages": 10,
    "maxImagesPerListing": 8,
    "emitUnchanged": false,
    "maxConcurrency": 1,
    "requestDelayMs": 1000,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "AE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/dubicars-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 = {
    "sourceMode": "auto",
    "sourceUrls": [{ "url": "https://www.dubicars.com/dubai/new" }],
    "keyword": "",
    "make": "",
    "model": "",
    "condition": "any",
    "sellerType": "any",
    "bodyType": "",
    "fuelType": "",
    "emirate": "",
    "regionalSpecs": "",
    "exportStatus": "any",
    "minPrice": 0,
    "maxPrice": 100000000,
    "minYear": 0,
    "maxYear": 2100,
    "maxMileageKm": 100000000,
    "sourceFailurePolicy": "continueAndReport",
    "runMode": "snapshot",
    "monitorScope": "",
    "detailLevel": "auto",
    "includeImages": True,
    "includeDescription": True,
    "includeSellerProfile": True,
    "maxItems": 10,
    "maxPagesPerSource": 1,
    "maxDetailPages": 10,
    "maxImagesPerListing": 8,
    "emitUnchanged": False,
    "maxConcurrency": 1,
    "requestDelayMs": 1000,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "AE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/dubicars-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 '{
  "sourceMode": "auto",
  "sourceUrls": [
    {
      "url": "https://www.dubicars.com/dubai/new"
    }
  ],
  "keyword": "",
  "make": "",
  "model": "",
  "condition": "any",
  "sellerType": "any",
  "bodyType": "",
  "fuelType": "",
  "emirate": "",
  "regionalSpecs": "",
  "exportStatus": "any",
  "minPrice": 0,
  "maxPrice": 100000000,
  "minYear": 0,
  "maxYear": 2100,
  "maxMileageKm": 100000000,
  "sourceFailurePolicy": "continueAndReport",
  "runMode": "snapshot",
  "monitorScope": "",
  "detailLevel": "auto",
  "includeImages": true,
  "includeDescription": true,
  "includeSellerProfile": true,
  "maxItems": 10,
  "maxPagesPerSource": 1,
  "maxDetailPages": 10,
  "maxImagesPerListing": 8,
  "emitUnchanged": false,
  "maxConcurrency": 1,
  "requestDelayMs": 1000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "AE"
  }
}' |
apify call getascraper/dubicars-scraper --silent --output-dataset

```

## MCP server setup

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