City24 Scraper: Estonia and Latvia Real Estate Listings
Pricing
from $5.00 / 1,000 result scrapeds
City24 Scraper: Estonia and Latvia Real Estate Listings
Scrape real estate listings from City24.ee (Estonia) and City24.lv (Latvia), the leading Baltic property portals. Get sale and rent prices, addresses, rooms, area, floor, build year, coordinates and agency info. No login or cookies required.
Pricing
from $5.00 / 1,000 result scrapeds
Rating
0.0
(0)
Developer
Studio Amba
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
City24 Scraper: Estonia and Latvia
Scrape real estate listings from City24.ee (Estonia) and City24.lv (Latvia), the leading property portals in both countries. Get apartments and houses for sale and for rent with prices, addresses, room counts, living area, floor, build year, energy label, geo coordinates, photos and the listing agency. No login, no cookies, no browser automation.
What this actor does
City24 is the largest real estate marketplace in Estonia and one of the largest in Latvia. Both sites run on the same Baltic City24 platform. This actor pulls structured listing data straight from City24's own search API and returns it as clean JSON or a table you can export to Excel, CSV or JSON, or feed into your own database.
You pick a country, a location (a city or county), sale or rent, and a property type. The actor returns every matching listing up to your result limit, one row per property. Rows from both countries share the same fields, so you can put an Estonian and a Latvian run in the same table.
| Country | Site | country value | Currency | Example locations |
|---|---|---|---|---|
| Estonia | city24.ee | EE (default) | EUR | Tallinn, Tartu, Narva, Pärnu, Harju maakond |
| Latvia | city24.lv | LV | EUR | Rīga, Jūrmala, Liepāja, Jelgava, Mārupes novads |
Why use it
- Market research: track asking prices and rents across Tallinn, Tartu, Rīga, Jūrmala and the rest of Estonia and Latvia.
- Price monitoring: watch price per square meter by district over time.
- Lead lists: collect listings and the agencies behind them.
- Investment analysis: filter by area, rooms, build year and location, then compute yield from sale and rent data in the same schema.
- Data enrichment: every listing includes latitude and longitude for mapping and geospatial joins.
The actor reads City24's public search API, so results match what you see on the site.
How to scrape City24 data
- Set Country to
EE(Estonia, the default) orLV(Latvia). - Set Location to a city or county in that country, for example
TallinnorHarju maakondin Estonia,RīgaorMārupes novadsin Latvia. Leave it empty to search Tallinn (Estonia) or Rīga (Latvia). Unknown names fall back to a country-wide search filtered by name. - Choose Listing Type:
saleorrent. - Choose Property Type: apartment, house, commercial, land, cottage or garage.
- Set Max Results to the number of listings you want.
- Run the actor. Results appear in the dataset, ready to export.
City24 sits behind Cloudflare, so this actor sends its API calls through Bright Data Web Unlocker, with the exit country matching the Country input. One request returns up to 500 listings, so large runs stay fast.
If you run the actor on Estonia (the default) with a Latvian city such as
Rīga, it switches to Latvia and logs a warning. If you choose Latvia and leave
the form's prefilled Tallinn in Location, it searches Rīga instead. Any other
Estonian location on a Latvia run stops at start with a message that names the
right country.
Input
| Field | Type | Description |
|---|---|---|
country | string | EE (Estonia) or LV (Latvia). Default EE. |
location | string | City or county in the selected country. Empty = Tallinn (EE) or Rīga (LV). |
searchQuery | string | Optional alias for location. |
listingType | string | sale or rent. Default sale. |
propertyType | string | apartment, house, commercial, land, cottage, garage. Default apartment. |
maxResults | integer | Maximum listings to return. Default 100, hard cap 20,000. |
brightDataApiKey | string (secret) | Optional own Bright Data Web Unlocker key. |
proxyConfiguration | object | Accepted for compatibility. The working transport is Bright Data. |
Inputs saved before the Country field existed keep working. A run without
country scrapes Estonia, as before.
Example input, Estonia
{"country": "EE","location": "Tallinn","listingType": "sale","propertyType": "apartment","maxResults": 100}
Example input, Latvia
{"country": "LV","location": "Rīga","listingType": "rent","propertyType": "apartment","maxResults": 100}
Output
Each listing is a flat JSON object:
| Field | Type | Example |
|---|---|---|
friendlyId | string | "4910395" |
listingTitle | string | "Apartment — Uus-Volta tn 7-41, Põhja-Tallinna linnaosa, Tallinn" |
price | number | 557500 |
pricePerUnit | number | 6106.24 (price per m²) |
currency | string | "EUR" |
country | string | "EE" or "LV" |
listingType | string | "sale" |
propertyType | string | "Apartment" |
address | string | "Uus-Volta tn 7-41, Põhja-Tallinna linnaosa, Tallinn, Harju maakond" |
city | string | "Tallinn" or "Rīga" |
district | string | "Põhja-Tallinna linnaosa" or "Āgenskalns" |
county | string | "Harju maakond" (often empty for Rīga, which belongs to no novads) |
street | string | "Uus-Volta tn 7-41" |
rooms | number | 3 |
area | number | 91.3 |
lotSize | number | null (filled for houses and land) |
floor | number | 3 |
totalFloors | number | 3 |
buildYear | number | 2025 |
condition | string | "new_building" |
energyLabel | string | "C" |
latitude | number | 59.4485437 |
longitude | number | 24.7220664 |
agencyName | string | "Endover OÜ" |
imageUrl | string | primary image URL |
imageUrls | array | up to 20 image URLs |
datePublished | string | "2026-06-19T16:09:01+03:00" |
url | string | full City24.ee or City24.lv listing URL |
scrapedAt | string | ISO 8601 scrape timestamp |
Example output, Latvia
{"friendlyId": "1686505","listingTitle": "Apartment — Trijādības iela 1A-212, Āgenskalns, Rīga","price": 129774,"pricePerUnit": 3482,"currency": "EUR","country": "LV","listingType": "sale","propertyType": "Apartment","city": "Rīga","district": "Āgenskalns","rooms": 1,"area": 37.27,"floor": 2,"totalFloors": 7,"buildYear": 2027,"condition": "under_construction","energyLabel": "A","latitude": 56.9457389,"longitude": 24.0904025,"url": "https://www.city24.lv/real-estate/apartments-for-sale/riga/1686505"}
Supported locations
Estonia. Cities resolve to exact City24 areas: Tallinn, Tartu, Narva, Pärnu, Kohtla-Järve, Sillamäe, Haapsalu, Keila, Maardu, Viimsi, Rae, Saku, Saue, Harku, Kuressaare (Saaremaa), Loksa, Jõhvi, Narva-Jõesuu, Tapa. Counties also work: Harju, Tartu, Pärnu, Ida-Viru, Saare, Võru, Lääne, Jõgeva, Järva, Lääne-Viru, Rapla, Valga maakond.
Latvia. Cities and towns: Rīga, Jūrmala, Mārupe, Saulkrasti, Sigulda, Liepāja, Jelgava, Daugavpils, Salaspils, Ādaži, Ikšķile, Ogre, Talsi, Cēsis, Kuldīga, Ventspils, Baldone, Iecava, Pāvilosta, Ainaži. Municipalities (novadi): Mārupes, Ropažu, Ādažu, Saulkrastu, Salaspils, Siguldas, Ķekavas, Ogres, Talsu, Olaines, Cēsu, Dienvidkurzemes, Bauskas, Limbažu, Tukuma novads.
The main names also work without diacritics (Riga, Parnu). Any other name
triggers a country-wide search filtered by the name you entered.
Cost estimate
The actor is priced per result: $0.005 per listing plus $0.01 per run start (one start event per GB of run memory). 100 listings on 1 GB cost about $0.51. The price is the same for Estonia and Latvia.
The actor reads City24's search API in pages of up to 500 listings per request, so one Bright Data request covers hundreds of results and a run of a few hundred listings finishes in under a minute.
The usage cost of a run only settles after the run has SUCCEEDED. A run that fails or is aborted before the end is not a fair measure of the final cost.
Limitations and known issues
- City24 is behind Cloudflare. The actor uses Bright Data Web Unlocker for every request; no key is needed on the Apify Store.
- One run covers one country. Run the actor twice for Estonia and Latvia.
conditionandenergyLabeluse City24's own codes (for examplenew_building,no_certificate, energy class letters).floor,totalFloors,buildYearandenergyLabelare only present when the seller filled them in. Latvian listings fill them less often.countyis empty for listings in Rīga and the other Latvian state cities, because City24 does not place them under a novads.- Listing URLs are built from the numeric listing ID and resolve on City24; the visible slug may differ slightly from the on-site one.
Related scrapers
Part of a European real estate collection:
- Hemnet Scraper: Sweden
- Funda Scraper: Netherlands
- Idealista Scraper: Spain
- Otodom Scraper: Poland
- ImmoScout24 Scraper: Germany
- Zimmo Scraper: Belgium
Disclaimer
Use this actor responsibly and in line with City24's terms and applicable law. Scrape public data only and respect rate limits.