APIs / Real estate / Immovlan

1 credit per call5 endpoints27 datapoints

Immovlan API

Immovlan API for Belgian property search, listings, agencies, agency listings and autocomplete as JSON, sale, rent or public sale. 1 credit per successful call.

Immovlan
GET/v1/immovlan/search?transaction=for-sale&sort=price&property_type[]=apartment&province[]=antwerp&bedrooms_min=2
{
  "success": true,
  "data": {
    "transaction": "for-sale",
    "listings": [
      {
        "id": "RBX01922",
        "property_id": 10769831,
        "agency_reference": "1241",
        "is_project": false,
        "status": "published",
        "transaction": "sale",
        "property_type": "apartment",
        "property_subtype": "penthouse",
        "title": "Penthouse for sale",
        "url": "https://immovlan.be/en/detail/penthouse/for-sale/2050/antwerp/rbx01922",
        "price": 95000,
        "display_price": "95 000 €",
        "currency": "EUR",
        "address": {
          "text": "2050 Antwerp",
          "zip": "2050",
          "city": "Antwerp",
          "country": "Belgium"
        },
        "image": "https://api-image.immovlan.be/v1/property/RBX01922/thumbnail-webp/Medium?h=280",
        "description": "This unique penthouse investment opportunity in Antwerp is offered on a life annuity basis for €95,000. Situated in the residential area of Linkeroever, this spacious duplex apartment spans 143 m² across the 4th and 5th floors of the well-m…",
        "bedrooms": 3,
        "bathrooms": 2,
        "living_area": 143,
        "year_built": 1997,
        "published_at": "2026-09-28T09:14:36.000000+00:00",
        "highlights": [
          {
            "key": "NrOfBedrooms",
            "label": "Bedroom(s)",
            "value": "3"
          },
          {
            "key": "LivableSurface",
            "label": "m²",
            "value": "143"
          },
          {
            "key": "NrOfBathrooms",
            "label": "Bathroom(s)",
            "value": "2"
          }
        ],
        "tags": [
          "HasPicture",
          "HasGarage",
          "HasGarden"
        ],
        "has_epc": true,
        "price_recently_modified": false,
        "recently_modified": false,
        "agency": {
          "id": 40513,
          "name": "Immo2life",
          "type": "estateAgents",
          "logo": "https://api-image.immovlan.be/v1/prouser/01260440/logo/English/webp/Small",
          "phone": "+32 499 26 82 90"
        }
      },
      {
        "id": "RBX31673",
        "property_id": 10815536,
        "agency_reference": "353678",
        "is_project": false,
        "status": "published",
        "transaction": "sale",
        "property_type": "apartment",
        "property_subtype": "flat",
        "title": "Apartment for sale",
        "url": "https://immovlan.be/en/detail/apartment/for-sale/2300/turnhout/rbx31673",
        "price": 139000,
        "display_price": "139 000 €",
        "currency": "EUR",
        "address": {
          "text": "2300 Turnhout",
          "zip": "2300",
          "city": "Turnhout",
          "country": "Belgium"
        },
        "image": "https://api-image.immovlan.be/v1/property/RBX31673/thumbnail-webp/Medium?h=280",
        "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, individual utility meter…",
        "bedrooms": 2,
        "bathrooms": 1,
        "living_area": 82,
        "year_built": 1965,
        "published_at": "2026-11-05T00:45:45.000000+00:00",
        "highlights": [
          {
            "key": "NrOfBedrooms",
            "label": "Bedroom(s)",
            "value": "2"
          },
          {
            "key": "LivableSurface",
            "label": "m²",
            "value": "82"
          },
          {
            "key": "TerraceSurface",
            "label": "Terrace",
            "value": "6 m²"
          }
        ],
        "proximity": [
          {
            "category": "transports",
            "name": "Bus",
            "minutes": 1,
            "by_car": false
          },
          {
            "category": "education",
            "name": "School",
            "minutes": 4,
            "by_car": false
          },
          {
            "category": "shop",
            "name": "Shop",
            "minutes": 2,
            "by_car": false
          }
        ],
        "tags": [
          "HasPicture",
          "HasTerrace",
          "HasGasConnection"
        ],
        "has_epc": true,
        "price_recently_modified": false,
        "recently_modified": true,
        "agency": {
          "id": 40407,
          "name": "Heylen Vastgoed Turnhout",
          "type": "estateAgents",
          "logo": "https://api-image.immovlan.be/v1/prouser/01267924/logo/English/webp/Small",
          "phone": "+32 14 73 38 82"
        }
      },
      {
        "id": "RBV09598",
        "property_id": 10478354,
        "agency_reference": "41875",
        "is_project": false,
        "status": "published",
        "transaction": "sale",
        "property_type": "apartment",
        "property_subtype": "flat",
        "title": "Apartment for sale",
        "url": "https://immovlan.be/en/detail/apartment/for-sale/2400/mol/rbv09598",
        "price": 139900,
        "display_price": "139 900 €",
        "currency": "EUR",
        "address": {
          "text": "2400 Mol",
          "zip": "2400",
          "city": "Mol",
          "country": "Belgium"
        },
        "image": "https://api-image.immovlan.be/v1/property/RBV09598/thumbnail-webp/Medium?h=280",
        "description": "Appartement - Appartement 4 is een appartement met alle nodige voorzieningen voor een fijn verblijf. Het is gelijkvloers en geschikt voor 4 personen. In de woonkamer vindt u een knusse zithoek met een televisie, een eethoek en een rijk uitg…",
        "bedrooms": 2,
        "bathrooms": 2,
        "published_at": "2026-01-25T21:47:07.000000+00:00",
        "highlights": [
          {
            "key": "NrOfBedrooms",
            "label": "Bedroom(s)",
            "value": "2"
          },
          {
            "key": "NrOfBathrooms",
            "label": "Bathroom(s)",
            "value": "2"
          }
        ],
        "proximity": [
          {
            "category": "transports",
            "name": "Bus",
            "minutes": 14,
            "by_car": false
          },
          {
            "category": "education",
            "name": "School",
            "minutes": 16,
            "by_car": false
          },
          {
            "category": "shop",
            "name": "Shop",
            "minutes": 37,
            "by_car": false
          }
        ],
        "tags": [
          "HasPicture",
          "HasTerrace"
        ],
        "has_epc": false,
        "price_recently_modified": false,
        "recently_modified": false,
        "agency": {
          "id": 47828,
          "name": "EuroParcs Verkoop",
          "type": "estateAgents",
          "logo": "https://api-image.immovlan.be/v1/prouser/SH19/logo/English/webp/Small"
        }
      }
    ],
    "count": 19,
    "total_count": 1026,
    "reachable_count": 1000,
    "page": 1,
    "size": 20,
    "total_pages": 50,
    "has_more": true,
    "filters_applied": {
      "transaction": "for-sale",
      "sort": "price",
      "order": "asc",
      "property_types": [
        "apartment"
      ],
      "provinces": [
        "antwerp"
      ],
      "bedrooms_min": 2
    }
  },
  "meta": {
    "endpoint_family": "search",
    "rows_removed_by_guard": 1,
    "duplicates_removed": 0,
    "request_id": "req_0c98458df2714489bd547eda78a54ad2",
    "credits_charged": 1,
    "credits_remaining": 1858
  }
}
200 OKJSONX-Credits-Used: 1
Recorded from our API and shortened.

Sample data

What one call returns

A recorded run of search: the fields and shapes you will get, shortened to 3 items.

#idstringproperty_idintegeragency_referencestringis_projectbooleanstatusstringtransactionstringproperty_typestringproperty_subtypestringtitlestringurlurlpriceintegerdisplay_pricestringcurrencystringaddressobjectimageurldescriptionstringbedroomsintegerbathroomsintegerliving_areanumberyear_builtnumberpublished_atstringhighlightsobject[]tagsstring[]has_epcbooleanprice_recently_modifiedbooleanrecently_modifiedbooleanagencyobject
1RBX01922107698311241falsepublishedsaleapartmentpenthousePenthouse for salehttps://immovlan.be/en/detail/penthouse/for-sale/2050/antwerp/rbx019229500095 000 €EUR{4 fields}https://api-image.immovlan.be/v1/property/RBX01922/thumbnail-webp/Medium?h=280This unique penthouse investment opportunity in Antwerp is offered on a life annuity basis for €95,000. Situated in the residential area of Linkeroever, this spacious duplex apartment spans 143 m² across the 4th and 5th floors of the well-m…3214319972026-09-28T09:14:36.000000+00:00[3 items][3 items]truefalsefalse{5 fields}
2RBX3167310815536353678falsepublishedsaleapartmentflatApartment for salehttps://immovlan.be/en/detail/apartment/for-sale/2300/turnhout/rbx31673139000139 000 €EUR{4 fields}https://api-image.immovlan.be/v1/property/RBX31673/thumbnail-webp/Medium?h=2802-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, individual utility meter…218219652026-11-05T00:45:45.000000+00:00[3 items][3 items]truefalsetrue{5 fields}
3RBV095981047835441875falsepublishedsaleapartmentflatApartment for salehttps://immovlan.be/en/detail/apartment/for-sale/2400/mol/rbv09598139900139 900 €EUR{4 fields}https://api-image.immovlan.be/v1/property/RBV09598/thumbnail-webp/Medium?h=280Appartement - Appartement 4 is een appartement met alle nodige voorzieningen voor een fijn verblijf. Het is gelijkvloers en geschikt voor 4 personen. In de woonkamer vindt u een knusse zithoek met een televisie, een eethoek en een rijk uitg…22——2026-01-25T21:47:07.000000+00:00[2 items][2 items]falsefalsefalse{4 fields}

Recorded from our API · 3 items shown · 27 datapoints per itemGET /v1/immovlan/search?transaction=for-sale&sort=price&property_type[]=apartment&province[]=antwerp&bedrooms_min=2

27 datapoints

Identity

  • idstring
  • property_idinteger
  • statusstring
  • property_typestring
  • property_subtypestring
  • titlestring

Contact

  • urlurl

Location

  • addressobject
  • living_areanumber

Reputation

  • imageurl

Price

  • priceinteger
  • display_pricestring
  • currencystring
  • price_recently_modifiedboolean

Other

  • agency_referencestring
  • is_projectboolean
  • transactionstring
  • descriptionstring
  • bedroomsinteger
  • bathroomsinteger
  • year_builtnumber
  • published_atstring
  • highlightsobject[]
  • tagsstring[]
  • has_epcboolean
  • recently_modifiedboolean
  • agencyobject

Playground

Run this API

cURLshell
curl "https://api.perceptlayer.com/v1/immovlan/search?transaction=for-sale&sort=price&property_type[]=apartment&province[]=antwerp&bedrooms_min=2" \
  -H "X-API-Key: $API_KEY"

Immovlan · 5 endpoints

Endpoints

Every endpoint takes the same key. Open one for its parameters and an example request.

EndpointRequired parametersCost
GET/v1/immovlan/agency
id
1 credit
GET/v1/immovlan/agency-listings
agency_id+25 optional
1 credit
GET/v1/immovlan/autocomplete
query+1 optional
1 credit
GET/v1/immovlan/listing
id
1 credit
GET/v1/immovlan/search
transaction+25 optional
1 credit

Overview

About the Immovlan API

What you can get

The Immovlan API returns Belgian property data from Immovlan as JSON through 5 endpoints.

  • Search: search takes a transaction (for-sale, for-rent or in-public-sale), with agency_id, sort (price, bedrooms, area or zip), order (asc or desc), page, price_min, price_max, bedrooms_min, bedrooms_max, bathrooms_min, bathrooms_max, area_min, area_max, plot_area_min, plot_area_max and repeatable filters: property_type[] (house, apartment, land, garage, student-housing, business, investment-property or miscellaneous), property_subtype[], epc_rating[] (excellent, good, poor, bad or unknown), tag[] (hasgarden, hasterrace, hasswimmingpool, hassolarpanels and more), facade[] (2, 3 or 4), state[] (new, normal, excellent, to-be-renovated or fully-renovated), seller_type[] (privateuser or prouser), municipal[], town[], province[] and region[].
  • Listings: listing takes an id.
  • Agencies: agency takes an id; agency-listings takes an agency_id, with the same filters as search.
  • Locations: autocomplete takes a query, with limit.

The recorded search for apartments for sale in the province of Antwerp with at least 2 bedrooms, sorted by price, returns listings, each with id, property_id, status, transaction, property_type, property_subtype, title, url, price, display_price, currency, address, description, bedrooms, bathrooms, living_area, year_built, published_at, highlights, tags, has_epc, price_recently_modified and agency. It also returns total_count (1,026), reachable_count (1,000), total_pages, has_more and filters_applied.

How a call works

Search a province: GET /v1/immovlan/search?transaction=for-sale&sort=price&property_type[]=apartment&province[]=antwerp&bedrooms_min=2 with your key in the X-API-Key header. Each listing's id goes to listing, and its agency carries the id that agency takes, and that agency-listings takes as agency_id. Page with page while has_more is true. Every successful call costs 1 credit; failed calls cost nothing.

Real estateJSONRESTMCP

More real estate APIs

Use cases

Track asking prices for flats and houses by Belgian province or town

Use the Immovlan API to track asking prices for flats and houses by Belgian province or town

Watch public sales with `transaction=in-public-sale`

Use the Immovlan API to watch public sales with `transaction=in-public-sale`

Filter homes by energy rating with `epc_rating[]`

Use the Immovlan API to filter homes by energy rating with `epc_rating[]`

Spot price changes with `price_recently_modified`

Use the Immovlan API to spot price changes with `price_recently_modified`

FAQ

Questions

Do I need an Immovlan account?

No. You call this Immovlan API with your Perceptlayer key in the `X-API-Key` header, with no Immovlan login.

How much does the Immovlan API cost?

Each successful call costs one credit. New accounts get free credits to start, and credit packs bring the price down as you scale.

What format are responses in?

Every endpoint returns JSON, with no HTML parsing on your side.

How many results can one search return?

The recorded Antwerp search reports a `total_count` of 1,026 and a `reachable_count` of 1,000. Narrow the area, price or property type to reach the rest.

Should I build an Immovlan scraper instead?

You can, but an Immovlan scraper is code you maintain: page changes break it, requests get blocked, and Immovlan's terms govern how you collect data. The Immovlan API gives you 5 endpoints of named JSON fields for 1 credit per successful call, and failed calls cost nothing. A scraper makes sense only for data these endpoints don't return, so check the response in the playground on this page first.

Try the Immovlan API with 100 free credits

No credit card. Failed calls are never billed.