kleinanzeigen.de APIkleinanzeigen.de ↗
Search and retrieve classified listings from kleinanzeigen.de. Filter by keyword, category, and price. Get full details including attributes, images, and seller info.
curl -X GET 'https://api.parse.bot/scraper/d241c6ed-2043-4910-81f4-9f5c346e2075/search?page=1&query=laptop' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for classified ad listings on kleinanzeigen.de with optional filters for category, price range, and sorting. Returns paginated results with listing summaries.
| Param | Type | Description |
|---|---|---|
| page | integer | Results page number. |
| sort | string | Sorting field (e.g. 'SORTING_DATE' for most recent first). |
| query | string | Search keyword (e.g. 'laptop', 'fahrrad', 'sofa'). |
| category | string | Category name or numeric ID. Known names: 'immobilien', 'mietwohnungen', 'haeuser_mieten', 'eigentumswohnungen', 'haeuser_kaufen', 'autos', 'jobs', 'multimedia_elektronik', 'handy_telekom'. Other category slugs are passed as URL path segments. |
| max_price | string | Maximum price filter value. |
| min_price | string | Minimum price filter value. |
| exclude_images | string | Set to 'true' to exclude thumbnail URLs from results. |
{
"type": "object",
"fields": {
"url": "string, the search URL used",
"listings": "array of listing summary objects containing id, url, title, price, is_negotiable, location, zip_code, date_posted, snippet, and optionally thumbnail",
"total_results": "integer or null, total number of matching listings"
},
"sample": {
"data": {
"url": "https://www.kleinanzeigen.de/s-laptop/k0",
"listings": [
{
"id": "3407550186",
"url": "https://www.kleinanzeigen.de/s-anzeige/3407550186",
"price": "770 € VB",
"snippet": "Hallo zusammen, ich verkaufe meinen Microsoft Surface Laptop 7...",
"location": "85354 Freising",
"zip_code": "85354",
"date_posted": "Heute, 07:15",
"is_negotiable": true
}
],
"total_results": 124216
},
"status": "success"
}
}About the kleinanzeigen.de API
The kleinanzeigen.de API exposes 2 endpoints for accessing German classified ad listings across vehicles, real estate, jobs, and electronics. The search endpoint returns paginated listing summaries with price, location, and posting date, while the details endpoint delivers the full ad record including category-specific attributes, seller information, and image URLs for any individual listing by its numeric ID.
Search Endpoint
The search endpoint accepts a query string (e.g. 'laptop', 'fahrrad') alongside optional filters: category (by name such as 'immobilien' or 'mietwohnungen', or a numeric ID), min_price and max_price for price bounding, sort for ordering (e.g. 'SORTING_DATE' to get most recent first), and a page integer for pagination. Each result in the listings array includes the listing id, url, title, price, is_negotiable flag, location, zip_code, date_posted, a short snippet, and seller handle (op). The total_results field gives the total match count for the query. Pass exclude_images=true to drop thumbnail URLs and reduce payload size.
Details Endpoint
The details endpoint takes a single required parameter, ad_id, and returns the full listing record. Response fields include title, price, description, location, images (an array of full-resolution URLs), seller_name, and seller_since. The attributes object contains category-specific key-value pairs — for vehicle listings these include fields like Kilometerstand (mileage) and Marke (brand); real estate listings expose different attribute sets. Pass exclude_images=true to omit the images array when image data is not needed.
Coverage and Categories
Kleinanzeigen.de is Germany's largest general classifieds platform. The API covers all major listing verticals accessible through the site: vehicles, real estate (rental apartments, houses, owner-occupied flats), electronics, furniture, jobs, and general merchandise. Category filtering uses either human-readable names ('haeuser_mieten', 'eigentumswohnungen') or numeric IDs where known. Pagination is handled via the page parameter on the search endpoint.
- Track used car listings by filtering on
categoryandmin_price/max_priceto monitor price trends for specific makes - Aggregate rental apartment listings in a target city using the
'mietwohnungen'category and location-based queries - Build a price-drop alert system by periodically querying
searchand comparingpricefields across runs - Enrich a CRM with seller history by pulling
seller_sinceandseller_namefrom thedetailsendpoint - Index full listing descriptions and category
attributes(e.g. mileage, brand) for search or ML pipelines - Compile electronics inventory datasets by querying product keywords and extracting
priceandis_negotiableflags
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does kleinanzeigen.de have an official developer API?+
What does the `details` endpoint return beyond what `search` provides?+
details endpoint returns the full listing description text, all full-resolution image URLs, the attributes object with category-specific fields (e.g. vehicle mileage and brand, or real estate specifics), seller_name, and seller_since. The search endpoint returns only a short snippet, a thumbnail, and summary fields like price, location, and date_posted.Can I filter search results by geographic area or postal code?+
search endpoint does not currently expose a dedicated location or radius filter parameter. Results include zip_code and location fields per listing. You can fork this API on Parse and revise it to add a location-based filter parameter.Does the API return seller contact details such as phone numbers or email addresses?+
details endpoint exposes seller_name and seller_since only. Phone numbers and email addresses gated behind login or contact-reveal flows on the site are not included. You can fork the API on Parse and revise it to add additional seller-side fields if those become accessible.How does pagination work on the `search` endpoint?+
page parameter accepts an integer to step through result pages. The total_results field in the response gives the total count of matched listings, which you can use to calculate how many pages exist for a given query. Note that total_results may return null for some queries.