SS.LV Listing Lookup — Latvia Classifieds API
Pricing
from $3.04 / 1,000 successful lookups
SS.LV Listing Lookup — Latvia Classifieds API
Look up classified listings on ss.lv, Latvia's dominant classifieds site, by URL. Get price, city, district, street, rooms, area, floor, and other category-specific specs. Pay only for listings that resolve.
Pricing
from $3.04 / 1,000 successful lookups
Rating
0.0
(0)
Developer
Adrian Voss
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
SS.LV Listing Lookup
Look up any classified listing on ss.lv, Latvia's dominant classifieds site, by URL — flats, houses, cars, or land — and get back structured price, location, and spec data instead of raw HTML. This reads ss.lv's own server-rendered listing pages directly; no API key exists for ss.lv, so this parses the same page a visitor sees.
Features
- Full spec extraction. Price (numeric and as-displayed), city, district, street, rooms, area in m², floor / total building floors, series or build year, building type, and amenities.
- Category-agnostic. Every listing category (flats, houses, land, cars) shares the same
underlying table markup — labels this actor doesn't specifically map are kept verbatim in
otherSpecsinstead of being silently dropped. - Bulk-friendly filtering. Keyword include/exclude, a result cap, and a
testRunmode that processes only the first 5 items so you can sanity-check before a full run. - Configurable columns. Choose exactly which fields to return per row.
- Pay only for hits. Listings that no longer exist, or URLs that aren't a specific ad, cost nothing — see Pricing.
How to use SS.LV Listing Lookup — Latvia Classifieds API
- In the Apify Console. Open the actor page and click Start — the
listingUrlsfield is already pre-filled with a working example. Results land in the run's dataset as soon as each item is found. - Via the API. Call it directly with a POST request — no Console needed once you have an API token:
curl "https://api.apify.com/v2/acts/accountable_eel~sslv-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"listingUrls":["https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html"]}'
- On a schedule. Save this actor as an Apify Task with the input you want, then add a Schedule (hourly, daily, weekly) so it runs on its own — no server of your own required.
Input
{"listingUrls": ["https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html"]}
One ss.lv classified listing URL per line (flats, houses, cars, or land). Accepted formats: https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html.
{"listingUrls": ["https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html"],"testRun": false,"onlyFound": false,"columns": ["title", "price", "city", "rooms", "areaSqm", "url"],"maxConcurrency": 5,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }}
listingUrls is a list of ss.lv classified listing URLs (one per line — flats, houses,
cars, or land all work). Turn on testRun to process only the first 5 items before running
the full list. onlyFound hides rows with no result (misses are free either way).
includeKeywords / excludeKeywords filter results by keyword, and maxResults stops the
run early once that many results are found. columns picks which fields appear in each
row — all are included by default. Proxy defaults to Residential, since this is a defended
marketplace at scale.
Output
| query | found | status | title | price | priceText | city | district | street | rooms | areaSqm | floor | totalFloors | seriesOrBuildYear | buildingType | amenities | otherSpecs | url | scrapedAt |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html | true | OK | SS.LV Dzīvokļi - Rīga - Centrs, Cena 700 €/mēn. (4.96 €/m²). Var arī bez mēbelēm. Ilgtermiņa īrei comfortable метра, grīdas | 700 | 700 €/mēn. (4.96 €/m²) | Rīga | centrs | Brīvības 136 [Karte] | 4 | 141 | 3 | 7 | P. kara | Mūra | Parkošanas vieta | https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html | 2026-08-23T21:06:43.223Z |
{"query": "https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html","found": true,"status": "OK","title": "3-ist. dzīvoklis, Rīga, Centrs","price": 650,"priceText": "650 €/mēn.","city": "Rīga","district": "Centrs","street": "Brīvības iela","rooms": 3,"areaSqm": 78,"floor": 4,"totalFloors": 6,"seriesOrBuildYear": "Renovēta ēka","buildingType": null,"amenities": "Internets, TV","otherSpecs": { "Tālrunis": "29-95-***" },"url": "https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html","scrapedAt": "2026-08-21T14:03:11.000Z"}
A row is only marked found: true — and only then billed — once the URL resolves to an
actual listing page with a readable price cell. A status of NOT_FOUND (listing removed,
rented, or sold — ss.lv returns 404 — or the URL points to a search/category page rather
than a specific ad) means found: false and no charge. Note phone numbers appear masked
(e.g. "29-95-***") exactly as ss.lv serves them in the raw HTML — they're only revealed
client-side on click, so this actor reports the masked form rather than guessing digits.
Use cases
- Track price changes on specific rental or sale listings over time by re-checking the same URLs on a schedule.
- Pull structured comps (price, area, rooms, district) for a set of listings to build a local market pricing model.
- Feed a real-estate or vehicle-listing aggregator with clean, structured data instead of scraping HTML by hand.
- Verify whether a listing is still active before following up on it.
- Bulk-extract spec data (build type, series, amenities) across a batch of flats for a renovation or investment shortlist.
Pricing
$4 per 1,000 listings, plus a $0.005 start fee. Misses (found:false) are never charged.
Use it from Clay, n8n, Make, or an AI agent
This actor runs synchronously over plain HTTP — call it directly from a script, a workflow tool, or an AI agent, no Apify Console needed once you have an API token.
curl "https://api.apify.com/v2/acts/accountable_eel~sslv-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \-X POST \-H "Content-Type: application/json" \-d '{"listingUrls":["https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html"]}'
n8n. Add an HTTP Request node: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sslv-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body Content Type JSON, JSON Body {"listingUrls":["https://www.ss.lv/msg/lv/real-estate/flats/riga/centre/bemexo.html"]} (swap in an expression from an earlier node for a real value).
Clay. Add an "HTTP API" column: Method POST, URL https://api.apify.com/v2/acts/accountable_eel~sslv-listing-lookup/run-sync-get-dataset-items?token=<YOUR_TOKEN>, Body {"listingUrls":["{{listing}}"]}, mapping the row's listing into the listingUrls array.
MCP. In Claude, Cursor, or any MCP client with the Apify MCP server, ask for "SS.LV API — Latvia Classified Listing Data by URL" — the agent will find and run this actor.
FAQ
What counts as "not found"? A listing URL that 404s (removed, rented, or sold) or a URL that doesn't point to a specific ad — for example a search or category page — where no price cell can be read.
Why are phone numbers masked? ss.lv masks phone numbers in the raw page HTML
("29-95-***") and only reveals them client-side after a click. This actor reports exactly
what the server sends rather than fabricating the missing digits.
What goes into otherSpecs? Every listing category on ss.lv (flats, houses, cars,
land) shares the same spec-table markup but with different label sets. Any label this actor
doesn't specifically map to a named field (city, rooms, area, etc.) is kept verbatim in
otherSpecs instead of being dropped.
Does it work for cars and land listings, not just flats? Yes — the extraction logic is
category-agnostic; category-specific fields that don't match the common label set land in
otherSpecs.
Can I test on a small batch first? Yes — turn on testRun to process only the first 5
URLs before committing to a full run.
Does it require a browser? No — ss.lv listing pages are plain server-rendered HTML, so this actor fetches them with a direct HTTP request; no headless browser is used.