Skip to content
    ↑↓ to choose · Enter to open

    · 15 min read

    Bazaraki Cyprus Classifieds Scraper: 15 Categories Covered (2026)

    By CrawlerBros Engineering Team

    Each listing record carries 24 output fields, including prices, seller details, images, coordinates, and full descriptions. You can query Cyprus's largest classifieds marketplace using 13 controls, with only 1 required to get started. The scraper extracts data directly from Bazaraki's 15 top-level categories, allowing you to filter by city, price range, and specific subcategories. It is designed for researchers, analysts, and developers who need structured data from Cyprus's primary classifieds hub, but is not for anyone who needs private seller contact details like email addresses or phone numbers, which the platform requires a logged-in session to access.

    Try it: open Bazaraki Cyprus Classifieds Scraper on Apify, sign in on the free plan and run the prefilled example.

    Can you try Bazaraki Cyprus Classifieds Scraper before paying?

    Yes. Apify's free plan includes $5.00 of prepaid usage every month and asks for no credit card. At $0.005 per result, that covers up to 1,000 results of Bazaraki Cyprus Classifieds Scraper a month, before run-start charges and platform usage.

    Bazaraki Cyprus Classifieds Scraper was last updated on 2026-08-07. It is one of 1,725 Actors CrawlerBros publishes on Apify, which together have 680,173 lifetime public runs and an average rating of 4.63 out of 5 across 416 reviews.

    What does it cost to run Bazaraki Cyprus Classifieds Scraper?

    Each result costs $0.005 on Apify's free plan, which is $5.00 per 1,000 results. Starting a run is charged separately at $0.005 per GB of Actor memory. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges.

    Apify plan Per result Per 1,000 results
    FREE $0.005 $5.00
    BRONZE $0.00433 $4.33
    SILVER $0.00367 $3.67
    GOLD $0.003 $3.00
    PLATINUM $0.003 $3.00
    DIAMOND $0.003 $3.00

    The result charge depends directly on the number of records written to the dataset, making maxItems the main control affecting your final bill. Turning on includeDetails performs an extra request per listing to retrieve full coordinates and specifications, which increases platform memory and run time but does not incur additional per-result fees. To run your initial feasibility checks cheaply, set maxItems to a low value like 10 and test your queries before scaling to larger runs.

    How do you run Bazaraki Cyprus Classifieds Scraper from the API?

    The schema marks 1 of its 13 controls as required: mode. Nothing in the payload below is illustrative. Those are the schema's prefilled defaults for Bazaraki Cyprus Classifieds Scraper, so the request works once your token is in place.

    Call the synchronous endpoint to start a run and receive dataset items in one request:

    curl -X POST "https://api.apify.com/v2/acts/crawlerbros~bazaraki-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{"mode":"search","searchQuery":"iphone"}'
    

    The same run from Python, using the official client:

    from apify_client import ApifyClient
    
    client = ApifyClient("<YOUR_APIFY_TOKEN>")
    
    run_input = {
      "mode": "search",
      "searchQuery": "iphone"
    }
    
    run = client.actor("crawlerbros~bazaraki-scraper").call(run_input=run_input)
    
    for item in client.dataset(run["defaultDatasetId"]).iterate_items():
        print(item)
    

    And from Node.js:

    import { ApifyClient } from 'apify-client'
    
    const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' })
    
    const input = {
      "mode": "search",
      "searchQuery": "iphone"
    }
    
    const run = await client.actor('crawlerbros~bazaraki-scraper').call(input)
    const { items } = await client.dataset(run.defaultDatasetId).listItems()
    console.log(items)
    

    Because the call is synchronous, your client waits for the whole run. Keep it for exploration. For scheduled work, start the run without waiting and collect the dataset afterwards, so network trouble costs you a retry rather than the results.

    Which Bazaraki Cyprus Classifieds Scraper inputs matter, and which can you skip?

    The primary control is mode, which must be set to either search for browsing the marketplace or byUrls to look up specific pages. If you select search, use searchQuery to find specific models or leave it blank and specify a category to browse unfiltered listings. Most users should keep includeDetails turned off on their initial runs to maximize execution speed and preserve platform credits.

    • mode (string): What to fetch. Default: "search".
    • searchQuery (string): Free-text keyword search, e.g. iphone, toyota, apartment. Leave empty to browse a category unfiltered. Default: "".
    • category (string): Restrict results to a top-level category. Default: "all".
    • subcategory (string): Drill down into a Real Estate or Motors subcategory (property type / vehicle type). Overrides category when set; leave empty to use the top-level category instead. Default: "".
    • city (string): Restrict results to a Cyprus city/district. Default: "all".
    • sortBy (string): How to order results. Default: "relevant".
    • minPrice (integer): Drop listings priced below this (EUR).
    • maxPrice (integer): Drop listings priced above this (EUR).
    • bedrooms (string): Restrict Real Estate listings to this number of bedrooms. Ignored for non-Real-Estate categories. Default: "".
    • condition (string): Restrict results to new or used items. Supported across most categories (Real Estate, Motors, Electronics, etc.); ignored where Bazaraki doesn't offer a condition attribute for that category. Default: "".
    • startUrls (array): Direct Bazaraki.com listing URLs to fetch, e.g. https://www.bazaraki.com/adv/6659275_iphone/. A bare numeric ID is not enough - Bazaraki's routing requires the URL's slug. Default: [].
    • includeDetails (boolean): When on, fetches each listing's detail page for extra fields (category breadcrumb, full description, coordinates, more photos). Slower but more complete. Default: false.

    The other 1 controls, with their defaults, are listed in the input schema on Bazaraki Cyprus Classifieds Scraper on Apify.

    Fixed-choice controls: mode accepts search (Search / browse listings), byUrls (Fetch specific listing URLs); category accepts 16 values (default all), including all (All categories), real-estate-for-sale (Real Estate for sale), real-estate-to-rent (Real Estate to rent), car-motorbikes-boats-and-parts (Motors (cars, motorbikes, boats, parts)); subcategory accepts 33 values (default ""), including "" ((none - use category)), real-estate-for-sale/houses (Real Estate for Sale: Houses), real-estate-for-sale/apartments-flats (Real Estate for Sale: Apartments, flats), real-estate-for-sale/commercial-property (Real Estate for Sale: Commercial property); city accepts all (All Cyprus), nicosia, limassol, larnaca, paphos, famagusta; sortBy accepts relevant (Most relevant), newest (Newest first), cheapest (Cheapest first), expensive (Most expensive first); bedrooms accepts "" ((any)), studio, 1 (1 bedroom), 2 (2 bedrooms), 3 (3 bedrooms), 4 (4 bedrooms), 5 (5 bedrooms), 6 (6+ bedrooms); condition accepts "" ((any)), new, used.

    What does Bazaraki Cyprus Classifieds Scraper return?

    The output records are structured for immediate analysis, containing clean location coordinates, parsed numeric prices in EUR, and detailed listing specifications. Note that the dataset does not contain private seller contact details like phone numbers, as Bazaraki requires a logged-in user session to reveal them. The output is highly suited for price trend analysis, localized supply research, and tracking market movements across Cyprus.

    • id, title
    • price, currencySymbol, currencyCode
    • pricePerSquareMeter (real estate listings, requires includeDetails)
    • cityName, areaName, location - from the search page; includeDetails refines location/cityName from the listing's own map
    • latitude, longitude (requires includeDetails; present when the listing has a map pin)
    • categoryPath[], categoryName (breadcrumb, requires includeDetails)
    • description (full text, requires includeDetails)
    • features[] - raw feature chips from the search card (e.g. bedroom count, area, condition) when Bazaraki shows them; unlabeled by the site itself, see Limitations
    • characteristics - full labeled key/value map from the listing's own "characteristics" panel, exactly as Bazaraki labels it for that category (e.g. {"Property area": "77 m²", "Mileage (in km)": "22826 km"}); requires includeDetails
    • Promoted typed fields parsed from characteristics when present for that listing's category, requires includeDetails:
    • imageUrl, imageUrls[], imageCount
    • isFeatured - true for VIP/premium listings
    • sourceUrl - the canonical Bazaraki.com listing page
    • recordType: "listing", scrapedAt

    These are the documented fields. Optional ones can be empty on a given record, so measure how often each field your deliverable depends on is populated across a real sample before automating the handoff.

    How do you build the workflow end to end?

    Open Bazaraki Cyprus Classifieds Scraper and work through these in order. Each step ends with something to check, so a bad configuration surfaces on a small run rather than a scheduled one.

    1. Verify the baseline configuration by setting mode to search and category to telephones.
    2. Define your geographic scope by setting city to limassol or another target district.
    3. Toggle includeDetails to true if your downstream analysis requires full descriptions, coordinates, or the complete photo gallery.
    4. Configure minPrice and maxPrice to match your target budget limits in EUR directly within the input settings.
    5. Input a low maxItems value such as 5 for your initial test run to inspect the payload structure without exhausting resources.
    6. Run the scraper and locate the output dataset to check the populated fields in the returned records.
    7. Verify that categoryPath and characteristics are present and fully mapped before scaling up maxItems to your desired target size.

    How do you apply it? Three worked playbooks

    These are Bazaraki Cyprus Classifieds Scraper's own documented use cases, each worked through as an operating pattern rather than a description.

    Use case 1: Vehicle price comparison

    Outcome: Monitor used car / motorbike listings

    Configure: Set mode to search, category to car-motorbikes-boats-and-parts, subcategory to car-motorbikes-boats-and-parts/cars-trucks-and-vans, sortBy to newest, and includeDetails to true.

    Working method: Execute a search for a target vehicle model. Extract mileageKm, year, and price from the characteristics object to build a price-depreciation profile across active listings.

    Deliverable: A structured database of Cyprus vehicle listings containing model year, mileage, and price metrics.

    Stop condition: The runner detects missing mileage data in consecutive vehicle records.

    Use case 2: Job market analysis

    Outcome: Pull listings from the Jobs category

    Configure: Set mode to search, category to jobs-and-services, and includeDetails to true.

    Working method: Execute a broad scrape of the Jobs category. Parse the description field for key job requirements and group the records by cityName to map geographic hiring hotspots across Cyprus.

    Deliverable: A spreadsheet containing job postings with employer names, categorized sectors, and parsed location fields.

    Stop condition: The scraped job listings return empty descriptions, indicating detail page fetches are failing.

    Use case 3: Price tracking / arbitrage

    Outcome: Watch electronics, phones and general items for deals

    Configure: Set mode to search, category to telephones, sortBy to newest, condition to used, and maxPrice to 800.

    Working method: Schedule the actor to run hourly. Compare incoming records against your target budget thresholds to flag newly posted, underpriced mobile devices.

    Deliverable: An automated alert payload containing newly scraped low-priced listings with direct sourceUrl links.

    Stop condition: The runner detects zero listings for three consecutive hourly runs during high-traffic daytime hours.

    What breaks, and how do you design around it?

    • Real Estate and Motors category pages use a different card layout. real-estate-for-sale, real-estate-to-rent and car-motorbikes-boats-and-parts render their listings in an older card layout than other categories; the actor detects and parses both layouts automatically, so browsing these 3 categories (with or without a keyword, at the top level or via subcategory) returns real listings either way.
    • A bare listing ID is not enough to fetch a specific listing. Bazaraki's URL routing requires the listing's own slug - mode=byUrls needs the full URL (e.g. https://www.bazaraki.com/adv/6659275_iphone/), not just the numeric ID.
    • features[] values (from the search-results card) are unlabeled. The search page shows small icon-tagged chips (e.g. bedroom count, floor area) without machine-readable labels in the page's own HTML - the actor passes these through as raw text so you can still see them. For labeled equivalents, turn on includeDetails: every listing's own detail page publishes a full labeled characteristics map (and the common ones are promoted to typed top-level fields like bedrooms, mileageKm, fuelType - see "Output per listing").
    • No private contact info. Bazaraki requires a logged-in session to reveal seller phone numbers, WhatsApp, and email; the actor only extracts publicly visible listing data.
    • sourceUrl is Cloudflare-protected. Bazaraki.com sits behind Cloudflare's bot-management, so sourceUrl (and any other bazaraki.com page link) returns a JS-challenge page to plain curl/non-browser HTTP clients - it opens normally in a real web browser. Image URLs (imageUrl/imageUrls[], served from cdn1.bazaraki.com) are not behind this protection and load directly.

    If you encounter Cloudflare challenges when testing the extracted sourceUrl values, use a real web browser to open the links instead of basic HTTP clients. For listings returned with unlabeled features in the search results, set includeDetails to true to parse the structured characteristics map from the item's individual detail page. When using mode set to byUrls, ensure you supply the full canonical listing URL with its slug rather than a bare numeric ID to prevent routing errors.

    When should you not use Bazaraki Cyprus Classifieds Scraper?

    Do not use this Actor if your project requires private seller communication channels, as Bazaraki masks telephone numbers and emails behind a login wall that this scraper does not bypass. If you need a classifieds dataset covering a different European region, you should use a localized scraper instead. For example, if you are targeting the Norwegian market, use the Finn.no Scraper. For the Austrian market, use the Willhaben Scraper. If your target is France, choose the Leboncoin Classifieds Scraper. For Croatia, use the Njuskalo.hr Scraper. Finally, if you are analyzing the US classifieds landscape, the Geebo Scraper is the correct alternative.

    What should you check before trusting the output?

    • Confirm that currencyCode is always populated and equals EUR for all priced records.
    • Assert that description and characteristics are present on every record when includeDetails is active.
    • Set up an automated filter to flag records where price is null to identify listings with unstated prices.
    • Verify that listing IDs are parsed cleanly and that sourceUrl matches the expected Bazaraki URL routing pattern.

    None of this proves a record is correct. It gives a scheduled Bazaraki Cyprus Classifieds Scraper run defined points where it should stop instead of quietly passing bad data downstream.

    Frequently asked questions

    Can I test this scraper before committing to a paid Apify plan?

    Yes. Apify's free plan includes $5.00 of monthly usage with no credit card, covering up to 1,000 results of this Actor. You can run test queries and explore the output structure without any upfront financial commitment.

    Why does the scraper charge for runs that do not return any classified listings?

    The run-start fee is charged every time a run starts, whether or not it returns results; per-result charges apply only to results written to the dataset. Apify also bills the platform usage each run consumes, at the rates of your Apify plan, on top of these charges, with each run start specifically charged $0.005 per GB of Actor memory.

    What is the pricing rate for extracting listings on the free plan tier?

    The pricing is $0.005 per result, which equals $5.00 per 1,000 results on the free tier. This is the highest price tier, and users on paid Apify plans pay a lower rate per result.

    Can I scrape the phone numbers or email addresses of the sellers?

    No. Bazaraki requires a logged-in session to reveal seller phone numbers, WhatsApp, and email; the actor only extracts publicly visible listing data. It does not bypass this authentication wall.

    How often is the Bazaraki Cyprus Classifieds Scraper maintained?

    The Actor was last updated on 2026-08-07. The publisher, CrawlerBros, has a track record of publishing 1,725 Actors on Apify with 680,173 combined lifetime runs and an average rating of 4.63 out of 5 across 416 reviews, which supports their maintenance efforts.

    Where to go next

    When you are ready to run it, open Bazaraki Cyprus Classifieds Scraper on Apify; the free plan covers up to 1,000 results a month.

    Start with the Bazaraki Cyprus Classifieds Scraper Actor page for the current input schema, pricing tier, and run history.

    Other Actors we maintain for related data:

    Related guides:

    Resources

    • Actor documentation, input schema, and pricing: verified against the published Actor on 2026-09-26.

    • Actor last updated by its maintainers on 2026-08-07.

    • Run outcome figures cover the 30 day public window ending 2026-09-26.

    • Bazaraki Cyprus Classifieds Scraper on Apify

    Featured actors

    Bazaraki Cyprus Classifieds Scraper

    Scrape Bazaraki.com - Cyprus's largest classifieds marketplace with real estate, cars, jobs, electronics and general items. Search by keyword, browse any of the 15 categories, filter by city/price/sort, or fetch specific listings by ID. Get price, seller, images, coordinates and full descriptions.

    Run on Apify ↗