# Automobile.tn Scraper: Tunisia Used Cars, New Prices, Dealers (`recordsdata/automobile-tn-scraper`) Actor

Scrape automobile.tn, the Tunisian car marketplace: used car ads with price in TND, mileage, fuel, gearbox and seller type, the new car price catalog with full spec sheets, and dealer directories. Filter by make, model, price, year and governorate. No login, no proxy.

- **URL**: https://apify.com/recordsdata/automobile-tn-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** E-commerce, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $22.00 / 1,000 used car ad with full pages

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

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

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## Automobile.tn Scraper: Tunisia Used Cars, New Car Prices and Dealers

> **Export Tunisian car data in seconds.** Automobile.tn Scraper reads every used car ad on automobile.tn (1,671 ads on 2026-10-19), the new car price catalog (350 models, about 1,000 versions with full spec sheets) and the dealer directory (14 professional sellers and 39 official dealer groups). No login, no proxy and no browser are needed.

Automobile.tn Scraper is an Apify Actor that collects structured vehicle data from automobile.tn, the car portal of Tunisia. Price is always in Tunisian dinars (TND). Each used car row carries make, model, version, year, mileage, fuel, gearbox, drive, fiscal horsepower, governorate, price type, the site's own price rating and the seller type, and with the ad page opened it adds the photo gallery, the equipment list, colors, engine and the dealer block. Export the result as JSON, CSV, Excel, XML or HTML, or read it through the Apify API.

**Quick answer:** to scrape automobile.tn, start this Actor with `mode` set to `usedCars`, `newCars` or `dealers`, add optional filters such as make, price, year, fuel or governorate, and set `maxItems`. A run of three ads with their pages finishes in about five seconds on Apify.

| Target audience | Primary use cases |
|---|---|
| Car dealers and importers | Price monitoring of competitors, stock and margin checks by model |
| Banks, leasing and insurance teams | Residual value curves, valuation of used cars in TND |
| Market analysts and journalists | Prices by governorate, fuel mix, hybrid and electric adoption |
| Marketplace and app builders | Feeds of Tunisian listings, new car comparison tools |
| Data scientists | Training sets for price models with typed, flat columns |

### What does the Automobile.tn Scraper collect?

- **Used car ads.** About 740 ads from professional sellers and 930 from private sellers on 2026-10-19, 53 makes and 375 models. Every ad is reachable: there is no depth cap.
- **Used car ad pages (optional).** Full gallery, description, 67 possible equipment items, interior and exterior color, upholstery, seats, doors, engine, displacement, thermal and combined power for hybrids, previous owners, ad date and condition grade.
- **New car catalog.** One row per model with the starting price, promo badge, old price and discount, or one row per version with the spec sheet: power, torque, battery capacity, electric range, charging times, dimensions, trunk volume, 0 to 100 km/h, top speed, consumption, CO2, warranty and the equipment lists.
- **Dealers.** Professional used car sellers with address, logo and number of ads in stock, and the 39 official dealer groups with address, map coordinates and the brands they represent.
- **Exact pages.** Paste ad numbers or addresses copied from the site (an ad, a search, a seller stock, a new model, a new version, a dealer group) and read exactly those pages.

### What data do you get?

Every row has a `recordType`: `vehicle`, `vehicle-detail`, `new-model`, `new-version` or `dealer`. The dataset schema lists 98 columns; each row fills only the ones that apply, and absent values are left out, never filled with `null`.

| Field | Description |
|---|---|
| `recordType`, `listingId`, `url`, `title`, `imageUrl` | Record type, ad number (or model and version key), page address, title and cover photo |
| `make`, `model`, `trim`, `generation`, `generationPeriod` | Brand, model, version and the site's generation label |
| `year`, `firstRegistration`, `mileage`, `condition`, `conditionGrade`, `owners` | Model year, first registration date, odometer in km, `used` or `new`, grade and previous owners |
| `price`, `currency`, `priceType`, `valuation` | Asking price in TND, `regular`, `leased` or `duty-unpaid`, and the site's price rating (`very-good` to `far-above-market`) |
| `priceIsFrom`, `originalPrice`, `discount`, `promoNote`, `badge` | New car models: starting price, old price, discount and promo labels |
| `fuelType`, `transmission`, `driveType`, `bodyType`, `color` | English enums, for example `hybrid-petrol`, `automatic`, `fwd`, `suv`, `white` |
| `engine`, `engineSize`, `powerHp`, `taxHorsepower`, `torqueNm` | Engine name, displacement in cc, power in hp, fiscal horsepower (CV) and torque |
| `batteryKwh`, `electricRangeKm`, `chargeTimeAcHours`, `chargeTimeDcMinutes` | Electric and plug-in hybrid data of new car versions |
| `lengthMm`, `widthMm`, `heightMm`, `trunkLiters`, `accelerationSeconds`, `topSpeedKmh`, `co2` | Dimensions, performance, consumption and emissions of new car versions |
| `features`, `images`, `description` | Equipment list, photo links and seller text with phones and e-mails removed |
| `region`, `address`, `latitude`, `longitude` | Governorate of the ad, dealer address and coordinates |
| `isPrivateSeller`, `sellerName`, `sellerUrl`, `sellerLogo`, `stockCount` | Seller type and the business identity of professional sellers and dealers |
| `publishedAt`, `updatedAt`, `scrapedAt` | Ad date, last change date from the site sitemap, read time |

#### Sample output

A real `vehicle-detail` row from a cloud run (lists shortened):

```json
{
  "recordType": "vehicle-detail",
  "title": "Ford Focus Titanium",
  "listingId": "131469",
  "url": "https://www.automobile.tn/fr/occasion/ford/focus/131469",
  "country": "TN",
  "make": "Ford",
  "model": "Focus",
  "trim": "Titanium",
  "generation": "III Hatchback Phase 2",
  "year": 2016,
  "firstRegistration": "2016-02-10",
  "mileage": 280000,
  "mileageUnit": "km",
  "condition": "used",
  "conditionGrade": "Très bon",
  "owners": 1,
  "price": 36500,
  "currency": "TND",
  "priceType": "regular",
  "valuation": "far-above-market",
  "fuelType": "petrol",
  "transmission": "manual",
  "driveType": "fwd",
  "bodyType": "sedan",
  "color": "shark-grey",
  "doors": 5,
  "seats": 5,
  "engine": "1.0 SCTi 12V EcoBoost S&S",
  "engineSize": 999,
  "powerHp": 125,
  "taxHorsepower": 6,
  "features": ["ABS", "Airbags frontaux", "Airbags latéraux", "Anti-démarrage électronique"],
  "region": "Tunis",
  "publishedAt": "2026-10-19",
  "isPrivateSeller": true,
  "scrapedAt": "2026-10-19T05:44:22.196Z"
}
```

A real `new-version` row (new car spec sheet, equipment list shortened):

```json
{
  "recordType": "new-version",
  "title": "Bako Bee Wave",
  "listingId": "47160",
  "url": "https://www.automobile.tn/fr/neuf/bako/bee/wave",
  "make": "Bako",
  "model": "Bee",
  "trim": "Wave",
  "year": 2024,
  "condition": "new",
  "availability": "En pré-commande",
  "price": 18260,
  "currency": "TND",
  "fuelType": "electric",
  "transmission": "automatic",
  "driveType": "rwd",
  "bodyType": "city-car",
  "doors": 2,
  "seats": 3,
  "powerHp": 3,
  "taxHorsepower": 1,
  "torqueNm": 95,
  "batteryKwh": 3,
  "electricRangeKm": 70,
  "chargeTimeAcHours": 6,
  "chargeTimeDcMinutes": 180,
  "lengthMm": 2350,
  "widthMm": 1100,
  "heightMm": 1530,
  "topSpeedKmh": 45,
  "warranty": "3 ans ou 60.000 km",
  "features": ["Aide au stationnement: Caméra de recul", "Phares: LED", "Connectivité: USB, Bluetooth"],
  "sellerName": "BAKO MOTORS",
  "scrapedAt": "2026-10-19T05:56:07.756Z"
}
```

And a `dealer` row for an official dealer group:

```json
{
  "recordType": "dealer",
  "title": "AFRIQUE AUTO",
  "listingId": "official:afrique-auto",
  "url": "https://www.automobile.tn/fr/neuf/concessionnaires/afrique-auto",
  "dealerKind": "official-dealer-group",
  "address": "Z.I Charguia II TUNIS CARTHAGE ARIANA 1",
  "latitude": 36.8506731,
  "longitude": 10.207054,
  "brands": ["Chevrolet"],
  "sellerName": "AFRIQUE AUTO",
  "scrapedAt": "2026-10-19T05:56:47.767Z"
}
```

### How to scrape automobile.tn in four steps

1. Create a free Apify account at [console.apify.com](https://console.apify.com) and open this Actor.
2. Choose **What to collect**: used cars, new cars or dealers. Pick makes, models and filters, or leave them empty for everything.
3. Set **Maximum items** and click **Start**.
4. Open the **Storage** tab and download the dataset as JSON, CSV, Excel, XML or HTML.

A minimal example, the five cheapest petrol Peugeot 208 from 2018 on:

```json
{
  "mode": "usedCars",
  "makes": ["Peugeot"],
  "models": ["208"],
  "yearFrom": 2018,
  "fuelTypes": ["petrol"],
  "sort": "price-asc",
  "maxItems": 5
}
```

### Search filters for used and new cars

Filters are sent to the site and every returned row is checked again, so a row that does not match is never delivered.

- **Used cars:** makes and models (several at once), keyword, price, year and mileage ranges, fiscal horsepower, body type, fuel (petrol, diesel, electric, hybrid, plug-in hybrid, mild hybrid), gearbox, drive, 23 governorates, 14 colors, seller type (professional, private or both), price type (regular, leasing, duty unpaid), price rating and 67 equipment items. Ten sort orders, including price, mileage and year.
- **New cars:** makes and models, keyword, price range, fiscal horsepower, minimum seats, body type, fuel, gearbox and drive. The site filters models, so with version rows each version is checked against your ranges.
- **Dealers:** professional sellers, official dealer groups or both, a keyword and a brand filter for official dealers.

When both seller types are searched with a sort, the two streams are merged by the sort key, so the first rows are the real top of the combined list.

### Monitor new Tunisian car ads

Switch on **Only new results (monitor)** and the Actor remembers every record it delivered, in a named key-value store of your own account. Scheduled runs with the same **Monitor name** return only unseen ads, read newest first, and stop at the first page of ads that are all known. Skipped records are never charged.

### Business use cases

- **Dealer pricing.** Compare your asking prices with the ads of the same make, model and year, using the site's own price rating (`valuation`) as a second opinion.
- **Valuation and lending.** Build a table of price by year and mileage for the models you finance. Hybrid and electric ads carry the exact fuel label on the ad page.
- **Import decisions.** Duty-unpaid and leasing ads are flagged by `priceType`, so you can separate them from regular prices.
- **Market reports.** Count ads by governorate, make or fuel with a single export. New car rows add promo prices and discounts for a before and after view of campaigns.

### Automate the Automobile.tn Scraper

Schedule runs from the Apify Console, trigger them through the Apify API or connect the Actor to Make, Zapier, n8n, Airbyte, Google Sheets or Slack. A daily monitor run that returns only new ads is the usual setup for alerts.

### Use it with AI agents (MCP)

Connect the Apify MCP server to Claude, Cursor or another MCP client and this Actor appears as a tool. Example prompt: "List the 20 cheapest automatic diesel SUVs from 2019 or newer in Tunis on automobile.tn with price, mileage and seller." The agent sends the matching input and reads the rows.

### Frequently Asked Questions

#### Can I scrape automobile.tn without a login, proxy or browser?

Yes. The Actor sends browser-like HTTP requests to the public pages and needs no account on the site, no proxy and no browser. A proxy field exists only as an escape hatch and is off by default.

#### How many used car ads can I get in one run?

All of them. On 2026-10-19 the site listed 1,671 used ads on 140 list pages and the Actor read every one with no duplicates. Set `maxItems` to what you need; free Apify plans are limited to 10 results per run.

#### What is the difference between vehicle and vehicle-detail rows?

`vehicle` rows come from the list page and are fast. `vehicle-detail` rows open the ad page and add the gallery, equipment, colors, engine, power, owners and ad date. **Open every page** is on by default; switch it off for speed.

#### Which prices does the Actor return?

Asking prices in Tunisian dinars as shown on the site. Leasing ads and duty-unpaid cars carry `priceType` `leased` or `duty-unpaid`. New car models carry the starting price (`priceIsFrom`), and when a promotion runs also `originalPrice` and `discount`.

#### Does it return seller names and phone numbers?

Business data only. Professional sellers and dealers have `sellerName`, `sellerUrl` and address, and their phone numbers appear only when **Include business contact details** is on. Private sellers never expose a name, phone or e-mail, and phones written into private descriptions are removed.

#### Why is `isPrivateSeller` missing on some ads?

When you read a single ad by number or address, the ad page names the seller only for professionals, and a few professional ads show no seller block. Searches know the seller type from the search itself, so every row of a search has it.

#### Can I read new car prices and specifications?

Yes. Choose `newCars`. Model rows hold the starting price, promo badge and old price. With **Open every page** on, each version gets its own row with the full spec sheet, for example battery size, range and charging time of electric cars.

#### Is it legal to scrape automobile.tn?

The Actor reads publicly visible pages, does not log in, keeps a polite pace of about three requests per second and never reads the path the site's robots.txt disallows. The site's legal notice licenses the content for personal, non-commercial viewing and has no clause about automated reading, so read the terms and decide whether your use fits. You are responsible for how you use the data.

#### What happens when a search finds nothing or the input is wrong?

A search with no hits ends as succeeded with an empty dataset and charges nothing. A wrong value, for example a year range that starts after it ends or a make the site does not have, ends as succeeded with one free error row that explains the fix.

#### How much does a run cost?

The Actor is billed per result and the Pricing tab of the Actor page shows the live rate. Error rows, empty searches and records skipped by monitoring are never charged.

### Support

Questions, a missing field or a feature request: contact.punkrecordsdata@gmail.com. Browse more data Actors in the [RecordsData collection](https://apify.com/RecordsData).

> **Disclaimer:** independent tool, not affiliated with automobile.tn. It collects only publicly available data.

# Actor input Schema

## `mode` (type: `string`):

usedCars = classified ads for used cars. newCars = the new car price catalog (one row per model, or one row per version with the full spec sheet when "Open every page" is on). dealers = professional used-car sellers and official dealer groups. Addresses or ad numbers below replace this choice.

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

Stops after this many rows (all record types together). Free plans are limited to 10 items per run.

## `makes` (type: `array`):

Car brands as written on the site, for example Peugeot, Volkswagen, Mercedes-Benz or BMW. Empty searches every brand. Several brands are read in one search. In dealers mode it keeps the official dealers that sell the brand.

## `models` (type: `array`):

Models of the chosen makes, for example 208, Golf 7 or Classe C. A name that starts a family (for example A3) also reads its variants (A3 Sportback). Without makes, every brand that has such a model is searched.

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

Free text matched by the site search in used and new car titles and descriptions. In dealers mode it keeps the dealers whose name or address contains the text.

## `sort` (type: `string`):

Order of the results. Used cars support every option. New cars support price-asc, price-desc, best-ranked and recently-refreshed; other values fall back to the site default with a warning. Monitor runs always read the newest used ads first.

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

Only cars priced at or above this amount in Tunisian dinars. 0 or empty means no limit. For new cars the price of each version is checked.

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

Only cars priced at or below this amount in Tunisian dinars. 0 or empty means no limit.

## `yearFrom` (type: `integer`):

Used cars: model year from. 0 or empty means no limit.

## `yearTo` (type: `integer`):

Used cars: model year to. 0 or empty means no limit.

## `mileageFrom` (type: `integer`):

Used cars: odometer from, in kilometres. 0 or empty means no limit.

## `mileageTo` (type: `integer`):

Used cars: odometer up to, in kilometres. 0 or empty means no limit.

## `taxHorsepowerFrom` (type: `integer`):

Fiscal horsepower (puissance fiscale, CV) from. This number sets the annual tax in Tunisia. 0 or empty means no limit.

## `taxHorsepowerTo` (type: `integer`):

Fiscal horsepower (puissance fiscale, CV) up to. 0 or empty means no limit.

## `seatsFrom` (type: `integer`):

New cars: at least this many seats. 0 or empty means no limit.

## `bodyTypes` (type: `array`):

Keep only these body styles. Minibus exists only for new cars and other only for used cars.

## `fuelTypes` (type: `array`):

Keep only these fuels. Hybrid, plug-in hybrid and mild hybrid are separate choices; range-extender exists only for new cars. The used-car list shows every hybrid as "Hybride", so with a hybrid choice and "Open every page" off a plug-in can appear among plain hybrids.

## `gearboxes` (type: `array`):

Keep only manual or automatic cars.

## `driveTypes` (type: `array`):

Keep only front-wheel (Traction), rear-wheel (Propulsion) or all-wheel (Integrale) drive.

## `governorates` (type: `array`):

Used cars: only ads located in these governorates.

## `colors` (type: `array`):

Used cars: exterior color. Checked on the ad page, so it needs "Open every page".

## `sellerType` (type: `string`):

Used cars: professional sellers only, private sellers only, or both. Each row says isPrivateSeller; private sellers never expose a name, phone or email.

## `priceTypes` (type: `array`):

Used cars: regular price, leasing offers or duty-unpaid cars.

## `valuations` (type: `array`):

Used cars: keep ads that the site rates as a very good, good or fair price against the market.

## `equipment` (type: `array`):

Used cars: every selected item must be present on the ad (all of them, not any). Checked on the ad page, so it needs "Open every page".

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

Addresses copied from automobile.tn: a used ad (/fr/occasion/audi/a4/12345), a used search (/fr/occasion?brand\[0]=audi), a seller stock (/fr/occasion/vendeurs-pro/name), the seller list, a new car search, model or version (/fr/neuf/skoda/fabia), the official dealer list or one dealer group. When filled, these replace the mode and the filters.

## `listingIds` (type: `array`):

Used car ad numbers (the number at the end of an ad address). The actor finds each ad in the site sitemap and reads its page.

## `dealerKind` (type: `string`):

dealers mode: professional used-car sellers, official new-car dealer groups, or both (alternating).

## `scrapeDetails` (type: `boolean`):

On: used cars read each ad page (full photo gallery, description, equipment, color, seller block; vehicle-detail-record), new cars return one row per version with the full spec sheet (new-version-record), dealers add stock counts or map coordinates. Off: only the list data, much faster (vehicle-record, new-model-record).

## `includeContactDetails` (type: `boolean`):

Adds the business phone numbers and fax of professional sellers and dealers, and keeps phone numbers that a business wrote in its descriptions. Private seller names, phones and emails are never output.

## `includeRaw` (type: `boolean`):

Adds a raw object with the unparsed list card, structured data and spec tables of each row, for debugging.

## `onlyNew` (type: `boolean`):

Skips every record seen by an earlier run with the same monitor name, so scheduled runs return only what is new and you pay only for those. Used cars are read newest first and the scan stops at the first page of known ads.

## `stateKey` (type: `string`):

Name of the memory used by Only new results. Use one name per saved search. Empty derives the name from your filters.

## `resetSeen` (type: `boolean`):

Clears the memory of the monitor name before this run.

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

Pages read in parallel. Requests are also spaced at least 350 ms apart across all workers, so more parallelism only helps with slow pages.

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

Optional. Empty means direct requests, which work from Apify. Add a datacenter proxy only if your own network needs one.

## Actor input object example

```json
{
  "mode": "usedCars",
  "maxItems": 10,
  "makes": [
    "Peugeot"
  ],
  "models": [],
  "keyword": "",
  "sort": "newest",
  "bodyTypes": [],
  "fuelTypes": [],
  "gearboxes": [],
  "driveTypes": [],
  "governorates": [],
  "colors": [],
  "sellerType": "all",
  "priceTypes": [],
  "valuations": [],
  "equipment": [],
  "startUrls": [],
  "listingIds": [],
  "dealerKind": "all",
  "scrapeDetails": true,
  "includeContactDetails": false,
  "includeRaw": false,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false,
  "maxConcurrency": 3,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# 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 = {
    "maxItems": 10,
    "makes": [
        "Peugeot"
    ],
    "models": [],
    "priceFrom": 0,
    "priceTo": 0,
    "yearFrom": 0,
    "yearTo": 0,
    "mileageFrom": 0,
    "mileageTo": 0,
    "taxHorsepowerFrom": 0,
    "taxHorsepowerTo": 0,
    "seatsFrom": 0,
    "bodyTypes": [],
    "fuelTypes": [],
    "gearboxes": [],
    "driveTypes": [],
    "governorates": [],
    "colors": [],
    "priceTypes": [],
    "valuations": [],
    "equipment": [],
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/automobile-tn-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 = {
    "maxItems": 10,
    "makes": ["Peugeot"],
    "models": [],
    "priceFrom": 0,
    "priceTo": 0,
    "yearFrom": 0,
    "yearTo": 0,
    "mileageFrom": 0,
    "mileageTo": 0,
    "taxHorsepowerFrom": 0,
    "taxHorsepowerTo": 0,
    "seatsFrom": 0,
    "bodyTypes": [],
    "fuelTypes": [],
    "gearboxes": [],
    "driveTypes": [],
    "governorates": [],
    "colors": [],
    "priceTypes": [],
    "valuations": [],
    "equipment": [],
    "startUrls": [],
    "listingIds": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/automobile-tn-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 '{
  "maxItems": 10,
  "makes": [
    "Peugeot"
  ],
  "models": [],
  "priceFrom": 0,
  "priceTo": 0,
  "yearFrom": 0,
  "yearTo": 0,
  "mileageFrom": 0,
  "mileageTo": 0,
  "taxHorsepowerFrom": 0,
  "taxHorsepowerTo": 0,
  "seatsFrom": 0,
  "bodyTypes": [],
  "fuelTypes": [],
  "gearboxes": [],
  "driveTypes": [],
  "governorates": [],
  "colors": [],
  "priceTypes": [],
  "valuations": [],
  "equipment": [],
  "startUrls": [],
  "listingIds": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/automobile-tn-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/automobile-tn-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/ff6ghHpQ85GMAVJXC/builds/8TLcapAm9L9mvcZQT/openapi.json
