Tayara APItayara.tn ↗
Access Tayara.tn classified ads via API. Search listings, filter by category/location/price, retrieve seller contacts, shops, and categories.
What is the Tayara API?
The Tayara.tn API provides 5 endpoints for searching, filtering, and extracting data from Tunisia's largest classified ads platform. Use search_ads to find listings by keyword, get_ad_detail to pull a specific ad's seller phone number, publisher info, and category-specific parameters, or list_shops to enumerate all active boutiques with their contact details. Response objects include price in Tunisian Dinars, geo-coordinates, images, and structured metadata.
curl -X GET 'https://api.parse.bot/scraper/bf1aa8ba-a2d5-41be-94f8-5cd4155bf779/search_ads?limit=5&query=voiture&offset=0' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace tayara-tn-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.tayara_tn_api import Tayara, AdSummary, Ad, Shop, Category
tayara = Tayara()
# List available categories
for category in tayara.categories.list():
print(category.name, category.id)
# Search for ads by keyword
for ad in tayara.adsummaries.search(query="voiture"):
print(ad.title, ad.price, ad.location.governorate)
# Get full details for a specific ad
for item in tayara.adsummaries.search(query="isuzi"):
detail = item.details()
print(detail.title, detail.phone, detail.currency)
for param in detail.parameters:
print(param.label, param.value)
break
# List ads filtered by category and location
for ad in tayara.adsummaries.list(category_id="60be84bc50ab95b45b08a094", governorate="Sfax"):
print(ad.title, ad.price, ad.location.delegation)
# Browse all shops
for shop in tayara.shops.list():
print(shop.name, shop.phone, shop.email)
Full-text search over Tayara.tn classified ads. query matches title and description; results are sorted by recency. Paginates via offset. Each listing includes id, title, description, images, price, metadata (publisher, publish date, subcategory), and location (governorate, delegation).
| Param | Type | Description |
|---|---|---|
| limit | integer | Number of results per page. |
| query | string | Search keyword (e.g. 'voiture'). Omitting returns all recent ads. |
| offset | integer | Pagination offset (number of results to skip). |
{
"type": "object",
"fields": {
"count": "integer total number of listings returned in this page",
"limit": "integer page size used",
"offset": "integer pagination offset used",
"listings": "array of ad listing objects"
},
"sample": {
"data": {
"count": 5,
"limit": 5,
"offset": 0,
"listings": [
{
"id": "6a293800a849fd3c0e18598b",
"price": 300000,
"title": "Voiture ISUZI 10 chevaux",
"images": [
"https://storage.googleapis.com/tayara-migration-yams-pro/be/be2d012d-0de1-4bbf-b885-4fc9d2fe414e"
],
"location": {
"delegation": "Djerba Houmt Souk",
"governorate": "Médenine"
},
"metadata": {
"state": 2,
"publisher": {
"id": "",
"name": "bachir hanini",
"avatar": "",
"isShop": false,
"isApproved": false
},
"meiliSynced": true,
"producttype": 0,
"publishedOn": "2026-06-10T10:10:08.000Z",
"subCategory": "60be84be50ab95b45b08a0a4"
},
"description": "Voiture ISUZI 10 chevaux direction assistée"
}
]
},
"status": "success"
}
}About the Tayara API
Search and Browse Listings
The search_ads endpoint accepts a query string (e.g. 'voiture') plus limit and offset for pagination. It returns a listings array where each object carries an id, title, description, images, price, and a location object. Omitting the query parameter returns the most recent ads across all categories. The list_ads endpoint adds more targeted filtering: pass category_id (obtained from get_categories), sub_category_id, governorate (e.g. 'Sfax'), delegation (e.g. 'Hammam Chott'), min_price, and max_price to narrow results. Both endpoints return a top-level count so you can implement pagination without a separate call.
Ad Details and Seller Contact
Once you have an ad_id from either listing endpoint, pass it to get_ad_detail to get the full record. This response includes the seller's phone number, a publisher object with fullname, phonenumber, and email, a location object with governorate, delegation, and coordinates, and a parameters array of label/value pairs covering category-specific attributes (mileage for vehicles, surface area for real estate, etc.). The currency field is always DT (Tunisian Dinar), and metadata contains publish date and category info.
Shops and Categories
list_shops returns all active boutiques on the platform with no input required. Each shop object includes id, name, address, email, phone, category, description, and URLs for avatar and background images. get_categories returns both the main_categories array (each with a name and id) and a homepage_ads array of current featured listings. Use the category id values directly as the category_id parameter in list_ads to scope your queries.
The Tayara API is a managed, monitored endpoint for tayara.tn — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when tayara.tn changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official tayara.tn API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Aggregate vehicle listings from Tayara.tn using the Véhicules category ID and filter by governorate for a regional car-search tool
- Build a price-tracking dashboard by polling
list_adswithmin_price/max_pricefilters and storing price changes over time - Extract seller phone numbers and emails from
get_ad_detailto build a Tunisia-specific B2B leads dataset for a specific product category - Enumerate all active shops via
list_shopsto compile a directory of Tunisian e-commerce boutiques with contact details - Sync real estate listings filtered by delegation and category ID into a property portal that focuses on Tunisian governorates
- Monitor keyword-based ad volume using
search_adscounts over time to analyze supply/demand trends in a given market segment - Populate a category navigation from
get_categoriesmain_categories to let users drill into Tayara.tn data without hardcoding IDs
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Tayara.tn have an official developer API?+
How do I get a seller's phone number for a specific ad?+
get_ad_detail with the ad_id from a search_ads or list_ads result. The response includes a top-level phone field and a publisher object with phonenumber and email. The ad_id is a required parameter; there is no bulk-contact endpoint.Does `list_ads` support filtering by both governorate and price range at the same time?+
list_ads accepts governorate, delegation, min_price, max_price, category_id, and sub_category_id as independent optional filters. You can combine any subset of them in a single request. Pagination is handled via limit and offset.Does the API expose seller ratings or review history for shops and ad publishers?+
Are ads outside Tunisia covered, or is coverage limited to the Tunisian market?+
governorate and delegation reference Tunisian administrative divisions. The currency field is always DT (Tunisian Dinar). Listings from other countries are not part of this API.