{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/amsterdam-nl/json-schema/amsterdam-nl-bagverblijfsobjecten-schema.json",
  "title": "Bagverblijfsobjecten",
  "description": "Een VERBLIJFSOBJECT is de kleinste binnen één of meer panden gelegen en voor woon -, bedrijfsmatige, of recreatieve doeleinden geschikte eenheid van gebruik die ontsloten wordt via een eigen afsluitbare toegang vanaf de openbare weg, een erf of een gedeelde verkeersruimte, onderwerp kan zijn van goederenrechtelijke rechtshandelingen en in functioneel opzicht zelfstandig is",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/amsterdam-nl-bag-openapi.yml#/components/schemas/Bagverblijfsobjecten",
  "type": "object",
  "properties": {
    "_links": {
      "allOf": [
        {
          "$ref": "#/$defs/Bagv1VerblijfsobjectenLinks"
        }
      ],
      "title": " links"
    },
    "identificatie": {
      "type": "string",
      "title": "Object ID",
      "description": "De unieke aanduiding van een verblijfsobject"
    },
    "volgnummer": {
      "type": "integer",
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Object volgnummer",
      "description": "Uniek volgnummer van de toestand van het object"
    },
    "plusvolgnummer": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Object plus volgnummer",
      "description": "Uniek BAG-plus volgnummer van de toestand van het object"
    },
    "registratiedatum": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "title": "Object registratiedatum",
      "description": "De datum waarop de toestand is geregistreerd"
    },
    "cbsNummer": {
      "type": [
        "string",
        "null"
      ],
      "title": "Centraal Bureau voor de Statistiek nummer",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "indicatieWoningvoorraad": {
      "type": [
        "string",
        "null"
      ],
      "title": "Woningvoorraad indicatie",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "financieringscodeCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Code financiering code",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "financieringscodeOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "Code financiering omschrijving",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "geconstateerd": {
      "type": [
        "boolean",
        "null"
      ],
      "title": "Verblijfsobject geconstateerd indicatie",
      "description": "Een aanduiding waarmee kan worden aangegeven dat een verblijfsobject in de registratie is opgenomen als gevolg van een feitelijke constatering, zonder dat er op het moment van opname sprake was van een regulier brondocument voor deze opname"
    },
    "heeftHoofdadresId": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject heeft hoofdadres",
      "description": "Het HOOFDadres dat het verblijfsobject heeft",
      "readOnly": true,
      "deprecated": true
    },
    "geometrie": {
      "$ref": "#/$defs/Geometry"
    },
    "oppervlakte": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Verblijfsobject gebruiksoppervlakte",
      "description": "De gebruiksoppervlakte van het verblijfsobject conform hetgeen in NEN 2580 is vastgelegd omtrent gebruiksoppervlakte"
    },
    "statusCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Verblijfsobject status code",
      "description": "De levenscyclus van een VERBLIJSOBJECT waarin het betreffende verblijfsobject zich bevindt. Code"
    },
    "statusOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject status omschrijving",
      "description": "De levenscyclus van een VERBLIJSOBJECT waarin het betreffende verblijfsobject zich bevindt. Omschrijving"
    },
    "beginGeldigheid": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "title": "Verblijfsobject geldigheid begindatum",
      "description": "De ingangsdatum van de geldigheid van een bepaalde combinatie van gegevens over een VERBLIJFSOBJECT"
    },
    "eindGeldigheid": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "title": "Verblijfsobject geldigheid einddatum",
      "description": "De einddatum van de geldigheid van een bepaalde combinatie van gegevens over een VERBLIJFSOBJECT"
    },
    "documentdatum": {
      "type": [
        "string",
        "null"
      ],
      "format": "date",
      "title": "Brondocument datum",
      "description": "De datum waarop het brondocument is vastgesteld"
    },
    "documentnummer": {
      "type": [
        "string",
        "null"
      ],
      "title": "Brondocument nummer",
      "description": "Het unieke nummer van het brondocument"
    },
    "gebruiksdoelWoonfunctieCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "description": "Amsterdamse uitbreiding op Gebruiksdoel verblijfsobject. Code"
    },
    "gebruiksdoelWoonfunctieOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "description": "Amsterdamse uitbreiding op Gebruiksdoel verblijfsobject. Omschrijving"
    },
    "gebruiksdoelGezondheidszorgfunctieCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Gebruiksdoel gezondheidszorg code",
      "description": "Amsterdamse uitbreiding op Gebruiksdoel verblijfsobject. Code"
    },
    "gebruiksdoelGezondheidszorgfunctieOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "Gebruiksdoel gezondheidszorg omschrijving",
      "description": "Amsterdamse uitbreiding op Gebruiksdoel verblijfsobject. Omschrijving"
    },
    "aantalEenhedenComplex": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Complex eenheden aantal",
      "description": "Aantal eenheden complex per verblijfsobject (alléén bij een speciale  woonfunctie of gezondheidszorgfunctie; zie gebruiksdoel-plus)"
    },
    "verdiepingToegang": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Verdieping toegang nummer",
      "description": "Aanduiding op welke verdieping zich de toegang tot het verblijfsobject bevindt"
    },
    "aantalBouwlagen": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Bouwlagen aantal",
      "description": "Aantal bouwlagen van een verblijfsobject"
    },
    "hoogsteBouwlaag": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Bouwlaag hoogste nummer",
      "description": "Hoogste bouwlaag van een verblijfsobject"
    },
    "laagsteBouwlaag": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Bouwlaag laagste nummer",
      "description": "Laagste bouwlaag van een verblijfsobject"
    },
    "aantalKamers": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Kamers aantal",
      "description": "Geeft het aantal kamers aan binnen het verblijfsobject"
    },
    "eigendomsverhoudingCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "eigendomsverhoudingOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "feitelijkGebruikCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "feitelijkGebruikOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "redenopvoerCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Verblijfsobject opvoer reden code",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "redenopvoerOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject opvoer reden omschrijving",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "redenafvoerCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "Verblijfsobject afvoer reden code",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "redenafvoerOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject afvoer reden omschrijving",
      "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
    },
    "ligtInBuurtId": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject ligt in buurt",
      "description": "Buurt waarin het verblijfsobject ligt",
      "readOnly": true,
      "deprecated": true
    },
    "heeftDossierId": {
      "type": [
        "string",
        "null"
      ],
      "title": "Verblijfsobject heeft dossier",
      "description": "Het dossier op basis waarvan het object is toegevoegd aan de registratie",
      "readOnly": true,
      "deprecated": true
    },
    "bagprocesCode": {
      "type": [
        "integer",
        "null"
      ],
      "maximum": 9223372036854775807,
      "minimum": -9223372036854775808,
      "format": "int64",
      "title": "BAG proces code",
      "description": "Functionele handeling die ten grondslag ligt aan de gebeurtenis. code"
    },
    "bagprocesOmschrijving": {
      "type": [
        "string",
        "null"
      ],
      "title": "BAG proces omschrijving",
      "description": "Functionele handeling die ten grondslag ligt aan de gebeurtenis. omschrijving"
    },
    "datumActueelTot": {
      "type": [
        "string",
        "null"
      ],
      "format": "date-time",
      "title": "Actueel tot datum",
      "description": "Einddatum van de cyclus, eventueel in combinatie met het kenmerk Status"
    },
    "gebruiksdoel": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Bagverblijfsobjecten_gebruiksdoel"
      }
    },
    "toegang": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Bagverblijfsobjecten_toegang"
      }
    }
  },
  "required": [
    "_links",
    "gebruiksdoel",
    "heeftDossierId",
    "heeftHoofdadresId",
    "identificatie",
    "ligtInBuurtId",
    "toegang",
    "volgnummer"
  ],
  "$defs": {
    "BagNummeraanduidingenLink": {
      "type": "object",
      "description": "The identifier of the relationship to nummeraanduidingen.",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string"
        },
        "identificatie": {
          "type": "string",
          "title": "Nummeraanduiding ID",
          "description": "De unieke aanduiding van een nummeraanduiding"
        },
        "volgnummer": {
          "type": "integer",
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64",
          "title": "Object volgnummer",
          "description": "Uniek volgnummer van de toestand van het object"
        }
      },
      "required": [
        "href",
        "identificatie",
        "title",
        "volgnummer"
      ]
    },
    "BagVerblijfsobjectenLink": {
      "type": "object",
      "description": "The identifier of the relationship to verblijfsobjecten.",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string"
        },
        "identificatie": {
          "type": "string",
          "title": "Object ID",
          "description": "De unieke aanduiding van een verblijfsobject"
        },
        "volgnummer": {
          "type": "integer",
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64",
          "title": "Object volgnummer",
          "description": "Uniek volgnummer van de toestand van het object"
        }
      },
      "required": [
        "href",
        "identificatie",
        "title",
        "volgnummer"
      ]
    },
    "BagdossiersLink": {
      "type": "object",
      "description": "The identifier of the relationship to dossiers.",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string"
        },
        "dossier": {
          "type": "string",
          "title": "Dossier ID",
          "description": "Verwijzing vanuit de overige objectklassen"
        }
      },
      "required": [
        "dossier",
        "href",
        "title"
      ]
    },
    "Bagv1VerblijfsobjectenLinks": {
      "type": "object",
      "description": "The contents of the `verblijfsobjecten._links` field. It contains all relationships with objects.",
      "properties": {
        "schema": {
          "type": "string",
          "format": "uri",
          "description": "The schema field is exposed with every record",
          "readOnly": true
        },
        "self": {
          "$ref": "#/$defs/BagVerblijfsobjectenLink"
        },
        "heeftHoofdadres": {
          "$ref": "#/$defs/BagNummeraanduidingenLink"
        },
        "ligtInBuurt": {
          "$ref": "#/$defs/GebiedenBuurtenLink"
        },
        "heeftDossier": {
          "$ref": "#/$defs/BagdossiersLink"
        },
        "heeftNevenadres": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BagverblijfsobjectenHeeftNevenadres_M2M"
          }
        },
        "ligtInPanden": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BagverblijfsobjectenLigtInPanden_M2M"
          }
        },
        "heeftOnderzoeken": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/BagverblijfsobjectenHeeftOnderzoeken_M2M"
          }
        }
      },
      "required": [
        "heeftDossier",
        "heeftHoofdadres",
        "heeftNevenadres",
        "heeftOnderzoeken",
        "ligtInBuurt",
        "ligtInPanden",
        "schema",
        "self"
      ]
    },
    "BagverblijfsobjectenHeeftNevenadres_M2M": {
      "type": "object",
      "description": "The M2M table for `Verblijfsobjecten.heeftNevenadres` that links to `Nummeraanduidingen`",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string",
          "readOnly": true
        },
        "identificatie": {
          "type": [
            "string",
            "null"
          ]
        },
        "volgnummer": {
          "type": [
            "integer",
            "null"
          ],
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64"
        },
        "beginGeldigheid": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      },
      "required": [
        "href",
        "title"
      ]
    },
    "BagverblijfsobjectenHeeftOnderzoeken_M2M": {
      "type": "object",
      "description": "The M2M table for `Verblijfsobjecten.heeftOnderzoeken` that links to `Onderzoeken`",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string",
          "readOnly": true
        },
        "identificatie": {
          "type": [
            "string",
            "null"
          ]
        },
        "volgnummer": {
          "type": [
            "integer",
            "null"
          ],
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64"
        },
        "beginGeldigheid": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        },
        "eindGeldigheid": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      },
      "required": [
        "href",
        "title"
      ]
    },
    "BagverblijfsobjectenLigtInPanden_M2M": {
      "type": "object",
      "description": "The M2M table for `Verblijfsobjecten.ligtInPanden` that links to `Panden`",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string",
          "readOnly": true
        },
        "identificatie": {
          "type": [
            "string",
            "null"
          ]
        },
        "volgnummer": {
          "type": [
            "integer",
            "null"
          ],
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64"
        },
        "beginGeldigheid": {
          "type": [
            "string",
            "null"
          ],
          "format": "date-time"
        }
      },
      "required": [
        "href",
        "title"
      ]
    },
    "Bagverblijfsobjecten_gebruiksdoel": {
      "type": "object",
      "description": "Auto-generated table for nested field: verblijfsobjecten.gebruiksdoel",
      "properties": {
        "code": {
          "type": [
            "string",
            "null"
          ],
          "title": "Verblijfsobject gebruiksdoel code",
          "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
        },
        "omschrijving": {
          "type": [
            "string",
            "null"
          ],
          "title": "Verblijfsobject gebruiksdoel omschrijving",
          "description": "Een categorisering van de gebruiksdoelen van het betreffende verblijfsobject, zoals dit door de overheid als zodanig is toegestaan. omschrijving"
        }
      }
    },
    "Bagverblijfsobjecten_toegang": {
      "type": "object",
      "description": "Auto-generated table for nested field: verblijfsobjecten.toegang",
      "properties": {
        "code": {
          "type": [
            "string",
            "null"
          ],
          "title": "Verblijfsobject toegang plaats code",
          "description": "Dit is een vervallen kenmerk en wordt niet geactualiseerd"
        },
        "omschrijving": {
          "type": [
            "string",
            "null"
          ],
          "title": "Verblijfsobject toegang plaats omschrijving",
          "description": "Plaats waar zich de toegang tot het verblijfsobject bevindt"
        }
      }
    },
    "GebiedenBuurtenLink": {
      "type": "object",
      "description": "The identifier of the relationship to buurten.",
      "properties": {
        "href": {
          "type": "string",
          "format": "uri",
          "readOnly": true
        },
        "title": {
          "type": "string"
        },
        "identificatie": {
          "type": "string",
          "title": "Object ID",
          "description": "Uniek identificerend kenmerk voor het object dat onveranderlijk is zolang het object bestaat"
        },
        "volgnummer": {
          "type": "integer",
          "maximum": 9223372036854775807,
          "minimum": -9223372036854775808,
          "format": "int64",
          "title": "Object volgnummer",
          "description": "Uniek volgnummer van de toestand van het object"
        }
      },
      "required": [
        "href",
        "identificatie",
        "title",
        "volgnummer"
      ]
    },
    "Geometry": {
      "type": "object",
      "description": "GeoJSON geometry",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "type": "string",
          "enum": [
            "Point",
            "LineString",
            "Polygon",
            "MultiPoint",
            "MultiLineString",
            "MultiPolygon"
          ],
          "description": "the geometry type"
        },
        "coordinates": {
          "type": "array",
          "minItems": 2,
          "description": "Based on the geometry type, a point or collection of points.",
          "items": {
            "type": "number"
          }
        }
      }
    }
  }
}