# DubiCars دوبي كارز Scraper – UAE Used & New Car Listings (`boring_internet_explorer/dubicars-scraper`) Actor

Extract used and new car listings from DubiCars.com in the UAE (Dubai, Abu Dhabi, Sharjah, Ajman and more): prices in AED, make, model, year, mileage, specs, seller and photos. Filter by make, model, body type, emirate, price, year or keyword, in English or Arabic.

- **URL**: https://apify.com/boring_internet_explorer/dubicars-scraper.md
- **Developed by:** [Boring Internet Explorer](https://apify.com/boring_internet_explorer) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.30 / 1,000 results

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/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 — UAE Used & New Cars

[DubiCars](https://www.dubicars.com) is one of the largest car marketplaces in the United Arab Emirates, with 25,000+ used and new cars from dealers and private sellers in Dubai, Abu Dhabi, Sharjah, Ajman, Ras al-Khaimah, Fujairah, Umm al-Quwain and Al Ain. This scraper turns any DubiCars category or search page into clean structured data (prices in AED), in English or Arabic, so you can track the UAE car market without manual copy-paste.

### Why use this scraper?

- 📊 **Market pricing**: benchmark asking prices by make, model, year and emirate
- 🏷️ **Dealer price monitoring**: watch competitor stock, price drops and new arrivals
- 🔎 **Lead generation**: collect dealer and seller names with their DubiCars profile links
- 📈 **Depreciation research**: compare price against year, mileage and trim
- 🚢 **Export sourcing**: spot cars with export prices for GCC and Africa trade
- 🤖 **Data products**: feed valuation models, alerts and dashboards with UAE and GCC car data

### Supported URL types

| Type                     | Example                                                                    |
| ------------------------ | -------------------------------------------------------------------------- |
| All used cars in the UAE | https://www.dubicars.com/uae/used                                          |
| New cars                 | https://www.dubicars.com/uae/new                                           |
| Make                     | https://www.dubicars.com/uae/used/toyota                                   |
| Make + model             | https://www.dubicars.com/uae/used/toyota/camry                             |
| Make + model + year      | https://www.dubicars.com/uae/used/toyota/camry/2020                        |
| Body type                | https://www.dubicars.com/uae/new/suv                                       |
| Emirate                  | https://www.dubicars.com/sharjah/used                                      |
| Emirate + make + model   | https://www.dubicars.com/dubai/used/toyota/camry                           |
| Search with filters      | https://www.dubicars.com/search?c=used\&pf=100000\&pt=120000\&yf=2022\&yt=2023 |
| Keyword search           | https://www.dubicars.com/search?c=used\&k=ferrari                           |
| Sorted search            | https://www.dubicars.com/search?c=used\&o=pa                                |
| Arabic                   | https://www.dubicars.com/ar/uae/used/toyota                                |

#### Query filters

Add these to any category or search URL:

| Filter      | Meaning                      | Example                                                          |
| ----------- | ---------------------------- | ---------------------------------------------------------------- |
| `pf` / `pt` | Price from / to (AED)        | https://www.dubicars.com/uae/used/toyota/camry?pf=50000\&pt=60000 |
| `yf` / `yt` | Year from / to               | https://www.dubicars.com/search?c=used\&yf=2022\&yt=2023           |
| `k`         | Keyword                      | https://www.dubicars.com/search?c=used\&k=ferrari                 |
| `o=pa`      | Sort: price, low to high     | https://www.dubicars.com/search?c=used\&o=pa                      |
| `o=pd`      | Sort: price, high to low     | https://www.dubicars.com/search?c=used\&o=pd                      |
| `o=ya`      | Sort: year, oldest first     | https://www.dubicars.com/search?c=used\&o=ya                      |
| `o=yd`      | Sort: year, newest first     | https://www.dubicars.com/search?c=used\&o=yd                      |
| `o=ka`      | Sort: mileage, lowest first  | https://www.dubicars.com/search?c=used\&o=ka                      |
| `o=kd`      | Sort: mileage, highest first | https://www.dubicars.com/search?c=used\&o=kd                      |
| `o=latest`  | Sort: newest listings        | https://www.dubicars.com/search?c=used\&o=latest                  |

Filters combine, for example `https://www.dubicars.com/dubai/used/toyota?pf=40000&pt=90000&yf=2020&o=pa`. `pf`/`pt` are read in the currency set by `cr` (default `AED`), so `pf=100000&pt=120000` means AED 100,000–120,000, while adding `&cr=USD` means USD 100,000–120,000. `ul` (default `AE`) sets the market the site assumes; the website uses your own location when it is missing, so copy `ul` and `cr` from your browser's address bar to get the same list you see on the site. The `price` field is always AED. Promoted listings can appear at the top before the sort order takes effect, as on the site. Individual car pages are not supported, use a listing URL.

### Input fields

| Field                | Type    | Default          | Description                      |
| -------------------- | ------- | ---------------- | -------------------------------- |
| `startUrls`          | array   | Toyota Camry URL | DubiCars category or search URLs |
| `maxItems`           | integer | 50               | Maximum listings per start URL   |
| `proxyConfiguration` | object  | no proxy         | Apify proxy settings             |

### Example input

```json
{
  "startUrls": [{ "url": "https://www.dubicars.com/uae/used/toyota/camry" }],
  "maxItems": 50,
  "proxyConfiguration": { "useApifyProxy": false }
}
```

### Output

Each scraped item is stored as one record in the default dataset.

### Example output

```json
{
  "scrapedAt": "2026-11-03T08:55:43.134Z",
  "url": "https://www.dubicars.com/2024-toyota-camry-1043445.html",
  "id": 1043445,
  "title": "Toyota Camry LE HEV",
  "price": 45000,
  "currency": "AED",
  "country": "UAE",
  "market": "uae",
  "language": "en",
  "originalPrice": 45000,
  "exportPrice": null,
  "isPriceReduced": false,
  "make": "Toyota",
  "makeId": 105,
  "model": "Camry",
  "modelId": 1547,
  "trim": "LE HEV",
  "year": 2024,
  "mileageKm": 286000,
  "condition": "used",
  "bodyType": "Sedan",
  "fuelType": "Hybrid",
  "transmission": "Automatic",
  "driveType": null,
  "cylinders": 4,
  "engineSizeLitres": null,
  "horsepower": null,
  "doors": 4,
  "seats": 5,
  "steeringSide": "Left hand",
  "regionalSpecs": "GCC",
  "exteriorColor": "White",
  "interiorColor": "Other color",
  "location": "Dubai",
  "locationId": 3,
  "sellerName": "Abdullah",
  "sellerId": 1623,
  "sellerType": "private",
  "sellerUrl": "https://www.dubicars.com/dealers/dubai-private-sellers-1623",
  "businessSegment": "Private",
  "adType": "premium",
  "hasWarranty": false,
  "isVerified": false,
  "isExclusive": false,
  "isCertifiedPreOwned": false,
  "isInspected": false,
  "imageUrl": "https://www.dubicars.com/images/333f4f/w_1300x760/private-sellers/c19e2be6-1844-40da-839c-dfbc98df8115.jpg",
  "imageCount": 5,
  "refreshedAt": "2026-11-03 12:01:05"
}
```

### Field reference

| Field                 | Type    | Description                   |
| --------------------- | ------- | ----------------------------- |
| `scrapedAt`           | string  | ISO 8601 scrape timestamp     |
| `url`                 | string  | Full listing URL              |
| `id`                  | number  | DubiCars listing ID           |
| `title`               | string  | Listing title                 |
| `price`               | number  | null                          | Asking price in AED (null when price is on request) |
| `currency`            | string  | Always AED                    |
| `country`             | string  | UAE                           |
| `market`              | string  | uae                           |
| `language`            | string  | en or ar, from the start URL  |
| `originalPrice`       | number  | null                          | Price before reduction                              |
| `exportPrice`         | number  | null                          | Export price when offered                           |
| `isPriceReduced`      | boolean | Whether the price was reduced |
| `make`                | string  | null                          | Car make                                            |
| `makeId`              | number  | null                          | Make ID                                             |
| `model`               | string  | null                          | Car model                                           |
| `modelId`             | number  | null                          | Model ID                                            |
| `trim`                | string  | null                          | Trim                                                |
| `year`                | number  | null                          | Model year                                          |
| `mileageKm`           | number  | null                          | Mileage in km                                       |
| `condition`           | string  | null                          | new or used                                         |
| `bodyType`            | string  | null                          | Body type                                           |
| `fuelType`            | string  | null                          | Fuel type                                           |
| `transmission`        | string  | null                          | Transmission                                        |
| `driveType`           | string  | null                          | Drive type                                          |
| `cylinders`           | number  | null                          | Cylinders                                           |
| `engineSizeLitres`    | number  | null                          | Engine size in litres                               |
| `horsepower`          | number  | null                          | Horsepower                                          |
| `doors`               | number  | null                          | Doors                                               |
| `seats`               | number  | null                          | Seats                                               |
| `steeringSide`        | string  | null                          | Left or right hand                                  |
| `regionalSpecs`       | string  | null                          | Regional specs (GCC, American...)                   |
| `exteriorColor`       | string  | null                          | Exterior colour                                     |
| `interiorColor`       | string  | null                          | Interior colour                                     |
| `location`            | string  | null                          | Emirate / city                                      |
| `locationId`          | number  | null                          | Location ID                                         |
| `sellerName`          | string  | null                          | Seller name                                         |
| `sellerId`            | number  | null                          | Seller ID                                           |
| `sellerType`          | string  | null                          | dealer or private                                   |
| `sellerUrl`           | string  | null                          | Seller page URL                                     |
| `businessSegment`     | string  | null                          | Seller business segment                             |
| `adType`              | string  | null                          | Ad package (premium, top_pick...)                   |
| `hasWarranty`         | boolean | Has warranty                  |
| `isVerified`          | boolean | Verified listing              |
| `isExclusive`         | boolean | Exclusive listing             |
| `isCertifiedPreOwned` | boolean | Certified pre-owned           |
| `isInspected`         | boolean | Inspected                     |
| `imageUrl`            | string  | null                          | Main image URL                                      |
| `imageCount`          | number  | null                          | Number of photos                                    |
| `refreshedAt`         | string  | null                          | Last refresh time on the site                       |

### ❓ FAQ

**Which URLs work?** Category pages (`/uae/used/toyota`), emirate pages (`/dubai/used`) and `/search?...` URLs. Copy the URL from your browser after applying filters on the site.

**Does it support Arabic?** Yes. Use an `/ar/` URL and titles come back in Arabic; the other fields stay normalised.

**How many results can I get?** Pagination is automatic, 30 listings per page, until `maxItems` or the last page. The limit applies per start URL.

**Which currency are prices in?** Always AED, the price shown on the site (after any reduction; `originalPrice` holds the earlier price). Cars listed as "ask for price" have `price: null`. Export-only cars, shown with an export price only, get that price converted to AED using the exchange rate the site itself applies on that page.

**Are results the same as on the website?** Yes. Promoted listings come first, as on the site, and the same car can appear under several start URLs.

**Does "used" include new cars?** DubiCars lists some nearly-new stock under used; use the `condition` field to filter.

**How fresh is the data?** Live at run time; `refreshedAt` shows when the seller last refreshed the ad.

### 🔗 Want More Data?

- [YallaMotor Cars Scraper](https://apify.com/boring_internet_explorer/yallamotor-scraper) — GCC & Egypt used and new cars
- [Dubizzle Saudi Arabia Scraper](https://apify.com/boring_internet_explorer/dubizzle-scraper) — cars and properties
- [Syarah Cars Scraper](https://apify.com/boring_internet_explorer/syarah-scraper) — used and new cars in Saudi Arabia
- [CarSwitch Cars Scraper](https://apify.com/boring_internet_explorer/carswitch-scraper) — used cars UAE & Saudi Arabia
- [Hatla2ee Scraper](https://apify.com/boring_internet_explorer/hatla2ee-scraper) — used and new cars, 6 MENA markets

### 🛠️ Need a custom scraper?

Need this scraper adapted to your use case — extra fields, additional filters, a different output format, or a new website? Reach out at boringinternetexplorer@gmail.com and we'll make it happen.

# Actor input Schema

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

DubiCars category URLs (e.g. /uae/used/toyota/camry, /dubai/new/suv) or search URLs (/search?...). Add /ar for Arabic. Filters in the query string (pf, pt, yf, yt, k, o, ...) are kept.

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

The maximum number of listings to scrape per start URL

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

Your proxy configuration from Apify

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.dubicars.com/uae/used/toyota/camry"
    }
  ],
  "maxItems": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "startUrls": [
        {
            "url": "https://www.dubicars.com/uae/used/toyota/camry"
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("boring_internet_explorer/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 = { "startUrls": [{ "url": "https://www.dubicars.com/uae/used/toyota/camry" }] }

# Run the Actor and wait for it to finish
run = client.actor("boring_internet_explorer/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 '{
  "startUrls": [
    {
      "url": "https://www.dubicars.com/uae/used/toyota/camry"
    }
  ]
}' |
apify call boring_internet_explorer/dubicars-scraper --silent --output-dataset

```

## MCP server setup

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