# Yallamotor Cars Scraper (`shahidirfan/yallamotor-cars-scraper`) Actor

Automate car data extraction from Yallamotor. Get instant access to listings, prices, specs & seller information for competitive analysis, inventory tracking & market intelligence. Perfect for automotive professionals & researchers.

- **URL**: https://apify.com/shahidirfan/yallamotor-cars-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** Automation, Developer tools, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

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

## YallaMotor Used Cars Scraper

Extract used car listings from YallaMotor UAE with clean, structured output for analytics, lead generation, and market monitoring. The actor uses a discovered internal RSC endpoint pattern for API-style extraction, supports pagination, and removes empty/null fields so your dataset stays production-ready.

### Features

- **API-Oriented Extraction** — Pull listing records from YallaMotor used-cars RSC endpoint responses instead of HTML parsing.
- **Used Car Listing Extraction** — Collect listing URLs and IDs from YallaMotor used-cars result pages.
- **Pagination Support** — Crawl multiple listing pages until your desired result count is reached.
- **Clean Dataset Output** — Automatically removes null, undefined, and empty-string values.
- **Duplicate Control** — Deduplicates results by listing ID.
- **Relevant Image Output** — Collects full vehicle photo galleries, deduplicated by picture ID and cleaned from size/noise variants.
- **Proxy Ready** — Works with Apify proxy configuration for stable production runs.

### Use Cases

#### Used Car Price Tracking
Monitor used car pricing trends by model year, city, and mileage bands. Build dashboards to detect underpriced or overpriced listings in real time.

#### Inventory Intelligence
Track supply by city and vehicle type to understand where inventory is growing or shrinking. Useful for dealers, aggregators, and market researchers.

#### Lead Qualification
Create clean listing datasets with direct listing URLs and key specs. Feed your CRM or outreach workflows with structured, analysis-ready data.

#### Competitive Monitoring
Watch listing movement and updates across pages to identify changing market conditions. Compare recurring models and specs across regions.

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `startUrl` | String | No | `"https://uae.yallamotor.com/used-cars"` | Starting listing URL. Supports default listing page or filtered used-cars URLs. |
| `collectDetails` | Boolean | No | `true` | Kept for backward compatibility with existing input schema (listing extraction remains JSON-LD based). |
| `results_wanted` | Integer | No | `20` | Maximum number of records to save in dataset. |
| `max_pages` | Integer | No | `10` | Safety cap for listing pages to scan. |
| `proxyConfiguration` | Object | No | Apify proxy preset | Proxy settings for reliable production crawling. |

### Output Data

Each item in the dataset can contain:

| Field | Type | Description |
|-------|------|-------------|
| `listing_id` | Number | Unique listing ID parsed from URL |
| `title` | String | Listing title |
| `url` | String | Direct listing URL |
| `price_aed` | Number | Numeric price in AED |
| `price_text` | String | Human-readable price text |
| `year` | Number | Model year |
| `mileage_km` | Number | Mileage in kilometers |
| `city` | String | Listing city |
| `fuel_type` | String | Fuel type |
| `transmission` | String | Transmission type |
| `regional_specs` | String | Regional specs |
| `drive_type` | String | Drive wheel configuration |
| `color` | String | Exterior color |
| `condition` | String | Listing condition text |
| `certified` | String | Certification flag when available |
| `make` | String | Vehicle make/brand |
| `model` | String | Vehicle model |
| `image_url` | String | Primary vehicle image URL |
| `images` | Array | All relevant vehicle photos (deduplicated, no duplicate size variants) |
| `source` | String | Source domain |
| `source_page` | String | RSC page URL used for extraction |
| `scraped_at` | String | ISO timestamp of extraction |

### Usage Examples

#### Basic Run

```json
{
	"startUrl": "https://uae.yallamotor.com/used-cars",
	"results_wanted": 20,
	"max_pages": 3,
	"collectDetails": true
}
````

#### City-Focused Listing URL

```json
{
	"startUrl": "https://uae.yallamotor.com/used-cars/ct_dubai",
	"results_wanted": 50,
	"max_pages": 8,
	"collectDetails": true
}
```

#### URL Collection Only (Faster)

```json
{
	"startUrl": "https://uae.yallamotor.com/used-cars",
	"results_wanted": 100,
	"max_pages": 10,
	"collectDetails": false
}
```

### Sample Output

```json
{
	"listing_id": 2097481,
	"title": "Used Nissan Kicks 2022",
	"url": "https://uae.yallamotor.com/used-cars/nissan/kicks/2022/used-nissan-kicks-2022-dubai-2097481",
	"price_aed": 41899,
	"mileage_km": 71682,
	"year": 2022,
	"city": "Dubai",
	"fuel_type": "Petrol",
	"transmission": "Automatic",
	"body_style": "SUV",
	"make": "nissan",
	"model": "kicks",
	"image_url": "https://ymimg1.b8cdn.com/resized/used_car/2026/3/14/2097481/pictures/16369478/webp_listing_main_IMG_20260304_115237.jpg_std.webp",
	"images": [
		"https://ymimg1.b8cdn.com/resized/used_car/2026/3/14/2097481/pictures/16369478/webp_listing_main_IMG_20260304_115237.jpg_std.webp"
	],
	"source": "uae.yallamotor.com",
	"source_page": "https://uae.yallamotor.com/used-cars?page=1&_rsc=17q52",
	"scraped_at": "2026-03-24T16:46:38.661Z"
}
```

### Tips For Best Results

#### Start With Small Runs

- Run with `results_wanted: 20` and `max_pages: 2-3` to validate output quickly.
- Increase limits once output shape matches your requirements.

#### Use Stable Listing URLs

- Prefer URLs under `/used-cars`.
- For focused extraction, use city or filtered listing pages as `startUrl`.

#### Proxy Configuration

For better reliability on larger runs:

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

### Integrations

- **Google Sheets** — Export listing data for quick analysis.
- **Airtable** — Build searchable used-car inventory views.
- **Make** — Trigger automated workflows when new listings are found.
- **Zapier** — Send listing updates to CRM, Slack, or email.
- **Webhooks** — Push data into custom APIs and data pipelines.

#### Export Formats

- **JSON** for APIs and programmatic workflows
- **CSV** for spreadsheet analysis
- **Excel** for business reports
- **XML** for system integrations

### Frequently Asked Questions

#### How many listings can I collect?

You can collect as many as available through pagination. Use `results_wanted` and `max_pages` to control run size.

#### Why are some fields missing for some records?

Some listings do not expose every detail. Empty values are intentionally removed from output.

#### Can I scrape filtered listing pages?

Yes. Set `startUrl` to any YallaMotor used-cars listing URL, including city or filter pages.

#### Is this actor suitable for daily monitoring?

Yes. Schedule runs and compare datasets over time for market tracking.

#### Does it support Apify proxy?

Yes. Use `proxyConfiguration` in input for more stable, large-scale runs.

### Support

For issues or feature requests, use the Apify Console issue/reporting workflow.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [Apify API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/schedules)

### Legal Notice

This actor is provided for legitimate data extraction workflows. Users are responsible for complying with applicable laws and platform terms when collecting and using data.

# Actor input Schema

## `startUrl` (type: `string`):

Starting listing page URL. You can use the default /used-cars page or any filtered used-cars URL.

## `collectDetails` (type: `boolean`):

If enabled, the actor opens each listing page and extracts rich fields such as price, mileage, specs, and images.

## `results_wanted` (type: `integer`):

Maximum number of listings to save.

## `max_pages` (type: `integer`):

Safety cap for how many listing pages to scan.

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

Use Apify Proxy for more reliable extraction in production.

## Actor input object example

```json
{
  "startUrl": "https://uae.yallamotor.com/used-cars",
  "collectDetails": true,
  "results_wanted": 20,
  "max_pages": 3,
  "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 = {
    "startUrl": "https://uae.yallamotor.com/used-cars",
    "results_wanted": 20,
    "max_pages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/yallamotor-cars-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 = {
    "startUrl": "https://uae.yallamotor.com/used-cars",
    "results_wanted": 20,
    "max_pages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/yallamotor-cars-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 '{
  "startUrl": "https://uae.yallamotor.com/used-cars",
  "results_wanted": 20,
  "max_pages": 3
}' |
apify call shahidirfan/yallamotor-cars-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Yallamotor Cars Scraper",
        "description": "Automate car data extraction from Yallamotor. Get instant access to listings, prices, specs & seller information for competitive analysis, inventory tracking & market intelligence. Perfect for automotive professionals & researchers.",
        "version": "1.0",
        "x-build-id": "ZEEXtWAHm399LdqvM"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~yallamotor-cars-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-yallamotor-cars-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/shahidirfan~yallamotor-cars-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-yallamotor-cars-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/shahidirfan~yallamotor-cars-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-yallamotor-cars-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": {
                    "startUrl": {
                        "title": "Start URL",
                        "type": "string",
                        "description": "Starting listing page URL. You can use the default /used-cars page or any filtered used-cars URL."
                    },
                    "collectDetails": {
                        "title": "Collect listing details",
                        "type": "boolean",
                        "description": "If enabled, the actor opens each listing page and extracts rich fields such as price, mileage, specs, and images.",
                        "default": true
                    },
                    "results_wanted": {
                        "title": "Maximum number of listings",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Maximum listing pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Safety cap for how many listing pages to scan.",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Use Apify Proxy for more reliable extraction in production.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
