# 🇹🇳 Tayara.tn Tunisia Classifieds Scraper (`hipersoft/tayara-scraper`) Actor

Scrape listings from Tayara.tn, Tunisia's largest classifieds marketplace — cars, phones, real estate, electronics, jobs and every category. Export one clean row per ad: title, price in TND, seller, governorate, images and the listing URL as JSON, CSV or Excel.

- **URL**: https://apify.com/hipersoft/tayara-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0015 / listing scraped

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

## 🇹🇳 Tayara.tn Tunisia Classifieds Scraper

Scrape **listings from Tayara.tn**, Tunisia's largest classifieds marketplace, as clean, structured **JSON, CSV, Excel or XML**. Search any keyword or paste any Tayara.tn URL — **cars, phones, real estate, electronics, home, fashion, jobs** and every other category — and get one tidy row per ad: **title, price in TND (Tunisian Dinar), seller, governorate, category, images** and the ad's **listing URL**. Ideal for market research, price monitoring, comparables, and lead generation across Tunisia.

### What does the Tayara.tn Scraper do?

This actor turns Tayara.tn searches and category pages into a ready-to-use dataset. Type one or more keywords (for example `iphone`, `golf 7`, `appartement tunis`) or paste a Tayara.tn URL straight from your browser, and it walks every result page and collects each ad with structured fields. It works across **every category** — vehicles, property, electronics, phones, fashion, home and garden, jobs and services — with no configuration.

### What data can you get?

**Per ad:**

| Field | Description |
| --- | --- |
| `id` | Tayara.tn internal ad id. |
| `title` | Ad title, as posted. |
| `description` | Ad description, when present. |
| `price` | Price as a number. |
| `currency` | Currency code (TND / Tunisian Dinar), when a price is shown. |
| `images` | All image URLs for the ad. |
| `imageUrl` | Main image URL. |
| `publisher` | Seller or shop name. |
| `isShop` | Whether the seller is a registered shop. |
| `governorate` | Governorate the ad is posted in (e.g. Tunis, Sfax, Sousse). |
| `delegation` | Delegation (district) within the governorate. |
| `category` | Category the ad belongs to. |
| `subCategory` | Tayara.tn sub-category reference. |
| `publishedOn` | When the ad was published (ISO date). |
| `url` | Link to the ad's page. |
| `sourceUrl` | The search or category URL the ad was collected from. |
| `collectedAt` | Timestamp when the row was collected. |

### Use cases

- **Market research** — map prices, models and stock across categories and Tunisian governorates.
- **Price monitoring** — track asking prices and new ads over time.
- **Comparables & valuation** — pull comparable ads by category and price band.
- **Lead generation** — build lists of sellers and shops for outreach.
- **Dashboards** — power reports and dashboards from clean, structured rows.
- **Automation** — feed fresh Tunisia marketplace data into your own pipelines on a schedule.

### How to use it

1. Add **Tayara.tn Tunisia Classifieds Scraper** to your Apify account and open its input.
2. Enter one or more **Search keywords**, or paste **Start URLs** — Tayara.tn search or category pages copied from your browser (e.g. `https://www.tayara.tn/search?q=iphone`).
3. Set **Max items** to cap the output.
4. Click **Run**.
5. Export the results as JSON, CSV, Excel or XML.

### Input

```json
{
  "queries": ["iphone"],
  "maxItems": 100
}
```

| Field | Description |
| --- | --- |
| `queries` | One or more keywords to search on Tayara.tn. |
| `startUrls` | Optional. One or more Tayara.tn search or category page URLs to scrape. |
| `maxItems` | Cap the number of ads. `0` = no limit. |
| `maxConcurrency` | How many requests to run in parallel. |

### What you get

One flat JSON row per ad, ready to export to CSV, Excel, JSON or XML.

```json
{
  "id": "6a9bdd1962d7349f5f0524c1",
  "title": "iPhone 13 Pro Max 256 Go",
  "description": "Très bon état, avec chargeur et boîte.",
  "price": 3200,
  "currency": "TND",
  "images": ["https://cdn.tayara.tn/db/db775db0-9c78-4bd6-9c75-ea82dfe7e6be"],
  "imageUrl": "https://cdn.tayara.tn/db/db775db0-9c78-4bd6-9c75-ea82dfe7e6be",
  "publisher": "MAGRI MOBILE",
  "isShop": true,
  "governorate": "Tunis",
  "delegation": "Cité El Khadra",
  "category": "Téléphones",
  "subCategory": "60be84c450ab95b45b08a0c1",
  "publishedOn": "2026-09-05T09:12:57.000Z",
  "url": "https://www.tayara.tn/item/t%C3%A9l%C3%A9phones/tunis/tunis/iphone-13-pro-max/6a9bdd1962d7349f5f0524c1/",
  "sourceUrl": "https://www.tayara.tn/search?q=iphone",
  "collectedAt": "2026-09-05T09:00:00.000Z"
}
```

### FAQ

**Which categories are covered?**
Any category on Tayara.tn — cars, phones, real estate, electronics, home and garden, fashion, jobs and services, and more. Just search a keyword or paste the category URL from your browser.

**In what currency are prices returned?**
Prices are returned as a number with the `TND` (Tunisian Dinar) currency code whenever an ad shows a price. Ads posted without a price return an empty price.

**How many results can I get?**
Set **Max items** to any cap you like, or `0` for no limit — the actor follows the pagination of each search automatically.

**What export formats are supported?**
JSON, CSV, Excel and XML — plus the Apify API and integrations for automation.

# Actor input Schema

## `queries` (type: `array`):

One or more keywords to search on Tayara.tn — for example 'iphone', 'golf 7' or 'appartement tunis'. Each keyword runs its own search across every category and the results are combined. Leave Start URLs empty to use this.

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

Optional. One or more Tayara.tn search or category page URLs to scrape. Paste the URL straight from your browser (e.g. https://www.tayara.tn/search?q=iphone). When set, these are scraped in addition to any keywords. The scraper follows the pagination of each URL automatically.

## `maxItems` (type: `integer`):

Maximum number of ads to collect across all searches (0 = no limit; collect everything the searches return).

## `maxConcurrency` (type: `integer`):

How many requests to run in parallel. Leave at the default unless you have a reason to change it.

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

Proxy settings. Not required by default. If you experience reduced results, enable Apify Residential proxy for the most reliable access.

## Actor input object example

```json
{
  "queries": [
    "iphone"
  ],
  "maxItems": 100,
  "maxConcurrency": 5,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

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

The results as dataset items.

# 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 = {
    "queries": [
        "iphone"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/tayara-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 = { "queries": ["iphone"] }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/tayara-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 '{
  "queries": [
    "iphone"
  ]
}' |
apify call hipersoft/tayara-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,hipersoft/tayara-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/m44Im7mdFNd9tY8pU/builds/Hmfo4f6a03a0XKiwf/openapi.json
