XE Property Scraper avatar

XE Property Scraper

Pricing

from $1.76 / 1,000 property searches

Go to Apify Store
XE Property Scraper

XE Property Scraper

Scrape xe.gr (Χρυσή Ευκαιρία) for Greek homes, commercial space, land and parking. Every row says whether a private owner or an agency placed the ad, with asking price, €/m², size, bedrooms, floor, energy class, GPS and photos. Sale and rent, in Greek or English.

Pricing

from $1.76 / 1,000 property searches

Rating

0.0

(0)

Developer

SIÁN OÜ

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

xe.gr Scraper (Χρυσή Ευκαιρία) - Greek Property, Owner or Agency 🏛️

Store SIÁN Agency Store Idealista Store Rightmove Store WG-Gesucht

🎉 Every row says whether a private owner or an agency placed the advert, and you can search on it

For buyer's agents, relocation firms, market analysts and anyone tracking Greek property


🔎 What is the xe.gr Property Scraper — and when should you use it?

The xe.gr Property Scraper turns every live property advert on xe.gr (Χρυσή Ευκαιρία), Greece's biggest classifieds site into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

Use it when you need: Greek homes, commercial space, land or parking, for sale or to rent, returned as flat rows with the asking price, the price per square metre, size in square metres, bedrooms, bathrooms, floor, year built, energy class, GPS coordinates and every photo. Every row also says whether a private owner or an estate agency placed the advert, and that is filterable. xe.gr is a general classifieds brand rather than a dedicated portal, so Greek owners still advertise there directly, and the portal sells that same filter to its own visitors. Turning on the detail switch adds the street address, the seller's full advert text, the condition and up to sixty characteristics. Output comes back in Greek or in English, the same adverts either way.

Use something else when: the property is outside Greece. Use Idealista Property Scraper for Spain, Italy and Portugal — the same Mediterranean buyer, a different market. Use Rightmove Property Scraper for England, Scotland and Wales. Use WG-Gesucht Property Scraper for German flatshares and rentals, also mostly placed by the people who live there. This actor reads live adverts only, and Greece publishes no sold-price register at all, so no scraper of any Greek source can tell you what a property actually sold for. Every figure here is what the advertiser is asking. Advertiser phone numbers are deliberately not collected: they sit behind a reveal control and a large share of these adverts are placed by private individuals.

🤖 Use with AI agents

Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/xe-property-scraper

Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

I want Greek property market data from xe.gr, split by who placed the advert using the Apify Actor `sian.agency/xe-property-scraper`.
Use it when I need: Greek homes, commercial space, land or parking, for sale or to rent, returned as flat rows with the asking price, the price per square metre, size in square metres, bedrooms, bathrooms, floor, year built, energy class, GPS coordinates and every photo. Every row also says whether a private owner or an estate agency placed the advert, and that is filterable. xe.gr is a general classifieds brand rather than a dedicated portal, so Greek owners still advertise there directly, and the portal sells that same filter to its own visitors. Turning on the detail switch adds the street address, the seller's full advert text, the condition and up to sixty characteristics. Output comes back in Greek or in English, the same adverts either way.
Don't use it when: the property is outside Greece — use smart-idealista-scraper or rightmove-property-scraper or wg-gesucht-property-scraper instead.
How to call it: pick `transaction` (`rent` or `buy`) and `propertyKind` (`residence`, `commercial`, `land`, `parking`), and set `listedBy` to `owner`, `agency` or `any` — that last one is the reason to use this actor rather than a dedicated portal. Put plain Greek or English place names in `locations` (`Αθήνα`, `Thessaloniki`, `Γλυφάδα`, `Κολωνάκι`); they are resolved against xe.gr's own place index, and a name it does not know is reported rather than silently ignored. Leave `locations` empty to sweep all of Greece. Narrow the price and the size with `minPrice`, `maxPrice`, `minSizeSqm` and `maxSizeSqm`. Narrow the property itself with `minBedrooms`, `maxBedrooms`, `minBathrooms`, `minFloor`, `maxFloor`, `minConstructionYear`, `maxConstructionYear`, `minEnergyClass`, `maxEnergyClass` and `condition`. `keywords` searches the advert text, `addedInLastDays` bounds how recent it is, and ten `only*` switches cover furnished, pets, parking, lift, air conditioning, garden, pool, a view, photos and short-term lets. `propertyType` narrows to one type but only within its own kind — `apartment` and `maisonette` belong to `residence`, `office` and `store` to `commercial`, `plot` to `land`, and a mismatched pair is refused rather than quietly returning nothing. `outputLanguage` switches the text fields between `el` and `en` over the same adverts and the same ids. `includeDetails` opens each advert page for the street address and the full text at an extra charge per property. To expand adverts you already have, set `operation` to `detail` and pass `listingUrls`; to reuse a search you built on xe.gr, paste the address into `searchUrls`. One search returns at most 9,996 rows however large the market is, so slice a national sweep by area, price band or type.
Start with this input:
{
"operation": "search",
"transaction": "rent",
"propertyKind": "residence",
"listedBy": "owner",
"locations": [
"Γλυφάδα"
],
"maxResults": 100
}
Ask me which Greek city or neighbourhood, whether they are buying or renting, and whether they want adverts placed by owners, by agencies, or both, then run the Actor and summarise the results as a table.

Things you can ask your agent for:

  • Find every apartment in Glyfada placed by a private owner rather than an agency, under 1,200 euro a month.
  • What is the median asking price per square metre for homes for sale in Kolonaki, and how does it compare with Piraeus?
  • List homes to rent in Thessaloniki added in the last day, in English, with the street address and the full advert text.
  • Show me energy class D or worse houses for sale in Chania built before 1990, ranked by price per square metre.
  • How has the share of Athens rentals placed by owners rather than agencies changed over the adverts posted this week?

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/xe-property-scraper.md.

📋 Overview

xe.gr is a general classifieds brand rather than a property portal, and that is the whole point. It is where Greek private owners still place their own adverts, alongside the agency stock. This Actor reads the portal's live property section and hands you every advert as a flat row, with the owner-or-agency marker on each one.

Why professionals choose it:

  • Owner or agency, on every row and in the search: listedBy reads owner or agency, and you can ask for one or the other. About a third of the freshest rental adverts are owner-placed, against roughly one in ten on the sale side.
  • 🎯 36 filters that were each proved to work: every control here was tested against xe.gr's own live result count before it was offered. Thirteen more that looked plausible were dropped because the portal ignores them.
  • 🇬🇷 Greek or English, same adverts: the portal publishes both, so ids, prices, sizes and coordinates match exactly and only the display text changes.
  • 💰 $2.00 per 1,000 properties, charged per row delivered and never for a failed one.
  • 💎 Zero infrastructure settings: no proxy picker, no concurrency dial, no retry count. Nothing for you to get wrong.
  • Four property kinds in one Actor: homes, commercial space, land and parking. Live today that is 32,200 homes to rent, 128,500 for sale, 61,700 commercial spaces to rent, 258,500 for sale and about 96,000 plots of land.

✨ Features

  • 🙋 Private-owner search (σπίτι χωρίς μεσίτη): the segment xe.gr sells as a paid feature to its own visitors. Agency-only is narrowed by the portal itself. Owner-only is selected from the results it publishes to everyone, and you are billed only for the rows kept.
  • 🏘️ Homes, commercial, land and parking: four sections of the Greek market, one Actor, one row shape.
  • 📊 Price per square metre on every row, alongside the asking price and the size in τ.μ.
  • Energy class from both ends: floor it at B for certified stock, cap it at C to find the properties a renovation buyer wants.
  • 🧭 GPS coordinates on every advert, so results drop straight onto a map.
  • 📸 Full photo sets, plus video and virtual-tour links where the seller published them.
  • 🆕 Recency filter: "posted in the last N days" turns this into a cheap daily monitor. One day leaves about 970 live rentals, seven days about 3,980.
  • 📄 Detail option: street address, the seller's full listing text, the condition and up to 62 characteristics.
  • 🔗 Paste an xe.gr search URL: build the search in your browser, hand over the link, and it is read exactly as the portal wrote it.
  • 📥 Flat JSON rows: export as CSV, Excel or JSON, or pull them over the API.

🎬 Quick Start

Pick an area, choose rent or sale, press Start. Rows land in the dataset as they are found, and a run report is written to the key-value store. Nothing else to configure.

curl -X POST "https://api.apify.com/v2/acts/sian.agency~xe-property-scraper/runs?token=YOUR_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"operation":"search","transaction":"rent","propertyKind":"residence","locations":["Γλυφάδα"],"maxResults":100}'

🚀 Getting Started (3 Simple Steps)

Step 1: Name your areas

Type Greek place names in Greek or in English: Αθήνα, Thessaloniki, Γλυφάδα, Chania, Κολωνάκι. Each one is checked against xe.gr's own place index before the search runs, so a name the portal does not recognise comes back as a warning rather than an empty result. Leave the list empty to sweep the whole country.

Step 2: Choose what you are looking at

Rent or sale, and which kind of property. Then set "Placed by" if you want only private owners or only agencies.

Step 3: Press Start

Add price, size, room, energy or feature filters if you want them. Switch the output to English if your team does not read Greek.

That's it. Within a minute or two you'll have:

  • Every matching advert as a spreadsheet row
  • The owner-or-agency marker on each one
  • A run report showing what was found and what it cost

📥 Input Configuration

FieldTypeRequiredDescription
operationstringNosearch (default) or detail
transactionstringNorent or buy
propertyKindstringNoresidence, commercial, land or parking
listedBystringNoany, owner or agency
locationsarrayNoGreek place names, Greek or English. Empty means all of Greece
propertyTypestringNoOne type within the kind, e.g. apartment, office, plot
maxResultsintegerNoStop after this many rows. Ceiling 9,996 per search
includeDetailsbooleanNoAdd the street address, the full advert text and every characteristic
minPrice / maxPriceintegerNoEuro bounds. Monthly rent on rentals, total price on sales
minSizeSqm / maxSizeSqmintegerNoInterior floor area in square metres
minBedrooms / maxBedroomsintegerNoBedroom bounds, not total rooms
minBathroomsintegerNoMinimum bathrooms
minFloor / maxFloorintegerNo0 is the ground floor. Leave at -1 for any
minConstructionYear / maxConstructionYearintegerNoFour-digit year bounds
minEnergyClass / maxEnergyClassstringNoA+ down to G, bounded from either end
conditionstringNonewly_built, renovated, under_construction, needs_renovation
onlyFurnished, onlyPetsAllowed, onlyWithParking, onlyWithElevator, onlyWithAirConditioning, onlyWithGarden, onlyWithPool, onlyWithView, onlyWithPhotos, onlyShortTermAvailablebooleanNoMust-have switches, applied by xe.gr's own search
keywordsstringNoFree text matched inside the advert, in Greek or English
addedInLastDaysintegerNoOnly adverts published within N days
sortBystringNocreated_desc, price_asc, price_desc, or the portal's own ranking
outputLanguagestringNoel or en
listingUrlsarrayNoAdvert URLs for the detail operation (full addresses — Apify checks the field is a list of URLs before the run starts)
searchUrlsarrayNoPaste xe.gr result URLs instead of filling the form

Example — owner-placed rentals in Γλυφάδα and Βούλα, posted this week:

{
"operation": "search",
"transaction": "rent",
"propertyKind": "residence",
"listedBy": "owner",
"locations": ["Γλυφάδα", "Βούλα"],
"addedInLastDays": 7,
"minPrice": 500,
"maxResults": 200
}

Example — Athens apartments for sale, in English, with the full advert text:

{
"operation": "search",
"transaction": "buy",
"propertyKind": "residence",
"propertyType": "apartment",
"locations": ["Athens"],
"minSizeSqm": 70,
"outputLanguage": "en",
"includeDetails": true,
"maxResults": 100
}

Example — poorly rated houses in Χανιά for a renovation buyer:

{
"operation": "search",
"transaction": "buy",
"propertyKind": "residence",
"propertyType": "detached_house",
"locations": ["Χανιά"],
"maxEnergyClass": "E",
"maxConstructionYear": 1990,
"maxResults": 200
}

📤 Output

Every row is flat JSON with 59 fields. The most useful ones:

FieldTypeDescription
listingIdstringThe advert's id on xe.gr, stable across languages
propertyTitlestringThe advert title as published
propertyUrlstringLink back to the advert
listedBystringowner or agency
agencyName / agencyIdstringThe agency and its profile id, on professional adverts
priceEur / priceTextnumber / stringAsking price, numeric and as shown
pricePerSqmEurnumberPrice per square metre
sizeSqmnumberInterior floor area
bedrooms / bathroomsintegerRoom counts
floorLabels / buildingFloorsarray / integerWhich floor, and how many the building has
constructionYear / renovationYearintegerYear built and year renovated
energyClass / conditionLabelstringEnergy certificate band and condition
area / areaPartsstring / arrayArea as published, and its parts
streetAddressstringStreet address (detail option)
latitude / longitudenumberGPS coordinates
advertTextstringThe seller's own listing text (detail option)
characteristicsobjectUp to 62 attributes (detail option)
photoUrls / videoUrls / virtualTourUrlsarrayMedia on the advert
listedAgoText / publishedDatestringHow long ago it was posted, and the date
languagestringel or en, matching what you asked for

Example row:

{
"listingId": "5e67c7ef-6f76-4c5b-bc85-3dcb421d0b3c",
"propertyTitle": "Μεζονέτα 119 τ.μ.",
"propertyUrl": "https://www.xe.gr/property/d/enoikiaseis-katoikion/5e67c7ef-6f76-4c5b-bc85-3dcb421d0b3c/glyfada-paniwnia-1950-119",
"listedBy": "owner",
"agencyName": null,
"agencyId": null,
"transactionType": "RENT",
"propertyKind": "residence",
"propertyType": "MAISONETTE",
"priceEur": 1950,
"priceText": "1.950 €",
"pricePerSqmEur": 16.39,
"sizeSqm": 119,
"sizeText": "119 τ.μ.",
"area": "Γλυφάδα (Πανιωνία)",
"listedAgoText": "πριν από 2 ημέρες",
"language": "el"
}

💼 Use Cases & Examples

1. Owner-Placed Listings for Buyer's Agents

Agents who want to reach a seller before anyone else signs them.

Input: An area, "Placed by" set to private owners, posted in the last day, run each morning. Output: Only the adverts a private individual placed, with the advert link on each row. Use: Work a daily list of owners who have just come to market. xe.gr charges its own visitors for this segmentation, and none of the other xe.gr Actors on the Store offers it as a filter.

2. Greek Property Search In English

Relocation firms and international buyers whose clients read no Greek.

Input: The same search with the output language set to English, and the detail option on. Output: Piraeus (Neo Faliro), 53 sq.m., €170,000, 1 day ago, with the street address and the seller's text attached. Use: Hand a client a readable shortlist. The ids and numbers match the Greek run exactly, so the two can be joined.

3. Renovation And Yield Screening

Investors and renovation buyers hunting undervalued stock.

Input: Energy class capped at C or worse, built before 1980, under a chosen price per square metre. Output: The weakest stock in the area, with size, floor, year built and coordinates. Use: Rank candidates on €/m² against the rental asking prices in the same neighbourhood, then shortlist the ones that close the gap after works.

4. Building A Greek Property Index

Analysts and data teams tracking the market month to month.

Input: Homes, commercial, land and parking sweeps on a schedule, joined on the advert id. Output: Coordinates, price per square metre and the owner-or-agency flag on every row. Use: Track asking prices by area and property kind. The owner share of new adverts is an indicator in its own right, and no other xe.gr Actor exposes it.

5. Agency Market Share And Stock Tracking

Proptech vendors and agency principals watching the competition.

Input: An area, "Placed by" set to agencies, run weekly. Output: Agency name and profile id on every professional advert. Use: Count who is holding stock in a patch, how fast it turns over, and how the owner-placed share moves against it.

6. Short-Let Competitive Supply

Short-let operators and holiday-rental managers pricing a property.

Input: Furnished rentals offered short-term, with photos and a view. Output: The competing supply in the area, with monthly asking rent and size. Use: See what comparable stock is asking before setting your own rate.

7. Commercial And Land Sourcing

Developers, retailers and site finders.

Input: Commercial space or land, with a price band and a minimum size. Output: Offices, shops, industrial and craft space, or plots and parcels, each with area and coordinates. Use: Screen sites across several regions in one pass, then map the survivors.


🔗 Integration Examples

JavaScript / Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('sian.agency/xe-property-scraper').call({
operation: 'search',
transaction: 'rent',
propertyKind: 'residence',
listedBy: 'owner',
locations: ['Γλυφάδα', 'Βούλα'],
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);

Python

from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')
run = client.actor('sian.agency/xe-property-scraper').call(run_input={
'operation': 'search',
'transaction': 'buy',
'propertyKind': 'residence',
'propertyType': 'apartment',
'locations': ['Athens'],
'outputLanguage': 'en',
'maxResults': 100,
})
for item in client.dataset(run['defaultDatasetId']).iterate_items():
print(item['propertyTitle'], item['priceEur'], item['listedBy'])

cURL

curl -X POST 'https://api.apify.com/v2/acts/sian.agency~xe-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","transaction":"rent","propertyKind":"residence","listedBy":"owner","locations":["Θεσσαλονίκη"],"maxResults":100}'

Automation Workflows (N8N / Zapier / Make)

  1. Trigger: a daily schedule
  2. HTTP Request: call the Actor with addedInLastDays: 1 and listedBy: "owner"
  3. Process: filter the returned rows on your own criteria
  4. Action: append to Google Sheets, push to a CRM, or send a Slack alert

📊 Performance & Pricing

FREE Tier (Try It Now)

  • 25 properties per run, with every field and every filter
  • No credit card needed
  • Enough to check the data is what you need
  • Unlimited properties per run
  • Pay per successful row. Errors are never charged
  • 34 properties per request, up to 9,996 rows in one search

💰 $2.00 per 1,000 properties, and less on the higher plans. Expanding a property to its street address, full text and every characteristic costs $3.00 per 1,000 on top, and only when you ask for it. Each run also carries a $0.005 start fee per gigabyte of memory.

🔗 View current pricing


❓ Frequently Asked Questions

Q: Do I need an xe.gr account or an API key? A: No. Give it an area and press Start.

Q: Can I get only the properties advertised by owners, not agencies? A: Yes, and it is the main reason to use this Actor. Set "Placed by" to private owners. Agencies-only is narrowed by xe.gr itself; the owner side is not offered to visitors, so the run reads the result set and keeps the owner adverts. You are billed for the rows kept, never for the ones discarded.

Q: How does it know an owner placed the advert? A: xe.gr marks it on the advert. Owner adverts carry no agency name and are labelled Ιδιώτης on the page, while agency adverts carry the company name and its profile id. Both were checked against live advert pages before the field shipped.

Q: Does it give me sold prices? A: No, and no source can. Greece has no public sold-price register and xe.gr publishes live adverts only, so every figure here is what a seller is asking.

Q: Does it collect phone numbers? A: No, by choice. Contact details sit behind a reveal control, and a large share of these adverts are placed by private individuals. You get the agency name and profile id on professional adverts, and the advert URL on every row.

Q: Why do I only get about 10,000 rows on a big search? A: xe.gr stops paginating at 294 pages of 34 rows, whatever total it reports. Split the search by area, price band or property type and run each slice. The run log says when it has hit the ceiling.

Q: Is the output Greek or English? A: Your choice, and it is the same inventory either way. The portal publishes both, so the ids, prices, sizes and coordinates match exactly and only the display text changes. The seller's own advert text is whatever the seller wrote.

Q: Why are some properties priced at €10? A: Those are placeholder adverts on the portal, not a parsing error. Set a minimum price to remove them, particularly when you sort cheapest first.

Q: Can I paste a search I built on the site? A: Yes. Build it in your browser, copy the address bar into the xe.gr search URLs field, and the run reads exactly that search. Nothing is re-interpreted.

Q: What output formats are available? A: JSON, CSV and Excel. Export straight from the dataset, or pull the rows over the API.


🐛 Troubleshooting

"No properties matched"

  • The filters are too narrow. Greek stock skews old and largely uncertified, so an energy floor of B or a construction-year floor of 2015 cuts very hard.
  • Check that the property type belongs to the kind you chose. Offices belong to commercial space and plots to land; the run tells you when the pair does not fit.

An area was reported as unknown

  • Use the name as Greeks or the portal write it: Γλυφάδα, Θεσσαλονίκη, Chania, Kolonaki. Both alphabets resolve.
  • If a neighbourhood will not resolve, use the town or city that contains it, or paste an xe.gr search URL instead.

Rows are missing the street address or the advert text

  • Those live on the advert's own page. Switch on the detail option.

Fewer rows than I asked for

  • The search genuinely has fewer live adverts than your limit. The run log prints the matching total before it starts paging.
  • On the FREE tier every run stops at 25 rows.
  • Owner-only searches return a subset of the pages read, so a strict owner filter on a thin area returns few rows by design.

A run says the site is temporarily unavailable

  • xe.gr limits how fast anyone can read it. The Actor paces itself and retries. If a run still ends short, start it again shortly afterwards.

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the legality of web scraping.


🤝 Support

Join our active support community


xe.gr and Χρυσή Ευκαιρία are trademarks of Χρυσή Ευκαιρία Μ.Α.Ε. This actor is not affiliated with, endorsed by or sponsored by them, and reads only publicly available adverts.

Built by SIÁN Agency | More Tools