# Quoka.de Scraper (`rainminer/quoka-de-scraper`) Actor

Extract classified ads from quoka.de — furniture, cars, real estate, electronics. Export JSON/CSV via Apify. | quoka.de Kleinanzeigen scrapen: Möbel, Autos, Immobilien, Inserate. JSON/CSV ohne Code.

- **URL**: https://apify.com/rainminer/quoka-de-scraper.md
- **Developed by:** [rainminer](https://apify.com/rainminer) (community)
- **Categories:** E-commerce, Real estate, Other
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.99 / 1,000 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.

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

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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

### What does Quoka.de Scraper do?

**Quoka.de Scraper** extracts **classified ads** from [quoka.de](https://www.quoka.de/) — one of Germany's long-running free marketplaces for furniture, vehicles, real estate, electronics, pets, and services. Paste a search or category URL (for example `https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/`) or a single listing URL and export structured ad data without coding.

### Why scrape quoka.de?

- **Market monitoring** — Track new listings for keywords, categories, or cities across Germany.
- **Price research** — Compare asking prices for furniture, vehicles, and household goods over time.
- **Lead generation** — Collect commercial and private offers with location and seller context.
- **Apify platform** — Schedule runs, export JSON/CSV/Excel, monitor failures, and integrate via API.

### What data can you extract from quoka.de?

| Field | Description |
| --- | --- |
| id | Unique listing identifier |
| title | Ad headline |
| url | Public listing URL |
| description | Full ad description |
| price | Numeric price when available |
| priceText | Formatted price string (e.g. `150 EUR verhandelbar`) |
| priceType | Price type (e.g. verhandelbar / festpreis) |
| currency | Price currency (EUR) |
| location | Region, city, and postal code |
| postalCode | Postal code (PLZ) |
| city | City |
| region | Federal state / region |
| category | Primary category |
| categoryPath | Full category breadcrumb |
| postedAt | Date and time the ad was posted |
| images | Listing image URLs |
| sellerName | Seller or company name when shown |
| sellerType | `private` or `commercial` |
| attributes | Listing attributes (Zustand, Übergabe/Versand, …) |
| searchUrl | Source search URL for listings found via search |

### How to scrape quoka.de

1. Open the Actor in Apify Console.
2. Add one or more **quoka.de search, category, or listing URLs** under **Start URLs**, or fill in **Search query**, **Location**, and **Category**.
3. Set **Maximum items** (listings per start URL).
4. Run the Actor and download results from the dataset tab.

### Input

Quoka.de Scraper accepts **Start URLs**, optional **query**, **location**, and **category** (used to build a search URL), **maxItems** (per start URL), and optional **proxy configuration**. See the **Input** tab in Apify Console for details.

Supported start URLs:

- Category pages: `https://www.quoka.de/anzeigen/{category}/{subcategory}/`
- Keyword search: `https://www.quoka.de/anzeigen?q={keyword}&City={city}`
- Listing pages: `https://www.quoka.de/anzeigen/.../anzeige/{slug}/{id}.html`

### Output example

```json
{
  "id": "e42863df511i78dgdfg88993630ei5hd",
  "title": "AEG Waschmaschine Lavamat & Wärmepumpentrockner Lavatherm",
  "url": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/waschen-trocknen-buegeln/waschmaschinen/anzeige/aeg-waschmaschine-lavamat-warmepumpentrockner-lavatherm/e42863df511i78dgdfg88993630ei5hd.html",
  "description": "Ich biete hier meine gut erhaltene AEG Waschmaschine ...",
  "price": 599,
  "priceText": "599 EUR verhandelbar",
  "priceType": "verhandelbar",
  "currency": "EUR",
  "location": "Bayern, Erding 85435",
  "postalCode": "85435",
  "city": "Erding",
  "region": "Bayern",
  "category": "Waschmaschinen",
  "categoryPath": "Haus & Familie › Haushalt & Möbel › Waschen, Trocknen, Bügeln › Waschmaschinen",
  "postedAt": "23.07.2026 08:50",
  "images": [
    "https://s3.quoka.de/quoka/large/20260723/0843/3156403b78c70934e777a0097fc5f8a8.webp"
  ],
  "sellerName": "Yusuf",
  "sellerType": "private",
  "attributes": {
    "Übergabe": "Abholung"
  },
  "searchUrl": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/"
}
````

You can download the dataset in JSON, CSV, Excel, or HTML.

### How much does scraping quoka.de cost?

This Actor uses an HTTP crawler (no browser) and **no proxy by default**, keeping compute usage low. A typical test run with 5 listings per URL usually finishes in under a minute on the Apify free tier.

### FAQ

**Is scraping quoka.de legal?**\
Our scrapers collect only **public** listing content shown on quoka.de. You are responsible for complying with applicable laws (including GDPR) when processing personal data in ads.

**Which URLs are supported?**\
Public search and category pages under `/anzeigen` and individual listing pages ending in `.html`.

### Image Credit

Image credit: [quoka.de](https://www.quoka.de/)

***

### Was macht der Quoka.de Scraper?

Der **Quoka.de Scraper** extrahiert **Kleinanzeigen** von [quoka.de](https://www.quoka.de/) — einem der etablierten kostenlosen Marktplätze Deutschlands für Möbel, Fahrzeuge, Immobilien, Elektronik, Haustiere und Dienstleistungen. Fügen Sie eine Such- oder Kategorie-URL (z. B. `https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/`) oder eine Inserat-URL ein und exportieren Sie strukturierte Anzeigendaten **ohne Programmierung**.

### Warum quoka.de scrapen?

- **Marktüberwachung** — Neue Inserate für Keywords, Kategorien oder Städte in ganz Deutschland verfolgen
- **Preisrecherche** — Angebotspreise für Möbel, Fahrzeuge und Haushaltswaren über Zeit vergleichen
- **Lead-Generierung** — Gewerbliche und private Angebote mit Standort sammeln
- **Apify-Plattform** — Läufe planen, JSON/CSV/Excel exportieren und per API integrieren

### Welche Daten lassen sich von quoka.de extrahieren?

| Feld | Beschreibung |
| --- | --- |
| id | Eindeutige Inserat-ID |
| title | Anzeigentitel |
| url | Öffentliche Inserat-URL |
| description | Vollständiger Anzeigentext |
| price / priceText | Preis (falls vorhanden) |
| priceType | Preistyp (z. B. verhandelbar) |
| location | Region, Stadt und Postleitzahl |
| category | Hauptkategorie |
| postedAt | Datum und Uhrzeit der Anzeige |
| images | Bild-URLs |
| sellerName | Verkäufer- oder Firmenname |
| sellerType | privat oder gewerblich |
| attributes | Merkmale (Zustand, Übergabe/Versand, …) |

### Wie scrapt man quoka.de?

1. Actor in der Apify Console öffnen.
2. **quoka.de Such-, Kategorie- oder Inserat-URLs** unter **Start URLs** hinzufügen oder **Suchbegriff**, **Ort** und **Kategorie** ausfüllen.
3. **Maximum items** (Inserate pro Start-URL) festlegen.
4. Actor starten und Ergebnisse herunterladen.

### Unterstützte Start-URLs

- Kategorieseiten: `https://www.quoka.de/anzeigen/{kategorie}/{unterkategorie}/`
- Stichwortsuche: `https://www.quoka.de/anzeigen?q={keyword}&City={stadt}`
- Inserate: `https://www.quoka.de/anzeigen/.../anzeige/{slug}/{id}.html`

### Was kostet das Scraping von quoka.de?

HTTP-Crawler (kein Browser), **kein Proxy standardmäßig** — geringer Compute-Verbrauch. Ein Testlauf mit 5 Inseraten pro URL dauert meist unter einer Minute.

### FAQ

**Ist das Scraping von quoka.de legal?**\
Unsere Scraper erfassen nur **öffentliche** Inseratinhalte auf quoka.de. Sie sind für die Einhaltung geltender Gesetze (einschließlich DSGVO) verantwortlich.

### Bildnachweis

Bildnachweis: [quoka.de](https://www.quoka.de/)

# Actor input Schema

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

quoka.de search/category URLs (e.g. https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/) or individual listing URLs ending in .html.

## `query` (type: `string`):

Optional keyword used to build a quoka.de search URL when no Start URLs are given (e.g. "sofa").

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

Optional city or place used together with the search query (e.g. "Berlin").

## `category` (type: `string`):

Optional category path used with the search query (e.g. "haus-familie" or "anzeigen/haus-familie/haushalt-moebel/").

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

Maximum number of listings to return per start URL.

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

Proxy settings. The scraper works without a proxy in most regions.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/"
    }
  ],
  "maxItems": 5,
  "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 = {
    "startUrls": [
        {
            "url": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/"
        }
    ],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rainminer/quoka-de-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": [{ "url": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/" }],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("rainminer/quoka-de-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 '{
  "startUrls": [
    {
      "url": "https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/"
    }
  ],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call rainminer/quoka-de-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Quoka.de Scraper",
        "description": "Extract classified ads from quoka.de — furniture, cars, real estate, electronics. Export JSON/CSV via Apify. | quoka.de Kleinanzeigen scrapen: Möbel, Autos, Immobilien, Inserate. JSON/CSV ohne Code.",
        "version": "1.0",
        "x-build-id": "PIZrPwLRF3KRcbRag"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/rainminer~quoka-de-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-rainminer-quoka-de-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/rainminer~quoka-de-scraper/runs": {
            "post": {
                "operationId": "runs-sync-rainminer-quoka-de-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/rainminer~quoka-de-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-rainminer-quoka-de-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",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "quoka.de search/category URLs (e.g. https://www.quoka.de/anzeigen/haus-familie/haushalt-moebel/) or individual listing URLs ending in .html.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "query": {
                        "title": "Search query",
                        "type": "string",
                        "description": "Optional keyword used to build a quoka.de search URL when no Start URLs are given (e.g. \"sofa\")."
                    },
                    "location": {
                        "title": "Location",
                        "type": "string",
                        "description": "Optional city or place used together with the search query (e.g. \"Berlin\")."
                    },
                    "category": {
                        "title": "Category",
                        "type": "string",
                        "description": "Optional category path used with the search query (e.g. \"haus-familie\" or \"anzeigen/haus-familie/haushalt-moebel/\")."
                    },
                    "maxItems": {
                        "title": "Maximum items",
                        "minimum": 1,
                        "maximum": 1000,
                        "type": "integer",
                        "description": "Maximum number of listings to return per start URL.",
                        "default": 5
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Proxy settings. The scraper works without a proxy in most regions."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
