Blocket Scraper — Sweden Classifieds & Prices
Pricing
from $3.00 / 1,000 listings
Blocket Scraper — Sweden Classifieds & Prices
Blocket scraper for Swedish classifieds. Each row has the SEK price, location, year, mileage, seller type, and photos for cars, phones, boats, and general for-sale ads. Export JSON or monitor new ads.
Pricing
from $3.00 / 1,000 listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 days ago
Last modified
Categories
Share
Blocket Scraper
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Blocket AB or its affiliates. Data is read from publicly accessible search and listing pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Blocket scraper for Swedish classifieds. Each row is one listing: asking price in SEK, location, seller type, description, and photos. Cars add year and mileage. Search by keyword or category, or paste a results URL. Use it as a Blocket scraper and Blocket API alternative from Python, Node.js, cURL, or Apify MCP, and export the dataset as JSON.
Best for: phone and general for-sale comps, used cars, boats, and a scheduled run that saves only new ads and price changes.
| Actor | Role |
|---|---|
| Blocket Scraper ◄── you are here | Sweden classifieds: SEK price, location, year, mileage, new-ad monitor |
| Kleinanzeigen Scraper | Germany classifieds |
| Tutti.ch Scraper | Switzerland classifieds |
| Gumtree Scraper | UK classifieds |
| Leboncoin Scraper | France classifieds |
| Marktplaats Scraper | Netherlands classifieds |
| eBay Sold Listings Scraper | Sold comps for the same goods |
When to use this Actor
- A keyword — Set Keyword to iphone and leave Search URLs empty. For sale is the default section.
- Cars, boats, motorcycles, or caravans — Pick the category. Leave Keyword empty to browse that section, or add a make.
- A results page you already opened — Paste the search URL. Keyword and category are ignored when Search URLs is set.
- One listing — Paste the listing URL. The run saves that page.
- New ads and price cuts — Turn on monitor mode and schedule the same search. The first run stores a baseline and saves nothing. Later runs save new listing ids and price changes.
When not to use this Actor
- Phone numbers — The contact button is not called. A number the seller typed into the description stays inside
description. - A national dump in one run — Cap
maxItems(200). Split by category or keyword. - Logged-in seller tools — This Actor reads public pages only.
Key features
- Search and listing pages — Title, SEK price, location, description, and photos. Cars include year, mileage in Swedish mil, transmission, and color. Default 256 MB. Direct HTTP. No browser.
- Keyword or category — For sale, cars, boats, motorcycles, and caravans.
- Pasted URL — Search URLs and single listing pages.
- Private versus business —
sellerTypeisprivateorbusinesswhen the public page says so. - Monitor — Named key-value store of listing id and last price for that search. The seed run does not open listing pages.
Input
| Field | Required | Default | What it does |
|---|---|---|---|
| Search or listing URLs | No | — | Wins over the filters below. |
| Keyword | No | iPhone on For sale | Search text. For sale with an empty keyword searches for iPhone. |
| Category | No | For sale | Section used when Search URLs is empty. |
| Open listing pages | No | on | Description, location, photos, and public specs. Same saved row. |
| Maximum listings | No | 40 | Rows to save, up to 200. |
| Monitor mode | No | off | Baseline first, then new ids and price changes. |
| Monitor state store | No | blocket-monitor | Named store for the baseline. |
| Proxy | No | off | Turn it on if a run is blocked. |
{"keyword": "iphone","category": "forsale","includeListingDetails": true,"maxItems": 40,"monitorMode": false,"proxyConfiguration": {"useApifyProxy": false}}
Output
| Field | Meaning |
|---|---|
id | Listing id |
url | Public listing page |
title | Listing title |
price | Asking price in SEK |
currency | SEK |
location | Place or postal area on the listing page |
postalCode | Five-digit code when the address starts with one |
latitude, longitude | Map point from the public map link |
category | Category path |
brand, model | Brand and model when the page shows them |
year | Model year |
mileageMil | Odometer in Swedish mil (1 mil = 10 km) |
transmission, fuel, color | Specs printed on the listing |
sellerType | private or business |
description | Listing description |
image, images | First photo, then the photo list |
attributes | Other public spec pairs |
changeType | new or price_change on monitor runs |
previousPrice | Prior asking price when changeType is price_change |
scrapedAt | UTC timestamp |
{"id": "27232101","url": "https://www.blocket.se/recommerce/forsale/item/27232101","title": "Iphone 11","price": 300,"currency": "SEK","location": "27333 Tomelilla","postalCode": "27333","brand": "Apple","sellerType": "private","description": "Hel och fin telefon utan repor."}
Use cases
- Compare asking prices for a phone model and keep location and seller type.
- Pull used cars with year, mileage, transmission, and the public SEK price.
- Schedule monitor mode each morning and export only listings whose price moved.
- For sold comps on the same goods, run eBay Sold Listings Scraper. For Germany, run Kleinanzeigen Scraper.
Integration examples
Replace APIFY_TOKEN. The slug below is the Store name.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/blocket-scraper").call({keyword: "iphone",maxItems: 40,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/blocket-scraper").call(run_input={"category": "cars","keyword": "volvo","maxItems": 40,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(len(items))
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~blocket-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"keyword":"iphone","maxItems":40}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store name crawloop/blocket-scraper.
Example prompts:
- "Run Blocket Scraper for iphone and return price, location, and seller type as JSON"
- "Scrape Blocket cars for Volvo and summarize year, mileage, and asking price"
- "Run Blocket Scraper in monitor mode for iphone, then use eBay Sold Listings Scraper for sold comps"
Suite next step
This Actor covers Swedish classifieds. For sold prices on the same goods, run eBay Sold Listings Scraper. For another country’s classifieds, run Kleinanzeigen Scraper or Tutti.ch Scraper.
FAQ
Does this open every listing page? Yes, when Open listing pages is on. Monitor seed runs skip those pages and save nothing. Turn the option off to keep the search card only.
Which categories are included? For sale, cars, boats, motorcycles, and caravans. A pasted search URL can target any public results page.
What if the run is blocked? Turn the proxy on and retry. If datacenter is still blocked, switch the proxy to residential.
What does monitor mode skip? Listing ids already stored for that same search, unless the asking price changed. A quiet tick writes zero rows. The first run only fills the baseline.
Are phone numbers included?
The contact button is not called. A number written in the description stays in description.
How do I export the rows? The run writes one listing per dataset row. Download JSON, CSV, or Excel from that dataset, or read it with the Node.js, Python, and cURL examples.