# Immoweb Geo API Documentation

Scrappa's `GET /api/immoweb/geo` endpoint enumerates Belgian administrative geography with map boundaries.

## What you get

Provinces come back with their names in all three languages and their boundaries as inline GeoJSON. Districts are available as a separate level. The province response carries the district tree, so one call is usually enough.

## The eleven provinces

Belgium has eleven provinces, not ten. Luxembourg is the one most lists miss — it was split from the previous arrangement and is a province in its own right here. Province codes are unprefixed (`ANTWERP`, not `BE-ANTWERP`); postal codes are the only ones that carry the country prefix, and they accept both spellings.

## Languages

Pass `language` as `nl`, `fr` or `en`. Bare two-letter codes only.

## Related endpoints

Use [Location Autocomplete](/docs/immoweb-api/immoweb_locations) to turn a name into a filter value.

- **Documentation:** [https://scrappa.co/docs/immoweb-api/immoweb_geo](https://scrappa.co/docs/immoweb-api/immoweb_geo)
- **API group:** Immoweb API
- **Endpoint:** `GET https://scrappa.co/api/immoweb/geo`

## 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 |
| --- | --- | --- | --- |
| `level` | string | Yes | province or district. |
| `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/geo?level=province&language=nl"
```

## Example response

```json
{
    "success": true,
    "geo": {
        "level": "province",
        "language": "nl",
        "count": 11,
        "entries": [
            {
                "code": "ANTWERP",
                "name": {
                    "nl": "Antwerpen",
                    "fr": "Anvers",
                    "en": "Antwerp"
                },
                "shape": {
                    "type": "Feature",
                    "geometry": {
                        "type": "MultiPolygon",
                        "coordinates": []
                    }
                }
            }
        ]
    }
}
```

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

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