Index.cy Cyprus Real Estate Scraper: Sales, Rentals, Auctions avatar

Index.cy Cyprus Real Estate Scraper: Sales, Rentals, Auctions

Pricing

from $20.00 / 1,000 listing rows

Go to Apify Store
Index.cy Cyprus Real Estate Scraper: Sales, Rentals, Auctions

Index.cy Cyprus Real Estate Scraper: Sales, Rentals, Auctions

Scrape index.cy Cyprus real estate: sale and rent listings, price drops, new-build projects, agencies and bank auctions. Export to CSV, Excel, JSON or XML.

Pricing

from $20.00 / 1,000 listing rows

Rating

0.0

(0)

Developer

RecordsData

RecordsData

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

RecordsData

🏠 Index.cy Cyprus Real Estate Scraper: Listings, Price Drops, Projects, Agencies & Auctions

Index.cy Cyprus Real Estate Scraper exports property data from index.cy, the Cyprus real estate portal: sale and rent listings with price, price drops, area, bedrooms, location, energy class, photos and the agency behind each ad, plus new-build projects, agencies, developers and bank auctions. Export CSV, Excel, JSON or XML. No login, no API key, no proxy.

The Index.cy Cyprus Real Estate Scraper turns the Cyprus property market into a dataset you can filter, sort and join. On 2026-10-11 the live catalog held 33,515 listings for sale and 3,094 for rent, 2,181 new-build projects, 398 agencies, 640 developers and 399 upcoming bank and Land Registry auctions. The Actor reads the search results the website itself uses and the public listing pages with plain HTTP requests, so a run is fast: no browser and no proxy. The whole sale catalog, 1,397 result pages, is reachable.

🎯 What does the Index.cy scraper do?

  • Scrapes index.cy listings for sale and for rent: apartments, houses and villas, land and plots, offices, commercial premises and whole buildings, in all five districts (Limassol, Paphos, Larnaca, Nicosia, Famagusta) and about 520 towns and areas.
  • Returns price, currency, price per square meter, price drops (amount, previous price, percent), covered area, plot area, bedrooms, bathrooms, floor, energy class, furnishing, parking, pool, view and amenities for every listing.
  • Adds the purchase cost estimate the site shows for sales (VAT range, transfer fee, total) and the monthly cost estimate and deposit it shows for rentals.
  • Gives location, postal code, coordinates where the site publishes them, distance to the nearest beach, airport and school, and the listed places nearby.
  • Returns all photos, the full description and the publication date of each ad (Fetch full listing details on, the default).
  • Tells you who sells: agency, developer or private seller, and for businesses the agency name, page, logo, registration number, license number and active listing count.
  • Filters by operation, property type, district, town or area, bedrooms, bathrooms, price, covered area, plot area, condition, seller type, view, energy class, furnishing, pool, amenities, construction year, pets, keywords, good deals, price drops and posted within N days, and sorts by relevance, newest or price.
  • Reads new-build projects (developer, delivery status, price from, unit types, bedrooms range, completion), agencies and developers (registration, license, listing counts, opening hours) and bank auctions (reserve price, auction date, bidding window, guarantee, conditions, notice text).
  • Adds optional market insight per listing from the site's own listing API: price history, percent against the area average, median price per square meter, estimate range and withdrawn status.
  • Has an only-new mode for scheduled runs: you get just the rows that were not in your previous run of the same search.

📊 Index.cy property data: which fields do you get?

Every row is one record with recordType set to listing, project, agency or auction. A listing row carries about 60 of the 126 listing columns, depending on what the ad states; the whole dataset has 188 columns over the four record types.

FieldColumns
IdentitylistingId, url, title, recordType, operation, sourceSite, scrapedAt
Priceprice, priceOnRequest, currency, pricePeriod, vatOnTop, pricePerM2, priceChange, previousPrice, priceChangePct, isGoodDeal
PropertypropertyType, propertyTypeLabel, condition, bedrooms, bathrooms, areaBuilt, areaLand, areaInternal, areaCoveredVeranda, floor, totalFloors, yearBuilt, energyCertificate, furnishing, parking, pool, view, heating, airConditioning, titleDeed, hasTitleDeed, amenities
LocationlocationText, region, city, neighborhood, address, postalCode, country, latitude, longitude, nearestBeachKm, nearestAirportKm, nearestSchoolKm, nearbyPlaces
Cost estimatesvatEstimateMin, vatEstimateMax, transferFeeEstimate, totalCostEstimate, utilitiesEstimateMin, monthlyTotalEstimateMin, deposit, minimumTermMonths, moveInCostEstimate
SellersellerType, isPrivateSeller, agencyName, agencyUrl, agencyLogoUrl, agencyRegistration, agencyLicense, agencySaleCount, agencyRentCount, referenceCode
Ad statuspublishedAt, postedAgo, postedDaysAgo, updatedAgo, views, listingBadges, isPromoted, isJustListed, similarAdvertCount, similarListingIds
Media and textimageUrl, images, imageCount, description, descriptionPreview, videoUrl
Market insight (optional)status, priceBadge, vsAveragePct, priceHistory, priceHistoryCount, firstListedPrice, priceChangeSinceFirstListed, marketMedian, marketDiffPct, marketComparables, estimateLow, estimateHigh, estimateVerdict, alsoListedByCount
ProjectsprojectId, completionStatus, projectType, priceFrom, bedroomsMin, bedroomsMax, areaBuiltMin, areaBuiltMax, unitTypes, distanceToSeaM, developerName, listingCount
Agencies and developersagencyId, companyType, agencyName, registrationNumber, licenseNumber, legalName, agentCount, projectCount, openingHours, website, socialLinks, recentListingIds
AuctionsauctionId, auctionKind, auctionDate, biddingWindow, guaranteeDueText, minimumBidIncrement, completionTerm, auctioneer, conditions, noticeUrl, noticeText
Business contact (optional)phone, email on agency rows, auctioneerEmail on auction rows

On 55 live listings, price, title, location, photos and publication date were filled 100 percent of the time, bedrooms 75 percent (land has none) and energy certificate 49 percent. A missing value means the ad does not state it: the key is left out, never filled with a placeholder.

🧾 Index.cy listing example: what does a real result look like?

A real listing row from 2026-10-11 (the photo list, the description, the nearby places and the other adverts of the same developer are shortened or left out):

{
"imageUrl": "https://index.cy/wp-content/uploads/2026/10/Renderings_night2.jpg",
"recordType": "listing",
"listingId": "11753963",
"url": "https://index.cy/sale/11753963-1-bedroom-apartment-for-sale-in-geroskipou-paphos-district/",
"title": "1 Bedroom Apartment for Sale in Geroskipou, Paphos District",
"agencyName": "G & V Hadjidemosthenous Ltd",
"operation": "sale",
"propertyType": "apartment",
"propertyTypeLabel": "Apartment",
"condition": "under-construction",
"price": 185000,
"currency": "EUR",
"vatOnTop": true,
"pricePerM2": 3083,
"isPromoted": true,
"bedrooms": 1,
"bathrooms": 1,
"areaBuilt": 60,
"areaInternal": 52,
"areaCoveredVeranda": 8,
"floor": 1,
"totalFloors": 3,
"energyCertificate": "A",
"parking": "Covered",
"pool": "No",
"amenities": ["Balcony", "Parking", "Storage room"],
"locationText": "Geroskipou, Paphos district",
"region": "Paphos",
"city": "Geroskipou",
"address": "Geroskipou, 8201 Paphos, Cyprus",
"postalCode": "8201",
"country": "CY",
"latitude": 34.761796,
"longitude": 32.453596,
"nearestBeachKm": 3,
"nearestAirportKm": 6.7,
"nearestSchoolKm": 0.4,
"nearbyPlaces": [{ "category": "Beaches", "name": "CTO Plage", "distanceKm": 3 }],
"vatEstimateMin": 9250,
"vatEstimateMax": 35150,
"totalCostEstimate": 194250,
"description": "Apartment 102 at Georgia 12, a new two-block development in Geroskipou, Paphos by G & V Hadjidemosthenous Ltd, a Paphos family developer bui...",
"publishedAt": "2026-10-05T09:35:47.000Z",
"postedAgo": "6 days ago",
"postedDaysAgo": 6.01,
"updatedAgo": "6 days ago",
"views": 11,
"listingBadges": ["Under Construction", "Special"],
"sellerType": "developer",
"isPrivateSeller": false,
"agencyUrl": "https://index.cy/company/g-v-hadjidemosthenous/",
"agencyLogoUrl": "https://index.cy/wp-content/uploads/2026/10/gv_logo_square.png",
"agencySaleCount": 74,
"referenceCode": "GV-G12-102",
"imageCount": 12,
"images": ["https://index.cy/wp-content/uploads/2026/10/Renderings_night2.jpg", "https://index.cy/wp-content/uploads/2026/10/Renderings_night3.jpg"],
"similarAdvertCount": 5,
"similarListingIds": ["11818962", "11729804", "11719213"],
"sourceSite": "index.cy",
"scrapedAt": "2026-10-11T09:52:46.656Z"
}

Prices are plain numbers in euros (rentals are per month, pricePeriod says month). Areas are square meters, distances kilometers. Dates are ISO 8601 in UTC. Titles and descriptions are in English as the site shows them. An ad priced at a placeholder of 1 euro (exchange offers, price on request) has priceOnRequest: true and no price.

⚙️ Index.cy scraper input

FieldTypeExample
operationstring"rent"
districtsarray["limassol"]
maxPriceinteger (EUR)1500
fetchDetailsbooleantrue
maxItemsinteger50
{"operation": "sale", "districts": ["paphos"], "propertyTypes": ["house"], "priceDropsOnly": true, "maxItems": 50}

🚀 How to scrape Index.cy in 4 steps

  1. Create a free account at console.apify.com and open this Actor.
  2. Pick what to collect (listings, projects, agencies or auctions), the operation (sale or rent), property types, district, town and the other filters. Leave everything empty to get the newest listings across the whole island.
  3. Set Max Items and press Start. A 3-listing run with full details finishes in about 3 seconds.
  4. Download the dataset as CSV, Excel, JSON or XML, or read it through the Apify API.

To read one listing, one project, one agency or one auction, paste its index.cy URL in Start URLs or the listing id in Listing IDs. To reuse a search you built on index.cy, paste the search page URL: district, property type, bedrooms, price and the other filters in the address are understood.

📈 Index.cy scraper vs alternatives

No Actor on the Apify Store reads index.cy (store search read on 2026-10-11), so the closest alternatives are Actors for other Cyprus and Greece portals.

This ActorBazaraki ActorsSpitogatos Actor
Source siteindex.cybazaraki.comspitogatos.gr (Greece)
Price per 1,000 results$20.00 list, $40.00 with detailsFrom $1.95 to $1.99From $0.71
Price dropsFilter plus amount and percentDiff between runsNot stated
Projects, agencies, auctionsYes, own record typesSeller flag onlyAgency name only
New-only monitoringBuilt inChange flags (one Actor)Not stated

This Actor is the most expensive per row of the three, roughly ten times Bazaraki. The others read different sites, so they cannot replace it for index.cy data. The extra cost buys the detail page (description, photos, coordinates, cost estimates) as a second event, price drop fields, own record types for projects, agencies and auctions, and built-in new-only monitoring. Prices and features read on 2026-10-11 from each Store page; features marked not stated may exist.

💰 How much does the Index.cy scraper cost?

Pay per event, no subscription. Live prices on 2026-10-11:

EventPrice
Listing row$0.02
Listing details (default on)$0.02
New-build project row$0.025
Agency or developer row$0.025
Auction row$0.03
Market insight (optional)$0.05
  • 100 listings with full details: 100 x ($0.02 + $0.02) = $4.00.
  • 1,000 listings, list only (details off): $20.00.
  • A daily only-new run that finds 20 new listings with details: $0.80 per day.
  • 399 auctions: 399 x $0.03 = $11.97.
  • 25 listings with market insight (the default cap): 25 x $0.05 = $1.25 on top.

Runs that return nothing, or end with an input error row, are not charged.

💼 Index.cy scraper use cases

  • Real estate investors: compare pricePerM2 and vsAveragePct across districts and towns, spot price drops and good deals, and export the shortlist with coordinates.
  • Agents and brokers: watch new listings in a town with the only-new mode and send them to a CRM or spreadsheet.
  • Developers and builders: read competitor projects (delivery status, price from, unit types, bedrooms range) and the stock of each developer.
  • Auction and distressed-asset buyers: list upcoming bank and Land Registry auctions with reserve price, date, guarantee and notice text.
  • Market researchers and analysts: track asking prices, price drops and listing counts by district, type and operation over time with scheduled runs.

🔌 Index.cy scraper API, MCP and integrations

Run it from any language through the Apify API:

curl -X POST "https://api.apify.com/v2/acts/RecordsData~index-cy-scraper/runs?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"operation":"rent","districts":["limassol"],"bedrooms":["2"],"maxPrice":2000,"maxItems":50}'

Connect it to Make, Zapier, n8n, Google Sheets or Slack with Apify integrations.

Use it from an AI agent (MCP)

Add the Actor to the Apify MCP server at https://mcp.apify.com?tools=RecordsData/index-cy-scraper. The agent sees one tool, RecordsData/index-cy-scraper, described as: "Scrape index.cy, the Cyprus property portal: sale and rent listings with price drops, new-build projects, agencies and bank auctions." Example prompt:

Find 2-bedroom apartments for rent in Limassol under 1,500 euros on index.cy, only listings published in the last 7 days, and list price, area and agency.

The agent calls the tool with operation: rent, districts: ["limassol"], bedrooms: ["2"], maxPrice: 1500, postedWithinDays: 7 and reads the dataset rows.

The Actor reads public pages that index.cy shows to every visitor, without logging in, at about four requests per second, and it identifies itself in the request header. The site terms of use restrict systematic automated collection, so check them for your use case before you run large or recurring jobs. Private sellers' names, phone numbers, street addresses and reference codes are never output, their map pins are rounded to about 100 meters, and phone numbers or e-mail addresses typed into an ad text are masked. Agency, developer and auction data is business information. Business phone numbers and e-mails are returned only if you turn on the contact option. This is not legal advice: check the site terms and the rules that apply to your use of the data.

FAQ: Index.cy scraper questions and answers

Does the Index.cy scraper need a proxy or an index.cy account? No. It uses plain HTTP requests, a few at a time with a short pause between them. It needs no login, no API key and no proxy, and it runs from the Apify cloud without blocked requests, at about four requests per second.

How many listings does index.cy have? On 2026-10-11 the live catalog held 33,515 listings for sale and 3,094 for rent: Limassol district 18,471, Larnaca 5,236, Paphos 5,150, Nicosia 3,250 and Famagusta 1,267 for sale. It also lists 2,181 projects, 398 agencies, 640 developers and 399 auctions. The numbers move daily, so schedule the Actor.

Can I scrape index.cy rental listings? Yes. Set Operation to rent. Rentals have their own fields: monthly price, deposit, minimum term, estimated utilities and monthly total, pets policy. Filters that only exist for sales (views, good deals) or only for rentals (pets) return one free error row instead of a wrong result.

How do I find price drops on index.cy? Turn on Price drops only. The site marks a listing whose price went down, and each row carries priceChange, previousPrice and priceChangePct. For the full price history of a listing, turn on Add market insight: it returns every price the listing had and the percent against the area average.

How do I get only the new index.cy listings every day? Turn on Only new rows and schedule the Actor. It remembers the listings it already returned for the same search in a store of your own account and skips them, so each run returns just the new ones. Posted within days is the other way: it keeps listings first published in the last N days and ignores old ads that were only renewed.

Does it return phone numbers or owner names? Not for private sellers: no name, no phone, no street address, no reference code, and a rounded map pin. For agencies and developers you get the name, page, registration and license numbers, and the listing counts. Business phone numbers and e-mails are returned only when you turn on Include business contact data.

Why is market insight limited to a few listings per run? Market insight calls the site's own listing API, which allows about 30 calls an hour per IP address, so the Actor limits it with Max insights (25 by default) and keeps going without insight when the budget is used up. Use it for a shortlist, not for the whole catalog.

What are the project, agency and auction rows? A project row is a new-build development with its developer, delivery status, price from and unit sizes. An agency row is a real estate agency or a developer with registration, license, listing counts and opening hours. An auction row is a bank or Land Registry property auction with reserve price, date, bidding window, guarantee, completion term and the official notice text.

Why are some fields empty on a listing? Because the ad does not state them. Land has no bedrooms, rentals have no exact map, and only some ads fill energy class, floor or year built. Keep Fetch full listing details on: the search list alone has no description, photo gallery, coordinates, cost estimates or publication date.

How do I get help or ask for a missing field? Write to contact.punkrecordsdata@gmail.com with the search you ran and the field you need. Bug reports with a run link are the fastest to fix. Say whether you need sale or rent rows, so the fix can be tested on the right search.

Last updated: 2026-10-11