# Dubizzle Scraper (`solidcode/dubizzle-scraper`) Actor

\[💰 $0.9 / 1K] Extract property, motors, and classifieds listings from Dubizzle across every UAE emirate. Paste any Dubizzle search URL or run a structured search by emirate, category, price range, and keyword. Pay only $0.90 per 1,000 results.

- **URL**: https://apify.com/solidcode/dubizzle-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

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

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

## Dubizzle Scraper

Pull listings from Dubizzle across the United Arab Emirates at scale — property for sale, property for rent, motors, classifieds, and jobs — with prices, photos, seller details, agency names, coordinates, and posted dates for every result. Built for UAE real estate researchers, car dealers tracking inventory, lead-generation agencies sourcing seller contacts, and arbitrage operators monitoring classifieds who need fresh Dubizzle data without stitching together emirate-specific scrapers.

### Why This Scraper?

- **All 8 UAE emirates in one extractor** — Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, Umm Al Quwain, and Al Ain covered through a single dropdown. No more juggling per-emirate subdomains.
- **5 verticals, one unified row schema** — property for sale, property for rent, motors (cars, bikes, boats), classifieds (electronics, furniture, devices), and jobs all return the same flat schema, so downstream pipelines never branch on category.
- **Up to 10,000 results per query, multi-query for higher volumes** — combine multiple URLs in `startUrls` to merge inventory across emirates, verticals, or price bands in a single run.
- **5 sort modes, including newest-first for monitoring** — relevance, newest, oldest, price ascending, and price descending. Pair `newest` with a scheduled run to capture brand-new listings every hour.
- **English and Arabic results** — flip a single dropdown to receive native Arabic titles, area names, and category labels (e.g. `دبي` for Dubai).
- **Up to 10 photos per listing** — primary photo URLs ship inline on every row, ready for image pipelines, computer-vision tagging, or property-listing portals.
- **Verified seller details on every row** — name, seller type (owner, agent, agency, dealer), and agency name for property listings. TruCheck verification flag (`isVerified`) is surfaced for property listings; motors, classifieds, and jobs do not carry this signal.
- **Paste any Dubizzle URL or build a query from scratch** — copy a filtered search URL straight from your browser and every filter is preserved, or skip URLs entirely and let emirate, category, keyword, and price range build the search for you.
- **Pay only per result — no compute charges** — flat $0.90 per 1,000 results, charged on real output rows. Delivered 50 rows in 11 seconds during cloud verification.

### Use Cases

**Real Estate Market Intelligence**
- Track asking-price trends across Dubai Marina, Business Bay, and Downtown over time
- Map active inventory by emirate and bedroom count to spot oversupply
- Capture off-plan launches by filtering on `isPremium` flags
- Build neighborhood comp sets from `area` and `locationPath` fields

**Auto Dealer Lead Sourcing**
- Monitor used-car inventory by make and model (Toyota, Nissan, Mercedes, Land Cruiser)
- Hunt the sub-AED 50K segment for resale arbitrage with `priceMax` filters
- Track lease-return resale prices by sorting `price-asc` on dealer listings
- Surface motorbike and boat inventory directly from the motors vertical

**Marketing Agency Lead Generation**
- Extract listing-agent contacts with `sellerName`, `sellerType`, and `agencyName`
- Build prospect lists of agencies handling premium properties in target emirates
- Identify high-volume sellers running multiple listings for outreach campaigns
- Capture verified-listing accounts to seed quality scores

**Recruitment & HR**
- Scan the jobs vertical by emirate to map hiring demand
- Build employer lists by sampling who's posting active vacancies
- Track posted dates to spot freshly opened roles before agency placement
- Group jobs by area to gauge sector concentration (DIFC, Dubai Internet City, Yas Island)

**E-commerce Arbitrage & Resale**
- Monitor iPhone, MacBook, and PlayStation resale prices across the classifieds vertical
- Hunt furniture-flipping opportunities by sorting `price-asc` in Dubai classifieds
- Track posting velocity for high-turnover SKUs by combining `sort=newest` with a schedule
- Compare cross-emirate price spreads on identical product categories

### Getting Started

#### Simple — Paste a Dubizzle URL

```json
{
    "startUrls": ["https://dubai.dubizzle.com/property-for-sale/residential/apartment/"],
    "maxResults": 200
}
````

#### Filtered Motors Search by Emirate

```json
{
    "searchKeyword": "Toyota Corolla",
    "emirate": "abu-dhabi",
    "category": "motors",
    "priceMin": 20000,
    "priceMax": 80000,
    "sortBy": "price-asc",
    "maxResults": 500
}
```

#### Arabic Locale, Multi-Emirate via Multiple URLs

```json
{
    "startUrls": [
        "https://dubai.dubizzle.com/property-for-rent/residential/apartment/",
        "https://abudhabi.dubizzle.com/property-for-rent/residential/apartment/",
        "https://sharjah.dubizzle.com/property-for-rent/residential/apartment/"
    ],
    "language": "ar",
    "sortBy": "newest",
    "maxResults": 2000
}
```

### Input Reference

#### What to Scrape

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `startUrls` | string\[] | `[]` | Paste one or more Dubizzle URLs — search results, listing pages, or short links like `dubizzle.com/s/AbcXyz`. The page type is auto-detected. When provided, this overrides the structured search below. |

#### Structured Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchKeyword` | string | `null` | Free-text search term, e.g. "Toyota Corolla", "studio apartment", "iPhone 15". Used only when `startUrls` is empty. |
| `emirate` | select | `Dubai` | UAE emirate to search: Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, Umm Al Quwain, Al Ain. |
| `category` | select | `Property for Sale` | Dubizzle vertical: Property for Sale, Property for Rent, Motors, Classifieds, or Jobs. |
| `sortBy` | select | `Relevance` | Result ordering: Relevance, Newest first, Oldest first, Price low-to-high, Price high-to-low. |
| `language` | select | `English` | Language for titles, area names, and category labels: English or Arabic. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `priceMin` | integer | `null` | Minimum price in AED. Leave empty for no minimum. |
| `priceMax` | integer | `null` | Maximum price in AED. Leave empty for no maximum. |

#### Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `maxResults` | integer | `100` | Maximum listings to collect across all input URLs and searches. Set to `0` for unlimited (safety-capped at 50,000). A single search returns at most 10,000 results — to collect more, narrow with `priceMin` / `priceMax` / `category` and re-run. |

### Output

Here is a representative listing row:

```json
{
    "listingId": "ad-105739821",
    "url": "https://dubai.dubizzle.com/property-for-sale/residential/apartment/2026/5/12/marina-view-2br-corner-unit-1234567/",
    "title": "Marina View | 2BR Corner Unit | Vacant On Transfer",
    "description": "Spacious two-bedroom apartment with full marina views, corner layout, two parking bays.",
    "category": "property-for-sale",
    "subcategory": "apartment",
    "price": 2450000,
    "priceCurrency": "AED",
    "priceLabel": "AED 2,450,000",
    "emirate": "Dubai",
    "area": "Dubai Marina",
    "locationPath": ["UAE", "Dubai", "Dubai Marina", "Marina Crown Tower"],
    "latitude": 25.0805,
    "longitude": 55.1403,
    "postedAt": "2026-05-08T10:14:22Z",
    "updatedAt": "2026-05-11T08:00:01Z",
    "photos": [
        "https://dbzlpvfeeds-a.akamaihd.net/dbzlpvfeeds/main_photo_1.jpg",
        "https://dbzlpvfeeds-a.akamaihd.net/dbzlpvfeeds/photo_2.jpg"
    ],
    "photoCount": 18,
    "sellerName": "Aisha Karim",
    "sellerType": "agent",
    "agencyName": "Skyline Premier Properties",
    "sellerPhone": null,
    "attributes": {
        "bedrooms": 2,
        "bathrooms": 3,
        "sizeSqft": 1340,
        "propertyType": "Apartment",
        "furnished": "Unfurnished",
        "completionStatus": "Ready"
    },
    "isPremium": true,
    "isVerified": true,
    "scrapedAt": "2026-05-15T09:32:11Z"
}
```

#### Core Fields

| Field | Type | Description |
|-------|------|-------------|
| `listingId` | string | Dubizzle's internal listing identifier |
| `url` | string | Canonical listing URL |
| `title` | string | Listing title |
| `description` | string|null | Short listing summary (long body lives on detail pages) |
| `category` | string | Top-level vertical (e.g. `property-for-sale`) |
| `subcategory` | string | Sub-vertical (e.g. `apartment`, `used-cars`, `iphone`) |
| `isPremium` | boolean | Featured / premium listing flag |
| `isVerified` | boolean | Dubizzle TruCheck verification flag (property listings only; always `false` on motors / classifieds / jobs) |
| `scrapedAt` | string | ISO 8601 timestamp of data extraction |

#### Location

| Field | Type | Description |
|-------|------|-------------|
| `emirate` | string | UAE emirate (localized in Arabic when `language=ar`) |
| `area` | string | Neighborhood or community name |
| `locationPath` | string\[] | Hierarchical location breadcrumb from country to community |
| `latitude` | number|null | Latitude in decimal degrees (UAE range ~22–27); `null` when Dubizzle did not publish coordinates |
| `longitude` | number|null | Longitude in decimal degrees (UAE range ~51–57); `null` when Dubizzle did not publish coordinates |

#### Pricing & Dates

| Field | Type | Description |
|-------|------|-------------|
| `price` | number|null | Numeric price; `null` when seller marked "On Application" or "Negotiable" |
| `priceCurrency` | string | ISO 4217 currency code (typically `AED`) |
| `priceLabel` | string | Display string ("AED 250,000", "On Application", "Negotiable") |
| `postedAt` | string | ISO 8601 publish timestamp |
| `updatedAt` | string|null | ISO 8601 last-update timestamp |

#### Seller

| Field | Type | Description |
|-------|------|-------------|
| `sellerName` | string|null | Display name of seller or agent |
| `sellerType` | string|null | One of `owner`, `agent`, `agency`, `dealer` (`agency` is emitted when an agent is listed under a populated agency name) |
| `agencyName` | string|null | Agency or dealership name when applicable |
| `sellerPhone` | string|null | Phone number when exposed without auth |

#### Media & Attributes

| Field | Type | Description |
|-------|------|-------------|
| `photos` | string\[] | Primary photo URLs (up to 10 per listing) |
| `photoCount` | integer | Number of photos in the `photos` array |
| `attributes` | object | Vertical-specific structured attributes in camelCase — for example `bedrooms`, `bathrooms`, `sizeSqft`, `propertyType`, `furnished`, `completionStatus` on real estate; `make`, `model`, `year`, `mileage`, `transmission` on motors; `brand`, `storage`, `condition` on classifieds |

### Tips for Best Results

- **Save filtered URLs from your browser** — apply your bedroom, neighborhood, and price filters on Dubizzle, copy the resulting URL, and paste it directly into `startUrls`. Every filter is preserved.
- **Use `sortBy=newest` for daily monitoring** — schedule a run every hour with `maxResults=200` to capture brand-new listings as they appear.
- **Narrow with `priceMin` / `priceMax` before going past 5,000 results per query** — a single search caps at 10,000 results, so tight price bands plus targeted categories unlock the full UAE inventory across multiple runs.
- **Combine multiple URLs in `startUrls` to merge emirates** — one run can cover Dubai, Abu Dhabi, and Sharjah in parallel; the unified schema means no post-processing.
- **Set `language=ar` for Arabic-language analyses** — emirate and area names return in native Arabic; English-only ads still surface English titles because Dubizzle does not auto-translate seller copy.
- **Off-plan launches show under `property-for-sale` with `isPremium=true`** — use this combination to track new developer releases.
- **The classifieds vertical is a long tail** — be specific with `searchKeyword` ("iPhone 15 Pro", "IKEA Malm bed") to cut through noise, then loop with `sortBy=newest` to monitor fresh postings.

### Pricing

**$0.90 per 1,000 results** — flat pay-per-result pricing, undercuts the closest competitor by roughly 5%.

| Results | Estimated Cost |
|---------|----------------|
| 100 | $0.09 |
| 1,000 | $0.90 |
| 10,000 | $9.00 |
| 100,000 | $90.00 |

**No compute charges — you only pay per result returned.** A "result" is any listing row in the output dataset. Platform fees (storage, data transfer) depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new results
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

This actor is designed for legitimate market research, lead generation, recruitment, and resale operations. Users are responsible for complying with applicable UAE laws, GDPR where relevant, and Dubizzle's Terms of Service. Do not use extracted data for spam, harassment, or any illegal purpose. Respect personal-data regulations when handling seller names, phone numbers, and agency contacts.

# Actor input Schema

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

Paste one or more Dubizzle URLs — search results, individual listings, or short links (e.g., dubizzle.com/s/AbcXyz). The scraper auto-detects each page type and walks pagination. When provided, these override the structured search below.

## `searchKeyword` (type: `string`):

Free-text search term, e.g. "Toyota Corolla", "studio apartment", "iPhone 15". Used only when Dubizzle URLs above is empty.

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

Which UAE emirate to search. Multi-word emirates use hyphens: abu-dhabi, ras-al-khaimah, umm-al-quwain, al-ain.

## `category` (type: `string`):

Which Dubizzle vertical to search.

## `priceMin` (type: `integer`):

Only include listings at or above this price in AED. Leave empty for no minimum.

## `priceMax` (type: `integer`):

Only include listings at or below this price in AED. Leave empty for no maximum.

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

How to order results.

## `language` (type: `string`):

Language for results. Dubizzle ships an English and an Arabic UI.

## `maxResults` (type: `integer`):

Maximum number of listings to collect across all URLs and searches. Set to 0 for unlimited (safety-capped at 50,000). Note: a single search is limited to 10,000 results — to collect more, narrow your filters with priceMin / priceMax / category and re-run.

## Actor input object example

```json
{
  "startUrls": [
    "https://dubai.dubizzle.com/property-for-sale/residential/apartment/"
  ],
  "emirate": "dubai",
  "category": "property-for-sale",
  "sortBy": "relevance",
  "language": "en",
  "maxResults": 100
}
```

# Actor output Schema

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

Table of scraped Dubizzle listings with the most useful columns.

# 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": [
        "https://dubai.dubizzle.com/property-for-sale/residential/apartment/"
    ],
    "emirate": "dubai",
    "category": "property-for-sale",
    "sortBy": "relevance",
    "language": "en",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/dubizzle-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": ["https://dubai.dubizzle.com/property-for-sale/residential/apartment/"],
    "emirate": "dubai",
    "category": "property-for-sale",
    "sortBy": "relevance",
    "language": "en",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/dubizzle-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 '{
  "startUrls": [
    "https://dubai.dubizzle.com/property-for-sale/residential/apartment/"
  ],
  "emirate": "dubai",
  "category": "property-for-sale",
  "sortBy": "relevance",
  "language": "en",
  "maxResults": 100
}' |
apify call solidcode/dubizzle-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Dubizzle Scraper",
        "description": "[💰 $0.9 / 1K] Extract property, motors, and classifieds listings from Dubizzle across every UAE emirate. Paste any Dubizzle search URL or run a structured search by emirate, category, price range, and keyword. Pay only $0.90 per 1,000 results.",
        "version": "1.1",
        "x-build-id": "O7228TagFUoNP9cVf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~dubizzle-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-dubizzle-scraper",
                "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/solidcode~dubizzle-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-dubizzle-scraper",
                "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/solidcode~dubizzle-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-dubizzle-scraper",
                "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",
                "properties": {
                    "startUrls": {
                        "title": "Dubizzle URLs",
                        "type": "array",
                        "description": "Paste one or more Dubizzle URLs — search results, individual listings, or short links (e.g., dubizzle.com/s/AbcXyz). The scraper auto-detects each page type and walks pagination. When provided, these override the structured search below.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchKeyword": {
                        "title": "Search Keyword",
                        "type": "string",
                        "description": "Free-text search term, e.g. \"Toyota Corolla\", \"studio apartment\", \"iPhone 15\". Used only when Dubizzle URLs above is empty."
                    },
                    "emirate": {
                        "title": "Emirate",
                        "enum": [
                            "dubai",
                            "abu-dhabi",
                            "sharjah",
                            "ajman",
                            "ras-al-khaimah",
                            "fujairah",
                            "umm-al-quwain",
                            "al-ain"
                        ],
                        "type": "string",
                        "description": "Which UAE emirate to search. Multi-word emirates use hyphens: abu-dhabi, ras-al-khaimah, umm-al-quwain, al-ain.",
                        "default": "dubai"
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "property-for-sale",
                            "property-for-rent",
                            "motors",
                            "classifieds",
                            "jobs"
                        ],
                        "type": "string",
                        "description": "Which Dubizzle vertical to search.",
                        "default": "property-for-sale"
                    },
                    "priceMin": {
                        "title": "Minimum Price (AED)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or above this price in AED. Leave empty for no minimum."
                    },
                    "priceMax": {
                        "title": "Maximum Price (AED)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Only include listings at or below this price in AED. Leave empty for no maximum."
                    },
                    "sortBy": {
                        "title": "Sort By",
                        "enum": [
                            "relevance",
                            "newest",
                            "oldest",
                            "price-asc",
                            "price-desc"
                        ],
                        "type": "string",
                        "description": "How to order results.",
                        "default": "relevance"
                    },
                    "language": {
                        "title": "Language",
                        "enum": [
                            "en",
                            "ar"
                        ],
                        "type": "string",
                        "description": "Language for results. Dubizzle ships an English and an Arabic UI.",
                        "default": "en"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of listings to collect across all URLs and searches. Set to 0 for unlimited (safety-capped at 50,000). Note: a single search is limited to 10,000 results — to collect more, narrow your filters with priceMin / priceMax / category and re-run.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
