# Sahibinden Scraper - Turkish Marketplace Data (`studio-amba/sahibinden-scraper`) Actor

Scrape classified listings from Sahibinden.com, Turkey's largest marketplace with 30M+ monthly visits. Extract car listings with prices, specs, seller info, and vehicle details. Supports search, category filtering, location, and price range. No login required.

- **URL**: https://apify.com/studio-amba/sahibinden-scraper.md
- **Developed by:** [Studio Amba](https://apify.com/studio-amba) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 11.1% runs succeeded, 0 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

## Sahibinden Scraper

Scrape classified listings from Sahibinden.com, Turkey's dominant marketplace with 30M+ monthly visits. Extract car listings, real estate, electronics, and more with full pricing, specs, and seller information.

### How to scrape Sahibinden data

1. Go to [Sahibinden Scraper](https://apify.com/studio-amba/sahibinden-scraper) on the Apify Store.
2. Click **Try for free** to open the actor in Apify Console.
3. Enter your search query (e.g., "volkswagen", "BMW 320d", "iPhone 16").
4. Choose a category (default: otomobil/cars) and optionally filter by location and price range.
5. Click **Start** and wait for the run to finish.
6. Download your data as JSON, CSV, Excel, or connect via API.

### Why use this actor?

Sahibinden.com is Turkey's largest classifieds platform -- the equivalent of Craigslist, AutoTrader, and Zillow combined. It dominates the Turkish market for second-hand cars, real estate, electronics, and services. This actor gives you structured access to listing data that would take hours to collect manually, with built-in anti-detection to handle the site's aggressive bot protection.

Use cases include market research for the Turkish automotive market, price monitoring for used cars, real estate market analysis across Turkish cities, and competitive intelligence for dealers and importers.

### Input

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `searchQuery` | String | No | Search term (e.g., "volkswagen", "BMW 320"). Defaults to "volkswagen". |
| `category` | String | No | Category: otomobil, arazi, motosiklet, emlak, cep-telefonu, bilgisayar, elektronik, vasita. Default: otomobil. |
| `location` | String | No | Turkish city filter (e.g., "istanbul", "ankara", "izmir"). Empty = all locations. |
| `priceFrom` | Integer | No | Minimum price in TRY. |
| `priceTo` | Integer | No | Maximum price in TRY. |
| `maxResults` | Integer | No | Maximum listings to return (default: 100, max: 10000). |
| `proxyConfiguration` | Object | No | Proxy settings. Turkish residential proxies required. |

### Output

Each listing contains:

| Field | Type | Example |
|-------|------|---------|
| `listingTitle` | String | `"Volkswagen Golf 1.6 TDI BlueMotion Comfortline"` |
| `price` | Number | `985000` |
| `currency` | String | `"TRY"` |
| `category` | String | `"Otomobil"` |
| `location` | String | `"Istanbul / Kadikoy"` |
| `date` | String | `"9 Haziran 2026"` |
| `sellerType` | String | `"Sahibinden"` or `"Galeri"` |
| `imageUrl` | String | Listing thumbnail URL |
| `url` | String | Full Sahibinden listing URL |
| `make` | String | `"Volkswagen"` |
| `model` | String | `"Golf"` |
| `year` | Number | `2020` |
| `mileage` | Number | `85000` |
| `fuelType` | String | `"Dizel"` |
| `transmission` | String | `"Otomatik"` |
| `scrapedAt` | String | ISO 8601 timestamp |

### Example output

```json
{
    "listingTitle": "Volkswagen Golf 1.6 TDI BlueMotion Comfortline",
    "price": 985000,
    "currency": "TRY",
    "category": "Otomobil",
    "location": "Istanbul / Kadikoy",
    "date": "9 Haziran 2026",
    "sellerType": "Sahibinden",
    "imageUrl": "https://i.sahibinden.com/photos/...",
    "url": "https://www.sahibinden.com/ilan/vasita-otomobil-volkswagen-golf-...",
    "make": "Volkswagen",
    "model": "Golf",
    "year": 2020,
    "mileage": 85000,
    "fuelType": "Dizel",
    "transmission": "Otomatik",
    "scrapedAt": "2026-06-09T14:30:00.000Z"
}
````

### Categories

Sahibinden.com covers all major classifieds categories in Turkey:

- **otomobil** -- Cars (most popular, default category)
- **arazi** -- SUVs, pickups, off-road vehicles
- **motosiklet** -- Motorcycles and scooters
- **vasita** -- All vehicles (cars + motorcycles + commercial)
- **emlak** -- Real estate (houses, apartments, land)
- **cep-telefonu** -- Mobile phones
- **bilgisayar** -- Computers and laptops
- **elektronik** -- Electronics and appliances

### Proxy requirements

Sahibinden.com has aggressive anti-bot protection. Datacenter proxies will be blocked immediately. You must use **Turkish residential proxies** for reliable scraping. The actor is pre-configured to use Apify's residential proxy pool with Turkey (TR) country targeting.

If you see errors about being redirected to a login page, your proxy IP has been flagged. The actor automatically rotates sessions to handle this.

### Cost estimate

This actor uses approximately **5-10 compute units per 1,000 listings** due to the Playwright browser overhead and anti-bot measures. At standard Apify pricing, expect roughly **$2.50-$5.00 per 1,000 listings** plus residential proxy costs.

### Tips for best results

- Use specific search queries for better results (e.g., "Volkswagen Golf" instead of just "araba")
- Filter by city to narrow results (Istanbul, Ankara, Izmir have the most listings)
- Set price ranges to focus on your target market segment
- Start with small maxResults (50-100) to validate your query before scaling up
- The car category extracts vehicle-specific fields (make, model, year, mileage, fuel, transmission)

### Limitations

- Sahibinden.com requires Turkish residential proxies -- datacenter proxies are blocked
- Phone numbers and seller contact details are behind login walls and not extracted
- Very high-volume scraping may trigger additional CAPTCHA challenges
- Data is scraped from the public website and may change without notice
- Some listing details (full specs, description text) require visiting individual listing pages
- The site may temporarily block IPs during peak traffic hours

### Integration

Use the Apify API to integrate Sahibinden data into your workflows:

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

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

const run = await client.actor('studio-amba/sahibinden-scraper').call({
    searchQuery: 'volkswagen golf',
    category: 'otomobil',
    location: 'istanbul',
    maxResults: 200,
});

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

# Actor input Schema

## `searchQuery` (type: `string`):

Search term to find listings on Sahibinden (e.g., 'volkswagen', 'BMW 320', 'iPhone 16'). Defaults to 'volkswagen' if empty.

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

Category to search in. Options: otomobil (cars), arazi (SUV/pickup), motosiklet (motorcycles), emlak (real estate), cep-telefonu (phones), bilgisayar (computers), elektronik (electronics), vasita (all vehicles).

## `location` (type: `string`):

Filter by Turkish city (e.g., 'istanbul', 'ankara', 'izmir'). Leave empty for all locations.

## `priceFrom` (type: `integer`):

Minimum price filter in Turkish Lira.

## `priceTo` (type: `integer`):

Maximum price filter in Turkish Lira.

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

Maximum number of listings to return.

## `brightDataApiKey` (type: `string`):

Your Bright Data API key for the Web Unlocker zone. If not provided, falls back to the BRIGHT\_DATA\_API\_KEY environment variable. Required to bypass Sahibinden's aggressive anti-bot protection.

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

Not used directly -- this actor uses Bright Data Web Unlocker API instead of standard proxies. Kept for compatibility.

## Actor input object example

```json
{
  "searchQuery": "volkswagen",
  "category": "otomobil",
  "maxResults": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "TR"
  }
}
```

# 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 = {
    "searchQuery": "volkswagen",
    "category": "otomobil",
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "TR"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("studio-amba/sahibinden-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 = {
    "searchQuery": "volkswagen",
    "category": "otomobil",
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "TR",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("studio-amba/sahibinden-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 '{
  "searchQuery": "volkswagen",
  "category": "otomobil",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "TR"
  }
}' |
apify call studio-amba/sahibinden-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Sahibinden Scraper - Turkish Marketplace Data",
        "description": "Scrape classified listings from Sahibinden.com, Turkey's largest marketplace with 30M+ monthly visits. Extract car listings with prices, specs, seller info, and vehicle details. Supports search, category filtering, location, and price range. No login required.",
        "version": "0.1",
        "x-build-id": "OXNftg5NCQ5BRqHFN"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/studio-amba~sahibinden-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-studio-amba-sahibinden-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/studio-amba~sahibinden-scraper/runs": {
            "post": {
                "operationId": "runs-sync-studio-amba-sahibinden-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/studio-amba~sahibinden-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-studio-amba-sahibinden-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": {
                    "searchQuery": {
                        "title": "Search Query",
                        "type": "string",
                        "description": "Search term to find listings on Sahibinden (e.g., 'volkswagen', 'BMW 320', 'iPhone 16'). Defaults to 'volkswagen' if empty."
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "otomobil",
                            "arazi",
                            "motosiklet",
                            "emlak",
                            "cep-telefonu",
                            "bilgisayar",
                            "elektronik",
                            "vasita"
                        ],
                        "type": "string",
                        "description": "Category to search in. Options: otomobil (cars), arazi (SUV/pickup), motosiklet (motorcycles), emlak (real estate), cep-telefonu (phones), bilgisayar (computers), elektronik (electronics), vasita (all vehicles)."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Filter by Turkish city (e.g., 'istanbul', 'ankara', 'izmir'). Leave empty for all locations."
                    },
                    "priceFrom": {
                        "title": "Price From (TRY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum price filter in Turkish Lira."
                    },
                    "priceTo": {
                        "title": "Price To (TRY)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum price filter in Turkish Lira."
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of listings to return.",
                        "default": 100
                    },
                    "brightDataApiKey": {
                        "title": "Bright Data API Key",
                        "type": "string",
                        "description": "Your Bright Data API key for the Web Unlocker zone. If not provided, falls back to the BRIGHT_DATA_API_KEY environment variable. Required to bypass Sahibinden's aggressive anti-bot protection."
                    },
                    "proxyConfiguration": {
                        "title": "Proxy Configuration",
                        "type": "object",
                        "description": "Not used directly -- this actor uses Bright Data Web Unlocker API instead of standard proxies. Kept for compatibility."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
