Spitogatos Scraper [$1/1K💰] | Greece Property | €/m² avatar

Spitogatos Scraper [$1/1K💰] | Greece Property | €/m²

Pricing

from $0.90 / 1,000 results

Go to Apify Store
Spitogatos Scraper [$1/1K💰] | Greece Property | €/m²

Spitogatos Scraper [$1/1K💰] | Greece Property | €/m²

Extract property listings from Spitogatos.gr, Greece’s leading portal — price and €/m², surface, rooms, floor, energy class, location and GPS, agency contacts and photos — as structured JSON. Built for Greek real-estate market research and lead generation. $1 per 1,000 listings.

Pricing

from $0.90 / 1,000 results

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 days ago

Last modified

Categories

Features

Limited permissions

Share

Spitogatos.gr Scraper — Greece Property Listings

Extract property listings from Spitogatos.gr, Greece's #1 real-estate portal — price and €/m², surface area, rooms, floor, year built, energy class, location hierarchy and GPS, seller type, agency name and phone, and the full photo gallery — as structured JSON, from $1 per 1,000 listings.

Built for:

  • Greek and Cypriot real-estate agency market research
  • Foreign-buyer and golden-visa property analysis
  • Property fund and short-let yield analysis in Athens and Thessaloniki
  • Real-estate lead generation from agency contacts
  • Building a structured Greece property database

Scrape Greek Property Listings Without An API

Paste any Spitogatos.gr search-result URL and the actor keeps every filter you set on the site — listing type, category, area, price and surface range, sort order — then paginates through the results. Areas can also be targeted directly by Spitogatos geography ID (100 Athens Center, 4933 Thessaloniki Center, 21 Glyfada, 73 Kifisia and so on). Each row is one property with price, pricePerSqm, areaSqm and coordinate fields already numeric, so you can rank areas by €/m² immediately.

How It Works

How the Spitogatos Scraper works: internal JSON searches become property rows with EUR prices, energy class, agency phones and galleries.

The Actor skips the bot-challenge HTML and calls the Laravel JSON API behind the Nuxt frontend through Apify's browser-impersonating impit client. Autocomplete resolves area slugs to geography IDs; search and detail endpoints return 30 listings per page and full records.

Each row covers one property with EUR price and price per square meter, area, rooms, floor, build year, energy class, location hierarchy, coordinates, seller and agency contacts, and the full gallery.

Spitogatos serves a bot-challenge page ("Pardon Our Interruption") to browser-like GET requests from datacenter IPs, so this actor skips the HTML and reads the Laravel JSON API its own Nuxt frontend calls, over plain HTTP:

PurposeRequestNotes
Search / paginationPOST spitogatos.gr/n_api/v1/properties/search-results30 listings per page; the API exposes pagination for each filter set.
Listing detailPOST spitogatos.gr/n_api/v1/properties/{id}Full record: energy class, year built, agency phones, complete photo gallery.
Area lookupPOST spitogatos.gr/n_api/v1/geographies/autocompleteTurns an area slug from a pasted URL into a Spitogatos geographyId.

Requests go through impit, Apify's browser-impersonating HTTP client, with a Chrome TLS fingerprint — no browser process is launched, and the actor runs comfortably on 256 MB of memory. If Spitogatos changes these routes, the constants live in src/main.ts.

Input Parameters

FieldTypeRequiredDefaultNotes
searchUrlsarrayNo[]Spitogatos search-result URLs. The URL defines listing type, category, area, price/surface filters and sort order; the fields below fill in anything the URL leaves unspecified. maxItems is shared across all URLs.
areaIDsarrayNo["100","4933"]Spitogatos geography IDs, used only when searchUrls is empty. Common IDs: 100 Athens Center, 5 Athens North, 6 Athens South, 8 Piraeus, 4933 Thessaloniki Center, 21 Glyfada, 73/215 Kifisia, 84/111 Marousi.
listingTypestringNosalesale or rent.
categorystringNoresidentialresidential, commercial or land.
priceFrom / priceTointegerNo—Optional price range in EUR.
sizeFrom / sizeTointegerNo—Optional surface range in m².
sortBystringNodatemodifieddatemodified, rankingscore, price, pricepersqmeters or size.
maxItemsintegerNo50Number of listings to return (hard cap 5000).
includeDetailsbooleanNotrueFetch each listing's detail record for energy class, year built, phones and the full gallery. Disable for a faster, cheaper summary-only run.
proxyobjectNooffStandard Apify proxy picker; direct connection works for the JSON API, enable proxy for large/high-frequency runs.

Finding more area IDs: open any area page on spitogatos.gr and read the URL, or call the public autocomplete endpoint (POST /n_api/v1/geographies/autocomplete with {"term":"Θεσσαλονίκη"}) and use the returned geographyId values.

Output Fields

FieldDescription
id, url, source, scrapedAtListing ID, public detail URL, source tag and ISO timestamp
listingType, category, propertyType, titleSale/rent, category, normalised property type and composed title
price, currency, pricePerSqm, areaSqmNumeric price, currency (EUR), price per m² and surface in m²
rooms, totalRooms, bathrooms, wc, kitchensRoom and fixture counts
floor, floorNumber, levelsFloor label and numeric floor
yearBuilt, constructionStatus, renovationYear, energyClassConstruction year, pre-sale flag, renovation year and energy class (detail mode)
location, locationHierarchy, address, latitude, longitude, geocodeTypeLocation hierarchy, street address (detail mode) and coordinates
sellerType, agencyName, agencyPhone, phones, agencyProfileUrl, agencyWebsite, agencyLogo, agencyAddress, agentNamePrivate/agent split plus agency and agent contact data
photos, mainImage, imageCount, hasVideo, hasVTourImage gallery and media flags
description, listingDate, modifiedDate, newDevelopment, adTypeDescription text, listing/update dates and attribute flags

View: the Output tab has a Property listings table (ID, URL, type, property, price, €/m², m², rooms, floor, year, energy class, location, seller, agency, phone, listed).

Example Input

{
"searchUrls": ["https://www.spitogatos.gr/en/for_sale-homes/athens-center"],
"listingType": "sale",
"category": "residential",
"priceFrom": 150000,
"priceTo": 300000,
"sortBy": "pricepersqmeters",
"maxItems": 100,
"includeDetails": true
}

Area-ID run:

{
"areaIDs": ["100", "4933"],
"listingType": "rent",
"category": "residential",
"maxItems": 50
}

Example Output

{
"id": 21106654,
"url": "https://www.spitogatos.gr/en/property/2121106654",
"listingType": "rent",
"category": "house",
"propertyType": "Apartment",
"price": 680,
"currency": "EUR",
"pricePerSqm": 17,
"areaSqm": 40,
"rooms": 1,
"bathrooms": 1,
"floor": "1st floor",
"yearBuilt": 1970,
"energyClass": "D",
"location": "Σεπόλια (Αθήνα - Κέντρο)",
"locationHierarchy": ["Αθήνα - Κέντρο", "Σεπόλια - Σκουζέ", "Σεπόλια"],
"latitude": 38.005497,
"longitude": 23.715994,
"sellerType": "agent",
"agencyName": "TZELI HOME",
"agencyPhone": "+302110014573",
"photos": ["https://m1.spitogatos.gr/..._1600x1200.jpg"],
"imageCount": 25,
"listingDate": "2026-10-19T00:00:00.000Z",
"source": "spitogatos.gr",
"scrapedAt": "2026-10-20T09:00:00.000Z"
}

Automate Greece Property Monitoring With Schedules & Webhooks

  • Daily new-listing watch: schedule sortBy: datemodified for your target areas and diff consecutive runs on id to see what was listed, re-priced or withdrawn.
  • €/m² area tracking: schedule a weekly run per area with sortBy: pricepersqmeters and build a price-per-m² time series per neighbourhood.
  • Golden-visa and foreign-buyer shortlists: filter priceFrom/priceTo and category: residential, then webhook the dataset into a CRM.
  • Agency lead monitoring: keep includeDetails: true to collect agency names, phones and profile URLs for outreach lists. Recurring runs also improve this actor's Store recommendation signals.

Frequently Asked Questions

Why use this actor instead of the official API?

Spitogatos.gr does not offer a public developer API for listings. Its /n_api/v1 routes are the internal API its own frontend calls, and that is exactly what this actor reads — over plain HTTP, no browser, no login, no API key. Spitogatos does sell a paid data product (Spitogatos Insights) and its owner Real Web runs an API for advertisers/integrators to manage their own listings on xe.gr, but neither is a public read API for market-wide listing data. This actor is the practical route for research, valuation and lead-generation datasets.

What are the alternatives to scraping Spitogatos?

  1. xe.gr — Greece's #2 portal (~3.6M monthly visits vs Spitogatos' ~5.2M) and a sibling brand under the same owner, Real Web SA, so its listing schema is consistent; several Apify actors cover it.
  2. Indomio.gr — another Greek portal, part of the same wider network.
  3. Third-party property-data APIs that wrap Spitogatos/xe.gr — a paid dependency but a stable contract.
  4. Agency-provided or licensed data for institutional users.
  5. Scraping the public pages, which is what this actor does at about a tenth of a cent per listing.

Is there a free Spitogatos API?

No. There is no free and no documented public Spitogatos read API. This actor reads the same internal JSON the site's own frontend uses; the free Apify plan returns a 10-listing preview and paid plans get the full run up to maxItems.

How do I target a specific city or neighbourhood?

Two ways: paste a Spitogatos search URL into searchUrls (every filter in the URL is honoured, including multi-area URLs), or pass Spitogatos geography IDs in areaIDs — 100 Athens Center, 5 Athens North, 6 Athens South, 8 Piraeus, 4933 Thessaloniki Center, 21 Glyfada, 73/215 Kifisia, 84/111 Marousi. Get more IDs from the site's area autocomplete endpoint.

Can I get rental and sale listings together?

listingType applies per run — run sale and rent separately and combine the datasets; both write the same schema, so rows union cleanly. category further selects residential, commercial or land.

How much data can I get in one run?

maxItems is hard-capped at 5000 and shared across all searchUrls. The API returns up to 30 listings per page and paginates deeply per filter set, so for saturated areas split the work with price and surface ranges (priceFrom/priceTo, sizeFrom/sizeTo) to reach complete inventory.

Do I need a proxy?

Not for typical runs — the JSON API accepts direct requests through a browser-impersonating HTTP client. Enable Apify Proxy for large or high-frequency scheduled runs.

For AI Agents & LLM Apps

Purpose: returns Spitogatos.gr (Greece #1 property portal) sale/rent listings for given search URLs or area IDs — one row per property with numeric price, €/m², surface, rooms, floor, year, energy class, location hierarchy, GPS, seller type and agency contact.

Minimal input:

{ "areaIDs": ["100"], "listingType": "sale", "maxItems": 20 }

Summary-only variant (no detail requests, cheapest):

{ "areaIDs": ["100", "4933"], "listingType": "rent", "maxItems": 200, "includeDetails": false }

Output fields: id, url, listingType, category, propertyType, title, price, currency, pricePerSqm, areaSqm, rooms, totalRooms, bathrooms, wc, kitchens, floor, floorNumber, levels, yearBuilt, constructionStatus, renovationYear, energyClass, location, locationHierarchy, address, latitude, longitude, geocodeType, sellerType, agencyName, agencyPhone, phones, agencyProfileUrl, agencyWebsite, agentName, photos, mainImage, imageCount, hasVideo, hasVTour, description, listingDate, modifiedDate, newDevelopment, adType, source, scrapedAt.

Behaviors an agent should know:

  • searchUrls takes priority: when it is non-empty, areaIDs, listingType, category, price/surface ranges and sortBy only fill in values the URL does not specify.
  • maxItems is shared across all search URLs, not per URL.
  • includeDetails: false removes energyClass, yearBuilt, agency phones and the full gallery — those fields stay null/empty.
  • Property-subtype URLs (e.g. apartments-only) are accepted but the subtype restriction is not applied; the actor logs a warning and searches the whole category.
  • When a URL contains no location, the whole of Greece is searched.
  • Free accounts get a 10-listing preview regardless of maxItems.

Billing: pay-per-event — result $0.001 per listing, listing-detail $0.001 per enriched listing, plus an Actor start event; free accounts get a 10-listing preview.

This actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Spitogatos.gr or its owner Real Web SA. It reads only publicly reachable listing data through the site's own internal JSON API — no login, no account access, and no CAPTCHA solving. Agency names and phone numbers are business contact details published on the listings and should not be used for unsolicited commercial outreach in violation of applicable law. Users are responsible for their own compliance with Spitogatos' Terms of Service, robots.txt and applicable data-protection law — including the GDPR where listings or contact data relate to identifiable persons — when storing, redistributing or automating access to the collected data.

SEO Keywords

spitogatos scraper, spitogatos api, spitogatos api alternative, greece real estate scraper, greek property data, greece property listings, athens property data, thessaloniki apartments, greek real estate api, spitogatos dataset, property price per sqm greece, greece golden visa property data, athens apartment prices, greece rental listings, xe gr alternative, greek property market data, real estate lead generation greece, greece property database, spitogatos export, athens property prices per m2, greek real estate market research, property listings csv greece, greece short term rental data, greek property portal scraper