# Immoweb Listing Detail API Documentation

Scrappa's `GET /api/immoweb/listing` endpoint returns the complete record for a single Immoweb listing.

## What the detail record contains

Detail is a strict superset of the search projection, so this endpoint returns every field a search result has, plus roughly a hundred more. Beyond the basics you get the full Belgian construction-permit block (including flood zone classification, cadastral plan availability and first-refusal-right flags), energy certificate details including the Flemish renovation obligation, judicial-measure and flood-certificate flags, and VAT and cadastral-income flags on sale transactions.

Agency data comes inline with the listing, including the Belgian IPI registration number. Both the top-level modification timestamp and the publication-level timestamp are returned unreconciled, because they describe different events.

## Contact details are removed

Business contact details present in the upstream record — agency email addresses and telephone numbers — are stripped before the response is returned. They are not part of this endpoint's data contract.

## Language

Pass `language` as `nl`, `fr` or `en` to choose the address and title language. Bare two-letter codes only. Immoweb publishes human Dutch and French titles alongside a machine-generated default, so English responses also carry `alternativeTitles` in Dutch and French.

## Related endpoints

Use [Immoweb Search](/docs/immoweb-api/immoweb_search) to find listing identifiers, and [Listing Statistics](/docs/immoweb-api/immoweb_stats) for view and bookmark counts.

- **Documentation:** [https://scrappa.co/docs/immoweb-api/immoweb_listing](https://scrappa.co/docs/immoweb-api/immoweb_listing)
- **API group:** Immoweb API
- **Endpoint:** `GET https://scrappa.co/api/immoweb/listing/{id}`

## 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 |
| --- | --- | --- | --- |
| `id` | integer | Yes | Immoweb listing identifier. |
| `language` | string | No | nl, fr or en. Bare two-letter codes only; defaults to nl. |

## Example request

```bash
#!/bin/bash

curl -X GET \
    -H "x-api-key: YOUR_API_KEY_HERE" \
    "https://scrappa.co/api/immoweb/listing/{id}?id=21882350"
```

## Example response

```json
{
    "success": true,
    "listing": {
        "id": 21882350,
        "price": 449000,
        "SEOUrl": "https://www.immoweb.be/nl/ad/koop/huis/gent/9000/21882350",
        "lastModificationDate": "2026-10-04T14:01:02.451Z",
        "publication": {
            "lastModificationDate": "2026-10-01T09:12:44.120Z"
        },
        "property": {
            "title": "Te koop - huis",
            "alternativeTitles": {
                "fr": "\u00c0 vendre - maison",
                "nl": "Te koop - huis"
            },
            "constructionPermit": {
                "isObtained": true,
                "floodZoneType": null,
                "hasCadastralPlan": false,
                "hasFirstRefusalRight": false
            },
            "energy": {
                "heatingType": "GAS"
            },
            "location": {
                "geoPoint": {
                    "latitude": 51.05,
                    "longitude": 3.72
                }
            }
        },
        "media": {
            "pictures": {
                "baseUrl": "https://media-resize.immowebstatic.be",
                "items": []
            },
            "documents": {
                "1249e9cd0181f540a883d58e591fbf42": {
                    "id": 1,
                    "type": "specifications",
                    "url": "https://media-resize.immowebstatic.be/doc.pdf"
                }
            }
        },
        "customers": [
            {
                "id": 90001334,
                "type": "AGENCY",
                "publicInfo": {
                    "name": "Example Agency",
                    "ipiNo": "BE-000000"
                }
            }
        ]
    }
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | One or more query parameters failed validation. No credits are charged. |
| 503 | Upstream Unavailable | One upstream lookup per request. A failed lookup is never billed. An unknown listing identifier returns 404. |

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