# OhneMakler Immobilienpreise API

Returns the Immobilienpreise page for one state, optionally narrowed to one city. The state level is a regional index: the title, intro, and the full inventory of Kreis and place links (`sections[].regions`). Adding `city` returns that locality's price data instead: per-area and per-year purchase-price comparison tables (city vs district vs state vs country) and inline Chart.js series with error-bar points `{y, y_min, y_max}` (missing upstream bounds come back as `null`). Slugs are transliterated; an unknown slug is a non-billable 404.

- **Documentation:** [https://scrappa.co/docs/ohne-makler-api/ohne_makler_immobilienpreise](https://scrappa.co/docs/ohne-makler-api/ohne_makler_immobilienpreise)
- **API group:** OhneMakler API
- **Endpoint:** `GET https://scrappa.co/api/ohne-makler/market/immobilienpreise`

## Authentication

Send your Scrappa API key in the `X-API-KEY` request header. Paid endpoints also support accountless x402 payments when called without an API key.

## Parameters

| Parameter | Type | Required | Description |
| --- | --- | --- | --- |
| `state` | string | Yes | Bundesland slug (e.g. baden-wurttemberg). |
| `city` | string | No | Optional city slug (e.g. abtsgmund) to fetch locality price tables and charts. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/ohne-makler/market/immobilienpreise?state=baden-wurttemberg&city=abtsgmund"
```

## Example response

```json
{
    "success": true,
    "market": "immobilienpreise",
    "title": "Immobilienpreise Abtsgm\u00fcnd 2026",
    "sections": [
        {
            "heading": "Kaufpreisentwicklung f\u00fcr Wohnungen im \u00dcberblick",
            "tables": [
                {
                    "headers": [
                        "Jahr",
                        "Abtsgm\u00fcnd*",
                        "Ostalbkreis*"
                    ],
                    "rows": [
                        [
                            "2026",
                            "2.956 \u20ac",
                            "3.158 \u20ac"
                        ]
                    ]
                }
            ],
            "charts": [],
            "regions": []
        }
    ]
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 404 | No Market Page | No Immobilienpreise page exists for that state/city combination (`not_found`). Non-billable. |
| 422 | Validation Error | A query parameter failed validation (for example a missing `state`). Non-billable. |
| 503 | Upstream Unavailable | The upstream Immobilienpreise page failed or could not be parsed after retries. `error.code` is one of `upstream_unavailable`, `parser_drift`, `upstream_blocked`, or `transport_error`. Retryable and never billed. |

## More Scrappa resources

- [API documentation](https://scrappa.co/docs)
- [Full LLM-readable API reference](https://scrappa.co/llms-full.txt)
- [OpenAPI specification](https://scrappa.co/docs/api.json)
- [Pricing](https://scrappa.co/pricing)
