# Willhaben — Wrapped API

> **You are on:** `https://api.paywithlocus.com/api` | [llms.txt](https://paywithlocus.com/llms.txt) | [docs](https://docs.paywithlocus.com)
>
> Locus runs on multiple environments -- make sure every URL you call matches your expected environment.
> | Environment | Landing | API | Docs |
> |---|---|---|---|
> | Production | paywithlocus.com | api.paywithlocus.com | docs.paywithlocus.com |
> | Beta | beta.paywithlocus.com | api.beta.paywithlocus.com | docs.paywithlocus.com |
> | Stage | stage.paywithlocus.com | api.stage.paywithlocus.com | docs.paywithlocus.com |
>
> If the API URL above doesn't match your expected environment, re-fetch this file from the correct domain.

> Search and browse listings across Austria's largest classifieds platform. Access marketplace goods, real estate (for sale and rent), cars, jobs, and full listing details — all from a single API.

**Category:** Marketplaces | **Website:** [willhaben.at/](https://willhaben.at/) | **Docs:** [parse.bot/marketplace/1a019f5c-03ca-49de-b087-9826a744d893/willhaben-at-api](https://parse.bot/marketplace/1a019f5c-03ca-49de-b087-9826a744d893/willhaben-at-api)

Pay-per-use API proxy. Each call is automatically billed to your wallet in USDC.

## Access

**Base URL:** `https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/`
**Auth:** `Authorization: Bearer <LOCUS_API_KEY>`

## Endpoints

### get_listing_detail

Get full details for any listing (marketplace, real estate, or car) by its ID. Returns comprehensive information including full description, all images, structured attributes, seller/organisation info, address details, and contact information. Does not cover job listings.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `ad_id` | string | Yes | The willhaben listing/ad ID (numeric string, e.g. '1872400799'). Obtain from search endpoint results. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/get_listing_detail \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"ad_id":"<string>"}'
```

### search_cars

Search for cars on willhaben.at. Returns paginated results with vehicle listings including make, model, mileage, year, fuel type, transmission, and price.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `keyword` | string | No | Search keyword (e.g. 'bmw', 'audi a4', 'golf'). |
| `page` | integer | No | Page number for pagination. |
| `price_from` | integer | No | Minimum price filter in euros. |
| `price_to` | integer | No | Maximum price filter in euros. |
| `rows` | integer | No | Number of results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_cars \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"<string>","page":"<integer>","price_from":"<integer>","price_to":"<integer>","rows":"<integer>"}'
```

### search_jobs

Search for job listings on willhaben.at. Returns paginated results with job title, company, salary, location, employment modes, and employment time. Pagination uses server-side page/rows parameters. Total results count reflects all matching jobs across all pages.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `keyword` | string | No | Search keyword (e.g. 'developer', 'marketing', 'java'). |
| `page` | integer | No | Page number for pagination. |
| `rows` | integer | No | Number of results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_jobs \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"<string>","page":"<integer>","rows":"<integer>"}'
```

### search_marketplace

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).

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `category` | string | No | Category filter. |
| `keyword` | string | No | Search keyword (e.g. 'laptop', 'bicycle', 'sofa'). |
| `page` | integer | No | Page number for pagination. |
| `price_from` | integer | No | Minimum price filter in euros. |
| `price_to` | integer | No | Maximum price filter in euros. |
| `rows` | integer | No | Number of results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_marketplace \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"category":"<string>","keyword":"<string>","page":"<integer>","price_from":"<integer>","price_to":"<integer>","rows":"<integer>"}'
```

### search_real_estate_for_rent

Search for rental properties on willhaben.at. Returns paginated results with rental listings including monthly rent, area, and location details.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `keyword` | string | No | Search keyword. |
| `page` | integer | No | Page number for pagination. |
| `price_from` | integer | No | Minimum rent price filter in euros. |
| `price_to` | integer | No | Maximum rent price filter in euros. |
| `rows` | integer | No | Number of results per page. |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_real_estate_for_rent \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"keyword":"<string>","page":"<integer>","price_from":"<integer>","price_to":"<integer>","rows":"<integer>"}'
```

### search_real_estate_for_sale_flats

Search for flats/apartments for sale on willhaben.at. Returns paginated results with property details including price, area, location, and property type. Supports area and postal code prefix filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_from` | integer | No | Minimum living area in m². |
| `area_to` | integer | No | Maximum living area in m². |
| `keyword` | string | No | Search keyword. |
| `page` | integer | No | Page number for pagination. |
| `price_from` | integer | No | Minimum price filter in euros. |
| `price_to` | integer | No | Maximum price filter in euros. |
| `rows` | integer | No | Number of results per page. |
| `zip_prefix` | string | No | Postal code prefix filter (e.g. '1' for Vienna, '80' for Graz). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_real_estate_for_sale_flats \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_from":"<integer>","area_to":"<integer>","keyword":"<string>","page":"<integer>","price_from":"<integer>","price_to":"<integer>","rows":"<integer>","zip_prefix":"<string>"}'
```

### search_real_estate_for_sale_houses

Search for houses for sale on willhaben.at. Returns paginated results with property details including price, area, location, and property type. Supports area and postal code prefix filtering.

**Estimated cost:** Metered

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `area_from` | integer | No | Minimum living area in m². |
| `area_to` | integer | No | Maximum living area in m². |
| `keyword` | string | No | Search keyword. |
| `page` | integer | No | Page number for pagination. |
| `price_from` | integer | No | Minimum price filter in euros. |
| `price_to` | integer | No | Maximum price filter in euros. |
| `rows` | integer | No | Number of results per page. |
| `zip_prefix` | string | No | Postal code prefix filter (e.g. '1' for Vienna, '80' for Graz). |

```bash
curl -X POST https://api.paywithlocus.com/api/wrapped/parse-willhaben-at-api-1a019f5c/search_real_estate_for_sale_houses \
  -H "Authorization: Bearer YOUR_LOCUS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"area_from":"<integer>","area_to":"<integer>","keyword":"<string>","page":"<integer>","price_from":"<integer>","price_to":"<integer>","rows":"<integer>","zip_prefix":"<string>"}'
```
