DBA Scraper — Listings, Prices, Sellers & GPS
Pricing
from $1.50 / 1,000 results
DBA Scraper — Listings, Prices, Sellers & GPS
Scrape DBA.dk, Denmark's largest classifieds, by keyword or URL. Get price (DKK), seller type (private/retailer), location with GPS, publish date, brand, attributes, photos and the full ad description. Cars, electronics, home and more. No API key. Export JSON, CSV, Excel.
Pricing
from $1.50 / 1,000 results
Rating
0.0
(0)
Developer
Haketa
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
18 hours ago
Last modified
Categories
Features
Share
DBA.dk Scraper — Danish Classifieds, Listings, Prices & Leads 🇩🇰
Extract listings, asking prices in DKK, seller classification, geographic GPS coordinates, and full product details from DBA.dk (Den Blå Avis) — Denmark's largest second-hand marketplace and online classifieds portal. This DBA scraper is engineered for retail price monitoring, second-hand circular arbitrage, B2B merchant prospecting, automotive valuation, and competitive intelligence without requiring user credentials, browser emulation, or manual maintenance.
Export structured Danish marketplace data directly to JSON, CSV, Excel, or API.
⚡ At a glance
| Feature | Specification |
|---|---|
| Target Website | dba.dk (Den Blå Avis — Denmark's #1 classifieds site) |
| Data Scope | Used vehicles, designer furniture, consumer tech, clothing, tools, hobby items |
| Search Modes | Keyword queries (iphone, sofa, cykel), category filters, or direct Start URLs |
| Pagination Scale | 1,000+ results with automatic multi-page traversal (up to 50 listings/page) |
| Core Identifiers | Listing ID, canonical DBA URL, Danish listing title, numeric price in DKK |
| Lead Generation | Seller type segmentation (private individuals vs commercial retailer dealers) |
| Geographic Intelligence | Danish town, postal area, and exact centroid GPS coordinates (lat, lng) |
| Detail Enrichment | Optional full description text extraction, item attributes, and multi-photo arrays |
| Deduplication | Automatic across keywords, categories, and paginated crawl passes |
| Output Formats | JSON, CSV, XML, Excel, NDJSON, HTML table, RSS, Apify REST API |
| Default Proxy | Apify Proxy Datacenter (instant response times, minimal compute usage) |
🔎 Why scrape DBA.dk?
DBA.dk (Den Blå Avis) is a household institution in Denmark. As the primary classifieds portal operating in the Danish market, millions of Danish buyers and sellers trade everything from everyday consumer electronics and classic Danish mid-century furniture (Arne Jacobsen, Hans Wegner, Børge Mogensen) to used automobiles, caravans, and industrial workshop equipment.
Because DBA.dk captures actual asking prices in Danish krone (DKK) prior to transaction close, it serves as the definitive public database for Danish second-hand pricing, retail residual values, local supply velocity, and merchant commercial presence.
Extracting this data by hand is rendered impossible by infinite scroll interfaces, complex JavaScript single-page-app rendering, and strict layout pagination caps. This DBA data extractor delivers a reliable, production-ready pipeline that retrieves structured data records in seconds.
High-impact applications:
- 🪑 Danish design furniture sourcing — Track classic vintage Danish furniture (teak sideboards, Wegner chairs, Poul Henningsen lamps) listed by private sellers across Jutland and Zealand.
- 🚗 Used vehicle & automotive analytics — Monitor asking prices, mileage attributes, and dealer markups on passenger cars, vans, and commercial vehicles throughout Denmark.
- 💰 Second-hand retail arbitrage & flipping — Identify newly published electronics (smartphones, gaming consoles, mirrorless cameras) listed below current market value.
- 🏢 B2B merchant prospecting & lead generation — Filter by
sellerType: "retailer"to build contact lists of commercial second-hand shops, car dealers, and repair businesses in Denmark. - 📊 Competitive price indexing & inflation metrics — Track consumer price dynamics in Danish kroner (DKK) over time across consumer electronics and durable goods.
- 🤖 AI training & RAG knowledge bases — Feed real-world Danish language product descriptions, titles, and localized transaction metadata into language models and predictive valuation algorithms.
✨ Key features
- 🔍 Multi-keyword execution — Pass arrays of search terms (
["iphone 15", "sofa", "ladcykel"]). Each keyword is systematically queried and consolidated. - 🔗 Start URL compatibility — Copy any filtered DBA search or category page directly from your browser into Start URLs; all complex query parameters are maintained.
- 📄 Deep pagination (1,000+ items) — Transparently paginates across 50 listings per page. Set
maxItems: 0andmaxPagesPerSearch: 0for complete catalog ingestion. - 💰 Clean monetary normalization — Formats Danish listing prices as clean numeric values with standardized
DKKcurrency tags. - 👥 High-intent seller filtering — Segregate private individuals from commercial business accounts (
privatevsretailer). - 📍 Precise Danish geocoding — Captures municipality location names alongside exact
latandlngcentroid coordinates for spatial analysis. - 🚚 Commerce indicators — Collects key purchase signals including shipping availability (
isShippable), instant checkout (canBuyNow), and seller shipping coverage. - 📝 Optional full ad descriptions — Toggle
fetchDetailsto retrieve the entire ad text directly from the listing page. - ⚡ Lightweight pure HTTP engine — Operates without headless browser overhead, pulling hundreds of listings in seconds.
📥 Input parameters
The actor features intuitive configuration options suitable for quick manual queries or high-volume automated runs.
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | Array of strings | ["iphone"] | List of Danish search queries. Each term is executed and aggregated independently. |
startUrls | Array of strings | [] | Optional direct DBA.dk category or search URLs. When provided, takes precedence over search terms. |
sellerType | String | "" | Seller classification filter: "" (All), "private" (Private sellers), or "retailer" (Dealers/Shops). |
priceMin | Integer | None | Minimum listing price in Danish kroner (DKK). |
priceMax | Integer | None | Maximum listing price in Danish kroner (DKK). |
maxItems | Integer | 100 | Maximum total records to scrape across all queries. Set 0 for unlimited crawling. |
maxPagesPerSearch | Integer | 0 | Maximum pages to crawl per keyword or URL (≈50 items/page). Set 0 for auto/unlimited. |
fetchDetails | Boolean | false | When true, visits each listing URL to extract the complete ad description text. |
proxyConfiguration | Object | { "useApifyProxy": true } | Apify Proxy configuration. Standard datacenter proxies operate seamlessly out of the box. |
Example input configuration
{"searchTerms": ["arne jacobsen", "wegner"],"sellerType": "private","priceMin": 1000,"priceMax": 25000,"maxItems": 300,"maxPagesPerSearch": 0,"fetchDetails": false,"proxyConfiguration": {"useApifyProxy": true}}
📤 Output dataset
Every scraped DBA ad is parsed into a clean JSON structure ready for immediate CSV/Excel export or downstream database ingestion.
Real data sample
{"id": "1114567890","url": "https://www.dba.dk/recommerce/forsale/item/1114567890","title": "iPhone 15 Pro, 256 GB, Titangrå - Som ny","price": 6200,"currency": "DKK","tradeType": "Sælges","sellerType": "private","location": "Aarhus C","lat": 56.1572,"lng": 10.2107,"publishedDate": "2026-11-08T18:40:12.000Z","brand": "Apple","isShippable": true,"sellerPaysShipping": false,"canBuyNow": true,"labels": ["Kan sendes", "Køb nu", "Privat"],"imageUrl": "https://images.dba.dk/item/1114567890/cover.jpg","images": ["https://images.dba.dk/item/1114567890/cover.jpg","https://images.dba.dk/item/1114567890/detail_1.jpg"],"attributes": {"model": "iPhone 15 Pro","hukommelse": "256 GB","farve": "Titangrå"},"description": "Super flot iPhone 15 Pro sælges pga. opgradering. Batterikapacitet 97%. Ingen ridser.","searchTerm": "iphone","scrapedAt": "2026-11-10T14:40:00.000Z"}
📋 Field reference
🏷️ Identity & Core Metadata
| Field Name | Type | Coverage | Description |
|---|---|---|---|
id | String | 🟢 High (100%) | Unique DBA listing identifier. Natural key for deduplication. |
url | String | 🟢 High (100%) | Canonical listing web address on DBA.dk. |
title | String | 🟢 High (100%) | Complete advertisement title in Danish. |
tradeType | String | 🟢 High (100%) | Listing intent: Sæljes (For sale) or Købes (Wanted). |
publishedDate | String | 🟢 High (100%) | ISO 8601 publication timestamp when the ad went live. |
searchTerm | String | 🟡 Conditional | Search keyword that produced this record. |
scrapedAt | String | 🟢 High (100%) | ISO timestamp marking exact crawl execution time. |
💰 Pricing & Financials
| Field Name | Type | Coverage | Description |
|---|---|---|---|
price | Number | 🟢 High (98%) | Listing price parsed as a clean integer. null for price-on-demand listings. |
currency | String | 🟢 High (100%) | ISO currency identifier, consistently DKK for Danish listings. |
👤 Seller Profile & Commercial Lead Signals
| Field Name | Type | Coverage | Description |
|---|---|---|---|
sellerType | String | 🟢 High (100%) | Classification of seller: private (consumer) or retailer (commercial business). |
📍 Location & Geocoding
| Field Name | Type | Coverage | Description |
|---|---|---|---|
location | String | 🟢 High (100%) | Danish city, municipality, or postal district name (e.g. København K, Odense). |
lat | Number | 🟢 High (99%) | Centroid latitude coordinate of the listing area. |
lng | Number | 🟢 High (99%) | Centroid longitude coordinate of the listing area. |
📦 Commerce Flags & Media
| Field Name | Type | Coverage | Description |
|---|---|---|---|
isShippable | Boolean | 🟢 High (100%) | Whether the item supports parcel shipment via DBA delivery (Kan sendes). |
canBuyNow | Boolean | 🟢 High (100%) | Indicates immediate purchase availability through DBA's secure payment system. |
sellerPaysShipping | Boolean | 🟢 High (100%) | Whether shipping cost is absorbed by the seller. |
labels | Array | 🟢 High (100%) | Visual badges displayed on the listing card. |
imageUrl | String | 🟢 High (96%) | High-resolution cover photograph URL. |
images | Array | 🟢 High (96%) | Complete array of photograph URLs for the listing. |
brand | String | 🟡 Conditional | Identified brand name (e.g., Apple, Wegner, LEGO). |
attributes | Object | 🟡 Conditional | Structured key-value specifications (mileage, memory, color). |
📝 Detail Enrichment (Optional)
| Field Name | Type | Coverage | Description |
|---|---|---|---|
description | String | 🟡 Conditional | Complete ad description text (extracted when fetchDetails is enabled). |
📈 Scalability & Deep Pagination Guide
This scraper handles everything from targeted daily monitoring to deep market-wide extraction:
- Auto-pagination: By setting
maxPagesPerSearch: 0, the scraper automatically advances across all available search pages until exhaustion or reachingmaxItems. - Deep collection (1,000+ items): To extract large catalogs across Denmark, set
maxItems: 0and provide high-volume search queries or broad category URLs. - Smart deduplication: The actor maintains an internal in-memory Bloom filter of listing IDs, guaranteeing zero duplicate entries in your final dataset even when keyword results overlap.
- Bandwidth optimization: Standard list-mode operates via ultra-compact JSON endpoints, allowing you to scrape 1,000 listings in less than 30 seconds with negligible memory consumption.
🛠️ Step-by-step usage guide
- Open the actor: Navigate to DBA.dk Scraper on Apify Console.
- Configure your search:
- For keyword searches, enter your target queries into Search Terms (e.g.
iphone,ladcykel). - For specific Danish regions or pre-filtered price tiers, visit DBA.dk, configure your filters, and paste the URL into Start URLs.
- For keyword searches, enter your target queries into Search Terms (e.g.
- Select seller segmentation: Set Seller Type to
retailerfor Danish B2B commercial lead lists orprivatefor consumer second-hand deals. - Set execution limits: Enter your target quantity into Max Items (e.g.
500for testing, or0for full catalog extraction). - Start crawl: Click Start. Monitor live progress in the log stream showing collected items and pagination progression.
- Export results: Download your dataset in JSON, CSV, Excel, or connect downstream via the Apify REST API.
💻 API integration & code examples
Integrate live Danish marketplace data directly into your applications using official Apify client libraries.
Node.js / JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({token: process.env.APIFY_TOKEN,});const run = await client.actor('haketa/dba-scraper').call({searchTerms: ['sofa', 'spisebord'],maxItems: 250,sellerType: 'private',});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Successfully scraped ${items.length} items from DBA.dk.`);console.table(items.slice(0, 5), ['title', 'price', 'sellerType', 'location']);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.getenv('APIFY_TOKEN'))run_input = {'searchTerms': ['ladcykel', 'elcykel'],'priceMin': 5000,'maxItems': 150,}run = client.actor('haketa/dba-scraper').call(run_input=run_input)dataset_items = client.dataset(run['defaultDatasetId']).list_items().itemsfor item in dataset_items[:5]:print(f"[{item['price']} DKK] {item['title']} - {item['location']}")
🔗 Export formats & integrations
- Direct File Downloads: Export instantly in JSON, CSV, Microsoft Excel (XLSX), XML, and RSS formats.
- Cloud Storage Pipelines: Stream output directly to Amazon S3, Google Cloud Storage, or Microsoft Azure Blob.
- No-Code Automation: Trigger workflows in Zapier, Make (Integromat), or n8n upon run completion.
- Database Warehousing: Pipe classifieds feeds into Google BigQuery, Snowflake, PostgreSQL, or Supabase.
- Slack & Webhooks: Receive real-time alerts whenever newly listed items match your specific price arbitrage criteria.
🇩🇰 Danish Regional Market Coverage
DBA.dk covers all major geographic regions of Denmark. You can target national searches or isolate specific territories:
| Danish Region | Major Urban Centers | High-Volume Market Sectors |
|---|---|---|
| Hovedstaden (Capital Region) | Copenhagen, Frederiksberg, Helsingør | Tech gadgets, designer furniture, high-end fashion, road bikes |
| Midtjylland (Central Denmark) | Aarhus, Silkeborg, Randers, Horsens | Cargo bikes (ladcykler), family home furniture, electronics |
| Syddanmark (Southern Denmark) | Odense, Esbjerg, Kolding, Vejle | Cross-border commerce, used vehicles, agricultural machinery |
| Nordjylland (North Denmark) | Aalborg, Hjørring, Frederikshavn | Automotive, marine gear, outdoor sports equipment, tools |
| Sjælland (Zealand) | Roskilde, Næstved, Slagelse | Commuter vehicles, household tools, garden machinery |
🔄 Danish Terms Glossary
| Danish Term | English Translation | Data Impact / Field |
|---|---|---|
| Sælges | For Sale | Found in tradeType indicating normal seller listings. |
| Købes | Wanted / Looking to buy | Found in tradeType indicating buyer request ads. |
| Kan sendes | Can be shipped | Reflected in isShippable: true (eligible for parcel freight). |
| Køb nu | Buy Now | Reflected in canBuyNow: true (instant direct purchase). |
| Privat | Private seller | Reflected in sellerType: "private". |
| Forhandler | Dealer / Retailer | Reflected in sellerType: "retailer". |
| Pris | Price | Parsed into numeric price (DKK). |
💡 Practical scraping strategies & tips for Denmark
1. Cargo bike (ladcykel) arbitrage in Copenhagen
Denmark is globally famous for its cycling infrastructure, and high-end cargo bikes (Christiania Cykler, Larry vs Harry Bullitt, Nihola, Babboe) hold strong resale value. By monitoring terms like bullitt, ladcykel, or christiania cykel with sellerType: "private" and priceMax: 15000, users identify refurbished resale opportunities across Greater Copenhagen.
2. Danish mid-century modern design sourcing
International collectors and vintage galleries actively source vintage furniture in Denmark. Queries such as teak skænk, rosewood, danish modern, or specific designers (Hans J. Wegner, Arne Jacobsen, Børge Mogensen, Verner Panton) reveal private listings in smaller provincial towns where items are often priced far below European auction values.
3. Commercial automotive dealer prospecting
Used car dealerships throughout Jutland frequently post inventory on DBA. Filter by sellerType: "retailer" and search major automotive brands (volkswagen, audi, toyota, skoda) to extract dealer inventories, asking prices in DKK, and dealership geographic locations.
❓ Frequently Asked Questions
Do I need a DBA.dk account or Danish phone number?
No. The scraper accesses only public listing records and requires no user account, phone verification, or cookies.
How does the scraper distinguish private sellers from dealers?
DBA tags commercial storefronts with a business flag. The actor normalizes this into sellerType (retailer vs private), making B2B lead generation straightforward.
Can I track classic Danish mid-century furniture?
Yes. DBA is the prime marketplace for Danish modern design. Search queries like arne jacobsen, wegner, børge mogensen, or kay bojesen yield rich second-hand inventory.
Are prices always in Danish kroner (DKK)?
Yes. All prices are parsed as numeric values in Danish kroner, and the currency field is standardized to DKK.
Why are GPS coordinates provided?
DBA listings include municipal locality tags. The scraper extracts centroid coordinates (lat, lng), allowing spatial supply visualization and mapping.
How fast can I scrape 1,000+ items?
Because the scraper connects via lightweight, pure HTTP requests without loading heavy browser scripts, extracting 1,000 items takes less than 35 seconds under standard Apify datacenter proxies.
Can I schedule recurring daily or hourly extractions?
Yes. You can use Apify Schedules to run this actor at regular intervals (e.g., every morning or every 30 minutes) and send automatic email alerts or webhook notifications when new listings are added.
📋 Changelog
Version 1.2 (2026-11)
- Deep pagination unlocked: Enhanced multi-page crawler to support 1,000+ listings per search without pagination caps.
- Unlimited page handling: Configured
maxPagesPerSearch: 0as auto/unlimited governed bymaxItems. - Fast prefill optimization: Streamlined initial run startup latency down to under 20 seconds.
- Normalized coordinates: Enhanced latitude/longitude extraction to maintain 99%+ geocoding coverage across Danish regions.
- Refined retailer detection: Improved detection of Danish enterprise dealers and commercial shops.
Version 1.1 (2026-10)
- Added direct URL parsing support for complex category and filtered Start URLs.
- Implemented optional deep listing enrichment (
fetchDetails) for extended description text. - Added automated deduplication by listing ID across multi-term executions.
Version 1.0 (2026-09)
- Initial production release supporting keyword search, DKK price parsing, GPS coordinates, and seller classification.