Tayara API & Scraper
Tayara.tn is where Tunisia buys and sells cars, flats, phones and almost everything else, and this API reads it as JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
`search` takes free text plus Tayara's own filters: category and subcategory, governorate and delegation, price range, and the attributes the site filters on, such as make, model, year, mileage, fuel and gearbox for cars or transaction, bedrooms and surface for property. `listing` returns one advert in full: the complete description, every image, the advert's contact phone, all structured attributes and the seller block with name, account phone, shop flag, shop link and how many live adverts the seller has. `seller_listings` pages through everything one seller or agency is publishing. On 2026-10-07 the site carried 45,891 live adverts; 6,293 of them were cars and 4,836 apartments.
What a Tayara field actually contains
Fields that read differently from how they look. Every row was measured against live Tayara responses on 2026-10-07.
| Field | What it holds |
|---|---|
| price_tnd vs price_raw | price_raw is exactly what the seller typed, in Tunisian dinars. price_tnd is the same number, or null when it is 0 or 1, because Tayara itself shows those adverts as 'Sans prix'. Across 150 search rows, cars carried a price 20/30 times, apartments 28/30, phones 28/30, home 22/30, jobs 15/30. |
| Seller-typed prices | Tayara does not check prices. We measured a 2024 Hyundai i30 at 76 (meaning 76,000), a land plot at 180 (meaning 180,000), a shop advert at 1234 and car prices above one trillion at the top of the price-descending sort. We publish what the seller typed and never rescale it. |
| phone vs seller.phone | phone is the contact number written on the advert. seller.phone is the number on the seller's account. They can differ: one apartment advert showed +21627256257 while the account behind it showed +21692030071. |
| Search price vs listing price | Search rows come from Tayara's search index; listing reads the advert page. After a price edit they can disagree for a while: one advert read 600 in search and 650 on its page and in the page's own product data. listing also returns price_ld_json and price_mismatch so you can see it. |
| seller.id | Only listing carries it; Tayara leaves the seller id empty on search rows. Pass it to seller_listings: for one shop the page said 39 live adverts and seller_listings returned exactly 39. |
| attributes | The advert's structured facts as Tayara labels them, in French: Marque, Modèle, Année, Kilométrage, Carburant, Boite for cars; Type de transaction, Chambres, Salles de bains, Superficie for property. 8 of 10 sampled adverts carried some; jobs and home adverts often carry none. |
| total and last_page | total is Tayara's own count. Tayara serves only the first 10,000 results of any query, so last_page stops there; narrow with filters to reach the rest. |
Attribute filters such as brand and model match Tayara's spelling exactly: Volkswagen returned 753 cars, volkswagen returned 0. Copy the value from a listing's attributes.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/tayara/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "golf",
"subcategory": "cars",
"sort": "newest",
"limit": 30
}
}{
"ok": true,
"meta": {
"api": "tayara",
"endpoint": "search",
"mode": "live",
"latency_ms": 368.8,
"record_count": 30,
"bytes": 46912,
"cache_hit": false,
"upstream_requests": 1,
"charged_credits": 2,
"version": "1.0.0",
"request_id": "2f44a764f5204898",
"queue_ms": 1.5,
"fetched_at": "2026-10-07T15:52:11.252Z"
},
"data": {
"query": "golf",
"total": 263,
"page": 1,
"limit": 30,
"last_page": 9,
"has_more": true,
"sort": "newest",
"listings": [
{
"id": "6ac6692ecdf7e8adb5ef910d",
"url": "https://www.tayara.tn/item/6ac6692ecdf7e8adb5ef910d/",
"title": "Golf 8 essence",
"description": "Tel: ☎️50 801 852☎️\nLieu :📍Sousse 📍\nÀ vendre Golf 8 essence Boite automatique importé de la France très propre comme neuf.\n✅️Essence \n✅️Boite automatique\n✅️modèle /07/2021\n✅️ Serie 262\n✅️170 k km\nToutes options :\n✅️Phares avant et Feux de jour ont LED\n✅️Phares de route adaptatifs\n✅️Feux arrière à LED\n✅️Radar de stationnement AR/AV\n✅️Caméra de recul\n✅️Rétroviseurs électriques rabattables\n✅️Démarrage sans clé\n✅️Freinage automatique d'urgence\n✅️jantes en aluminium\n✅️Éclairage d'ambiance\n✅️Capteur d'angle mort\n✅️Avertisseur de franchissement de ligne\n✅️USB-C| Apple Carplay |Android auto| bluetoo",
"price_tnd": null,
"price_raw": 1,
"currency": "TND",
"category_id": "60be84bc50ab95b45b08a094",
"category_name": "Véhicules",
"subcategory_id": "60be84be50ab95b45b08a0a4",
"subcategory_name": "Voitures",
"governorate": "Sousse",
"delegation": "Akouda",
"published_at": "2026-10-07T15:45:50.000Z",
"image": "https://cdn.tayara.tn/48/48847572-90e4-4d8a-ae5e-cd23c236f302",
"images": [
"https://cdn.tayara.tn/48/48847572-90e4-4d8a-ae5e-cd23c236f302",
"https://cdn.tayara.tn/63/6344311a-72ed-411c-9b41-bb311f5a0d7a",
"https://cdn.tayara.tn/cc/cc96a74f-bca7-433f-9ecb-e8714709061f"
],
"images_count": 10,
"seller_name": "KM_Auto",
"seller_is_shop": false,
"seller_is_approved": false,
"seller_avatar": null,
"is_premium": false
},
{
"id": "6ab4ec6526fc672960dab265",
"url": "https://www.tayara.tn/item/6ab4ec6526fc672960dab265/",
"title": "🚘 Golf 8 Style 🚘",
"description": "🚘 Golf 8 Style 🚘\n✅toutes options \n✅année 12 / 2022\n✅km 103 600\n✅Tu 264\n✅1.4\n✅8 cv\n✅Essence / Électrique \n⚡️On accepte l'échange des voitures⚡️\n☎️55418503/27124125\nshowroom🚗 MHIRI AUTO🚗\nمرحبا بيكم😍😍\n📍Résidence Feres lotissement al Yamama Jardin Del Menzah2",
"price_tnd": null,
"price_raw": 0,
"currency": "TND",
"category_id": "60be84bc50ab95b45b08a094",
"category_name": "Véhicules",
"subcategory_id": "60be84be50ab95b45b08a0a4",
"subcategory_name": "Voitures",
"governorate": "Ariana",
"delegation": "Les Jardins El Menzah 2",
"published_at": "2026-10-07T12:54:32.000Z",
"image": "https://cdn.tayara.tn/9c/9cb54a46-4821-4a86-8b68-bb4b23c043c5",
"images": [
"https://cdn.tayara.tn/9c/9cb54a46-4821-4a86-8b68-bb4b23c043c5",
"https://cdn.tayara.tn/10/10e030fe-bc8d-4780-8fdc-69c1f36cdafb",
"https://cdn.tayara.tn/4e/4efdef62-74b3-481e-bf23-0443ffdac722"
],
"images_count": 10,
"seller_name": "MHIRI AUTO",
"seller_is_shop": true,
"seller_is_approved": false,
"seller_avatar": "https://www.tayara.tn/mediaGateway/resize-image?img=11/11961347-7b09-4ddd-aab6-1efd5a853b7b&w=100",
"is_premium": false
},
{
"id": "697e0a3415471d09ce118086",
"url": "https://www.tayara.tn/item/697e0a3415471d09ce118086/",
"title": "🚘Volkswagen Golf 7 TDI BVA 🚘",
"description": "🚘Volkswagen Golf 7 TDI BVA 🚘\n✅toutes options \n✅année 04 / 2018\n✅km 233 678\n✅Tu 231\n✅1.6\n✅6 cv\n✅Gazoil \n✅Boite auto \n⚡️On accepte l'échange des voitures⚡️\n☎️55418503/22418503\nshowroom🚗 MHIRI AUTO🚗\nمرحبا بيكم😍😍\n📍Résidence Feres lotissement al Yamama Jardin Del Menzah2",
"price_tnd": null,
"price_raw": 0,
"currency": "TND",
"category_id": "60be84bc50ab95b45b08a094",
"category_name": "Véhicules",
"subcategory_id": "60be84be50ab95b45b08a0a4",
"subcategory_name": "Voitures",
"governorate": "Ariana",
"delegation": "Les Jardins El Menzah 2",
"published_at": "2026-10-07T12:53:14.000Z",
"image": "https://cdn.tayara.tn/a7/a754c164-f59d-4125-a585-d7a4d9aff264",
"images": [
"https://cdn.tayara.tn/a7/a754c164-f59d-4125-a585-d7a4d9aff264",
"https://cdn.tayara.tn/20/205e316a-d916-4f78-9058-7868e6a64e90",
"https://cdn.tayara.tn/9c/9c132137-c307-4603-b30d-a5de4cc3412c"
],
"images_count": 10,
"seller_name": "MHIRI AUTO",
"seller_is_shop": true,
"seller_is_approved": false,
"seller_avatar": "https://www.tayara.tn/mediaGateway/resize-image?img=11/11961347-7b09-4ddd-aab6-1efd5a853b7b&w=100",
"is_premium": false
}
],
"filters_applied": {
"categoryId": "60be84bc50ab95b45b08a094",
"subCategoryId": "60be84be50ab95b45b08a0a4"
}
}
}What the Tayara API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search Tayara.tn, Tunisia's largest classifieds site: cars, property, phones, electronics, home, fashion, jobs and services. Free text plus the site's own filters (category, governorate, delegation, price, and vehicle/property attributes such as make, model, year, mileage, fuel, rooms and surface). Nothing is required: no parameters browses the whole site newest first. | Price-intelligence teams call search to search Tayara.tn, Tunisia's largest classifieds site. | query, category, subcategory, governorate, delegation, ... |
| listing | One Tayara listing in full: title, full description, price, every image, location, the advert's contact phone, all structured attributes (make, model, year, mileage, fuel, rooms, surface …) and the seller block — name, account phone, shop flag, shop page and how many live listings they have. | Classifieds aggregators call listing to get one Tayara listing in full. | id, url, include_pii |
| seller_listings | Every live listing of one Tayara seller or shop, paged and sortable — the seller id comes from a `listing` response. | Resale and arbitrage tools call seller_listings to get every live listing of one Tayara seller or shop, paged and sortable. | seller_id, query, sort, page, limit, ... |
| categories | Tayara's category tree: 10 top-level categories and their subcategories with the ids, slugs and French names `search` accepts. | Lead-generation teams call categories to get tayara's category tree. | category |
| locations | Tunisia's 24 governorates and their delegations, spelled exactly as Tayara filters on them. | Price-intelligence teams call locations to get tunisia's 24 governorates and their delegations, spelled exactly as Tayara filters on them.. | governorate |
Call search from your stack
curl -X POST https://api.reefapi.com/tayara/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"golf","subcategory":"cars","sort":"newest","limit":30}'import requests
r = requests.post(
"https://api.reefapi.com/tayara/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "golf",
"subcategory": "cars",
"sort": "newest",
"limit": 30
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/tayara/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "golf",
"subcategory": "cars",
"sort": "newest",
"limit": 30
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.tayara.search with {"query":"golf","subcategory":"cars","sort":"newest","limit":30}.Who uses this API and why
- Track the Tunisian used-car market: page subcategory=cars newest first and keep make, model, year, mileage and price from each advert's attributes.
- Build a rent index for Greater Tunis: filter apartments for rent by governorate and delegation and group TND prices by bedrooms and surface.
- Watch resale prices of one phone model across Tunisia with a query plus subcategory=phones, then read each listing for the full description.
- Find dealers and real-estate agencies: shop adverts carry a shop flag, address and link, and seller_listings lists everything they publish.
- Feed a lead pipeline with fresh adverts in one governorate, with the contact phone the seller wrote on each advert.
Questions developers ask before integrating
Do I need a Tayara account or a Tunisian IP?
No. Every endpoint is read without an account or a login, and you call reefapi.com from anywhere.
Which Tunisian regions can I filter by?
All 24 governorates (Tunis, Ariana, Ben Arous, Sfax, Sousse, Nabeul and the rest) and the 404 delegations inside them, spelled the way Tayara files adverts. The locations endpoint lists them. Accents and capitals are optional on our side. Measured on 2026-10-07: Tunis held 12,787 adverts, La Marsa inside it 1,094, Sfax 3,061.
How do I search only cars of one make, year and mileage?
Use subcategory=cars with brand, model, year_min/year_max and mileage_min/mileage_max. Measured on 2026-10-07 out of 6,293 cars: Volkswagen 753, Volkswagen Golf 128, diesel 1,841, automatic 2,138, 2020 or newer 2,091, at most 50,000 km 2,100. Make and model must match Tayara's spelling exactly.
Can I separate flats for rent from flats for sale?
Yes. transaction=rent or transaction=sale on subcategory=appartments. Out of 4,836 apartments, 2,836 were for rent and 1,577 for sale; rooms_min=3 left 1,335 and a 100-150 m² surface range 1,505.
Why is the price null on some adverts?
Because the seller published none: Tayara shows those adverts as 'Sans prix' when the price is 0 or 1. We return null in price_tnd and keep the raw number in price_raw, so you can tell 'no price' from a real price.
Do you return the seller's phone number and name?
Yes, exactly as the advert page publishes them: the advert's contact phone, the seller's display name and account phone, and for shops the shop flag, address and link. In our sample every one of 10 adverts carried a contact phone.
How deep can I page?
Up to the 10,000th result of any query, which is where Tayara itself stops. The whole site held 45,891 adverts, so an unfiltered walk reaches about a fifth of it; filtered queries (one subcategory, one governorate) usually fit entirely. Asking past the real end returns an empty page with the true total, never a repeat.
Can I get every advert of one dealer or agency?
Yes. Read any of their adverts with listing, take seller.id, and page seller_listings with it. The count matches the number Tayara shows on the advert page.
What is the Tayara API?
Tayara API is a ReefAPI endpoint group for tunisia's biggest classifieds: cars, property, phones, home and jobs in tnd, with the seller's phone and every attribute. It returns live JSON through POST requests under /tayara/v1.
Is the Tayara API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Tayara calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Tayara login or account?
No login to Tayara is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Tayara data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Tayara API use?
Tayara actions currently cost 1-2 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call Tayara from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call tayara actions with the same key, credit pool and JSON envelope used by normal REST requests.