City24 Scraper: Estonia and Latvia Real Estate Listings avatar

City24 Scraper: Estonia and Latvia Real Estate Listings

Pricing

from $5.00 / 1,000 result scrapeds

Go to Apify Store
City24 Scraper: Estonia and Latvia Real Estate Listings

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

Studio Amba

Maintained by Community

Actor 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.

CountrySitecountry valueCurrencyExample locations
Estoniacity24.eeEE (default)EURTallinn, Tartu, Narva, Pärnu, Harju maakond
Latviacity24.lvLVEURRī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

  1. Set Country to EE (Estonia, the default) or LV (Latvia).
  2. Set Location to a city or county in that country, for example Tallinn or Harju maakond in Estonia, Rīga or Mārupes novads in Latvia. Leave it empty to search Tallinn (Estonia) or Rīga (Latvia). Unknown names fall back to a country-wide search filtered by name.
  3. Choose Listing Type: sale or rent.
  4. Choose Property Type: apartment, house, commercial, land, cottage or garage.
  5. Set Max Results to the number of listings you want.
  6. 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

FieldTypeDescription
countrystringEE (Estonia) or LV (Latvia). Default EE.
locationstringCity or county in the selected country. Empty = Tallinn (EE) or Rīga (LV).
searchQuerystringOptional alias for location.
listingTypestringsale or rent. Default sale.
propertyTypestringapartment, house, commercial, land, cottage, garage. Default apartment.
maxResultsintegerMaximum listings to return. Default 100, hard cap 20,000.
brightDataApiKeystring (secret)Optional own Bright Data Web Unlocker key.
proxyConfigurationobjectAccepted 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:

FieldTypeExample
friendlyIdstring"4910395"
listingTitlestring"Apartment — Uus-Volta tn 7-41, Põhja-Tallinna linnaosa, Tallinn"
pricenumber557500
pricePerUnitnumber6106.24 (price per m²)
currencystring"EUR"
countrystring"EE" or "LV"
listingTypestring"sale"
propertyTypestring"Apartment"
addressstring"Uus-Volta tn 7-41, Põhja-Tallinna linnaosa, Tallinn, Harju maakond"
citystring"Tallinn" or "Rīga"
districtstring"Põhja-Tallinna linnaosa" or "Āgenskalns"
countystring"Harju maakond" (often empty for Rīga, which belongs to no novads)
streetstring"Uus-Volta tn 7-41"
roomsnumber3
areanumber91.3
lotSizenumbernull (filled for houses and land)
floornumber3
totalFloorsnumber3
buildYearnumber2025
conditionstring"new_building"
energyLabelstring"C"
latitudenumber59.4485437
longitudenumber24.7220664
agencyNamestring"Endover OÜ"
imageUrlstringprimary image URL
imageUrlsarrayup to 20 image URLs
datePublishedstring"2026-06-19T16:09:01+03:00"
urlstringfull City24.ee or City24.lv listing URL
scrapedAtstringISO 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.
  • condition and energyLabel use City24's own codes (for example new_building, no_certificate, energy class letters).
  • floor, totalFloors, buildYear and energyLabel are only present when the seller filled them in. Latvian listings fill them less often.
  • county is 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.

Part of a European real estate collection:

Disclaimer

Use this actor responsibly and in line with City24's terms and applicable law. Scrape public data only and respect rate limits.