# DBA.dk Marketplace Scraper (`shahidirfan/dba-dk-marketplace-scraper`) Actor

Extract real-time listings, prices & seller details from Denmark's largest classifieds marketplace. Scrape product data, monitor competition & track market trends effortlessly. Ideal for ecommerce research, price monitoring & lead generation. Structured JSON output.

- **URL**: https://apify.com/shahidirfan/dba-dk-marketplace-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:** E-commerce, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use 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

## DBA.dk Marketplace Scraper

Extract structured listing data from DBA Marketplace search and category pages. Collect listing titles, prices, locations, metadata, and listing links at scale for resale analytics, market monitoring, and catalog intelligence.

### Features

- **Keyword or URL input** - Start from a DBA search URL, item URL, or keyword-based query.
- **Location-aware extraction** - Supports both DBA location tokens and human-readable location names.
- **Pagination control** - Collect only the number of results you need with page and result caps.
- **Clean dataset output** - Excludes empty values from records for cleaner downstream usage.
- **Category-ready runs** - Works with filtered URLs that include category and location parameters.

### Use Cases

#### Price Monitoring
Track asking-price trends for specific product types over time. Build repeatable price snapshots for market comparison and resale strategy.

#### Inventory Research
Collect structured listing data for niche categories and regions. Identify volume, variety, and availability patterns.

#### Marketplace Intelligence
Monitor listing activity across keywords and locations. Compare demand-heavy terms against category-specific inventory.

#### Data Pipeline Input
Generate consistent records for BI tools, spreadsheets, and reporting workflows. Use exports for recurring analysis tasks.

---

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `url` | String | No | `https://www.dba.dk/recommerce/forsale/search?q=iphone` | DBA search or item URL. |
| `keyword` | String | No | `iphone` | Keyword query. Overrides keyword from URL when both are set. |
| `location` | String | No | `København og omegn` | Location token or location name. |
| `results_wanted` | Integer | No | `20` | Maximum number of records to save. |
| `max_pages` | Integer | No | `20` | Maximum number of pages to process. |
| `proxyConfiguration` | Object | No | — | Proxy settings for improved reliability. |

---

### Output Data

Each dataset item can include these common fields (plus additional non-empty listing metadata):

| Field | Type | Description |
|-------|------|-------------|
| `id` | String | Listing ID. |
| `title` | String | Listing title. |
| `location` | String | Listing location label. |
| `price_amount` | Number | Listing price amount. |
| `price_currency` | String | Currency code. |
| `trade_type` | String | Trade type label. |
| `posted_at` | String | ISO timestamp derived from listing time. |
| `url` | String | Canonical listing URL. |

---

### Usage Examples

#### Keyword Search

```json
{
    "keyword": "iphone",
    "results_wanted": 50
}
````

#### URL-Based Search

```json
{
    "url": "https://www.dba.dk/recommerce/forsale/search?location=0.200001&q=bolig",
    "results_wanted": 100,
    "max_pages": 10
}
```

#### Item URL Lookup

```json
{
    "url": "https://www.dba.dk/recommerce/forsale/item/20912693",
    "results_wanted": 1
}
```

***

### Sample Output

```json
{
    "source": "dba.dk",
    "fetched_at": "2026-04-28T06:35:10.421Z",
    "id": "20912693",
    "title": "iPhone 14 plus 128GB blå",
    "location": "Rødovre",
    "price_amount": 2200,
    "price_currency": "DKK",
    "price_unit": "kr.",
    "posted_at": "2026-04-28T04:52:21.810Z",
    "trade_type": "Til salg",
    "url": "https://www.dba.dk/recommerce/forsale/item/20912693",
    "query_params": {
        "q": [
            "20912693"
        ]
    }
}
```

***

### Tips for Best Results

#### Start with Working Search URLs

- Use a URL copied from DBA search pages for precise filters.
- Keep region and category parameters in the URL when needed.

#### Use Reasonable Collection Limits

- Use `results_wanted: 20` to validate a new setup quickly.
- Increase limits gradually for larger production runs.

#### Improve Stability

- Use proxy configuration when running frequent or large-volume jobs.
- Combine keyword and location targeting to narrow large result sets.

***

### Integrations

Connect your extracted data with:

- **Google Sheets** - Build live tracking sheets.
- **Airtable** - Create searchable listing databases.
- **Make** - Automate recurring collection and routing.
- **Zapier** - Trigger alerts and follow-up workflows.
- **Webhooks** - Send data to custom services.

#### Export Formats

- **JSON** - App and API workflows.
- **CSV** - Spreadsheet analysis.
- **Excel** - Business reporting.
- **XML** - System integrations.

***

### Frequently Asked Questions

#### Can I run with only a URL?

Yes. A valid DBA search URL is enough to run the scraper.

#### Can I run with only a keyword?

Yes. The scraper can run directly from keyword input.

#### What if both URL and keyword are provided?

The keyword value is prioritized for the search query.

#### How do I filter by region?

Provide a location token or a location name in `location`, or include location parameters in the URL.

#### Can I scrape single listings?

Yes. You can pass a DBA item URL and set `results_wanted` to `1`.

***

### Support

For issues or feature requests, contact support through the Apify Console.

#### Resources

- [Apify Documentation](https://docs.apify.com/)
- [API Reference](https://docs.apify.com/api/v2)
- [Scheduling Runs](https://docs.apify.com/platform/schedules)

***

### Legal Notice

This actor is intended for legitimate data collection use cases. Users are responsible for complying with website terms and applicable laws in their jurisdiction.

# Actor input Schema

## `url` (type: `string`):

DBA search or item URL (example: https://www.dba.dk/recommerce/forsale/search?q=iphone).

## `keyword` (type: `string`):

Search keyword. If provided, this takes priority over URL query keyword.

## `location` (type: `string`):

Location token (for example: 0.200001) or location name (for example: København og omegn).

## `results_wanted` (type: `integer`):

Maximum number of records to save.

## `max_pages` (type: `integer`):

Maximum number of result pages to request.

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

Proxy settings for improved reliability.

## Actor input object example

```json
{
  "url": "https://www.dba.dk/recommerce/forsale/search?q=iphone",
  "keyword": "iphone",
  "location": "København og omegn",
  "results_wanted": 20,
  "max_pages": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (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 = {
    "url": "https://www.dba.dk/recommerce/forsale/search?q=iphone",
    "keyword": "iphone",
    "location": "København og omegn",
    "results_wanted": 20,
    "max_pages": 20
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/dba-dk-marketplace-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 = {
    "url": "https://www.dba.dk/recommerce/forsale/search?q=iphone",
    "keyword": "iphone",
    "location": "København og omegn",
    "results_wanted": 20,
    "max_pages": 20,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/dba-dk-marketplace-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "url": "https://www.dba.dk/recommerce/forsale/search?q=iphone",
  "keyword": "iphone",
  "location": "København og omegn",
  "results_wanted": 20,
  "max_pages": 20
}' |
apify call shahidirfan/dba-dk-marketplace-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=shahidirfan/dba-dk-marketplace-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "DBA.dk Marketplace Scraper",
        "description": "Extract real-time listings, prices & seller details from Denmark's largest classifieds marketplace. Scrape product data, monitor competition & track market trends effortlessly. Ideal for ecommerce research, price monitoring & lead generation. Structured JSON output.",
        "version": "0.0",
        "x-build-id": "yx5QsdgaiCMbbekIf"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/shahidirfan~dba-dk-marketplace-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-shahidirfan-dba-dk-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/shahidirfan~dba-dk-marketplace-scraper/runs": {
            "post": {
                "operationId": "runs-sync-shahidirfan-dba-dk-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/shahidirfan~dba-dk-marketplace-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-shahidirfan-dba-dk-marketplace-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "url": {
                        "title": "URL",
                        "type": "string",
                        "description": "DBA search or item URL (example: https://www.dba.dk/recommerce/forsale/search?q=iphone)."
                    },
                    "keyword": {
                        "title": "Keyword",
                        "type": "string",
                        "description": "Search keyword. If provided, this takes priority over URL query keyword."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Location token (for example: 0.200001) or location name (for example: København og omegn)."
                    },
                    "results_wanted": {
                        "title": "Results wanted",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of records to save.",
                        "default": 20
                    },
                    "max_pages": {
                        "title": "Max pages",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of result pages to request.",
                        "default": 20
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings for improved reliability.",
                        "default": {
                            "useApifyProxy": false
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
