Willhaben Search

v0.0.2

Willhaben marketplace search API for finding listings, browsing categories, and getting listing details on Austria's largest classifieds platform.

0· 275· 2 versions· 1 current· 1 all-time· Updated 7h ago· MIT-0

Install

openclaw skills install willhaben-search

willhaben-search

Search and browse listings on willhaben.at — Austria's largest online marketplace — using AI-powered semantic search.

API Basics

Base URL: https://api.nochda.at

No authentication required. All endpoints return JSON.

curl "https://api.nochda.at/api/health"

Rate limits: 50 req/min global, 10 req/min for search/suggest.

Typical Workflow

  1. Find the right category with GET /api/categories/suggest?q=...
  2. Search listings with GET /api/search?categoryId=...&query=...
  3. Get listing details with GET /api/listings/:id

Endpoints

Suggest Categories (Semantic)

GET /api/categories/suggest?q=<query>

Find the best category for a user's intent using AI. Start here when you don't know which category to search in.

curl "https://api.nochda.at/api/categories/suggest?q=mountain%20bike"

Response:

{
  "suggestions": [
    {"id": 4552, "label": "Fahrräder", "parentLabel": "Sport/Sportgeräte", "score": 1.0},
    {"id": 2145, "label": "Mountainbikes", "parentLabel": "Fahrräder", "score": 0.82}
  ]
}

Use the id of the best-matching suggestion as categoryId in search. Returns up to 5 suggestions ranked by relevance (score 0–1).


Search Listings

GET /api/search?categoryId=<id>&query=<query>

Semantic search within a category. Understands natural language queries.

curl "https://api.nochda.at/api/search?categoryId=4552&query=full%20suspension%20trail%20bike&maxPrice=2000&recentDays=30"

Query Parameters:

ParameterRequiredDescription
categoryIdYesCategory ID (from suggest or browse)
queryYesNatural language search (max 500 chars)
maxPriceNoMaximum price in EUR
recentDaysNoOnly show listings from the last N days

Response:

{
  "results": [
    {
      "id": 12345,
      "title": "Giant Trance X 29 2024",
      "description": "Full suspension trail bike, excellent condition...",
      "price": 1800,
      "location": "Wien",
      "url": "https://willhaben.at/iad/kaufen-und-verkaufen/d/...",
      "images": ["https://cache.willhaben.at/...jpg"],
      "publishedAt": "2026-03-08T10:30:00Z",
      "similarity": 0.87
    }
  ],
  "totalCandidates": 85
}

Results are ranked by semantic relevance. Each result includes a direct url link to the original willhaben listing. Returns up to 40 results.


Get Listing Details

GET /api/listings/:id

Full details for a specific listing including comparable pricing context.

curl "https://api.nochda.at/api/listings/12345"

Response:

{
  "listing": {
    "id": 12345,
    "title": "Giant Trance X 29 2024",
    "description": "Full suspension trail bike, excellent condition...",
    "price": 1800,
    "location": "Wien",
    "url": "https://willhaben.at/iad/kaufen-und-verkaufen/d/...",
    "images": ["https://cache.willhaben.at/...jpg"],
    "publishedAt": "2026-03-08T10:30:00Z",
    "categoryLabel": "Fahrräder"
  },
  "compAnalysis": {
    "avgPrice": 2100,
    "medianPrice": 1950,
    "compCount": 30
  }
}

compAnalysis compares the listing's price against the 30 most similar listings in the same category. It can be null if not enough data is available.


Browse Categories

Root categories:

curl "https://api.nochda.at/api/categories"

All categories (flat list):

curl "https://api.nochda.at/api/categories/all"

Children of a category:

curl "https://api.nochda.at/api/categories/123/children"

Returns { "parent": {...}, "children": [...] }.

Search categories by name:

curl "https://api.nochda.at/api/categories/search?q=auto"

Categories with duplicate names include a disambiguatedLabel (e.g. "PKW (Auto/Motorrad)").

All category objects have: id, label, parentCategoryId, image.

Error Handling

Errors return JSON: {"error": "Description"}.

StatusMeaning
400Invalid or missing parameters
404Resource not found
429Rate limited — retry after Retry-After header value
500Server error

Notes

  • All prices are in EUR
  • Search is AI-powered — natural language queries like "cozy armchair for reading" work well
  • Categories form a hierarchy (root → children); search includes all descendant categories
  • Always link users to the url field so they can view the full listing on willhaben

Version tags

latestvk97c74926gpmem7has72pr7zgd82mwqp

Runtime requirements

🔍 Clawdis