getapi-nl BAG – Addresses and Buildings Register API

The BAG – Addresses and Buildings Register API from getapi-nl — 3 operation(s) for bag – addresses and buildings register.

Operations 3

GET /v1/kadaster/bag/address Address lookup by postcode and house number #
GET /v1/kadaster/bag/address-suggest Address autocomplete suggestions #
GET /v1/kadaster/bag/id Address lookup by nummeraanduiding ID #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/getapi-nl:getapi-nl-bag-addresses-and-buildings-register-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

getapi-nl-bag-addresses-and-buildings-register-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: GetApi BAG – Addresses and Buildings Register API
  version: 0.0.1
  description: '## Authentication


    All API endpoints require authentication. Include your API key in every request using **one** of the following methods:


    **Option 1 — X-Api-Key header (recommended)**

    ```

    X-Api-Key: ga_live_xxxxxxxxxxxxxxxxxxxx

    ```


    **Option 2 — Bearer token**

    ```

    Authorization: Bearer ga_live_xxxxxxxxxxxxxxxxxxxx

    ```


    You can generate and manage API keys in your dashboard.


    ## AI & Agent Payments (x402)


    Some endpoints support direct payments for AI agents via the **x402** protocol (https://www.x402.org).

    No API key or account is needed. Send a normal request without key;

    the server will respond with **HTTP 402** and a `PAYMENT-REQUIRED` header:


    ```

    PAYMENT-REQUIRED:

    ```


    This base64 string contains, among other things, `network`, `asset`, `amount`, and `payTo`.

    Your agent signs an EIP-3009 *transferWithAuthorization* for the specified `amount` of USDC to that `payTo` address,

    encodes the signature as base64, and resubmits the request with:


    ```

    PAYMENT-SIGNATURE:

    ```


    The server verifies the signature via a facilitator, provides the data, and settles the payment on-chain.

    The success response includes a `PAYMENT-RESPONSE` header containing the transaction information.

    A one-time `nonce` prevents replay attacks. Payments are made in USDC on **Base**;

    the price is determined by the `credit_cost` of the endpoint.'
  contact:
    email: info@wdnoord.nl
  x-guidance: 'GetAPI.nl is een Nederlandse API-platform voor lookups en validaties (postcode,

    adres, kenteken, BTW, e-mail, KVK, IBAN, energiemaatwerk, overheidsdata). Elke

    endpoint accepteert een API key via de X-Api-Key header of Authorization:

    Bearer <key>.


    Sommige endpoints zijn ook direct betaalbaar voor AI-agents via het x402-protocol

    (https://www.x402.org) zonder account of API key: stuur een verzoek zonder key,

    de server antwoordt met HTTP 402 en een PAYMENT-REQUIRED header (base64 JSON met

    network, asset, amount, payTo). Teken daarna een EIP-3009 transferWithAuthorization

    voor het gevraagde bedrag in USDC op Base en hertrail met een PAYMENT-SIGNATURE

    header. De server verifieert, levert de data en settleert on-chain.


    Tips voor agents:

    - Lees eerst de PAYMENT-REQUIRED header van een 402-antwoord; die is leidend.

    - Geef altijd de exact door de server gevraagde parameters mee.

    - Een endpoint met een "x-payment-info" blok vereist betaling voor gebruik.'
servers:
- url: https://api.getapi.nl
  description: GetAPI
security:
- ApiKeyAuth: []
- BearerAuth: []
tags:
- name: BAG – Addresses and Buildings Register
paths:
  /v1/kadaster/bag/address:
    get:
      operationId: kadaster.bag.address
      description: 'Returns full BAG address data for a Dutch address, including BAG IDs,

        usage purposes, surface area, build year, status, and GPS coordinates.


        Data is sourced from the PDOK BAG open API (Landelijke Voorziening BAG).


        Results are cached for 24 hours. The upstream timeout is 8 seconds;

        if PDOK is unavailable the endpoint returns HTTP 503.


        Source: PDOK BAG'
      summary: Address lookup by postcode and house number
      tags:
      - BAG – Addresses and Buildings Register
      parameters:
      - name: postcode
        in: query
        required: true
        schema:
          type: string
          pattern: ^[1-9][0-9]{3}\s?[A-Za-z]{2}$
      - name: house_number
        in: query
        required: true
        schema:
          type: integer
          minimum: 1
          maximum: 99999
      - name: house_letter
        in: query
        schema:
          type:
          - string
          - 'null'
          pattern: ^[a-zA-Z]{1}$
      - name: house_number_addition
        in: query
        schema:
          type:
          - string
          - 'null'
          pattern: ^[a-zA-Z0-9]{1,4}$
          maxLength: 4
      responses:
        '200':
          description: Address found
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: true
                  address:
                    bag_nummeraanduiding_id: 0363200000218908
                    bag_verblijfsobject_id: 0363010000218908
                    bag_pand_ids:
                    - '0363100012165277'
                    bag_openbare_ruimte_id: '0363300000006316'
                    bag_woonplaats_id: '3594'
                    street: Damrak
                    short_name: Damrak
                    house_number: 1
                    house_letter: null
                    house_number_addition: null
                    postcode: 1012LG
                    city: Amsterdam
                    municipality: Amsterdam
                    address_line: Damrak 1
                    address_line_postal: 1012 LG  AMSTERDAM
                    usage_purposes:
                    - retail
                    surface_area_m2: 312
                    build_year: 1900
                    status: in_use
                    type: residence
                    is_secondary_address: false
                    is_observed: false
                    in_investigation: null
                    document_date: '2019-11-22'
                    document_number: 19SZ2048
                    secondary_address_ids: []
                    occurrence: null
                    lat: 52.3745
                    lon: 4.8986
                properties:
                  found:
                    type: boolean
                  address:
                    type: object
                    properties:
                      bag_nummeraanduiding_id:
                        type: string
                      bag_verblijfsobject_id:
                        type: string
                      bag_pand_ids:
                        type: array
                        items:
                          type: string
                      bag_openbare_ruimte_id:
                        type: string
                      bag_woonplaats_id:
                        type: string
                      street:
                        type:
                        - string
                        - 'null'
                      short_name:
                        type:
                        - string
                        - 'null'
                      house_number:
                        type: integer
                      house_letter:
                        type:
                        - string
                        - 'null'
                      house_number_addition:
                        type:
                        - string
                        - 'null'
                      postcode:
                        type: string
                      city:
                        type: string
                      municipality:
                        type: string
                      address_line:
                        type: string
                      address_line_postal:
                        type: string
                      usage_purposes:
                        type: array
                        items:
                          type: string
                      surface_area_m2:
                        type:
                        - integer
                        - 'null'
                      build_year:
                        type:
                        - integer
                        - 'null'
                      status:
                        type:
                        - string
                        - 'null'
                      type:
                        type:
                        - string
                        - 'null'
                      is_secondary_address:
                        type: boolean
                      is_observed:
                        type:
                        - boolean
                        - 'null'
                      in_investigation: []
                      document_date:
                        type:
                        - string
                        - 'null'
                      document_number:
                        type:
                        - string
                        - 'null'
                      secondary_address_ids:
                        type: array
                        items:
                          type: string
                      occurrence: []
                      lat:
                        type:
                        - number
                        - 'null'
                      lon:
                        type:
                        - number
                        - 'null'
                    required:
                    - bag_nummeraanduiding_id
                    - bag_verblijfsobject_id
                    - bag_pand_ids
                    - bag_openbare_ruimte_id
                    - bag_woonplaats_id
                    - street
                    - short_name
                    - house_number
                    - house_letter
                    - house_number_addition
                    - postcode
                    - city
                    - municipality
                    - address_line
                    - address_line_postal
                    - usage_purposes
                    - surface_area_m2
                    - build_year
                    - status
                    - type
                    - is_secondary_address
                    - is_observed
                    - in_investigation
                    - document_date
                    - document_number
                    - secondary_address_ids
                    - occurrence
                    - lat
                    - lon
                required:
                - found
                - address
        '422':
          $ref: '#/components/responses/ValidationException'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: false
                  address: null
                  error: not_found
                  message: Niet gevonden.
                properties:
                  found:
                    type: boolean
                  address:
                    type: 'null'
                  error:
                    type: string
                  message:
                    type: string
                required:
                - found
                - address
                - error
                - message
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: false
                  address: null
                  error: upstream_unavailable
                  message: De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw.
                properties:
                  found:
                    type: boolean
                  address:
                    type: 'null'
                  error:
                    type: string
                  message:
                    type: string
                required:
                - found
                - address
                - error
                - message
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.010000'
        protocols:
        - x402: {}
  /v1/kadaster/bag/address-suggest:
    get:
      operationId: kadaster.bag.address-suggest
      description: 'Returns address suggestions for autocomplete functionality based on a partial query.

        Useful for implementing address autocomplete in forms. Returns up to 10 suggestions

        with full address details and BAG identifiers.


        Results are cached for 1 hour.'
      summary: Address autocomplete suggestions
      tags:
      - BAG – Addresses and Buildings Register
      parameters:
      - name: q
        in: query
        required: true
        schema:
          type: string
          minLength: 2
          maxLength: 100
      - name: limit
        in: query
        schema:
          type:
          - integer
          - 'null'
          minimum: 1
          maximum: 25
      responses:
        '200':
          description: Address suggestions found
          content:
            application/json:
              schema:
                type: object
                examples:
                - suggestions:
                  - id: adr-1234567890123456
                    label: Damrak 1, 1012LG Amsterdam
                    type: adres
                    nummeraanduiding_id: '1234567890123456'
                    verblijfsobject_id: '1234567890123456'
                    postcode: 1012LG
                    house_number: 1
                  - id: adr-1234567890123457
                    label: Damrak 2, 1012LG Amsterdam
                    type: adres
                    nummeraanduiding_id: '1234567890123457'
                    verblijfsobject_id: '1234567890123457'
                    postcode: 1012LG
                    house_number: 2
                properties:
                  suggestions:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        label:
                          type: string
                        type:
                          type: string
                        nummeraanduiding_id:
                          type:
                          - string
                          - 'null'
                        verblijfsobject_id:
                          type:
                          - string
                          - 'null'
                        postcode:
                          type:
                          - string
                          - 'null'
                        house_number:
                          type:
                          - integer
                          - 'null'
                      required:
                      - id
                      - label
                      - type
                      - nummeraanduiding_id
                      - verblijfsobject_id
                      - postcode
                      - house_number
                required:
                - suggestions
        '422':
          $ref: '#/components/responses/ValidationException'
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.010000'
        protocols:
        - x402: {}
  /v1/kadaster/bag/id:
    get:
      operationId: kadaster.bag.id
      description: 'Returns full BAG address data for a given BAG nummeraanduiding ID.

        The nummeraanduiding ID is a 16-digit identifier from the BAG register.


        Data is sourced from the PDOK BAG open API (Landelijke Voorziening BAG).


        Results are cached for 24 hours. The upstream timeout is 8 seconds;

        if PDOK is unavailable the endpoint returns HTTP 503.


        Source: PDOK BAG'
      summary: Address lookup by nummeraanduiding ID
      tags:
      - BAG – Addresses and Buildings Register
      parameters:
      - name: id
        in: query
        required: true
        schema:
          type: string
          pattern: ^[0-9]{16}$
      responses:
        '200':
          description: Address found
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: true
                  address:
                    bag_nummeraanduiding_id: 0363200000218908
                    bag_verblijfsobject_id: 0363010000218908
                    bag_pand_ids:
                    - '0363100012165277'
                    bag_openbare_ruimte_id: '0363300000006316'
                    bag_woonplaats_id: '3594'
                    street: Damrak
                    short_name: Damrak
                    house_number: 1
                    house_letter: null
                    house_number_addition: null
                    postcode: 1012LG
                    city: Amsterdam
                    municipality: Amsterdam
                    address_line: Damrak 1
                    address_line_postal: 1012 LG  AMSTERDAM
                    usage_purposes:
                    - retail
                    surface_area_m2: 312
                    build_year: 1900
                    status: in_use
                    type: residence
                    is_secondary_address: false
                    is_observed: false
                    in_investigation: null
                    document_date: '2019-11-22'
                    document_number: 19SZ2048
                    secondary_address_ids: []
                    occurrence: null
                    lat: 52.3745
                    lon: 4.8986
                properties:
                  found:
                    type: boolean
                  address:
                    type: object
                    properties:
                      bag_nummeraanduiding_id:
                        type: string
                      bag_verblijfsobject_id:
                        type: string
                      bag_pand_ids:
                        type: array
                        items:
                          type: string
                      bag_openbare_ruimte_id:
                        type: string
                      bag_woonplaats_id:
                        type: string
                      street:
                        type:
                        - string
                        - 'null'
                      short_name:
                        type:
                        - string
                        - 'null'
                      house_number:
                        type: integer
                      house_letter:
                        type:
                        - string
                        - 'null'
                      house_number_addition:
                        type:
                        - string
                        - 'null'
                      postcode:
                        type: string
                      city:
                        type: string
                      municipality:
                        type: string
                      address_line:
                        type: string
                      address_line_postal:
                        type: string
                      usage_purposes:
                        type: array
                        items:
                          type: string
                      surface_area_m2:
                        type:
                        - integer
                        - 'null'
                      build_year:
                        type:
                        - integer
                        - 'null'
                      status:
                        type:
                        - string
                        - 'null'
                      type:
                        type:
                        - string
                        - 'null'
                      is_secondary_address:
                        type: boolean
                      is_observed:
                        type:
                        - boolean
                        - 'null'
                      in_investigation: []
                      document_date:
                        type:
                        - string
                        - 'null'
                      document_number:
                        type:
                        - string
                        - 'null'
                      secondary_address_ids:
                        type: array
                        items:
                          type: string
                      occurrence: []
                      lat:
                        type:
                        - number
                        - 'null'
                      lon:
                        type:
                        - number
                        - 'null'
                    required:
                    - bag_nummeraanduiding_id
                    - bag_verblijfsobject_id
                    - bag_pand_ids
                    - bag_openbare_ruimte_id
                    - bag_woonplaats_id
                    - street
                    - short_name
                    - house_number
                    - house_letter
                    - house_number_addition
                    - postcode
                    - city
                    - municipality
                    - address_line
                    - address_line_postal
                    - usage_purposes
                    - surface_area_m2
                    - build_year
                    - status
                    - type
                    - is_secondary_address
                    - is_observed
                    - in_investigation
                    - document_date
                    - document_number
                    - secondary_address_ids
                    - occurrence
                    - lat
                    - lon
                required:
                - found
                - address
        '422':
          $ref: '#/components/responses/ValidationException'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: false
                  address: null
                  error: not_found
                  message: Niet gevonden.
                properties:
                  found:
                    type: boolean
                  address:
                    type: 'null'
                  error:
                    type: string
                  message:
                    type: string
                required:
                - found
                - address
                - error
                - message
        '503':
          description: Service temporarily unavailable
          content:
            application/json:
              schema:
                type: object
                examples:
                - found: false
                  address: null
                  error: upstream_unavailable
                  message: De brondata is tijdelijk niet beschikbaar. Probeer het later opnieuw.
                properties:
                  found:
                    type: boolean
                  address:
                    type: 'null'
                  error:
                    type: string
                  message:
                    type: string
                required:
                - found
                - address
                - error
                - message
        '402':
          description: Payment Required
      x-payment-info:
        price:
          mode: fixed
          currency: USD
          amount: '0.010000'
        protocols:
        - x402: {}
components:
  responses:
    ValidationException:
      description: Unprocessable content
      content:
        application/json:
          schema:
            type: object
            properties:
              error:
                type: string
                description: Machine-readable error code.
              message:
                type: string
                description: Human-readable error message.
              errors:
                type: object
                description: A detailed description of each field that failed validation.
                additionalProperties:
                  type: array
                  items:
                    type: string
            required:
            - error
            - message
            - errors
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
    BearerAuth:
      type: http
      scheme: bearer