SS.LV Real Estate Scraper avatar

SS.LV Real Estate Scraper

Pricing

from $1.20 / 1,000 results

Go to Apify Store
SS.LV Real Estate Scraper

SS.LV Real Estate Scraper

Scrape property listings from SS.LV — Latvia's largest classifieds site.

Pricing

from $1.20 / 1,000 results

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

1

Bookmarked

1

Total users

0

Monthly active users

13 days ago

Last modified

Categories

Share

sslv-scraper

Extract property listings from ss.lv at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.


Why this scraper?

🎯 Built for Latvia

A dedicated Latvian scraper, not a global tool with a country dropdown. Locations, price formats and currency (EUR) are tuned for ss.lv.

💶 Structured pricing

Asking price or rent as a clean number in EUR, plus price per m². Price-on-request listings return null, never a guess.

🏠 Property characteristics

Rooms, surface, floor, total floors, lift, building series and house type in structured fields, ready for filtering and analysis.

📍 Precise location

City, district and street, plus latitude and longitude where ss.lv publishes a map pin.

🔁 Change detection

Every record carries a contentHash over ID, price and surface, so a daily feed shows at a glance which listings changed and which are unchanged reposts.


Input parameters

ParameterTypeDefaultDescription
startUrlsarrayRīga centre (sell) and ĀgenskalnsSS.LV search or category pages to scrape. Use the Latvian (/lv/) paths — the English mirror is disallowed by the site's robots.txt. Pagination is followed automatically.
maxItemsinteger100Maximum total listings to collect across all start URLs.
fetchDetailsbooleantrueON: opens every listing and returns description, photos, coordinates, city, district, property type, floor count and publication date. OFF: returns the search-table fields only (faster, fewer requests).
minPriceinteger(empty)Skip listings priced below this amount in EUR.
maxPriceinteger(empty)Skip listings priced above this amount in EUR.
daysOldinteger(empty)Only return listings published within the last N days. Requires fetchDetails, because the publication date is only on the listing page.

Output schema

Every field below is present on every record when fetchDetails is on. Fields the source does not publish for a given listing are returned as null rather than omitted.

FieldTypeDescription
idstringUnique listing ID from the source.
urlstringDirect link to the listing.
titlestringListing title as published.
operationTypestringsell, rent or want-to-buy.
countrystringCountry of the property (LV).
citystringCity.
districtstringDistrict or neighbourhood.
streetstringStreet and house number.
latnumberLatitude of the map pin.
lngnumberLongitude of the map pin.
propertyTypestringBuilding material or house type as published.
seriesstringBuilding series (Jaun., Hrušč., P. kara, …).
roomsnumberTotal number of rooms.
areaM2numberSurface in m².
floornumberFloor the property is on.
totalFloorsnumberNumber of floors in the building.
hasElevatorbooleanWhether the building has a lift.
facilitiesstringFacilities and features as published.
priceAmountnumberAsking price or rent as a number (null if price on request).
priceCurrencystringCurrency code of the price (EUR).
pricePerSqmnumberPrice per m² as published in the search table.
descriptionTextstringListing description as plain text.
descriptionHtmlstringListing description as HTML.
descriptionMarkdownstringListing description as Markdown.
imagesarrayFull-size photo URLs.
imageCountnumberNumber of photos.
thumbnailUrlstringSearch-table thumbnail.
agencyNamestringCompany name where the lister publishes one.
agencyPhonestringContact number as displayed by the source.
publishDatestringPublication date (YYYY-MM-DD).
publishDateISOstringPublication timestamp in ISO 8601.
sourcestringSource (ss.lv).
scrapedAtstringTimestamp when this record was scraped.
contentHashstringStable hash of ID, price and surface, used for repost and change detection.

With fetchDetails off, records carry the search-table subset: id, url, title, operationType, country, street, series, rooms, areaM2, floorRaw, priceAmount, pricePerSqm, priceCurrency, thumbnailUrl, source, scrapedAt, contentHash.

Example record

{
"id": "58065376",
"url": "https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/befgbm.html",
"title": "Īpašnieks tirgo mājīgu, labiekārtotu dzīvokli, istabas uz abām m",
"operationType": "sell",
"country": "LV",
"city": "Rīga",
"district": "centrs",
"street": "Tērbatas 38",
"lat": 56.9554504,
"lng": 24.1253174,
"propertyType": "Mūra",
"series": "Renov.",
"rooms": 3,
"areaM2": 82,
"floor": 4,
"totalFloors": 7,
"hasElevator": true,
"facilities": "Balkons, Bez mēbelēm",
"priceAmount": 200000,
"priceCurrency": "EUR",
"pricePerSqm": 2439,
"descriptionText": "Renovētā namā, klusā iekšpagalmā, pilnībā izremontēts dzīvoklis.",
"images": ["https://i.ss.lv/images/2025-10-27/569968/UnsAFU5lSVs=/flats-riga-centre-5-1.800.jpg"],
"imageCount": 25,
"thumbnailUrl": "https://i.ss.lv/gallery/8/1517/379102/75820339.th2.jpg",
"agencyName": null,
"agencyPhone": "2911....",
"publishDate": "2026-09-11",
"publishDateISO": "2026-09-11T22:14:00+02:00",
"source": "ss.lv",
"scrapedAt": "2026-09-12T05:41:17.469Z",
"contentHash": "78569633a84c3d0a"
}

Examples

Flats for sale in Rīga centre:

{
"startUrls": [{ "url": "https://www.ss.lv/lv/real-estate/flats/riga/centre/sell/" }],
"maxItems": 100
}

Cap the price:

{
"startUrls": [{ "url": "https://www.ss.lv/lv/real-estate/flats/riga/centre/sell/" }],
"maxItems": 100,
"maxPrice": 285000
}

Rentals across a district:

{
"startUrls": [{ "url": "https://www.ss.lv/lv/real-estate/flats/riga/purvciems/hand-over/" }],
"maxItems": 200
}

Daily feed of new listings (run on a schedule):

{
"startUrls": [{ "url": "https://www.ss.lv/lv/real-estate/flats/riga/centre/sell/" }],
"daysOld": 1,
"maxItems": 500
}

Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.


💰 Pricing

$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.

ResultsCost
100~$0.15
1,000~$1.50
10,000~$15
100,000~$150

Flat-rate alternatives typically charge $29–$49/month regardless of usage.

Subscription tiers lower the rate further, down to $0.90 per 1,000 at the highest tier. Use the Max items cap in the input to control your spend exactly.


Performance

Run sizeTypical time
100 results1–2 minutes
1,000 results8–12 minutes
10,000 results60–90 minutes

Listing pages are fetched sequentially and detail pages three at a time, which keeps the load on ss.lv modest.


Known limitations

  • Some fields (facilities, coordinates, agency details) are only returned when the lister publishes them — expect null on a share of records.
  • Contact numbers are partially masked by the source; the scraper returns them exactly as displayed and never reconstructs them.
  • daysOld needs fetchDetails, because ss.lv publishes the date only on the listing page.
  • Very large result sets are bounded by the source's own paging limits.
  • Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.

Technical details

  • Source: ss.lv — Latvia property listings
  • Coverage: everything the public search exposes, filterable via the input parameters above
  • Retry: every request carries a hard time wall covering the connect phase; on a timeout or a block the scraper rotates its exit and escalates from a direct connection to a datacenter proxy and then to a Latvian residential IP
  • Health: every run writes a HEALTH key that distinguishes an empty search from a broken parser

Rate this actor

If this scraper saved you time, a rating helps other people find it. If something is missing or wrong, tell us in Issues and we fix it — usually within a day.


Need a custom scraper?

Unfenced Group builds Apify actors for any website — for free.

If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.

Get in touch: www.unfencedgroup.nl