
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape spitogatos.gr property listings for sale and rent in Greece: price, area, rooms, floor, year, energy class, features, coordinates, agency contacts and photos. No login needed.
Scrape spitogatos.gr, Greece's largest property portal, for homes, commercial properties and land for sale or rent. Each listing comes with price, price per m², area, bedrooms, floor, year built, energy class, heating, features, GPS coordinates, all photos and the full description, plus the agency's or the owner's name and phone number. Paste a search URL, type a place name, or re-check known listing IDs. No login needed.
E, floor 1st floor, heating central, fuel oil, features like elevator, parking, balcony).1 day, 2 weeks or an exact date) and schedule daily runs.| Field | Description |
|---|---|
startUrls | spitogatos.gr search result URLs or listing URLs. |
listingIds | Known listing IDs (1120313340, 20313340) or listing URLs to re-check. |
maxResults | Maximum listings per run, across all inputs (default 20). |
locations | Place names to search, Greek or English (Kolonaki, Γλυφάδα, Thessaloniki). |
listingType, category, propertyTypes | Sale or rent; residential, commercial, land or other; optional types. |
priceMin/priceMax, areaMin/areaMax, roomsMin/roomsMax, yearBuiltMin/yearBuiltMax | Range filters for location searches. |
energyClassMin, postedSince, updatedSince, priceReducedOnly, sortBy | More filters and the result order. |
includeDetails | Full details and contacts (default on). |
language | el (Greek, default) or en (English) descriptions and place names. |
{
"locations": ["Kolonaki", "Pagkrati"],
"listingType": "rent",
"propertyTypes": ["apartment"],
"priceMax": 1500,
"areaMin": 60,
"updatedSince": "3 days",
"maxResults": 200
}
| Field | Description |
|---|---|
id, url | Listing ID and link |
listingType, category, propertyType | sale/rent, residential/commercial/land/other, apartment, studio, store, plot, … |
price, pricePerSqm, priceReduced, priceBeforeReduction | Price in EUR (monthly rent for rentals) and price drops |
areaSqm, rooms, bathrooms, floor, floorLevel, levels | Size and layout |
yearBuilt, renovationYear, energyClass, heating, heatingFuel, furnished, parking, features | Building facts and amenities |
latitude, longitude, city, neighborhood, subArea, areaFullName, address | Location |
description, images, imageCount, virtualTourUrl, videoUrl | Text and media |
contactType, contactName, contactPhone, contactEmail | Who to call: agent, owner or agency |
agencyName, agencyPhone, agencyPhones, agencyContactPerson, agencyAddress, agencyWebsite, agencyUrl | Agency details |
postedAt, updatedAt, availableFrom, scrapedAt | Dates |
Example (trimmed; contact details are fictional):
{
"id": 20313340,
"url": "https://www.spitogatos.gr/aggelia/1120313340",
"listingType": "sale",
"category": "residential",
"propertyType": "studio",
"price": 67000,
"currency": "EUR",
"pricePerSqm": 1763.16,
"areaSqm": 38,
"rooms": 1,
"bathrooms": 1,
"floor": "1st floor",
"floorLevel": 1,
"latitude": 38.004322,
"longitude": 23.71739,
"city": "Αθήνα - Κέντρο",
"neighborhood": "Σεπόλια - Σκουζέ",
"yearBuilt": 1977,
"energyClass": "E",
"heating": "central",
"heatingFuel": "oil",
"features": ["bright", "elevator", "facade"],
"imageCount": 18,
"contactType": "agency",
"contactName": "Example Real Estate",
"contactPhone": "+302100000000",
"agencyName": "Example Real Estate",
"agencyWebsite": "http://www.example.gr",
"postedAt": "2026-07-06",
"updatedAt": "2026-10-15"
}
You pay $1.25 per 1,000 listings ($0.00125 per listing), plus the platform usage of your run. Platform usage is small: about $0.01 for 1,000 listings in basic mode and about $0.25 for 1,000 listings with full details (the site is opened in a browser session that is renewed every 50 listings). So 1,000 listings with full details cost about $1.50 in total.
Is it legal to scrape spitogatos.gr? The actor only reads public listing pages that any visitor can see. You are responsible for using the data in line with the site's terms and data protection law (GDPR), especially the contact details of private sellers.
Do I need an account or a proxy? No. No login, no cookies and no proxy setup.
How many listings can I get? As many as the search has. Basic mode handles thousands of listings quickly. With full details, expect about 1,000 listings in 15 minutes.
Why is a field empty? The agency or owner did not fill it in (year built, address and energy class are optional on the site). The street address is published only for some listings; coordinates can be approximate (locationPrecision: offset).
Can I schedule it or use the API? Yes. Schedule a run with updatedSince: "1 day" for a daily feed of new and changed listings, and read results through the API or integrations.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalSpitogatos URLs
Search result URLs from spitogatos.gr (Greek or English site, any filters, any page) or listing URLs. Copy them from your browser after setting up a search.
listingIdsarrayOptionalListing IDs
Re-check known listings, for example to track their price. One per line: the id column of the output, the number at the end of a listing URL, or the whole URL.
maxResultsintegerOptionaldefault 20Max listings
Stop after this many listings in total, across all inputs.
Used for the locations above. URLs already carry their own filters.
locationsarrayOptionalLocations
Search by place name instead of a URL, for example 'Kolonaki', 'Glyfada' or 'Thessaloniki'. Greek or English. Each location is searched with the filters below.
listingTypeenumOptionalSale or rent
Properties for sale or for rent.
categoryenumOptionalCategory
Residential, commercial, land or other properties.
propertyTypesarrayOptionalProperty types
Optional. Must match the category. Residential: apartment, studio, maisonette, detached, villa, loft, bungalow, building, apartment complex, farm, houseboat, other residential. Commercial: office, store, warehouse, industrial space, craft space, hotel, business building, hall, showroom, other commercial. Land: plot, parcel, island, other land. Other: parking spot, business, prefabricated, detachable, air, other.
priceMinintegerOptionalMin price (EUR)
Minimum price in euros (monthly rent for rentals).
priceMaxintegerOptionalMax price (EUR)
Maximum price in euros (monthly rent for rentals).
areaMinintegerOptionalMin area (m²)
Minimum living area in square metres.
areaMaxintegerOptionalMax area (m²)
Maximum living area in square metres.
roomsMinintegerOptionalMin bedrooms
Minimum number of bedrooms.
roomsMaxintegerOptionalMax bedrooms
Maximum number of bedrooms.
yearBuiltMinintegerOptionalBuilt from (year)
Oldest construction year.
yearBuiltMaxintegerOptionalBuilt until (year)
Newest construction year.
energyClassMinenumOptionalEnergy class at least
Only listings with this energy class or better.
postedSincestringOptionalPosted since
Only listings first posted on or after this date: 2026-10-01, or relative like '1 day' or '2 weeks'.
updatedSincestringOptionalUpdated since
Only listings updated on or after this date: 2026-10-01, or relative like '1 day'.
priceReducedOnlybooleanOptionalOnly price drops
Only listings whose price was lowered.
sortByenumOptionalSort by
Order of the results.
includeDetailsbooleanOptionaldefault trueFull listing details
Open every listing for the full description, energy class, year built, heating, features and the agency's or owner's phone. Turn off for a faster run with the fields shown in the search results.
languageenumOptionaldefault "el"Language
Language of descriptions and place names.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| id | number | null | |
| url | string | null | |
| listingType | string | null | |
| category | string | null | |
| propertyType | string | null | |
| price | number | null | |
| currency | string | null | |
| pricePerSqm | number | null | |
| priceReduced | boolean | null | |
| priceBeforeReduction | number | null | |
| priceChangePercent | number | null | |
| areaSqm | number | null | |
| rooms | number | null | |
| bathrooms | number | null | |
| kitchens | number | null | |
| livingRooms | number | null | |
| floor | string | null | |
| floorLevel | number | null | |
| latitude | number | null | |
| longitude | number | null | |
| locationPrecision | string | null | |
| description | string | null | |
| image | string | null | |
| images | array | null | |
| imageCount | number | null | |
| hasVirtualTour | boolean | null | |
| hasVideo | boolean | null | |
| adType | string | null | |
| agencyId | number | null | |
| postedAt | string | null | |
| updatedAt | string | null | |
| agencyName | string | null | |
| agencyUrl | string | null | |
| agencyLogo | string | null | |
| area | string | null | |
| city | string | null | |
| neighborhood | string | null | |
| subArea | string | null | |
| areaFullName | string | null | |
| address | string | null | |
| yearBuilt | number | null | |
| renovationYear | number | null | |
| energyClass | string | null | |
| heating | string | null | |
| heatingFuel | string | null | |
| levels | number | null | |
| wc | number | null | |
| plotSqm | number | null | |
| balconySqm | number | null | |
| commonExpenses | number | null | |
| distanceToSeaM | number | null | |
| furnished | string | null | |
| parking | string | null | |
| zoning | string | null | |
| availableFrom | string | null | |
| features | array | null | |
| virtualTourUrl | string | null | |
| videoUrl | string | null | |
| agentReference | string | null | |
| descriptionTruncated | boolean | null | |
| detailsIncluded | boolean | null | |
| agencyPhone | string | null | |
| agencyPhones | array | null | |
| agencyContactPerson | string | null | |
| agencyAddress | string | null | |
| agencyArea | string | null | |
| agencyWebsite | string | null | |
| agencyMembership | string | null | |
| contactType | string | null | |
| contactName | string | null | |
| contactPhone | string | null | |
| contactEmail | string | null | |
| contactHours | string | null | |
| searchUrl | string | null | |
| scrapedAt | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Listing | One spitogatos.gr listing saved to the dataset. | $0.0013 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/spitogatos-scraper').call({
"startUrls": [
{
"url": "https://www.spitogatos.gr/pwliseis-gkarsonieres/athina-kentro/timi_apo-10000/timi_eos-70000"
}
],
"maxResults": 20
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/spitogatos-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/spitogatos-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Listings from two Spitogatos search pages in Athens.
Homes to rent in Glyfada, cheapest first.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.