# Immovlan Property Search API Documentation

<p><strong>Immovlan Property Search API</strong> Search Immovlan homes, land, garages and business property for sale, for rent or in public sale in Belgium. Filter by location, property type, price, bedrooms, bathrooms, living area, plot area, energy rating, condition, facades, features and seller type, sort and page through the results.</p><p>Get location slugs from the autocomplete endpoint. An unknown slug is refused with a 422, because Immovlan would otherwise ignore it and return all of Belgium. Immovlan returns 20 listings per page and at most 50 pages, so a search reaches 1000 listings. Narrow it with more filters to reach the rest. <code>total_count</code> is the exact number Immovlan reports; <code>reachable_count</code> is the part you can page through.</p><p>New-build projects (<code>is_project</code>: true) show a price and area range and have no bedroom data. When a price, bedroom, bathroom or area filter is set, projects are left out because they cannot be checked, and <code>meta.rows_removed_by_guard</code> counts them. A page past the last page returns an empty page with the page number you asked for.</p>

- **Documentation:** [https://scrappa.co/docs/immovlan-api/immovlan_search](https://scrappa.co/docs/immovlan-api/immovlan_search)
- **API group:** Immovlan API
- **Endpoint:** `GET https://scrappa.co/api/immovlan/search`

## 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 |
| --- | --- | --- | --- |
| `transaction` | string | Yes | for-sale, for-rent or in-public-sale. |
| `property_type` | string | No | One or more, comma separated: house, apartment, land, garage, student-housing, business, investment-property, miscellaneous. |
| `property_subtype` | string | No | One or more, comma separated, e.g. residence, villa, bungalow, penthouse, duplex, studio, loft, ground-floor, development-site. |
| `municipal` | string | No | Municipality slugs from the autocomplete endpoint (type municipality), comma separated, e.g. antwerp. |
| `town` | string | No | Town slugs from the autocomplete endpoint (type town), comma separated, e.g. 2018-antwerp. |
| `province` | string | No | Province slugs from the autocomplete endpoint, comma separated, e.g. antwerp. |
| `region` | string | No | Region slugs from the autocomplete endpoint, comma separated, e.g. brussels-region. |
| `price_min` | integer | No | Minimum price in EUR (monthly rent for for-rent). |
| `price_max` | integer | No | Maximum price in EUR (monthly rent for for-rent). |
| `bedrooms_min` | integer | No | Minimum bedrooms. |
| `bedrooms_max` | integer | No | Maximum bedrooms. |
| `bathrooms_min` | integer | No | Minimum bathrooms. |
| `bathrooms_max` | integer | No | Maximum bathrooms. |
| `area_min` | integer | No | Minimum living area in m2. |
| `area_max` | integer | No | Maximum living area in m2. |
| `plot_area_min` | integer | No | Minimum total (plot) area in m2. |
| `plot_area_max` | integer | No | Maximum total (plot) area in m2. |
| `epc_rating` | string | No | One or more, comma separated: excellent, good, poor, bad, unknown. |
| `state` | string | No | One or more, comma separated: new, normal, excellent, to-be-renovated, fully-renovated. |
| `facade` | string | No | One or more, comma separated: 2, 3, 4. |
| `tag` | string | No | Features that must all be present, comma separated, e.g. hasswimmingpool, hasgarden, hasterrace, hasgarage, isfurnished. |
| `seller_type` | string | No | privateuser or prouser. |
| `agency_id` | integer | No | Only listings of this agency (agency id from a search result). |
| `sort` | string | No | price, bedrooms, area (total area) or zip. Without it the Immovlan order is used. |
| `order` | string | No | asc or desc (default asc, only with sort). |
| `page` | integer | No | Page number, 1 to 50 (default 1). 20 listings per page, so results stop at 1000. |

## Example response

```json
{
    "data": {
        "page": 1,
        "size": 20,
        "count": 19,
        "has_more": true,
        "listings": [
            {
                "id": "RBX01922",
                "url": "https://immovlan.be/en/detail/penthouse/for-sale/2050/antwerp/rbx01922",
                "tags": [
                    "HasPicture",
                    "HasGarage",
                    "HasGarden",
                    "HasTerrace",
                    "HasHeatPump",
                    "HasWaterConnection",
                    "HasEpcCertificate",
                    "IsLifeAnnuity",
                    "HasAttic"
                ],
                "image": "https://api-image.immovlan.be/v1/property/RBX01922/thumbnail-webp/Medium?h=280",
                "price": 95000,
                "title": "Penthouse for sale",
                "agency": {
                    "id": 40513,
                    "logo": "https://api-image.immovlan.be/v1/prouser/01260440/logo/English/webp/Small",
                    "name": "Immo2life",
                    "type": "estateAgents",
                    "phone": "+32 499 26 82 90"
                },
                "status": "published",
                "address": {
                    "zip": "2050",
                    "city": "Antwerp",
                    "text": "2050 Antwerp",
                    "country": "Belgium"
                },
                "has_epc": true,
                "bedrooms": 3,
                "currency": "EUR",
                "price_to": null,
                "bathrooms": 2,
                "proximity": [],
                "highlights": [
                    {
                        "key": "NrOfBedrooms",
                        "label": "Bedroom(s)",
                        "value": "3"
                    },
                    {
                        "key": "LivableSurface",
                        "label": "m\u00b2",
                        "value": "143"
                    },
                    {
                        "key": "NrOfBathrooms",
                        "label": "Bathroom(s)",
                        "value": "2"
                    }
                ],
                "is_project": false,
                "price_from": null,
                "year_built": 1997,
                "description": "This unique penthouse investment opportunity in Antwerp is offered on a life annuity basis for \u20ac95,000. Situated in the residential area of Linkeroever, this spacious duplex apartment spans 143 m\u00b2 across the 4th and 5...",
                "living_area": 143,
                "property_id": 10769831,
                "transaction": "sale",
                "published_at": "2026-09-28T09:14:36.000000+00:00",
                "display_price": "95 000 \u20ac",
                "property_type": "appartment",
                "agency_reference": "1241",
                "property_subtype": "penthouse",
                "living_area_range": null,
                "recently_modified": false,
                "price_recently_modified": false
            },
            {
                "id": "RBX14437",
                "url": "https://immovlan.be/en/detail/apartment/for-sale/2300/turnhout/rbx14437",
                "tags": [
                    "HasPicture",
                    "HasTerrace",
                    "HasGasConnection",
                    "HasWaterConnection",
                    "HasEpcCertificate",
                    "IsUpdate"
                ],
                "image": "https://api-image.immovlan.be/v1/property/RBX14437/thumbnail-webp/Medium?h=280",
                "price": 139000,
                "title": "Apartment for sale",
                "agency": {
                    "id": 40407,
                    "logo": "https://api-image.immovlan.be/v1/prouser/01267924/logo/English/webp/Small",
                    "name": "Heylen Vastgoed Turnhout",
                    "type": "estateAgents",
                    "phone": "+32 14 73 38 82"
                },
                "status": "option",
                "address": {
                    "zip": "2300",
                    "city": "Turnhout",
                    "text": "2300 Turnhout",
                    "country": "Belgium"
                },
                "has_epc": true,
                "bedrooms": 2,
                "currency": "EUR",
                "price_to": null,
                "bathrooms": 1,
                "proximity": [
                    {
                        "name": "Bus",
                        "by_car": false,
                        "minutes": 1,
                        "category": "transports"
                    },
                    {
                        "name": "School",
                        "by_car": false,
                        "minutes": 4,
                        "category": "education"
                    },
                    {
                        "name": "Shop",
                        "by_car": false,
                        "minutes": 2,
                        "category": "shop"
                    }
                ],
                "highlights": [
                    {
                        "key": "NrOfBedrooms",
                        "label": "Bedroom(s)",
                        "value": "2"
                    },
                    {
                        "key": "LivableSurface",
                        "label": "m\u00b2",
                        "value": "82"
                    },
                    {
                        "key": "TerraceSurface",
                        "label": "Terrace",
                        "value": "6 m\u00b2"
                    },
                    {
                        "key": "NrOfBathrooms",
                        "label": "Bathroom(s)",
                        "value": "1"
                    }
                ],
                "is_project": false,
                "price_from": null,
                "year_built": 1965,
                "description": "2-Bedroom Apartment with Terrace This 2-bedroom apartment with a terrace is centrally located in Turnhout and offers an attractive opportunity for both owner-occupancy and investment. Thanks to its practical layout, i...",
                "living_area": 82,
                "property_id": 10787985,
                "transaction": "sale",
                "published_at": "2026-10-10T20:57:16.000000+00:00",
                "display_price": "139 000 \u20ac",
                "property_type": "appartment",
                "agency_reference": "341381",
                "property_subtype": "flat",
                "living_area_range": null,
                "recently_modified": true,
                "price_recently_modified": false
            }
        ],
        "total_count": 975,
        "total_pages": 49,
        "transaction": "for-sale",
        "filters_applied": {
            "sort": "price",
            "order": "asc",
            "provinces": [
                "antwerp"
            ],
            "transaction": "for-sale",
            "bedrooms_min": 2,
            "property_types": [
                "apartment"
            ]
        },
        "reachable_count": 975
    },
    "meta": {
        "billable": true,
        "endpoint_family": "search",
        "duplicates_removed": 0,
        "rows_removed_by_guard": 1
    },
    "success": true
}
```

## Errors

| Status | Error | Description |
| --- | --- | --- |
| 422 | Validation Error | A required parameter is missing or invalid. This response is not billable. |
| 422 | Unprocessable Entity | A location slug is not known to Immovlan. Use slugs from the autocomplete endpoint. This response is not billable. |
| 503 | Service Unavailable | Immovlan could not be reached or returned an unreadable page after retries. Retry shortly. This response is not billable. |

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