Discover/willhaben API
live

willhaben APIwillhaben.at

Access listings from willhaben.at across marketplace, real estate, cars, and jobs. Search, filter, and retrieve full listing details via 7 structured endpoints.

Endpoint health
verified 5d ago
get_listing_detail
search_marketplace
search_real_estate_for_sale_flats
search_real_estate_for_sale_houses
search_jobs
7/7 passing latest checkself-healing
Endpoints
7
Updated
21d ago

What is the willhaben API?

The willhaben.at API exposes 7 endpoints covering Austria's largest classifieds platform, returning structured data across four verticals: general marketplace goods, real estate (for sale and rent), cars, and jobs. The get_listing_detail endpoint retrieves full listing data including images, address details, attributes, and description for any listing ID obtained from the search endpoints.

Try it
Page number for pagination.
Number of results per page.
Search keyword (e.g. 'laptop', 'bicycle', 'sofa').
Category filter.
Maximum price filter in euros.
Minimum price filter in euros.
api.parse.bot/scraper/b057ca07-cf56-40aa-b5bc-e52eddc5501c/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/b057ca07-cf56-40aa-b5bc-e52eddc5501c/search_marketplace?page=1&rows=5&keyword=laptop&category=537&price_to=500&price_from=10' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace willhaben-at-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: Willhaben API — search Austrian classifieds across marketplace, real estate, cars, and jobs."""
from parse_apis.willhaben_api import Willhaben, ListingNotFound

client = Willhaben()

# Search the marketplace for affordable items
for listing in client.listings.search(keyword="fahrrad", price_to=500, limit=3):
    print(listing.title, listing.price_display, listing.location)

# Get full details for a specific listing
item = client.listings.search(keyword="laptop", limit=1).first()
if item:
    detail = client.listings.get(id=item.id)
    print(detail.title, detail.published)

# Search flats for sale in Vienna (zip prefix '1')
for flat in client.realestatelistings.search_flats(zip_prefix="1", price_to=400000, limit=3):
    print(flat.title, flat.price_display, flat.postcode)

# Search cars with a price range
for car in client.carlistings.search(keyword="audi", price_from=10000, price_to=30000, limit=3):
    print(car.title, car.price_display, car.state)

# Search job listings
job = client.joblistings.search(keyword="developer", limit=1).first()
if job:
    print(job.title, job.salary, job.salary_time_frame)

# Handle a listing that doesn't exist
try:
    client.listings.get(id="9999999999")
except ListingNotFound as exc:
    print(f"Listing not found: {exc.ad_id}")

print("exercised: listings.search / listings.get / realestatelistings.search_flats / carlistings.search / joblistings.search")
All endpoints · 7 totalmissing one? ·

Search for items in the general marketplace (Marktplatz). Returns paginated listing results with title, price, location, and attributes. Supports keyword search, category filtering, and price range. Results are ordered by recency (bumped/promoted listings first).

Input
ParamTypeDescription
pageintegerPage number for pagination.
rowsintegerNumber of results per page.
keywordstringSearch keyword (e.g. 'laptop', 'bicycle', 'sofa').
categorystringCategory filter.
price_tointegerMaximum price filter in euros.
price_fromintegerMinimum price filter in euros.
Response
{
  "type": "object",
  "fields": {
    "page": "integer, current page number",
    "rows": "integer, results per page requested",
    "results": "array of listing objects with id, title, price, price_display, location, postcode, district, state, published, thumbnail, is_private, url, and attributes",
    "total_results": "integer, number of results returned on this page"
  },
  "sample": {
    "data": {
      "page": 1,
      "rows": 5,
      "results": [
        {
          "id": "1872400799",
          "url": "https://www.willhaben.at/iad/kaufen-und-verkaufen/d/guenstig-umzug-1872400799/",
          "price": "25",
          "state": "Wien",
          "title": "Günstig Umzug",
          "district": "Wien",
          "location": "Wien, 07. Bezirk, Neubau",
          "postcode": "1070",
          "published": "2026-06-11T03:38:00Z",
          "thumbnail": "https://cache.willhaben.at/mmo/9/187/240/0799_2068044911_hoved.jpg",
          "attributes": {
            "PRICE": "25",
            "HEADING": "Günstig Umzug"
          },
          "is_private": false,
          "vertical_id": 5,
          "price_display": "€ 25"
        }
      ],
      "total_results": 5
    },
    "status": "success"
  }
}

About the willhaben API

Search Endpoints by Vertical

The API covers four distinct listing categories. search_marketplace accepts keyword, category, price_from, and price_to filters and returns paginated arrays of listing objects including title, price, price_display, location, postcode, district, state, published, and thumbnail. Real estate is split across three endpoints: search_real_estate_for_sale_flats and search_real_estate_for_sale_houses both accept area_from/area_to (in m²) and zip_prefix for postal code filtering — useful for narrowing to Vienna (zip_prefix: '1') or other Austrian regions. search_real_estate_for_rent filters by price range only and returns the same listing shape.

Cars and Jobs

search_cars accepts keyword (e.g. 'bmw', 'audi a4'), price_from, and price_to, returning vehicle listings with standard location and price fields. search_jobs accepts a keyword parameter and returns job-specific fields including company, salary, salaryTimeFrame, jobLocations, employmentModes, and employmentType — fields not present in the other listing types.

Listing Detail

get_listing_detail takes a numeric ad_id string obtained from any search result and returns the full listing record. Response fields include attributes (a structured name/value pair list), description, publishedDate, advertImageList (an array of image URLs), and advertAddressDetails covering address, postCode, district, and municipality. This endpoint works across all verticals — marketplace, real estate, and cars.

Pagination

All search endpoints share a consistent pagination model: pass page (integer) and rows (results per page) as inputs. Each response echoes back page, rows, and total_results (count of results on the current page). Note that total_results reflects the current page count, not a grand total across all pages.

Reliability & maintenanceVerified

The willhaben API is a managed, monitored endpoint for willhaben.at — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when willhaben.at changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official willhaben.at API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
5d ago
Latest check
7/7 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Monitor Austrian apartment rental prices by filtering search_real_estate_for_rent by price_from/price_to over time.
  • Build a cross-category price tracker using search_marketplace with keyword and price_to to watch specific items.
  • Aggregate used car listings by make/model with search_cars and enrich each result using get_listing_detail for full attributes.
  • Track new job postings in a specific field by polling search_jobs with a keyword like 'developer' or 'buchhalter'.
  • Compare flat sale prices by area using search_real_estate_for_sale_flats with area_from, area_to, and zip_prefix.
  • Retrieve seller contact details and full image galleries for specific listings using get_listing_detail with an ad_id.
  • Identify house listings in a Vienna postal code range using search_real_estate_for_sale_houses with zip_prefix: '1'.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does willhaben.at have an official public developer API?+
No. willhaben.at does not offer a publicly documented developer API for third-party use. This Parse API provides structured access to willhaben listing data.
What does `get_listing_detail` return that the search endpoints don't?+
get_listing_detail returns the full description text, a structured attributes object with name/value pairs (e.g. condition, category-specific specs), all listing images via advertImageList, and granular address data through advertAddressDetails including municipality. Search endpoints return summary fields only: title, price, location, postcode, thumbnail, and a few others.
Does `total_results` tell me how many total listings match my search across all pages?+
No. The total_results field reflects the count of results returned on the current page, not the grand total across all matching listings. To paginate through results, increment the page parameter and stop when a response returns fewer results than the rows value requested.
Can I filter car listings by make, model, mileage, or year?+
Not currently. search_cars supports keyword, price_from, and price_to only. Structured filters for make, model, mileage, or registration year are not exposed as dedicated parameters. You can fork the API on Parse and revise it to add those filters as additional endpoint parameters.
Does the API cover willhaben's 'Zu verschenken' (free items) or motor/boat categories?+
Not currently. The API covers general marketplace, flats and houses for sale, rentals, cars, and jobs. Sub-categories like free listings, motorcycles, or boats are not broken out as separate endpoints. You can fork the API on Parse and revise it to add dedicated endpoints for those categories.
Page content last updated . Spec covers 7 endpoints from willhaben.at.
Related APIs in MarketplaceSee all →
kleinanzeigen.de API
Search and retrieve classified ad listings from kleinanzeigen.de. Filter by keyword, category, price range, and sorting order. Supports vehicles, real estate, jobs, electronics, and general products, with full listing details including title, price, description, location, and seller information.
immowelt.de API
Search and browse real estate listings across Germany on Immowelt.de, with access to property details, images, and features for both rentals and sales. Filter results by location and sorting preferences to find properties that match your needs.
hasznaltauto.hu API
Browse and retrieve detailed information about used cars listed on Hasznaltauto.hu, including specifications, pricing, and availability. Search through the Hungarian marketplace to find and compare vehicles that match your needs.
dba.dk API
Search and retrieve detailed listings from Denmark's largest marketplace DBA.dk, including product information, pricing, and seller details across general goods and car categories. Browse marketplace categories, find specific items, and access comprehensive data on both regular listings and automotive inventory.
olx.ba API
Search and browse listings on OLX.ba across all categories. Retrieve listing names, prices, categories, and URLs, or drill into individual listings for detailed attributes such as location, address, area, floor, condition, and seller information. Includes dedicated support for apartment listings.
njuskalo.hr API
Search and retrieve structured listings for cars, real estate, and electronics from Njuskalo.hr in real-time. Access detailed product information across these categories to find exactly what you're looking for.
wg-gesucht.de API
Search and filter housing listings on WG-Gesucht.de to find shared apartments and rooms that match your budget, location, and availability preferences. Retrieve detailed listing information including rent, room size, district, and contact details.
clasificadosonline.com API
Search and retrieve listings from ClasificadosOnline.com — Puerto Rico's classifieds platform. Browse cars, rental properties, and jobs with flexible filters for location, price, make/model, and more.