Looking for the overview — what this API returns, what it costs, and a call you can run without a key? See the Bazaraki API page →
Classifieds & Second-hand

Bazaraki API & Scraper

The Bazaraki API turns bazaraki.com, the classifieds site most of Cyprus buys and sells on (402,188 live ads on 2026-10-15), into JSON in four actions.

4 actionsLive JSON1,000 free credits$0.67–$1.50 / 1,000 creditsMCP-ready
Get a free keyOpen in playground

🤖 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 lists ads in any category, from Cars or Apartments to rent down to a single car model, and narrows them by free text, district (Nicosia, Limassol, Larnaca, Paphos, Famagusta), seller, EUR price band and the category's own filters: for cars the year, mileage, fuel type, gearbox, body type, engine size, colour, doors and extras; for property the number of bedrooms, area, furnishing and construction year. Rows come 30 to a page, sorted newest, cheapest, most expensive or by relevance, each with the EUR price as the site prints it, district and area, the short attribute line, photos, whether the ad is a paid VIP or TOP placement, and the seller's id, name and private-or-business flag. listing returns one ad in full: description, every attribute the ad lists, all photos, the date it was last raised, view and favourite counts, map coordinates when the seller published them, and the seller block with business flag, active ad count and member-since. categories walks the category tree with live ad counts and filters lists the filters and choices of any category. One ReefAPI key, the standard { ok, data, meta, error } envelope, no Bazaraki account.

Reference

Cars on Bazaraki by district — live counts on 2026-10-15

The Cars category (12,574 ads) split by the district filter, as the API returned it on 2026-10-15.

districtcar ads
Limassol5,671
Nicosia3,657
Larnaca1,501
Paphos1,264
Famagusta478

Counts move every minute as ads are posted, raised and removed. Electric cars were 197 of the 12,574; automatics 10,610.

Live example

Real request and response JSON

Captured from the indexed primary action, search, on .

Captured request
{
  "method": "POST",
  "url": "https://api.reefapi.com/bazaraki/v1/search",
  "headers": {
    "x-api-key": "$REEF_KEY",
    "content-type": "application/json"
  },
  "body": {
    "category": "car-motorbikes-boats-and-parts/cars-trucks-and-vans",
    "city": "limassol",
    "sort": "cheapest"
  }
}
Captured response
{
  "ok": true,
  "meta": {
    "api": "bazaraki",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 966,
    "record_count": 30,
    "bytes": 102769,
    "cache_hit": false,
    "upstream_requests": 1,
    "warnings": [],
    "past_last_page": false,
    "charged_credits": 2,
    "version": "1.0.0",
    "request_id": "1b3b05f0024a40d0",
    "queue_ms": 2.4,
    "fetched_at": "2026-10-15T17:02:51.435Z"
  },
  "data": {
    "rows": [
      {
        "id": 6740266,
        "slug": "nissan-juke-1-5l-2011",
        "url": "https://www.bazaraki.com/adv/6740266_nissan-juke-1-5l-2011/",
        "title": "Nissan Juke 1,5L 2011",
        "price": 3300,
        "currency": "EUR",
        "price_display": "€3.300",
        "price_display_matches": true,
        "price_description": null,
        "price_kind": "price",
        "price_is_from": false,
        "start_price": "€4.200",
        "city": "Limassol",
        "area": "Parekklisia Tourist Area",
        "location": "Limassol — Parekklisia Tourist Area",
        "published": "1 week ago",
        "category_id": 1522,
        "category_slug": "juke",
        "category_ancestors": [
          "Motors",
          "Cars",
          "Nissan"
        ],
        "features": [
          "300.000 km",
          "Manual",
          "Petrol"
        ],
        "description": null,
        "image": "https://cdn1.bazaraki.com/media/cache1/6b/a0/6ba0beaa683844623a0ad39b470f66d3.webp",
        "images": [
          "https://cdn1.bazaraki.com/media/cache1/fc/63/fc63ddc9395ed708ef1c7adcb5f6d44c.webp",
          "https://cdn1.bazaraki.com/media/cache1/06/57/0657024a3e213a8b670ba258dddd2e0d.webp",
          "https://cdn1.bazaraki.com/media/cache1/8c/0b/8c0bcd93d7f83b1b742c494d7fe9140c.webp"
        ],
        "image_count": 8,
        "has_video": true,
        "has_floor_plan": false,
        "labels": [],
        "promoted": true,
        "promotion": "VIP",
        "promotion_type": "premium",
        "seller": {
          "id": 11549776,
          "name": "Tony",
          "is_business": false,
          "verified": false,
          "logo": null
        }
      },
      {
        "id": 6775974,
        "slug": "opel-vauxhall-insignia-1-6l-2010",
        "url": "https://www.bazaraki.com/adv/6775974_opel-vauxhall-insignia-1-6l-2010/",
        "title": "Opel, Vauxhall Insignia 1,6L 2010",
        "price": 5500,
        "currency": "EUR",
        "price_display": "€5.500",
        "price_display_matches": true,
        "price_description": "Negotiable",
        "price_kind": "price",
        "price_is_from": false,
        "start_price": null,
        "city": "Limassol",
        "area": "Limassol - Agia Zoni",
        "location": "Limassol — Limassol - Agia Zoni",
        "published": "5 days ago",
        "category_id": 552,
        "category_slug": "opel-insignia",
        "category_ancestors": [
          "Motors",
          "Cars",
          "Opel, Vauxhall"
        ],
        "features": [
          "179.000 km",
          "Manual",
          "Petrol"
        ],
        "description": null,
        "image": "https://cdn1.bazaraki.com/media/cache1/25/78/25786a441efbd361544a4825dff064e1.webp",
        "images": [
          "https://cdn1.bazaraki.com/media/cache1/12/fe/12fe7d5695a8fc2315b30cf6dc84827c.webp",
          "https://cdn1.bazaraki.com/media/cache1/03/21/032164068b47eebf521fc7feec7cedee.webp",
          "https://cdn1.bazaraki.com/media/cache1/b5/73/b573c18271c47ec64bab6333afb96e7e.webp"
        ],
        "image_count": 12,
        "has_video": false,
        "has_floor_plan": false,
        "labels": [],
        "promoted": true,
        "promotion": "VIP",
        "promotion_type": "premium",
        "seller": {
          "id": 114542,
          "name": "Polymnios Michaelides",
          "is_business": false,
          "verified": false,
          "logo": null
        }
      },
      {
        "id": 6607503,
        "slug": "mercedes-benz-m-class-3-2l-2007",
        "url": "https://www.bazaraki.com/adv/6607503_mercedes-benz-m-class-3-2l-2007/",
        "title": "Mercedes-Benz M-Class 3,2L 2007",
        "price": 5700,
        "currency": "EUR",
        "price_display": "€5.700",
        "price_display_matches": true,
        "price_description": null,
        "price_kind": "price",
        "price_is_from": false,
        "start_price": "€7.500",
        "city": "Limassol",
        "area": "Agios Ioannis Lemesou",
        "location": "Limassol — Agios Ioannis Lemesou",
        "published": "Today",
        "category_id": 1442,
        "category_slug": "m-class",
        "category_ancestors": [
          "Motors",
          "Cars",
          "Mercedes-Benz"
        ],
        "features": [
          "250.000 km",
          "Automatic",
          "Diesel"
        ],
        "description": null,
        "image": "https://cdn1.bazaraki.com/media/cache1/fb/4f/fb4f3350a626ab90bcad1bcafb2746c8.webp",
        "images": [
          "https://cdn1.bazaraki.com/media/cache1/13/7f/137f12d964df6e0c09a18220cb45d414.webp",
          "https://cdn1.bazaraki.com/media/cache1/fe/65/fe6506bf89a763f9cecf039631ee9980.webp",
          "https://cdn1.bazaraki.com/media/cache1/c8/b3/c8b3a888ad9d99bcfbadf1bee6506a3b.webp"
        ],
        "image_count": 7,
        "has_video": false,
        "has_floor_plan": false,
        "labels": [],
        "promoted": true,
        "promotion": "VIP",
        "promotion_type": "premium",
        "seller": {
          "id": 74226,
          "name": "Ivan",
          "is_business": false,
          "verified": false,
          "logo": null
        }
      }
    ],
    "total": 5679,
    "total_is_exact": true,
    "page": 1,
    "page_size": 30,
    "has_more": true,
    "promoted_rows": 30,
    "sort": "cheapest",
    "category": {
      "id": 5,
      "name": "Cars",
      "path": "car-motorbikes-boats-and-parts/cars-trucks-and-vans/?city=12&ordering=cheapest",
      "is_job": false,
      "is_real_estate": false,
      "free_stuff": false,
      "ancestors": [
        {
          "id": 669,
          "name": "Motors",
          "path": "car-motorbikes-boats-and-parts"
        }
      ],
      "total_ads": 5679
    },
    "applied": {
      "city": "limassol"
    }
  }
}
Actions

What the Bazaraki API does

ActionDescriptionConcrete use caseKey params
searchSearch live ads: by category path, text, district, seller, EUR price band and the category's own filters, sorted newest / cheapest / most expensive / by relevance, 30 rows a page.Price-intelligence teams call search to search live ads.category, query, city, seller_id, price_min, ...
listingOne ad in full: title, description, EUR price (with the page's own ld+json offer price as a check), every attribute the ad lists, photos, publish date, views, location and the seller block.Classifieds aggregators call listing to get one ad in full.id, slug
categoriesThe category tree, one level at a time, with live ad counts: the top level, or the sub-categories of a given category path (brands under Cars, models under a brand, property types).Resale and arbitrage tools call categories to get the category tree, one level at a time, with live ad counts.category
filtersThe filters one category offers (the vocabulary `search.filters` accepts): key, type and every choice with its label.Lead-generation teams call filters to get the filters one category offers (the vocabulary `search.filters` accepts).category
Code samples

Call search from your stack

curl -X POST https://api.reefapi.com/bazaraki/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"category":"car-motorbikes-boats-and-parts/cars-trucks-and-vans","city":"limassol","sort":"cheapest"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.bazaraki.search with {"category":"car-motorbikes-boats-and-parts/cars-trucks-and-vans","city":"limassol","sort":"cheapest"}.
Use cases

Who uses this API and why

  • Price a used car in Cyprus: search a model path with year_min and mileage_max and read the EUR prices of comparable ads.
  • Track the rental market: search Apartments to rent in Limassol by bedrooms every day and follow counts and prices.
  • Monitor a dealer: search with seller_id to list one seller's live ads and watch prices change.
  • Build a Cyprus property feed: page through Real estate for sale with area and price filters and read each ad's coordinates and price per m².
  • Research job postings: search the Jobs section and read the salary each ad offers.
FAQ

Questions developers ask before integrating

Which filters can I use?

Every category has its own. Call filters with a category path to get them with all their choices: Cars has price, body type, gearbox, engine size, year, fuel type, mileage, seats, colour, drive, extras and doors; Apartments to rent has price, type, bedrooms, area, furnishing, must-haves, pets, online viewing and construction year. Pass them to search as an object, by label: {"fuel-type": "Electric", "year_min": "2021"}. A filter or value the category does not have is rejected with the list of what it does have.

Why is the cheapest car not first when I sort by cheapest?

Bazaraki always lists paid VIP ads first, then TOP ads, then regular ads, and sorts inside each group. In the whole Cars category the VIP group alone filled the first three pages on 2026-10-15. Every row carries promotion_type (premium, top or regular), so you can separate the groups yourself.

Is the date the date the ad was posted?

No. Bazaraki shows the date an ad was last raised to the top, and sellers raise ads often: on 30 sampled ads the published date equalled the last raise date 30 times and the original posting date only 16 times. The API returns it as date_raised so it is not mistaken for the posting date. Search rows carry the site's own relative text ("32 minutes ago").

Do I get the seller's phone number?

No. Bazaraki shows phone, WhatsApp and e-mail only to signed-in users, and the API does not sign in. You get the seller's id, name, whether the account is a business or a company, whether it is verified, how many ads it has live and since when it has been posting, its profile page and website when it has one, and which contact channels the ad offers.

How many results can I page through?

All of them, 30 a page. The Cars category ran to page 420 for 12,574 ads; the page after the last returns no rows and has_more turns false. One limit: with a text query Bazaraki stops counting near 1,000 (a search for bmw in Cars reported 997 while the BMW category holds 1,520), so total_is_exact is false when a text search reports 990 to 999.

Are prices in euros?

Yes, every price is EUR. price is the number and price_display the site's own text (€26.900); the two agreed on every priced row we checked across 15 categories. Job ads carry the salary (price_kind salary), free items 0 (free), and ads with Call for price or Negotiable have no number (on_request).

Can I get a single car model or property type?

Yes. categories with no argument returns the 15 top-level sections with live counts; pass any path back to go one level down (Cars → 66 makes → each make's models, BMW alone has 44). Any path it returns is a valid search category.

What is the Bazaraki API?

Bazaraki API is a ReefAPI endpoint group for bazaraki, cyprus's largest classifieds site, as json: cars, property, jobs and everything else, searched with each category's own filters, with eur prices, photos and the seller. It returns live JSON through POST requests under /bazaraki/v1.

Is the Bazaraki API free to try?

Yes. ReefAPI starts with 1,000 free credits, no card required. Bazaraki calls use the same shared credit balance as every other ReefAPI engine.

Do I need a Bazaraki login or account?

No login to Bazaraki 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 Bazaraki 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 Bazaraki API use?

Bazaraki 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 Bazaraki from an AI assistant or MCP client?

Yes. Connect ReefAPI once through MCP and your assistant can call bazaraki actions with the same key, credit pool and JSON envelope used by normal REST requests.

Is the Bazaraki API a Bazaraki scraper?

It is the managed alternative to a DIY Bazaraki scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same bazaraki, cyprus's largest classifieds site, as json: cars, property, jobs and everything else, searched with each category's own filters, with eur prices, photos and the seller back as clean JSON.

docs / bazaraki

Bazaraki

Bazaraki, Cyprus's largest classifieds site, as JSON: cars, property, jobs and everything else, searched with each category's own filters, with EUR prices, photos and the seller.

base /bazaraki/v14 endpoints
post/bazaraki/v1/listing2 credits

One ad in full: title, description, EUR price (with the page's own ld+json offer price as a check), every attribute the ad lists, photos, publish date, views, location and the seller block.

ParameterAllowed / rangeDescription
idrequired1–The ad's numeric id — the `id` of a search row, or the number in `bazaraki.com/adv/<id>_<slug>/`. A full ad URL is accepted too.
slugoptional—Optional: the row's `slug`. Saves one small lookup; resolved from the id when absent.
Try in playground →
post/bazaraki/v1/categories1 credit

The category tree, one level at a time, with live ad counts: the top level, or the sub-categories of a given category path (brands under Cars, models under a brand, property types).

ParameterAllowed / rangeDescription
categoryoptional—A category `path`; omit it for the top level. Returns that category and its sub-categories with live ad counts (brands under Cars, models under a brand).
Try in playground →
post/bazaraki/v1/filters2 credits

The filters one category offers (the vocabulary `search.filters` accepts): key, type and every choice with its label.

ParameterAllowed / rangeDescription
categoryrequired—A category `path` from the categories action.
Try in playground →
Built for volume
5M+ requests a day

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.

Missing a source?
We build it

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.

Support
2 minute median reply

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.

One key, one balance
Every API included

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.