Qasa Scraper - Nordic Rental Listings
Pricing
from $1.32 / 1,000 rental listings
Qasa Scraper - Nordic Rental Listings
Scrape qasa.com rental listings across Sweden, Norway and Finland. Rent, monthly cost, rooms, m², move-in dates, amenities, coordinates, landlord response rates and photos.
Pricing
from $1.32 / 1,000 rental listings
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Qasa Scraper — Nordic Rental Listings from Sweden, Norway & Finland 🔑
🎉 Every home to rent on Qasa — 23,900 live listings across three countries, 500 to a request
Built for rent analysts, relocation teams and anyone who needs Nordic rental data in one schema
🔎 What is the Qasa Scraper — and when should you use it?
The Qasa Scraper turns every long-term rental listing published on qasa.com across Sweden, Norway and Finland into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: rent, the all-in monthly cost, rooms, floor area in m², move-in and move-out dates, tenancy length, furnished and shared flags, first-hand contract status, coordinates and photos on any Nordic rental listing. Switch on detail expansion and each row also carries build year, floor, energy class, tenure, renovation years, the full amenity list, which bills are included in the rent, the English description and how fast the landlord answers applications.
Use something else when: the homes you want are for sale rather than to rent. Use Hemnet Scraper for the Swedish sale market, including the slutpriser archive of what homes actually sold for. Use FINN.no Property Scraper for Norway's largest portal, where the sale listings Qasa does not carry are advertised. Use Apartments.com Scraper for the same rental questions asked of the United States. This actor reads what qasa.com shows the public. Applications, messages, saved searches and anything behind a Qasa login are out of scope, and so are holiday and short-stay lets, which sit outside the long-term index entirely.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/qasa-property-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want Nordic rental listings from Qasa using the Apify Actor `sian.agency/qasa-property-scraper`.Use it when I need: rent, the all-in monthly cost, rooms, floor area in m², move-in and move-out dates, tenancy length, furnished and shared flags, first-hand contract status, coordinates and photos on any Nordic rental listing. Switch on detail expansion and each row also carries build year, floor, energy class, tenure, renovation years, the full amenity list, which bills are included in the rent, the English description and how fast the landlord answers applications.Don't use it when: the homes you want are for sale rather than to rent — use hemnet-property-scraper or finn-no-property-scraper or apartments-com-property-scraper instead.How to call it: pick a `market` — sweden, norway or finland — and an `operation`. `search` sweeps the index and returns a row per home; put a place in `location` such as Stockholm, Nacka kommun or Södermalm, or leave it empty to take the whole market. `detail` expands qasa.com addresses you already have via `listingUrls`. Narrow with `homeTypes`, `rentMin` and `rentMax`, `roomsMin` and `roomsMax`, `areaMin` and `areaMax`, `moveInFrom`, `minRentalMonths`, `furnished`, `sharedHomes`, `petsAllowed`, `wheelchairAccessible`, `contractTypes` and `householdSize`, then order the result with `sort`. `includeDetails` adds build year, energy class, amenities and landlord response rates to every row for an extra charge. A search you already built on qasa.com can be pasted into `searchUrls` instead.Start with this input:{"operation": "search","market": "sweden","location": "Stockholm","homeTypes": ["apartment"],"maxResults": 100}Ask me which of the three markets to cover, and which city or district inside it, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- Find two-room apartments in Göteborg under 15,000 SEK a month that allow pets and are free from October.
- Compare cost per m² for furnished and unfurnished one-room flats in Stockholm, Oslo and Helsinki.
- List every first-hand contract published on Qasa in Sweden this week, with the landlord's response rate on each.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/qasa-property-scraper.md.
📋 Overview
Qasa is where the Nordic rental market moved. Blocket closed its own property vertical and handed it to Qasa, so the Swedish rows here carry listings that started life on Blocket and HomeQ as well as Qasa itself. This Actor reads that index directly and gives you a flat row per home.
What you get:
- ✅ Three countries, one schema: Sweden, Norway and Finland, 23,900 live homes, each row in that market's own currency.
- ⚡ 500 listings per request: a whole-city sweep finishes in seconds, not in a queue of paginated page loads.
- 🎯 Places by name: type Södermalm, Bromma, Nacka kommun, Grünerløkka or Kallio. No location ids to look up.
- 💰 Pay per listing returned: nothing is charged for a search that matched nothing or an input we could not read.
- 💎 39 amenity values: balcony, elevator, dishwasher, communal sauna, bike room, EV charger and more, on the detail expansion.
- ✨ Landlord responsiveness: response rate and typical answer time, so you can tell an active landlord from a dormant listing.
✨ Features
- 🔍 Rental Listings search: sweep a market or an area and get every live home to rent.
- 📄 Listing Detail: expand any qasa.com address with build year, floor, energy class, tenure and the full amenity list.
- 🌍 Market selector: Sweden, Norway and Finland, each with its own currency and place index.
- 🎚️ Filters that map to the site's own: home type, monthly cost, rooms, size, move-in date, minimum rental length, furnished, shared, pets, step-free access, contract type and household size.
- 🌐 Paste a search address: copy a find-home URL from your browser and the Actor reads its filters.
- 🧭 Coordinates on every row: latitude and longitude, ready for a map or a distance calculation.
- 📸 Photos and floor plans: up to 78 images per listing, primary photo first.
- 🇬🇧 English descriptions: Qasa's own translations come through on the detail expansion.
- 📊 Cost per m² computed: the comparison number, already worked out on every row.
- 🛡️ Loud on bad input: an area Qasa does not recognise stops the run instead of quietly returning the whole country.
🎬 Quick Start
Pick a market, type a place, press Start. Rows land in your dataset as they are read, and a run report is written to the key-value store with links you can copy.
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~qasa-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation":"search","market":"sweden","location":"Stockholm","maxResults":100}'
🚀 Getting Started (3 Simple Steps)
Step 1: Choose your market
Sweden, Norway or Finland. Rent comes back in SEK, NOK or EUR accordingly.
Step 2: Name a place
A city, a kommun, a län or a district. Leave it empty to sweep the whole market.
Step 3: Press Start
Add filters if you want them, set a row budget, and run.
That's it! In under a minute, you'll have:
- Every matching home with rent, size, rooms and move-in dates
- Coordinates and photos on each row
- A dataset you can export to JSON, CSV or Excel
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | No | search for rental listings, detail to expand addresses you already have |
market | string | No | sweden, norway or finland |
location | string | No | Place name — a city, kommun, län or district |
homeTypes | array | No | apartment, house, terrace_house, cottage, room, corridor, duplex, loft, bedsit, own, other |
maxResults | integer | No | Row budget for the whole run |
rentMin / rentMax | integer | No | Monthly cost bounds, in the market's currency |
roomsMin / roomsMax | integer | No | Room count bounds |
areaMin / areaMax | integer | No | Floor area bounds in m² |
moveInFrom | string | No | Earliest move-in date, YYYY-MM-DD |
minRentalMonths | integer | No | Shortest acceptable tenancy |
furnished | string | No | any, yes or no |
sharedHomes | string | No | any, only or exclude |
petsAllowed | boolean | No | Only homes where pets are allowed |
wheelchairAccessible | boolean | No | Only step-free homes |
contractTypes | array | No | firsthand, studentHome, seniorHome, corporateHome |
householdSize | integer | No | Homes that accept this many people |
sort | string | No | newest, cheapest, most_expensive, largest, most_rooms, relevance |
includeDetails | boolean | No | Add build year, amenities and landlord responsiveness — billed per expanded listing |
listingUrls | array | No | For detail: qasa.com addresses or bare listing ids |
searchUrls | array | No | Paste find-home addresses copied from qasa.com |
Example:
{"operation": "search","market": "sweden","location": "Södermalm","homeTypes": ["apartment"],"rentMax": 15000,"roomsMin": 2,"moveInFrom": "2026-10-01","maxResults": 500}
Expand listings you already have:
{"operation": "detail","listingUrls": ["https://qasa.com/home/1415645","https://qasa.com/se/sv/home/1167263"]}
📤 Output
Results are saved to the Apify dataset with 62 fields including:
| Field | Type | Description |
|---|---|---|
listingId | string | Qasa's own id for the home |
listingUrl | string | Canonical qasa.com address |
propertyTitle | string | Home type, rooms, size and city in one line |
monthlyCost | integer | All-in figure the tenant pays |
rent | integer | Bare rent before the service fee |
currency | string | SEK, NOK or EUR |
costPerSqm | number | Monthly cost divided by floor area |
roomCount | number | Rooms, half rooms included |
squareMeters | integer | Floor area |
locality | string | City or town |
latitude / longitude | number | Coordinates |
availableFrom / availableUntil | string | Move-in and move-out dates |
firstHand | boolean | First-hand contract rather than a sublet |
furnished / shared | boolean | Furnishing and whether the home is shared |
sourcePlatform | string | Where the listing originated — qasa, blocket, homeq |
amenities | array | Up to 39 amenity values (detail expansion) |
includedBills | array | Which of water, heating and electricity are in the rent |
landlordResponseRate | number | Share of applications the landlord answers |
Example:
{"listingId": "1422775","listingUrl": "https://qasa.com/home/1422775","propertyTitle": "Apartment, 1 room, 15 m² in Stockholm","monthlyCost": 6568,"rent": 6200,"tenantFee": 368,"currency": "SEK","costPerSqm": 437.87,"homeType": "apartment","roomCount": 1,"squareMeters": 15,"locality": "Stockholm","streetAddress": "Doktor Abelins Gata","countryCode": "SE","latitude": 59.3159297,"longitude": 18.0546896,"availableFrom": "2026-10-01T00:00:00Z","isOpenEnded": true,"furnished": true,"shared": true,"firstHand": false,"petsAllowed": false,"sourcePlatform": "blocket","publishedAt": "2026-07-26T06:47:01Z","daysOnQasa": 42,"amenities": ["balcony", "bike_room", "elevator", "furniture", "internet", "recycling"],"includedBills": ["electricity"],"landlordName": "Åsa","landlordResponseRate": 0.06,"imageCount": 9}
💼 Use Cases & Examples
1. Nordic Rent Benchmarking
Rent analysts and proptech teams pricing the sublet market.
Input: a city, no other filters, maxResults set high
Output: every live home with cost per m², furnished flag and floor area
Use: Sweden publishes no open rental price index for sublets. This is how you see what a two-room flat in Södermalm is actually being asked for this month.
2. Relocation & Corporate Housing Search
Mobility teams placing staff across the Nordics.
Input: moveInFrom, minRentalMonths, householdSize, run once per market
Output: one sheet with rent, size, coordinates and landlord response rate in three currencies
Use: replaces three portals, three languages and three currencies with one export.
3. Landlord & Property Manager Prospecting
Agencies and service providers selling to rental stock owners.
Input: a city, includeDetails on
Output: landlord first name, company where there is one, professional flag, time on platform and response rate
Use: filter for professional landlords and you have a working list of who manages rental stock in that city.
4. Rental Market Monitoring
Analysts tracking supply and time-to-let.
Input: sort: newest, a modest maxResults, on a daily schedule
Output: what appeared since the last run, with published date, days listed and originating platform
Use: track supply, asking-rent drift and how fast homes disappear, week over week.
5. Proptech & Portal Feeds
Product teams building maps, comparison sites and pricing models.
Input: a whole market, no place filter Output: flat rows with coordinates, size, tenure, amenities and photos Use: drops straight into a map layer, a CRM or a valuation model, with one schema for all three countries.
6. Accessibility & Pet-Friendly Housing Search
Charities, relocation advisors and anyone with a hard requirement.
Input: wheelchairAccessible or petsAllowed set true
Output: only homes the landlord has marked accordingly
Use: the two filters that are hardest to apply by hand across thousands of listings.
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/qasa-property-scraper').call({operation: 'search',market: 'sweden',location: 'Stockholm',maxResults: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/qasa-property-scraper').call(run_input={'operation': 'search','market': 'finland','location': 'Helsinki','maxResults': 100,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item)
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~qasa-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"operation":"search","market":"norway","location":"Oslo","maxResults":100}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: schedule the run, or fire it from a webhook
- HTTP Request: call the Actor API
- Process: read the JSON rows
- Action: write to a sheet, alert on new listings, or push into your CRM
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 listings per run, with every field and every filter
- No credit card required
- Enough to check the schema fits before you commit
PAID Tier (Production Ready)
- Unlimited listings per run, up to the whole 23,900-home index
- 500 rows per request, so a city sweep takes seconds
- Pay per listing returned: a search that matched nothing costs nothing
💰 Priced at the same level as our Swedish for-sale Actor, so the sale and rental halves of the market cost the same to cover.
❓ Frequently Asked Questions
Q: Does this cover Blocket's rental listings? A: Yes. Blocket closed its property vertical and moved it to Qasa. Swedish rows carry the platform each listing originated on, and you will see blocket, homeq and qasa among them.
Q: Is this for rentals or for homes to buy? A: Rentals only. For Swedish homes for sale and sold prices, use our Hemnet Scraper.
Q: Which countries does it cover? A: Sweden, Norway and Finland, which is every market Qasa operates. One market per run.
Q: Can I search a specific neighbourhood? A: Yes. Type the district the way the site spells it — Södermalm, Bromma, Majorna, Grünerløkka, Kallio. If a name cannot be matched the run stops and tells you, rather than returning the whole country.
Q: What does Listing Detail add? A: Build year, floor and building height, energy class, tenure, renovation years, the full amenity list, which bills are included, the English description, and the landlord's response rate and typical answer time.
Q: How fresh is the data? A: It is read live on every run. A listing published minutes ago is in the next run.
Q: Are holiday and short-stay lets included? A: No. This is the long-term rental index.
Q: Do I get the exact street address? A: Street name, city and coordinates on every listing. The house number appears only where the landlord chose to publish it, which is Qasa's own privacy setting.
Q: What output formats are available? A: JSON, CSV and Excel, exported directly from the Apify dataset.
🐛 Troubleshooting
The run stopped saying Qasa has no area with that name
- Spell the place the way qasa.com spells it, or use a broader one: the city instead of the district.
- Leave
locationempty to sweep the whole market.
Fewer rows than I expected
- Check
maxResults, which is a whole-run budget rather than a per-place one. - On the FREE tier every run stops at 25 rows.
A listing came back as an error row
- Homes are let and withdrawn constantly. Run a fresh search for the same area to get what is live today.
No rows at all
- Your filters may not overlap. Two bounds that contradict each other match nothing, so widen or clear one.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
Qasa is a trademark of its respective owner. This Actor is an independent tool and is not affiliated with, endorsed by or sponsored by Qasa. It reads only listing pages that Qasa publishes openly, with no login and no personal account data.
🤝 Support
Join our active support community
- For issues or questions, open an issue on the Actor's issues page
- Check the SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools