Kleinanzeigen shop and its ads
A commercial seller's Kleinanzeigen Pro shop page and its active ads: shop name, seller type, user and store ids, about text, logo, active since, ads online and ads ever posted, followers, reply time and rate, satisfaction rating, the business contact details the page shows (phone, address, website, opening hours) and the shop's categories with ad counts. Each ad: id, title, link, short description, price and label, negotiable and free flags, place, posting date, shipping, tags, image and photo count. Search within the shop by keywords, category and price range. 25 ads per page; pass next_page back as page; null on the last page. Only Pro shop pages (kleinanzeigen.de/pro/<name>) are supported.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
shop | string | The shop name in kleinanzeigen.de/pro/<name>. Example: 2radNeuberg |
url | string | The shop page link (https://www.kleinanzeigen.de/pro/<name>), instead of shop. |
q | string | Keywords to search within the shop's ads. |
category_id | string | Only ads in this category (ids are listed in categories). |
price_min | integer | Lowest price in whole euros. |
price_max | integer | Highest price in whole euros. |
page | integer | Page number (default 1). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/kleinanzeigen/v1/seller?shop=2radNeuberg" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/kleinanzeigen/v1/seller",
params={"shop": "2radNeuberg"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/kleinanzeigen/v1/seller");
url.searchParams.set("shop", "2radNeuberg");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).