Avito.ma
Avito.ma
/avito-ma/v1/search1 creditSearch Avito.ma by keyword and/or category, narrowed by city, district, price range, seller type and Avito's own ad flags. Covers every vertical on the site — phones, cars, apartments, furniture, jobs, services — and returns Avito's own result page (about 35-38 rows) with the total, the price both as a number and as the string the card prints, the seller's public profile and that vertical's own attribute rows. Every filter is verified against Avito's own parse of the request, so a value Avito does not understand is reported instead of quietly returning the whole catalogue. Give at least one of `q` or `category`.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| q | optional | — | Free-text keyword. Avito.ma's own search is French/Arabic and matches the ad title and body ('iphone', 'appartement', 'voiture occasion', 'شقة'). Optional: give `category` instead to browse a whole section. At least one of `q` or `category` is required. |
| category | optional | — | Avito.ma category id — a root (7100 Market, 1000 Immobilier, 2000 Véhicules, 6000 Entreprise) or a leaf (5010 phones, 2040 used cars, 1010 apartments). Call the `categories` action for the live tree with every id. |
| city | optional | — | One Moroccan city, as its Avito slug or its name — 'casablanca', 'Marrakech', 'fes' (Avito strips the accents: Fès → fes, Béni Mellal → beni_mellal). The `locations` action lists every one Avito publishes with its slug and its live ad count. A city Avito does not know is rejected, never silently widened to the whole country. |
| area | optional | — | A district inside the chosen city ('maarif', 'medina_de_rabat'). Requires `city`. Take it from the `locations` action, which lists every city's districts. |
| ad_type = sell | optional | sell · rent | Ads offered for sale or ads offered for rent. Only applies to a keyword search — a `category` already carries its own ad type (the `categories` action shows it per node). |
| price_min | optional | 0– | Lowest price, in the currency the ads publish (Moroccan dirham, printed 'DH'). Either bound may be given alone. |
| price_max | optional | 0– | Highest price, in the currency the ads publish. |
| seller_type | optional | private · professional | Restrict to private individuals or to professional sellers/shops. Each returned row echoes its own `seller_type`. |
| ad_options | optional | has_price · has_image · hotdeal · urgent | One of Avito's own ad flags: only ads with a price, only ads with a photo, only promotions, only urgent ads. |
| page = 1 | optional | 1– | 1-based page number. Avito serves about 35-38 rows a page and the page size is not adjustable. Page forward with meta.next_page; consecutive pages of a live feed overlap by a row or two. |
| lang = fr | optional | fr · ar | Interface language for the category and location names Avito prints. Ad titles and bodies are whatever the seller wrote, in French or Arabic, either way. |
/avito-ma/v1/detail1 creditOne Avito.ma ad in full, by its `list_id` or by its address: title, the whole body text, price with the currency the ad publishes, category path, city and district, posting time, the complete photo gallery, the public seller profile with its store id and listing count, and the ad's own attribute rows — storage and condition for a phone, year, mileage, gearbox and fuel for a car, rooms, surface and floor for an apartment. A removed or expired ad answers NOT_FOUND (Avito redirects it to a search page with HTTP 200, which this engine detects).
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| list_id | optional | — | The ad's `list_id` from a search result — the number that ends an avito.ma ad address. Give this or `url`. |
| url | optional | — | Full avito.ma ad address, either the short /vi/<id>.htm form or the long friendly one. Use `list_id` when you already have the number. |
| lang = fr | optional | fr · ar | Interface language for the category and location names Avito prints. Ad titles and bodies are whatever the seller wrote, in French or Arabic, either way. |
/avito-ma/v1/categories1 creditThe live Avito.ma category tree — an all-categories root plus the four sections (Avito Market, Immobilier, Véhicules, Entreprise) with every branch and leaf below them — 153 nodes on 2026-10-01 — each with its id, its French name, its ad type (sell, let, vacation rent, co-rent) and the url slug Avito uses for it. Use it to get the `category` id that `search` takes.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| lang = fr | optional | fr · ar | Interface language for the category and location names Avito prints. Ad titles and bodies are whatever the seller wrote, in French or Arabic, either way. |
/avito-ma/v1/locations1 creditEvery city and town Avito.ma publishes — 597 of them on 2026-10-01 — with its id, the slug `search` takes, the live number of ads in it, and the districts inside it. This is the live filter block Avito builds its own city picker from, so the ad counts are current.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| city | optional | — | Return only this city (by slug, name or id) and its districts. Omit for all of them. |
| lang = fr | optional | fr · ar | Interface language for the category and location names Avito prints. Ad titles and bodies are whatever the seller wrote, in French or Arabic, either way. |
curl -X POST https://api.reefapi.com/avito-ma/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"q":"iphone","category":5010}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.