Documentation Python quickstart Blog Free tools hello@quanticdata.ioLog in

Kleinanzeigen Proxies: 506 Words, No Geo Gate

Bytes and words returned by kleinanzeigen.de on 28 September 2026: 288,478 bytes of no-JavaScript HTML with 506 words from Germany and 503 from the United Kingdom, 1,305,776 bytes of rendered page with 530 words, and one collector run delivering 10 classified ads in 3.5 seconds
Bytes and words returned by kleinanzeigen.de on 28 September 2026: 288,478 bytes of no-JavaScript HTML with 506 words from Germany and 503 from the United Kingdom, 1,305,776 bytes of rendered page with 530 words, and one collector run delivering 10 classified ads in 3.5 seconds

Kleinanzeigen is Germany's largest classifieds site, and it is one of the few large marketplaces that serves the same page to everyone: on 28 September 2026 kleinanzeigen.de answered a plain HTTP client with 200 OK, 288,478 bytes and 506 words through a German residential exit, and 503 words through a British one. Rendering it cost 1,305,776 bytes and returned 530 words. There is no geo gate on this site; the fence is in robots.txt, which closes every listing page from the sixth onward to crawlers. The setting that works on Kleinanzeigen is residential, plain HTTP, country=de, and the kleinanzeigen_search collector when you need ads rather than pages: 10 ads with price, VB flag and ZIP in 3.5 seconds.

The no-JavaScript page carries the structured data; the browser adds 24 words

Kleinanzeigen's home is served by what its own header calls microfrontend-red-web behind Akamai, and the server-rendered HTML is complete. The seo_audit tool in our MCP server fetched it as a pure HTTP bot and fully rendered, and both passes returned the same title, the same meta description, a self-referencing canonical, the h1 "Kleinanzeigen entdecken", a robots meta of index, follow, and three JSON-LD blocks: Organization, WebSite and WebPage. The rendered page added 24 words of teaser tiles.

Fetch (28 September 2026)StatusBytes returnedTimeWordsNotes
kleinanzeigen.de, plain HTTP, German exit200288,4785.0 s506Title, description, canonical, h1, JSON-LD Organization + WebSite + WebPage
kleinanzeigen.de, rendered, German exit2001,305,77639.4 s530Same head; 24 more words of tiles
kleinanzeigen.de, plain HTTP, UK exit200n/a12.1 s (audit)503Same German page; no redirect, no country notice
kleinanzeigen.de/robots.txt20011,1410.2 sn/aContent-language de-DE

On 26 September the rendered count was 903 against 512 plain; two days later 530 against 506. The render figure depends on how many teaser tiles the browser has painted at capture, so it swings by hundreds of words between runs while the plain figure moves by six. A number that swings that much is not a reason to pay 4.5 times the bytes. The page's data, the head, the JSON-LD and the category links, is in the first 288 kilobytes.

Nothing changes by country, so the exit is a courtesy, not a key

We fetched the home through a German exit and through a British one and got the same page: 506 and 503 words, identical title, identical h1, no redirect, no banner. Kleinanzeigen serves one country and does not check where a reader is. That settles the geo question for a research job: the exit does not unlock anything. It still matters, for the reason it matters on any marketplace: a residential exit in Germany produces the traffic pattern of the readers the site actually has, and mixing exits across countries inside one session is the one thing no real visitor does. Pin country=de and keep it.

The intent behind "kleinanzeigen scraper api" is narrower than most guides assume. The Reddit thread that ranks for it is a developer whose client manages inventory only on Kleinanzeigen and wants those ads mirrored on the client's own site: one fetch per ad, a HEAD request every few hours to see if it is still live, three runs a day. That is the shape of most legitimate demand here: monitoring a small set of listings, tracking a price band in a ZIP radius, or checking that an ad is still up. None of it needs a browser, and none of it needs more than a handful of requests an hour.

The fence is at page six, and the JSON is closed

Kleinanzeigen's robots.txt is 11,141 bytes decoded, and it is the most specific pagination rule we have read on a marketplace. For every user agent it disallows /*/seite:6* through /*/seite:59*, one line per page number: the first five pages of any listing are open to crawlers, the sixth onward are not. It also disallows /*.json, /api, /belen-gateway/*, /search, /s-feed.rss, every sort order, every price and radius filter (r5 to r200) and dozens of attribute filters. A polite crawler on Kleinanzeigen reads unfiltered category and search pages one to five, and nothing else.

Two groups get more. GPTBot, ChatGPT-User, OAI-SearchBot and PerplexityBot are each named and allowed the whole site except account pages, and the sitemap index is public. The Nutzungsbedingungen, in force since 17 February 2024, then add the contractual layer in clause 5: users must not use crawlers, spiders, scrapers or other automated mechanisms to access the services and collect content without Kleinanzeigen's express written consent, must not collect other users' e-mail addresses or phone numbers, and must not circumvent access restrictions. That is the one plain line: automated collection of Kleinanzeigen content without written consent is against its terms, and a proxy does not change it. Kleinanzeigen's own sanctioned interface for professionals runs the other way: its business help centre documents an OpenImmo import for estate agents pushing listings in, not an API for reading them out.

The collector returns ten ads in 3.5 seconds, VB flag included

We ran the Kleinanzeigen collector once on 28 September 2026 with the query "fahrrad" and max_results 10. It delivered 10 rows in 3.46 seconds. Each row carries the ad id, title, ad URL, the price as shown and as a number, a negotiable flag for "VB", the location as ZIP plus town, the listing date as shown, a description excerpt, the first photo and whether the ad is a promoted top ad.

Field in the runWhat came back for 10 rows
Price9 of 10 with a clean numeric value, from 15 € to 6,499 €; 1 flagged negotiable, "450 € VB"
Location10 of 10 with a five-digit ZIP and town: 94365 Parkstetten, 02796 Kurort Jonsdorf, 26129 Oldenburg, 76456 Kuppenheim
Date8 of 10 "Heute, 19:04", the minute of the run; 2 dealer ads without a date on the card
Top ad0 of 10 promoted
SellersA mix of bike shops running an autumn sale and private sellers of a 12-inch children's bike and a home trainer

The VB flag is the field a price monitor needs and a card parser drops: "VB" means the seller expects an offer, and a 450 € VB and a 450 € Festpreis are different data points. The ZIP on every row is what makes radius queries possible in your own database, which matters because robots.txt closes Kleinanzeigen's own radius filters to crawlers. At $0.001 per delivered ad, the run cost one cent.

Cost math with real numbers

Prices from our pricing page: residential Basic $0.80/GB, Premium $2.20/GB, the web scraping API from $0.0002 per page ($0.001 rendered) and the Kleinanzeigen collector at $0.001 per delivered ad. One gigabyte is counted as 10^9 bytes.

ApproachBytes per pagePages per GBCost per 1,000
Plain HTTP over residential Basic ($0.80/GB)288,478about 3,466about $0.23 per 1,000 pages
Plain HTTP over residential Premium ($2.20/GB)288,478about 3,466about $0.63 per 1,000 pages
Rendered over residential Basic1,305,776about 766about $1.04 per 1,000 pages
Web scraping API, plain HTTPn/an/a$0.20 per 1,000 pages
kleinanzeigen_search collectorn/an/a$1.00 per 1,000 ads, price, VB and ZIP parsed

Byte figures are decoded HTML; wire transfer after compression is lower and headers add a little back. Rendering multiplies the bill by 4.5 and the wait by 8 for 24 words of tiles; skip it. For the Italian equivalent of this market, where the raw page is 183 KB and the collector restores the truncated description, see Subito through residential proxies; for the site where the page weighs two megabytes and the render subtracts, Vinted.

The setting that works on Kleinanzeigen

  • Network: residential, Basic at $0.80/GB. Nothing in our fetches challenged a residential exit from either country, and at 288 KB a page the tier is a rounding error.
  • Fetch mode: engine: tls, plain HTTP. 506 words with the full head and three JSON-LD blocks in 5.0 seconds; the rendered page returns 530 words for 1,305,776 bytes and 39.4 seconds.
  • Country: country=de. The page is the same from the UK (503 words, no redirect), so the exit is pinned for a German traffic pattern, not for access.
  • When the proxy is not enough: the kleinanzeigen_search collector, 10 ads in 3.5 seconds with price, VB flag, ZIP and town, date and top-ad flag, $0.001 per delivered ad, with pagination and filters handled where robots.txt closes them to a crawler.
  • Every account gets $2 of free API usage per month, and failed requests are never billed.

Sources & further reading

FAQ

Quick answers on kleinanzeigen proxies.

Something else? Ask us →

Do you need a proxy to scrape Kleinanzeigen?

For reading public pages, a residential exit and a plain HTTP client returned 200 OK, 288,478 bytes and 506 words on 28 September 2026, from Germany and from the UK alike. The proxy is for volume and for a German traffic pattern, not for getting past a gate, because there is none.

Does Kleinanzeigen need JavaScript rendering?

No. The seo_audit run counted 506 words without JavaScript and 530 with it, and the title, description, canonical, h1 and all three JSON-LD blocks were present on the plain pass. The render cost 1,305,776 bytes and 39.4 seconds against 288,478 bytes and 5.0 seconds.

Does Kleinanzeigen show a different site by country?

No. From a German residential exit the home returned 506 words and from a British one 503, with the same German title and h1 and no redirect or notice. Pin country=de anyway so a session looks like the readers the site actually has.

How many pages of a Kleinanzeigen listing can a crawler read?

Five. The 11,141-byte robots.txt disallows /*/seite:6* through /*/seite:59* for every user agent, along with /api, /*.json, every sort order and every price and radius filter. The collector takes a max_results value up to 100 instead and returned 10 ads in 3.46 seconds.

Is scraping Kleinanzeigen allowed by its terms?

Clause 5 of the Nutzungsbedingungen, in force since 17 February 2024, forbids using crawlers, spiders, scrapers or other automated mechanisms to access the services and collect content without Kleinanzeigen express written consent, and forbids collecting other users e-mail addresses or phone numbers. Read public listings for research at a human pace; anything larger needs Kleinanzeigen written consent, and no proxy changes that.

Does Kleinanzeigen have an official API?

Not a public read API. Its business help centre documents an OpenImmo import interface for real-estate professionals pushing listings in, and its robots.txt names GPTBot, ChatGPT-User, OAI-SearchBot and PerplexityBot as allowed crawlers. For structured rows the kleinanzeigen_search collector returns price, VB flag, ZIP and date at $0.001 per delivered ad.

Read the first five pages, then use the collector

Every number here came from one platform: the seo_audit tool fetched kleinanzeigen.de both ways from two countries, and one collector run returned ten parsed ads in 3.5 seconds. Every account gets $2 of free API usage per month, and failed requests are never billed.

Related reading