# Haraj Scraper & API حراج (2026) 🇸🇦 (`zen-studio/haraj-scraper`) Actor

Haraj scraper and unofficial Haraj API to extract listings from Haraj.com.sa. Scrape cars, real estate, electronics, jobs, and 20+ categories. Filter by city, category, seller, or keyword. Get structured data with prices, images, seller info, and location from Saudi Arabia's largest marketplace.

- **URL**: https://apify.com/zen-studio/haraj-scraper.md
- **Developed by:** [Zen Studio](https://apify.com/zen-studio) (community)
- **Categories:** Real estate, Automation, E-commerce
- **Stats:** 52 total users, 4 monthly users, 100.0% runs succeeded, 2 bookmarks
- **User rating**: No ratings yet

## Pricing

$29.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

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

## Haraj.com.sa Scraper & API حراج (2026) 🇸🇦

**Extract structured listing data from Haraj.com.sa (حراج)** — Saudi Arabia's largest classifieds marketplace with millions of active listings across cars (سيارات), real estate (عقار), electronics (أجهزة), jobs (وظائف), and 17 more categories.

Search by keyword or browse by category and city. Get complete listing details including price, seller info, location down to neighborhood level, images, and category-specific metadata like car specs or real estate features. Covers all 22 Saudi regions (مناطق), 100+ cities, plus Kuwait (الكويت), UAE (الإمارات), and Bahrain (البحرين).

[![Demo](https://asciinema.org/a/bTrdbTaNJR1PZr0E.svg)](https://asciinema.org/a/bTrdbTaNJR1PZr0E)

<table><tr>
<td style="border-left:4px solid rgb(76,148,94);padding:12px 16px;font-weight:600">1,000 listings in under 60 seconds — hands down the richest output on Apify.</td>
</tr></table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

zen-studio/haraj-scraper on Apify. Call: ApifyClient("TOKEN").actor("zen-studio/haraj-scraper").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: search: string, tag: string (Arabic category name), maxResults: integer (1-100000). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/zen-studio~haraj-scraper/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $29/month rental (unlimited listings and runs). Get token: https://console.apify.com/account/integrations

````

### Rental Pricing

**$29 per month** — unlimited listings, unlimited runs, no per-item fees.

- Extract up to 100,000 listings per run
- Run as often as you need
- All categories, all cities, all filters included
- Cancel anytime

### How to Extract Haraj.com.sa Listings

#### Basic — Search by Keyword

```json
{
    "search": "iphone",
    "maxResults": 100
}
````

#### Browse by Category and City

```json
{
    "tag": "حراج السيارات",
    "city": "الرياض",
    "maxResults": 200
}
```

#### Advanced — All Filters

```json
{
    "search": "toyota",
    "tag": "حراج السيارات",
    "city": "جده",
    "maxResults": 500,
    "duringDate": "1week",
    "onlyWithImage": true,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

### Input Parameters

| Parameter | Type | Description | Default |
|-----------|------|-------------|---------|
| `search` | String | Search keyword. Leave empty to browse by category/city. | — |
| `tag` | String | Category filter. Select from 21 categories (Arabic names with English labels in dropdown). | All categories |
| `city` | String | City or region filter. Select from 100+ locations. | All regions |
| `maxResults` | Integer | Maximum number of listings to extract (1–100,000). | 100 |
| `duringDate` | String | Time period filter: Last 24 hours, 3 days, week, or month. Only applies with keyword search. | Any time |
| `onlyWithImage` | Boolean | Only return listings that have images. | false |
| `authorUsername` | String | Filter by specific seller username. When set, keyword search is ignored and browse mode is used. | — |
| `proxyConfiguration` | Object | Proxy settings. Residential proxies recommended. | Apify Residential |

#### Categories (الأقسام)

Cars (حراج السيارات), Real Estate (حراج العقار), Devices (حراج الأجهزة), Animals (مواشي وحيوانات وطيور), Furniture (اثاث), Jobs (وظائف), Services (خدمات), Fashion (مستلزمات شخصية), Games (العاب وترفيه), Rarities (نوادر و تراثيات), Arts (مكتبة وفنون), Trips (صيد ورحلات), Food (اطعمة ومشروبات), Gardens (زراعة وحدائق), Events (حفلات ومناسبات), Tourism (سفر وسياحة), Lost & Found (مفقودات), Coaching (تعليم وتدريب), Coding (برمجة وتصاميم), Projects (مشاريع واستثمارات), Other (قسم غير مصنف).

#### Cities (المدن)

All Saudi regions covered: Riyadh / الرياض (19 cities), Eastern Region / الشرقيه (18 cities), Jeddah / جده, Makkah / مكه (14 cities), Madinah / المدينة (7 cities), Tabouk / تبوك (5 cities), Qassim / القصيم (10 cities), Hail / حائل (6 cities), Aseer / عسير (9 cities), Najran / نجران, Jouf / الجوف, Arar / عرعر, and more. Also includes Kuwait / الكويت, UAE / الإمارات, and Bahrain / البحرين.

### Output Example

```json
{
  "id": 174927811,
  "url": "https://haraj.com.sa/11174927811/هايلكس_2014/",
  "title": "هايلكس 2014",
  "body": "للبيع هايلكس 2014 غمارتين \n\nممشى 400 الف وقابل للزيادة \n\nمكينه وقير وبدي شرط \n\nللتواصل 0556210062",
  "authorUsername": "mushari232",
  "authorId": 14249695,
  "city": "الشرقيه",
  "geoCity": "المبرز",
  "geoNeighborhood": "محاسن ارامكو",
  "postDate": 1770402752,
  "updateDate": 1770402752,
  "tags": [
    "حراج السيارات",
    "تويوتا",
    "هايلوكس",
    "هايلوكس 2014"
  ],
  "tagsFilters": [],
  "hasImage": true,
  "hasVideo": false,
  "thumbnailUrl": "https://mimg6cdn.haraj.com.sa/userfiles30/960x1280_46BC54A7-078E-4B30-999B-8166DBC11E68.jpg",
  "imagesList": [
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/960x1280_46BC54A7-078E-4B30-999B-8166DBC11E68.jpg",
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/960x1280_C40393FE-0F53-4BEF-B06F-1E8C4DEAB694.jpg",
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/960x1280_503044E2-8925-4DBB-A9A2-E14BC23121F2.jpg",
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/960x1280_AC0DCC07-7231-4FB3-B4CF-D98ED7ECB919.jpg",
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/1200x1600_BE2E5F7A-D64D-4044-827E-7038B2485F64.jpg",
    "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-06/1200x1600_757B6D05-FE3E-47C8-961F-A2EB2E7532DC.jpg"
  ],
  "price": null,
  "formattedPrice": null,
  "commentCount": 0,
  "upRank": 0,
  "downRank": 0,
  "isPromoted": false,
  "postType": "AD",
  "scrapedAt": "2026-02-06T18:32:39.878520+00:00",
  "carInfo": {
    "model": 2014,
    "carOrRelated": "CAR"
  }
}
```

#### Output Example — Car Listing

```json
{
    "id": 174920445,
    "url": "https://haraj.com.sa/11174920445/camry_2020/",
    "title": "كامري 2020 فل كامل",
    "body": "Toyota Camry 2020 full option, 48,000 km, single owner, accident-free",
    "authorUsername": "cars_ksa",
    "authorId": 87654321,
    "city": "جده",
    "geoCity": "جدة",
    "geoNeighborhood": "الصفا",
    "postDate": 1770350000,
    "updateDate": 1770385000,
    "tags": ["حراج السيارات", "تويوتا"],
    "tagsFilters": ["تويوتا"],
    "hasImage": true,
    "hasVideo": false,
    "thumbnailUrl": "https://mimg6cdn.haraj.com.sa/userfiles30/camry_thumb.jpg",
    "imagesList": [
        "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-05/camry1.jpg",
        "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-05/camry2.jpg",
        "https://mimg6cdn.haraj.com.sa/userfiles30/2026-02-05/camry3.jpg"
    ],
    "price": "85000",
    "formattedPrice": "85,000",
    "commentCount": 12,
    "upRank": 8,
    "downRank": 1,
    "isPromoted": true,
    "postType": "AD",
    "carInfo": {
        "sellOrWaiver": "SELL",
        "model": 2020,
        "mileage": 48,
        "fuel": "GASOLINE",
        "gear": "AUTO",
        "condition": "USED",
        "carOrRelated": "CAR"
    },
    "scrapedAt": "2026-02-07T12:00:00+00:00"
}
```

### Extracting Haraj Data with Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("zen-studio/apify-haraj-scraper").call(run_input={
    "search": "iphone",
    "city": "الرياض",
    "maxResults": 200,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['title']} - {item['price']} SAR - {item['city']}")
```

### Extracting Haraj Data with JavaScript

```javascript
import { ApifyClient } from 'apify-client';

const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });

const run = await client.actor('zen-studio/apify-haraj-scraper').call({
    search: 'toyota',
    tag: 'حراج السيارات',
    maxResults: 500,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Found ${items.length} car listings`);
```

### Advanced Usage

#### Extract All Listings from a Specific Seller

```json
{
    "authorUsername": "trusted_seller_99",
    "maxResults": 1000
}
```

#### Recent Real Estate Listings in Riyadh (عقار الرياض)

```json
{
    "search": "شقة",
    "tag": "حراج العقار",
    "city": "الرياض",
    "duringDate": "1week",
    "onlyWithImage": true,
    "maxResults": 300
}
```

#### All Car Listings in Jeddah (سيارات جده)

```json
{
    "tag": "حراج السيارات",
    "city": "جده",
    "maxResults": 5000
}
```

#### Electronics with Images Only (أجهزة بالصور)

```json
{
    "tag": "حراج الأجهزة",
    "onlyWithImage": true,
    "maxResults": 1000
}
```

### Proxy Configuration

Residential proxies are recommended for reliable access. The default configuration works out of the box:

```json
{
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": ["RESIDENTIAL"]
    }
}
```

Custom proxies:

```json
{
    "proxyConfiguration": {
        "useApifyProxy": false,
        "proxyUrls": ["http://user:pass@proxy.example.com:8000"]
    }
}
```

### Data Export

Export your results in any format:

- **JSON** — programmatic analysis and integration
- **CSV** — spreadsheet analysis and reporting
- **Excel** — data visualization and pivot tables

Download directly from the Apify Console or access via the dataset API endpoint.

### FAQ

**Q: What data does the Haraj Scraper extract?**
A: 25+ fields per listing including title, description, price, seller info, location (city and neighborhood), images, engagement metrics, and category-specific metadata like car specs or real estate details.

**Q: How many listings can I extract?**
A: Up to 100,000 listings per run. Set the `maxResults` parameter to control how many results you get.

**Q: Do I need a Haraj account?**
A: No. The scraper extracts publicly available listing data without requiring any account or login.

**Q: How current is the data?**
A: Data is extracted in real-time. Use the `duringDate` filter to only get listings from the last 24 hours, 3 days, week, or month.

**Q: Can I search in English?**
A: Haraj is primarily an Arabic-language platform. English keywords work for some listings (e.g., "iphone", "toyota"), but Arabic keywords will return more results.

**Q: Which categories are available?**
A: 21 categories: Cars, Real Estate, Devices, Animals, Furniture, Jobs, Services, Fashion, Games, Rarities, Arts, Trips, Food, Gardens, Events, Tourism, Lost & Found, Coaching, Coding, Projects, and Other.

**Q: Does the time period filter work with category browsing?**
A: The `duringDate` filter only applies when searching with a keyword. When browsing by category/city without a keyword, it returns the most recent listings.

**Q: Can I extract listings from multiple cities at once?**
A: Currently you can filter by one city per run. To cover multiple cities, run the actor multiple times with different city parameters, or leave the city filter empty to get listings from all regions.

**Q: How is car metadata structured?**
A: Car listings include a `carInfo` object with fields like `model` (year), `mileage` (in thousands km), `fuel` (GASOLINE/DIESEL), `gear` (AUTO/MANUAL), `condition` (USED/NEW), and `sellOrWaiver` (SELL/WAIVER).

### Getting Started

#### 1. Subscribe

Subscribe to the Haraj Scraper on Apify — $29/month, cancel anytime.

#### 2. Configure

- Enter a **search keyword** or select a **category** to browse
- Optionally filter by **city** or **region**
- Set your desired **maximum results** (default: 100)
- Apply additional filters as needed

#### 3. Run

Start the extraction and monitor progress in the Apify Console. Results appear progressively as listings are processed.

#### 4. Export

Download results as JSON, CSV, or Excel. Integrate via the Apify API for automated workflows.

### Combine it with more data sources

Looking for more Arabic marketplace data? Check out the [Mahally Scraper](https://apify.com/zen-studio/mahally-scraper) for Saudi e-commerce products with seller WhatsApp contacts, or the [OpenSooq Scraper](https://apify.com/zen-studio/opensooq-scraper) for classifieds across 20 MENA countries including UAE, Jordan, Egypt, and Kuwait.

### Disclaimer

Data is collected from publicly available sources and provided "as is" for informational purposes. Users are responsible for compliance with Haraj's terms of service and applicable regulations.

***

[**Start Extracting Haraj Listings Now**](https://console.apify.com/actors/eGJ3ybCj8IJR6tVK8)

***

*Get structured data from Saudi Arabia's largest classifieds marketplace (حراج) — cars (سيارات), real estate (عقار), electronics (أجهزة), and more.*

# Actor input Schema

## `search` (type: `string`):

Search keyword (e.g. 'iphone', 'toyota'). Leave empty to browse by category/city.

## `tag` (type: `string`):

Filter by category

## `city` (type: `string`):

Filter by city or region

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

Maximum number of listings to scrape

## `duringDate` (type: `string`):

Filter by posting date. Only applies when searching with a keyword.

## `onlyWithImage` (type: `boolean`):

Only return listings that have images

## `authorUsername` (type: `string`):

Filter by specific seller username. When set, keyword search is ignored and browse mode is used instead.

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

Proxy settings for reliable access

## Actor input object example

```json
{
  "search": "iphone",
  "tag": "",
  "city": "",
  "maxResults": 100,
  "duringDate": "",
  "onlyWithImage": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `results` (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 = {
    "search": "iphone",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("zen-studio/haraj-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 = {
    "search": "iphone",
    "maxResults": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("zen-studio/haraj-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 '{
  "search": "iphone",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call zen-studio/haraj-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Haraj Scraper & API حراج (2026) 🇸🇦",
        "description": "Haraj scraper and unofficial Haraj API to extract listings from Haraj.com.sa. Scrape cars, real estate, electronics, jobs, and 20+ categories. Filter by city, category, seller, or keyword. Get structured data with prices, images, seller info, and location from Saudi Arabia's largest marketplace.",
        "version": "0.0",
        "x-build-id": "v9zoE9WO7zLaOyZLy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/zen-studio~haraj-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-zen-studio-haraj-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/zen-studio~haraj-scraper/runs": {
            "post": {
                "operationId": "runs-sync-zen-studio-haraj-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/zen-studio~haraj-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-zen-studio-haraj-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": {
                    "search": {
                        "title": "Search keyword",
                        "type": "string",
                        "description": "Search keyword (e.g. 'iphone', 'toyota'). Leave empty to browse by category/city."
                    },
                    "tag": {
                        "title": "Category",
                        "enum": [
                            "",
                            "حراج السيارات",
                            "حراج العقار",
                            "حراج الأجهزة",
                            "مواشي وحيوانات وطيور",
                            "اثاث",
                            "وظائف",
                            "خدمات",
                            "مستلزمات شخصية",
                            "العاب وترفيه",
                            "نوادر و تراثيات",
                            "مكتبة وفنون",
                            "صيد ورحلات",
                            "اطعمة ومشروبات",
                            "زراعة وحدائق",
                            "حفلات ومناسبات",
                            "سفر وسياحة",
                            "مفقودات",
                            "تعليم وتدريب",
                            "برمجة وتصاميم",
                            "مشاريع واستثمارات",
                            "قسم غير مصنف"
                        ],
                        "type": "string",
                        "description": "Filter by category",
                        "default": ""
                    },
                    "city": {
                        "title": "City / Region",
                        "enum": [
                            "",
                            "الرياض",
                            "الخرج",
                            "الدرعية",
                            "الدلم",
                            "الدوادمي",
                            "الحريق",
                            "الزلفي",
                            "السليل",
                            "الغاط",
                            "القويعية",
                            "المجمعة",
                            "المزاحمية",
                            "الهياثم",
                            "ثادق",
                            "حوطة بني تميم",
                            "رماح",
                            "شقراء",
                            "عفيف",
                            "الشرقيه",
                            "الدمام",
                            "الخبر",
                            "الظهران",
                            "الجبيل",
                            "حفر الباطن",
                            "الهفوف",
                            "تاروت",
                            "المبرز",
                            "العيون",
                            "النعيرية",
                            "بقيق",
                            "راس تنورة",
                            "الخفجي",
                            "القطيف",
                            "سيهات",
                            "صفوى",
                            "عنك",
                            "جده",
                            "مكه",
                            "الطايف",
                            "القنفذة",
                            "الكامل",
                            "الليث",
                            "تربة مكة",
                            "ثول",
                            "الجموم",
                            "رابغ",
                            "رنية",
                            "مدينة الملك عبدالله الاقتصادية",
                            "الخرمة",
                            "ينبع",
                            "المدينة",
                            "العلا",
                            "الحناكية",
                            "بدر",
                            "خيبر",
                            "مهد الذهب",
                            "تبوك",
                            "املج",
                            "الوجه",
                            "تيماء",
                            "ضبا",
                            "القصيم",
                            "بريدة",
                            "عنيزة",
                            "الرس",
                            "الشماسية",
                            "المذنب",
                            "النبهانية",
                            "البدائع",
                            "رياض الخبراء",
                            "البكيرية",
                            "حائل",
                            "الغزالة",
                            "بقعاء",
                            "الشنان",
                            "تربة حائل",
                            "أبها",
                            "عسير",
                            "خميس مشيط",
                            "المجاردة",
                            "بللسمر",
                            "بيشة",
                            "تثليث",
                            "احد رفيده",
                            "محايل عسير",
                            "الباحة",
                            "جيزان",
                            "نجران",
                            "شرورة",
                            "الوديعة",
                            "الجوف",
                            "القريات",
                            "دومة الجندل",
                            "سكاكا",
                            "عرعر",
                            "رفحاء",
                            "طريف",
                            "الكويت",
                            "الإمارات",
                            "البحرين"
                        ],
                        "type": "string",
                        "description": "Filter by city or region",
                        "default": ""
                    },
                    "maxResults": {
                        "title": "Maximum results",
                        "minimum": 1,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Maximum number of listings to scrape",
                        "default": 100
                    },
                    "duringDate": {
                        "title": "Time period",
                        "enum": [
                            "",
                            "1days",
                            "3days",
                            "1week",
                            "1months"
                        ],
                        "type": "string",
                        "description": "Filter by posting date. Only applies when searching with a keyword.",
                        "default": ""
                    },
                    "onlyWithImage": {
                        "title": "Only with images",
                        "type": "boolean",
                        "description": "Only return listings that have images",
                        "default": false
                    },
                    "authorUsername": {
                        "title": "Seller username",
                        "type": "string",
                        "description": "Filter by specific seller username. When set, keyword search is ignored and browse mode is used instead."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings for reliable access",
                        "default": {
                            "useApifyProxy": true,
                            "apifyProxyGroups": [
                                "RESIDENTIAL"
                            ]
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
