# Blocket Cars Scraper: Bilar till salu (`getascraper/blocket-cars-scraper`) Actor

Extract used-car listings (bilar) from Blocket.se with price, year, mileage, fuel type, and transmission filtered server-side. JSON or CSV rows ready for Sheets, Make, and Zapier. From $0.00087 per listing.

- **URL**: https://apify.com/getascraper/blocket-cars-scraper.md
- **Developed by:** [GetAScraper](https://apify.com/getascraper) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.66 / 1,000 car listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## 🚗 Blocket Cars Scraper: Bilar till salu

<table width="100%" style="border-collapse:collapse;table-layout:fixed;margin:0 0 16px">
<tbody>
<tr>
<td colspan="4" style="padding:14px 18px;background:#FDECEB;border:1px solid #F5C6C2;border-top:3px solid #E2231A;border-radius:10px 10px 0 0">
<span style="font-size:16px;font-weight:700;color:#1C1917">Sweden is one stop in a ten-market European used-car dataset.</span> <span style="font-size:15px;color:#57534E">Blocket.se covers Swedish classifieds with stable newest-first pagination; the actors below extend the same row shape across Benelux, DACH, Iberian, and UK markets.</span>
</td>
</tr>
<tr>
<td colspan="4" style="padding:10px 14px;background:#E2231A;border-left:1px solid #E2231A;border-right:1px solid #E2231A">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">EUROPEAN USED-CAR CLASSIFIEDS COVERAGE</span> <span style="color:#FFFFFF;opacity:0.85;font-size:13px">&nbsp;&nbsp;Cross-border sourcing and pricing data spanning Benelux, Nordic, DACH, Iberian, and UK classifieds, plus a pan-EU dealer platform. Ten separate markets, not one.</span>
</td>
</tr>
<tr>
<td width="25%" style="width:25%;padding:11px 12px;border-left:1px solid #F5C6C2;border-bottom:1px solid #F5C6C2;vertical-align:top;background:#FDECEB;border-radius:0 0 0 10px">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-nxKtSMSY8vKIHcbbk-DuND4nZUfs-0x0_%281%29.png" width="18" height="18" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/blocket-cars-scraper" style="color:#E2231A;text-decoration:none;font-weight:700;font-size:13px">Blocket (SE)</a></span><br>
<span style="color:#E2231A;font-size:11px;font-weight:700">&#10148; You are here</span>
</td>
<td width="25%" style="width:25%;padding:11px 12px;border-left:1px solid #F5C6C2;border-bottom:1px solid #F5C6C2;vertical-align:top;background:#FFFFFF">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-BfVUfAfdvV4a4ajL3-sVbNQD5NgK-cinchuk_logo.jpeg" width="18" height="18" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/cinch-co-uk-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Cinch (UK)</a></span><br>
<span style="color:#57534E;font-size:11px">UK online dealer</span>
</td>
<td width="25%" style="width:25%;padding:11px 12px;border-left:1px solid #F5C6C2;border-bottom:1px solid #F5C6C2;vertical-align:top;background:#FFFFFF">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-ckYdwgUHwTVD337SK-zVHl7h08Kh-Kleinanzeigen.webp" width="18" height="18" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/kleinanzeigen-cars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Kleinanzeigen (DE)</a></span><br>
<span style="color:#57534E;font-size:11px">German classifieds</span>
</td>
<td width="25%" style="width:25%;padding:11px 12px;border-left:1px solid #F5C6C2;border-right:1px solid #F5C6C2;border-bottom:1px solid #F5C6C2;vertical-align:top;background:#FFFFFF;border-radius:0 0 10px 0">
<span style="overflow-wrap:break-word;word-break:break-word"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/jNDbFabbVxMhnQNb4-actor-Pj1SDha1m3bqFTb86-MXXoz4OaRh-marktplaats-logo-aangepast-voor-thissen-autos-1.png" width="18" height="18" style="vertical-align:middle;border-radius:4px">&nbsp;<a href="https://apify.com/getascraper/marktplaats-cars-scraper" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:13px">Marktplaats (NL)</a></span><br>
<span style="color:#57534E;font-size:11px">Dutch classifieds</span>
</td>
</tr>
</tbody>
</table>

<table width="100%">
<tr>
<td style="padding:24px 28px;background:#FDECEB;border:1px solid #F5C6C2;border-top:4px solid #E2231A;border-radius:12px">
<span style="font-size:23px;font-weight:800;color:#1C1917;line-height:1.3">Sweden's biggest car marketplace, turned into clean rows.</span><br>
<span style="font-size:15px;color:#57534E;line-height:1.6">Scrape public Blocket.se car listings with real price, mileage, year, and fuel filters, and export prices, specs, seller info, and photo galleries to Sheets, Excel, or n8n.</span>
</td>
</tr>
</table>

<table width="100%">
<tr>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F5C6C2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E2231A">🎯 Real filters</span><br>
<span style="font-size:12px;color:#57534E">Price, mileage, year, fuel, and transmission, not just a keyword box.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F5C6C2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E2231A">📈 Stable pagination</span><br>
<span style="font-size:12px;color:#57534E">Newest-first ordering, so multi-page runs never repeat listings.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F5C6C2;border-left:none;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E2231A">🪪 Seller context</span><br>
<span style="font-size:12px;color:#57534E">Private seller or dealer, right on every record.</span>
</td>
<td style="padding:14px 12px;width:25%;background:#FFFFFF;border:1px solid #F5C6C2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:15px;font-weight:800;color:#E2231A">🖼️ Full galleries</span><br>
<span style="font-size:12px;color:#57534E">Every public listing photo, not just the cover image.</span>
</td>
</tr>
</table>

Most Blocket scrapers hand you a keyword box and hope. This Actor exposes the same price, mileage, year, fuel, and transmission filters you'd use on the site itself, so what you scrape is already the inventory you actually want.

### 🔍 What does Blocket Cars Scraper do?

Blocket Cars Scraper turns public car listings from Sweden's largest classifieds site into structured data: price, year, mileage, fuel type, transmission, seller details, and full photo galleries.

Build a filtered search for price range, mileage range, model year, fuel type, and transmission, or paste a Blocket.se search or listing link built on the site itself for a specific make or model. The Actor returns only data present on the public listing.

### 💡 Why use it?

- **Dealers and sourcing teams** can pull inventory under a price and mileage ceiling without checking listings one by one.
- **Market researchers** can track price, year, and mileage across comparable vehicles for pricing analysis.
- **Buyers and resellers** can monitor a filtered slice of the market on a schedule and catch new listings as they post.

### 🧭 How to use it

<table width="100%">
<tr>
<td style="padding:16px 14px;width:33%;background:#FDECEB;border:1px solid #F5C6C2;border-radius:10px 0 0 10px;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E2231A;letter-spacing:1px">STEP 1</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Set your filters</span><br>
<span style="font-size:12px;color:#57534E">Price, mileage, year, fuel, and transmission.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FDECEB;border:1px solid #F5C6C2;border-left:none;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E2231A;letter-spacing:1px">STEP 2</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Run the Actor</span><br>
<span style="font-size:12px;color:#57534E">Set how many listings and pages to collect.</span>
</td>
<td style="padding:16px 14px;width:33%;background:#FDECEB;border:1px solid #F5C6C2;border-left:none;border-radius:0 10px 10px 0;vertical-align:top">
<span style="font-size:12px;font-weight:800;color:#E2231A;letter-spacing:1px">STEP 3</span><br>
<span style="font-size:14px;font-weight:700;color:#1C1917">Export results</span><br>
<span style="font-size:12px;color:#57534E">Download your dataset in JSON, CSV, Excel, or HTML.</span>
</td>
</tr>
</table>

### 🧾 Input

| Field | Type | Required | Description |
|---|---|---|---|
| `startUrls` | array of URLs | No | Paste public Blocket.se car search or listing links, built however you like on the site. Overrides the filters below. |
| `q` | string | No | Free-text keyword, such as a make, model, or trim. |
| `priceFromSek` / `priceToSek` | integer | No | Minimum and maximum asking price, in Swedish kronor. |
| `yearFrom` / `yearTo` | integer | No | Earliest and latest model year. |
| `mileageFromKm` / `mileageToKm` | integer | No | Minimum and maximum odometer reading, in kilometers. |
| `fuelTypes` | array of enum | No | One or more fuel types: petrol, diesel, CNG, electric, petrol hybrid, or diesel hybrid. |
| `transmissions` | array of enum | No | Manual, automatic, or both. |
| `sort` | enum | No | Result ordering. Defaults to newest-first for stable, non-repeating pages across a multi-page run. |
| `maxItems` | integer | No | Maximum listings saved to the dataset. Default `25`. |
| `maxPages` | integer | No | Maximum search result pages read. Default `5`. |
| `proxyConfiguration` | object | No | Optional proxy settings. Not required for normal use. |

### 📦 Output

Every record includes the listing link, price, year, mileage, fuel type, transmission, seller details, and the full public photo gallery.

```json
{
  "listing_url": "https://www.blocket.se/mobility/item/25411135",
  "listing_id": "25411135",
  "title": "Audi Q3",
  "trim": "2.0 TDI quattro S Tronic, BOSE, Alcantara",
  "price": 149900,
  "currency": "SEK",
  "year": 2016,
  "mileage_km": 172000,
  "fuel_type": "Diesel",
  "transmission": "Automatisk",
  "location": "Nacka Strand",
  "seller_type": "Privat",
  "image_url": "https://images.blocketcdn.se/dynamic/default/item/25411135/example.jpg",
  "listed_ago": "4 dagar",
  "scraped_at": "2026-08-20T06:57:05.635Z"
}
```

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

### 📊 Data table

| Field | Type | Description |
|---|---|---|
| `listing_url`, `listing_id` | string | Public listing link and its source ID. |
| `title`, `trim` | string | Listing headline and trim or variant text. |
| `price`, `currency` | number, string | Asking price and currency (SEK). |
| `year`, `mileage_km` | number | Model year and odometer reading in kilometers. |
| `range_km` | number | Electric range in kilometers, on electric listings that publish one. |
| `fuel_type`, `transmission` | string | Vehicle specification fields, when published. |
| `location`, `seller_type` | string | Seller city and whether the seller is private or a dealer. |
| `image_url`, `image_urls` | string, array | Primary photo and the full public gallery. |
| `listed_ago` | string | How recently the listing was posted or refreshed, as shown on the source page. |
| `source_url` | string | The search URL that produced this listing. |
| `scraped_at` | string | Timestamp of when this record was built. |

Any field the source listing does not publish is left out of that record entirely, so you never see placeholder or made-up values.

### 💰 Pricing

This Actor runs on Apify's pay-per-event pricing. You only pay for listings actually returned, and an empty or failed run costs nothing beyond a few seconds of compute. There is no subscription.

### ⭐ Enjoying Blocket Cars Scraper?

<table width="100%">
<tr>
<td style="padding:20px 24px 14px;background:#FDECEB;border:1px solid #F5C6C2;border-left:5px solid #E2231A;border-radius:10px 10px 0 0">
<span style="font-size:20px;letter-spacing:4px">⭐ ⭐ ⭐ ⭐ ⭐</span><br>
<span style="font-size:17px;font-weight:800;color:#1C1917">This Actor just saved you from checking Blocket listings one at a time.</span><br>
<span style="font-size:14px;color:#57534E">A 5-star rating takes 10 seconds and helps other dealers, researchers, and buyers find it. Your feedback also tells us what to build next.</span>
</td>
</tr>
<tr>
<td style="padding:0;background:#E2231A;border:1px solid #F5C6C2;border-top:none;border-radius:0 0 10px 10px;text-align:center">
<a href="https://apify.com/getascraper/blocket-cars-scraper/reviews" style="display:block;padding:13px 16px;color:#FFFFFF;text-decoration:none;font-weight:800;font-size:15px;letter-spacing:0.3px">★&nbsp;&nbsp;Rate this Actor on Apify</a>
</td>
</tr>
</table>

### 🛠️ Tips and advanced options

- Keep the default newest-first sort unless you have a reason to change it. Blocket's own "most relevant" ordering can return a substantially different set of listings on identical requests, which breaks clean pagination.
- Set both `priceFromSek` and `priceToSek` together to cut down on irrelevant results fast.
- For a specific make or model, build that search on Blocket.se yourself and paste the resulting link into `startUrls`. Blocket's make and model filters use internal codes rather than plain names, so this is more reliable than guessing one.
- A small number of commercial listings, mostly vans and light trucks, show a monthly leasing price instead of a full purchase price. This is how the source site displays them; the Actor doesn't try to guess which is which.

### ❓ FAQ

**Can I filter by a specific make or model?**
Yes, but through `startUrls` rather than a make/model input field. Blocket's own filters use internal numeric codes for make and model, so the reliable way is to build that search on Blocket.se and paste the link in.

**Why does mileage look off compared to what I expect?**
Blocket displays odometer readings in the Swedish "mil" unit, where 1 mil equals 10 km. This Actor converts every mileage value to kilometers automatically, so `mileage_km` is already in the unit you expect.

**Why is a field missing from an item?**
Blocket listings don't publish every detail. Missing values are omitted rather than replaced with guesses.

**Is this affiliated with Blocket?**
No. This is an independent tool that collects publicly available listing information. Use it in line with applicable rules and the source website's terms.

Found a bug or want a feature added? Open an issue on the Actor's Issues tab, or reach out for a custom version of this Actor.

### 🔗 Other actors

- [Marktplaats Cars Scraper: Tweedehands auto's](https://apify.com/getascraper/marktplaats-cars-scraper) ↗ - Used-car listings from the Netherlands.
- [OtoMoto Cars Scraper: Samochody używane](https://apify.com/getascraper/otomoto-cars-scraper) ↗ - Used-car inventory from Poland's largest car marketplace.
- [Kleinanzeigen Autos Scraper: Dealer Data](https://apify.com/getascraper/kleinanzeigen-cars-scraper) ↗ - Dealer-ready German car inventory with native filters.
- [VIN Decoder + NHTSA Recalls & Complaints: One Call](https://apify.com/getascraper/nhtsa-vehicle-intelligence-monitor) ↗ - Enrich vehicle research with official US recall and complaint data.

# Actor input Schema

## `startUrls` (type: `array`):

Paste one or more Blocket.se car search or listing links directly, built however you like on the site itself, such as a specific make or model. When set, this replaces the filters below. Leave empty to use the filters below to build the search for you.

## `q` (type: `string`):

Free-text search term, such as a make, model, or trim.

## `priceFromSek` (type: `integer`):

Minimum asking price in Swedish kronor.

## `priceToSek` (type: `integer`):

Maximum asking price in Swedish kronor.

## `yearFrom` (type: `integer`):

Earliest model year.

## `yearTo` (type: `integer`):

Latest model year.

## `mileageFromKm` (type: `integer`):

Minimum odometer reading in kilometers.

## `mileageToKm` (type: `integer`):

Maximum odometer reading in kilometers.

## `fuelTypes` (type: `array`):

Restrict to one or more fuel types.

## `transmissions` (type: `array`):

Restrict to one or more transmission types.

## `sort` (type: `string`):

How results are ordered. Newest-first gives consistent, non-repeating pages across a multi-page run; Blocket's own default ordering can return a different mix of listings on every request.

## `proxyConfiguration` (type: `object`):

Optional proxy settings. Blocket works with a direct connection by default.

## `maxItems` (type: `integer`):

Maximum number of unique car listings to return.

## `maxPages` (type: `integer`):

Maximum number of search pages to visit.

## Actor input object example

```json
{
  "startUrls": [],
  "q": "",
  "fuelTypes": [],
  "transmissions": [],
  "sort": "PUBLISHED_DESC",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10,
  "maxPages": 2
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "startUrls": [],
    "q": "",
    "fuelTypes": [],
    "transmissions": [],
    "sort": "PUBLISHED_DESC",
    "proxyConfiguration": {
        "useApifyProxy": false
    },
    "maxItems": 10,
    "maxPages": 2
};

// Run the Actor and wait for it to finish
const run = await client.actor("getascraper/blocket-cars-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "startUrls": [],
    "q": "",
    "fuelTypes": [],
    "transmissions": [],
    "sort": "PUBLISHED_DESC",
    "proxyConfiguration": { "useApifyProxy": False },
    "maxItems": 10,
    "maxPages": 2,
}

# Run the Actor and wait for it to finish
run = client.actor("getascraper/blocket-cars-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "startUrls": [],
  "q": "",
  "fuelTypes": [],
  "transmissions": [],
  "sort": "PUBLISHED_DESC",
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "maxItems": 10,
  "maxPages": 2
}' |
apify call getascraper/blocket-cars-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,getascraper/blocket-cars-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/nxKtSMSY8vKIHcbbk/builds/39TRzKILgk2hbYRSa/openapi.json
