# Ouedkniss Product Search Scraper (`scraper_solutions/ouedkniss-search-scraper`) Actor

Extracts structured product search listings from Ouedkniss.com.

- **URL**: https://apify.com/scraper\_solutions/ouedkniss-search-scraper.md
- **Developed by:** [Scraper Solutions](https://apify.com/scraper_solutions) (community)
- **Categories:** E-commerce, Automation, Developer tools
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## 🚗 Ouedkniss Product Search Scraper

**Extract structured product listings from Ouedkniss.com — Algeria's largest classifieds platform.**

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-blue)](https://apify.com/)
[![Python](https://img.shields.io/badge/Python-3.12-green)](https://www.python.org/)
[![License](https://img.shields.io/badge/License-MIT-yellow)](LICENSE)
[![Status](https://img.shields.io/badge/Status-Active-success)]()

***

### 🚀 Getting Started with Apify

New to Apify? Create a free account with $5 credit — no credit card required.

1. **[Sign up](https://apify.com/) — $5 platform credit included**
2. **Open this actor and configure your input**
3. **Click Start — export results as JSON, CSV, or Excel**

Need more later? See [Apify pricing](https://apify.com/pricing).

***

### 📋 Overview

The **Ouedkniss Product Search Scraper** automates the collection of listings from Ouedkniss.com, converting category pages and search results into structured datasets perfect for market research, price monitoring, and data analysis.

#### ✨ Key Features

| Feature | Description |
|---------|-------------|
| **🔍 Search & Category Scraping** | Scrape by URL or keyword — or both! |
| **📦 Multi-URL Support** | Process multiple categories in one run |
| **📊 25+ Data Fields** | Price, seller info, images, location, specs, and more |
| **🔄 Pagination** | Start from any page, scrape as many as you need |
| **🛡️ Automatic Proxy Handling** | Built-in proxy support (no setup required) |
| **⚡ Resilient** | Retry logic, deduplication, and graceful failure handling |
| **🎯 Configurable Limits** | Control exactly how many listings to collect |

### 🚀 Quick Start

#### Minimal Configuration

```json

{
  "urls": ["https://www.ouedkniss.com/automobiles_vehicules/"],
  "max_items_per_url": 10
}
```

#### Search Within a Category

```json

{
  "urls": ["https://www.ouedkniss.com/automobiles_vehicules/"],
  "keyword": "Kia",
  "max_items_per_url": 50
}
```

#### Multiple Categories

```json

{
  "urls": [
    "https://www.ouedkniss.com/automobiles_vehicules/",
    "https://www.ouedkniss.com/telephones_accessoires/",
    "https://www.ouedkniss.com/informatique/"
  ],
  "max_items_per_url": 100
}
```

### 📥 Input Fields

| Field | Type | Default | Description |
|-------|------|---------|-------------|
| `urls` | array | — | Ouedkniss category or search-result URLs |
| `keyword` | string | `""` | Optional search term (e.g., "Kia", "iPhone") |
| `page` | integer | `1` | Starting page number |
| `max_items_per_url` | integer | `20` | Maximum listings per URL (1-10,000) |
| `ignore_url_failures` | boolean | `true` | Continue if one URL fails |

### 📤 Output Data

#### Sample Listing

```json

{
  "id": "54689639",
  "title": "Kia KX1 2025 ",
  "slug": "voitures-kia-kx1-2025-el-eulma-setif-algerie",
  "url": "https://www.ouedkniss.com/voitures-kia-kx1-2025-el-eulma-setif-algerie",
  "created_at": "2026-04-01T16:32:13.428950Z",
  "status": "PUBLISHED",
  "description": "كارت قريز",
  "price": null,
  "price_preview": 0,
  "price_unit": "MILLION",
  "price_type": null,
  "old_price": null,
  "old_price_preview": null,
  "exchange_type": null,
  "has_delivery": false,
  "is_from_store": true,
  "is_comment_enabled": true,
  "like_count": 0,
  "city_id": "711",
  "city": "El eulma",
  "city_slug": "el-eulma-711",
  "wilaya_id": "19",
  "wilaya": "Sétif",
  "wilaya_slug": "stif-19",
  "user_id": "14741576",
  "store_id": "37376",
  "store_name": "Ben hagga Auto",
  "store_slug": "ben-hagga-auto",
  "store_image": "https://cdn.ouedkniss.com/medias/images/Yv46BO/zJDkvUpUIZlhtLy7NmBoA54Oe9KRi0QZuvs9Yq4H.jpg",
  "store_is_official": false,
  "store_is_verified": false,
  "category_id": "606",
  "category_slug": "automobiles-voitures",
  "main_image": "https://cdn9.ouedkniss.com/medias/announcements/images/Yv46BO/DqUDOmKuftKrDnHK4qIIMWLQxQfksUWUB7lc427M.jpg",
  "all_images": [
    "https://cdn9.ouedkniss.com/medias/announcements/images/Yv46BO/DqUDOmKuftKrDnHK4qIIMWLQxQfksUWUB7lc427M.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/0Q9rrnEYBLsDVLqhgFSIuUzwieYIWsGJijRHO63n.jpg",
    "https://cdn7.ouedkniss.com/medias/announcements/images/Yv46BO/OfpbhDOGXcSoA2krZUzfwQjHW317ScmQp6Qz9xbs.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/6nuuuVVaYBtIWncjoFMxZYApqecWPWRdNzANGFU3.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/ZYyhIhsXsSgSzpGF3Y1lIgOySCzjPQMo2HFaovrM.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/Y5Ab0KS8jvtjwLQfv00G1ElhM8URsJSYbX3Y2RWm.jpg",
    "https://cdn7.ouedkniss.com/medias/announcements/images/Yv46BO/mAGPuCog4PI8svJqHyrCnNCznpLNoLp78VvxW7G1.jpg",
    "https://cdn7.ouedkniss.com/medias/announcements/images/Yv46BO/nVKde4KzFMqWWCMMGFGfTG8t9IIWNbaKSvEUcqRc.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/EuaBRWLxd0X4zWTQmCc5lsvRGb6EC2faEeTl16l3.jpg",
    "https://cdn8.ouedkniss.com/medias/announcements/images/Yv46BO/fzFqQYdZljJxaKUhw3b5MPkX3BCExGYWJpEpUjRq.jpg",
    "https://cdn9.ouedkniss.com/medias/announcements/images/Yv46BO/aRYbjNmHAAKzxknirYB0VcMmkN6U9PlAbBPFkjgK.jpg",
    "https://cdn7.ouedkniss.com/medias/announcements/images/Yv46BO/KocXpKm12aZBiJQhstZRpmD4V16VpTc8Y220RqlY.jpg",
    "https://cdn9.ouedkniss.com/medias/announcements/images/Yv46BO/S9qbDN3gdLp0eTu1RQoJFJdPrkaNkmUaJ8xuzvvL.jpg"
  ]
}
```

#### All Output Fields

<details>
<summary><b>📋 Click to see all 25+ fields</b></summary>

##### Listing Information

- `id` — Unique listing identifier
- `title` — Listing title
- `slug` — URL-friendly identifier
- `url` — Direct listing URL
- `created_at` — Publication date
- `status` — Current listing status
- `description` — Seller's description

##### Pricing

- `price` — Current price
- `price_preview` — Displayed price
- `price_unit` — Price unit (DZD, MILLION, etc.)
- `price_type` — Price type
- `old_price` — Previous price (if available)
- `old_price_preview` — Previous displayed price
- `exchange_type` — Exchange availability

##### Location

- `city_id`, `city`, `city_slug`
- `wilaya_id`, `wilaya`, `wilaya_slug`

##### Seller & Store

- `user_id` — Seller identifier
- `store_id`, `store_name`, `store_slug`
- `store_image` — Store logo URL
- `store_is_official` — Official store badge
- `store_is_verified` — Verified store badge
- `is_from_store` — Store or individual listing

##### Media

- `main_image` — Primary image URL
- `all_images` — Array of all image URLs

##### Category

- `category_id` — Category identifier
- `category_slug` — Category slug (e.g., "automobiles-voitures")

##### Engagement

- `has_delivery` — Delivery availability
- `is_comment_enabled` — Comments allowed
- `like_count` — Number of likes

</details>

#### Specifications

When available, product specifications are automatically included as additional fields:

- `spec_marque` — Brand
- `spec_modele` — Model
- `spec_annee` — Year
- `spec_kilometrage` — Mileage

*(Fields vary by category)*

### 💰 Pricing & Usage

| Collection Size | Estimated Credits | Best For |
|-----------------|-------------------|----------|
| 20 listings | Low | Quick testing |
| 100 listings | Medium | Research samples |
| 500+ listings | Higher | Full market analysis |

> **💡 Tip:** Start with a small test run (20 items) to verify your configuration before scaling up.

***

### 🎯 Use Cases

| Use Case | Description |
|----------|-------------|
| **📊 Market Research** | Study product availability, pricing trends, and market dynamics |
| **💰 Price Monitoring** | Track price changes across categories over time |
| **🚗 Automotive Research** | Analyze vehicle listings by brand, model, location, and specs |
| **🛒 E-Commerce Intelligence** | Compare seller activity, store performance, and product availability |
| **📈 Data Aggregation** | Build structured datasets for dashboards, analytics, and research |

### 🛠️ How to Use

#### Step 1 — Find an Ouedkniss URL

Browse Ouedkniss and navigate to a category or search results page.

**Example:** `https://www.ouedkniss.com/automobiles_vehicules/`

#### Step 2 — Configure the Input

- **URL:** Paste your Ouedkniss URL
- **Keyword:** (Optional) Add a search term
- **Max Items:** Set your collection limit

#### Step 3 — Run the Actor

Start the run and wait for completion. The dataset will be available in the **Output** tab.

#### Step 4 — Export Your Data

Export the results as JSON, CSV, Excel, or via API.

***

### 🔧 Programmatic API Access

Run this Actor programmatically using the Apify API:

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")

run_input = {
    "urls": ["https://www.ouedkniss.com/automobiles_vehicules/"],
    "keyword": "Kia",
    "max_items_per_url": 50
}

run = client.actor("your-username/ouedkniss-search-scraper").call(run_input=run_input)

## Get results
dataset_items = client.dataset(run["defaultDatasetId"]).list_items().items
for item in dataset_items:
    print(item["title"], item["price"])
```

### ❓ FAQ

<details>
<summary><b>Can I scrape multiple categories?</b></summary>
✅ Yes! Add multiple URLs to the `urls` array field. Each URL will be processed in sequence.
</details>

<details>
<summary><b>What happens if one URL fails?</b></summary>
With `ignore_url_failures: true`, the scraper continues processing the remaining URLs. If disabled, it stops on the first failure.
</details>

<details>
<summary><b>Does this use proxies?</b></summary>
✅ Yes, automatic proxy handling is built-in to avoid IP blocking. No configuration is needed.
</details>

<details>
<summary><b>Are images downloaded?</b></summary>
No, only image URLs are collected to keep the output lightweight and fast.
</details>

<details>
<summary><b>Is this legal to use?</b></summary>
This scraper extracts publicly available data from Ouedkniss. Please respect Ouedkniss's terms of service and use reasonable request rates.
</details>

<details>
<summary><b>What data formats are supported?</b></summary>
Data is returned as JSON and can be exported to CSV, Excel, or directly to datasets via the Apify platform.
</details>

### 📋 Recommended Settings

#### 🧪 Small Test Run

```json
{
  "urls": ["https://www.ouedkniss.com/automobiles_vehicules/"],
  "keyword": "Kia",
  "max_items_per_url": 20,
  "ignore_url_failures": true
}
```

#### 📊 Medium Collection

```json
{
  "urls": ["https://www.ouedkniss.com/immobilier/"],
  "max_items_per_url": 100,
  "ignore_url_failures": true
}
```

#### 🏢 Multi-Category Research

```json
{
  "urls": [
    "https://www.ouedkniss.com/automobiles_vehicules/",
    "https://www.ouedkniss.com/telephones_accessoires/",
    "https://www.ouedkniss.com/informatique/"
  ],
  "max_items_per_url": 100,
  "ignore_url_failures": true
}
```

### 📌 Important Notes

- ✅ Use **category or search-result URLs** (not individual listing pages)
- ✅ `keyword` is **optional** — leave empty to scrape the entire category
- ✅ Multiple URLs can be processed in a single run
- ✅ Start with a **small test** (20 items) before running large collections
- ✅ Enable `ignore_url_failures` for bulk collections
- ✅ Specifications fields vary by category

***

### 🔒 Privacy & Security

- **No API keys required** — just paste your URLs
- **Your data is private** — output datasets are only accessible to you
- **Proxies are handled automatically** — no setup needed

***

### 🔍 Search Keywords

ouedkniss scraper, ouedkniss api, apify ouedkniss, ouedkniss data extraction, algeria classifieds scraper, algeria marketplace data, ouedkniss product search, algeria e-commerce data, ouedkniss vehicle listings, algeria real estate scraper, ouedkniss apartments, ouedkniss cars, algeria price monitoring, ouedkniss data, ouedkniss jobs, algeria recruitment data, ouedkniss job listings

### ⚠️ Disclaimer

This actor accesses only publicly available data on Ouedkniss.com. You are responsible for how you use the extracted data — in particular any personal information such as names, phone numbers, or addresses — and for complying with Ouedkniss's terms of use, applicable data-protection law, and the anti-spam rules of your jurisdiction.

This actor is not affiliated with, endorsed by, or connected to Ouedkniss.com.

***

### 📞 Support

Having issues? Check the:

- [FAQ](#-faq) section above
- [Apify Documentation](https://docs.apify.com/)
- Contact the developer via Apify Console

***

### 📝 Changelog

#### \[0.1.0] - 2026-08-24

**Added:**

- Initial release
- Category and keyword search support
- 25+ data fields per listing
- Multi-URL support
- Automatic proxy handling
- Pagination with configurable start page
- Deduplication of duplicate listings
- Retry logic for API stability
- `ignore_url_failures` option

***

### 📄 License

This Actor is provided for legitimate data collection and research purposes. Users are responsible for complying with Ouedkniss's terms of service.

***

**Happy scraping!** 🚀

# Actor input Schema

## `urls` (type: `array`):

One or more Ouedkniss category or search-result URLs to scrape.

## `keyword` (type: `string`):

Optional keyword to search for (e.g., Kia, iPhone, appartement, laptop). Leave empty to scrape the whole category.

## `page` (type: `integer`):

Page number to start scraping from. Use 1 for newest listings.

## `max_items_per_url` (type: `integer`):

Maximum number of listings to collect from each URL. Recommended: 20 for testing, 100-500 for production.

## `ignore_url_failures` (type: `boolean`):

If checked, continue processing other URLs even if one fails. Recommended to keep enabled.

## Actor input object example

```json
{
  "urls": [
    "https://www.ouedkniss.com/automobiles_vehicules/",
    "https://www.ouedkniss.com/immobilier/",
    "https://www.ouedkniss.com/telephones/",
    "https://www.ouedkniss.com/informatique/"
  ],
  "keyword": "",
  "page": 1,
  "max_items_per_url": 10,
  "ignore_url_failures": true
}
```

# Actor output Schema

## `results` (type: `string`):

The dataset containing the listings collected during the Actor run.

# 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 = {
    "urls": [
        "https://www.ouedkniss.com/automobiles_vehicules/",
        "https://www.ouedkniss.com/immobilier/",
        "https://www.ouedkniss.com/telephones/",
        "https://www.ouedkniss.com/informatique/"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("scraper_solutions/ouedkniss-search-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 = { "urls": [
        "https://www.ouedkniss.com/automobiles_vehicules/",
        "https://www.ouedkniss.com/immobilier/",
        "https://www.ouedkniss.com/telephones/",
        "https://www.ouedkniss.com/informatique/",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("scraper_solutions/ouedkniss-search-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.ouedkniss.com/automobiles_vehicules/",
    "https://www.ouedkniss.com/immobilier/",
    "https://www.ouedkniss.com/telephones/",
    "https://www.ouedkniss.com/informatique/"
  ]
}' |
apify call scraper_solutions/ouedkniss-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,scraper_solutions/ouedkniss-search-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hv4OU0tkoKfo6gdZZ/builds/zEymqF1MRC74Uyblm/openapi.json
