Bilbasen Scraper
Pricing
from $2.00 / 1,000 results
Bilbasen Scraper
Scrape Bilbasen.dk car listings from any filtered search URL. Get clean JSON with price, key specs, images, and optional detail pages (description, seller, extended specs).
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
Black Falcon Data
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
7 hours ago
Last modified
Categories
Share

🔍 What is Bilbasen Scraper?
Apify Actor that scrapes used car listings from bilbasen.dk — Denmark's largest car marketplace. Get structured JSON data with price, specs, images, seller info, and full descriptions.
Use filter parameters directly (make, model, year, price) or provide a bilbasen.dk search URL for full control.
✨ Why choose this scraper?
- Filter-based search — set make, model, year range, price range directly. No need to build URLs manually
- Incremental mode — only get new or changed listings since last run
- Compact output — 10-field mode optimized for AI agents and MCP workflows
- Resilient scraping — automatic retries, session management, deterministic delays
- Rich data — flat top-level fields for easy consumption + full nested data for advanced use cases
- Persisted state — survives migration and restart without data loss
🚀 Quick start
Search by filters
{"make": "Audi","model": "A4","yearFrom": 2020,"priceFrom": 100000,"priceTo": 400000,"maxResults": 50}
Search by URL
{"startUrls": [{ "url": "https://www.bilbasen.dk/brugt/bil/bmw/3-serien?yearfrom=2019&pricetype=Retail" }],"maxResults": 100,"includeDetailPages": true,"proxyConfiguration": { "useApifyProxy": true }}
⚙️ Input reference
Search parameters
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | — | One bilbasen.dk search URL per run. Optional if filter params are set. |
make | string | — | Car make (e.g. "Audi", "BMW", "Toyota") |
model | string | — | Car model (e.g. "A4", "3-Serien"). Requires make. |
yearFrom | integer | — | Minimum model year |
yearTo | integer | — | Maximum model year |
priceFrom | integer | — | Minimum price in DKK |
priceTo | integer | — | Maximum price in DKK |
maxResults | integer | 100 | Maximum listings to return (0 = unlimited) |
includeDetailPages | boolean | true | Fetch full detail for each listing |
Output control
| Field | Type | Default | Description |
|---|---|---|---|
compact | boolean | false | Return only 10 core fields. Ideal for AI agents. |
descriptionMaxLength | integer | — | Truncate description to N characters |
incremental | boolean | false | Only output new/changed listings since last run |
imagesMode | string | "first3" | "first3" or "all" image URLs |
Performance tuning
| Field | Type | Default | Description |
|---|---|---|---|
maxConcurrency | integer | 5 | Maximum concurrent requests |
maxRequestRetries | integer | 3 | Retries per failed request |
maxPages | integer | 200 | Max search result pages to paginate |
minDelayMs | integer | 0 | Minimum delay between requests (ms) |
maxDelayMs | integer | 0 | Maximum delay between requests (ms) |
Apify Proxy is strongly recommended for reliable results. Configure it in the actor's input settings.
📊 Output fields
Top-level convenience fields (detail mode)
Pricing
| Field | Type | Description |
|---|---|---|
price | number | Price from search page (numeric) |
priceAmount | number | Price parsed from detail page |
priceText | string | Price as displayed (e.g. "194.900 kr.") |
Note: In list-only runs,
pricemay be null/less reliable;priceAmountis populated from detail pages.
Vehicle
| Field | Type | Description |
|---|---|---|
make | string | Car make (e.g. "Audi") |
model | string | Car model (e.g. "A4") |
variant | string | Full variant name |
year | number | Model year |
firstRegistrationDate | string | First registration in ISO format (e.g. "2016-01") |
mileage | string | Mileage as displayed (e.g. "147.000 km") |
fuelType | string | Fuel type (e.g. "Diesel") |
gearType | string | Gear type (e.g. "Automatisk") |
horsepower | string | Engine output (e.g. "190 hk/400 nm") |
yearlyTax | string | Periodic tax (e.g. "2.920 kr. / år") |
color | string | Color |
doors | number | Number of doors |
externalId | number | Bilbasen listing ID |
Content
| Field | Type | Description |
|---|---|---|
url | string | Listing URL |
portalUrl | string | Portal listing URL |
title | string | Listing title |
description | string | Full listing description |
features | string[] | Feature highlights (best-effort parsed; not a guaranteed equipment list) |
Seller
| Field | Type | Description |
|---|---|---|
sellerName | string | Dealer/seller name |
sellerType | string | "Dealer" or "Private" |
sellerAddress | string | Full address |
sellerCity | string | City |
sellerZipCode | number | Zip code |
sellerPhone | string | Phone (when available) |
Location
| Field | Type | Description |
|---|---|---|
locationLat | number | Latitude (from search page) |
locationLon | number | Longitude (from search page) |
locationRegion | string | Region (e.g. "Østjylland") |
Media & Metadata
| Field | Type | Description |
|---|---|---|
images | string[] | Image URLs (first 3 by default; set imagesMode: "all" for all) |
imagesCount | number | Total number of images available |
scrapedAt | string | ISO 8601 timestamp |
Compact output fields
When compact: true, only these fields are returned: url, portalUrl, title, make, model, year, price, mileage, fuelType, sellerName, scrapedAt.
Rich nested data
The full listing object is preserved in the output for advanced use cases. It includes the complete vehicle details, seller info, media, financing options, and more as provided by Bilbasen's internal API.
📦 Sample output
{"url": "https://www.bilbasen.dk/brugt/bil/audi/a4/35-tdi-prestige-avant-s-tr-5d/6794104","portalUrl": "https://www.bilbasen.dk/brugt/bil/audi/a4/35-tdi-prestige-avant-s-tr-5d/6794104","title": "Audi A4 35 TDi Prestige Avant S-tr. 5d","price": 329800,"priceAmount": 329800,"priceText": "329.800 kr.","make": "Audi","model": "A4","variant": "35 TDi Prestige Avant S-tr. 5d","year": 2021,"firstRegistrationDate": "2021-02","mileage": "78.000 km","fuelType": "Diesel","gearType": "Automatisk","sellerName": "KJ Biler","sellerType": "Dealer","sellerCity": "Tønder","sellerZipCode": 6270,"images": ["https://billeder.bilbasen.dk/..."],"imagesCount": 24,"scrapedAt": "2026-03-21T00:56:00.000Z"}
⚠️ Known limitations
- Proxy strongly recommended — without Apify Proxy, requests are likely to be blocked.
- Images capped to 3 by default — Set
imagesMode: "all"for all images.imagesCountalways shows the total. - One search per run — Use one URL or one set of filter parameters per run.
- No email data — Bilbasen does not expose seller email addresses in listing data.
- Geo data from search only — Latitude, longitude, and region are available from search page data. Detail pages do not include geo coordinates.
💰 How much does it cost to scrape Bilbasen?
This actor uses pay-per-event pricing, so you pay a small run-start fee and then only for results that are actually emitted. Typical costs:
- List-only mode (~1 second per listing): ~$0.25 per 1,000 listings
- Detail mode (~2 seconds per listing): ~$0.50 per 1,000 listings
- Proxy costs: Apify Proxy usage is billed separately
Use compact: true and includeDetailPages: false for the cheapest runs.
🔗 Related actors
- mobile.de Scraper — Germany's largest car marketplace.
- FINN.no Torget Scraper — Norway's largest classified marketplace.
- DBA Listings Scraper — Denmark's largest classifieds portal.
- StepStone Jobs Feed — 18 European StepStone job portals.
- Willhaben Jobs Feed — Austria's largest job and classifieds portal.