---
title: "/properties/{bfe_number}"
method: GET
path: "/v1/properties/{bfe_number}"
tags: ["Properties"]
---

# /properties/{bfe_number}

`GET /v1/properties/{bfe_number}`

## Request

- Base URL: `https://api.companydata.dk` (the document declares no server; this is the origin it was published from)
- URL: `https://api.companydata.dk/v1/properties/{bfe_number}`
- Auth: HTTP bearer

Get full property details by BFE number.

With `include` the energy label, flood risk, planning status and public
valuation come in the same response, so one call covers what otherwise
takes five. A section is null when there is no data for the property.

When `withheld` is true the owner's objection was granted: the response
gives the property's number, type, address and parcels only, and the
detail sections answer 451.

## Path parameters

- `bfe_number` integer, required

## Query parameters

- `include` string, nullable: Comma-separated extra sections in the same response: energy_label, climate, planning, valuation, or all

## Response `200`

Successful Response

- PropertyDetailResponse: Full property details including transfers, transactions, and administrators.
  - `bfe_number` integer, required
  - `withheld` boolean: True when the property's details are withheld after a granted objection from the owner: only number, type, address and parcels are given
  - `property_type` string, nullable: samlet_fast_ejendom, ejerlejlighed or bygning_paa_fremmed_grund
  - `property_type_code` string, nullable: BBR ejendomstype code (1, 2 or 3)
  - `ejerlejlighedsnummer` integer, nullable
  - `matrikler` PropertyLookupMatrikel[]: Parcels (ejerlav + matrikelnummer) the property holds
    - `ejerlavkode` string, nullable: Ejerlav code
    - `matrikelnummer` string, nullable
  - `address` string, nullable
  - `location` AppModelsPropertyGeoLocation: GeoJSON Point.
    - `type` string
    - `coordinates` number[], required
  - `building_data` PropertyBuildingData: Aggregated building/unit data for a property.
    - `ejendomstype` string, nullable
    - `buildings` BuildingInfo[]
      - `usage_code` string, nullable
      - `year_built` integer, nullable
      - `year_renovated` integer, nullable
      - `total_area` integer, nullable
      - `residential_area` integer, nullable
      - `commercial_area` integer, nullable
      - `floors` integer, nullable
      - `heating_installation` string, nullable
      - `heating_source` string, nullable
      - `wall_material` string, nullable
      - `roof_material` string, nullable
    - `units` UnitInfo[]
      - `usage_code` string, nullable
      - `total_area` integer, nullable
      - `residential_area` integer, nullable
      - `commercial_area` integer, nullable
      - `rooms` integer, nullable
      - `dwelling_type` string, nullable
      - `heating_installation` string, nullable
      - `heating_source` string, nullable
    - `land_area` integer, nullable
  - `matrikel_polygons` MatrikelPolygon[], nullable
    - `matrikelnummer` string, nullable
    - `ejerlav_id` string, nullable
    - `geometry` GeoPolygon, required: GeoJSON Polygon.
      - `type` string
      - `coordinates` array[], required
        - array[]
          - number[]
  - `owner_type` string, nullable: The current owners' shared owner_type, 'mixed' when they differ, null when unknown
  - `owners` PropertyOwner[]: Current owners of every kind (companies with CVR and name)
    - `owner_type` string, required: private, social_housing, company, association, housing_cooperative, municipality, other_municipality, region, state, other, not_calculated or unknown
    - `owner_type_code` string, nullable: EJF ejerforholdskode
    - `owner_type_text` string, nullable: The register's text for the code
    - `cvr` string, nullable: Owning company's CVR (companies only)
    - `name` string, nullable: Owning company's name (companies only)
    - `share` OwnershipShare: Ownership share expressed as a fraction (numerator/denominator).
      - `numerator` integer, nullable: Share numerator (tæller)
      - `denominator` integer, nullable: Share denominator (nævner)
    - `since` string, date-time, nullable: Owner since (virkningFra)
    - `primary_contact` boolean, nullable
  - `ownerships` PropertyOwnershipResponse[], required
    - `bfe_number` integer, required
    - `cvr` string, required
    - `ownership_type_code` string, nullable
    - `actual_ownership` OwnershipShare: Ownership share expressed as a fraction (numerator/denominator).
      - `numerator` integer, nullable: Share numerator (tæller)
      - `denominator` integer, nullable: Share denominator (nævner)
    - `registered_ownership` OwnershipShare: Ownership share expressed as a fraction (numerator/denominator).
      - `numerator` integer, nullable: Share numerator (tæller)
      - `denominator` integer, nullable: Share denominator (nævner)
    - `primary_contact` boolean, nullable
    - `status` string, required
    - `effective_from` string, date-time, nullable
    - `effective_to` string, date-time, nullable
    - `company_name` string, nullable
    - `address` string, nullable
    - `building_data` PropertyBuildingData: Aggregated building/unit data for a property.
      - `ejendomstype` string, nullable
      - `buildings` BuildingInfo[]
        - `usage_code` string, nullable
        - `year_built` integer, nullable
        - `year_renovated` integer, nullable
        - `total_area` integer, nullable
        - `residential_area` integer, nullable
        - `commercial_area` integer, nullable
        - `floors` integer, nullable
        - `heating_installation` string, nullable
        - `heating_source` string, nullable
        - `wall_material` string, nullable
        - `roof_material` string, nullable
      - `units` UnitInfo[]
        - `usage_code` string, nullable
        - `total_area` integer, nullable
        - `residential_area` integer, nullable
        - `commercial_area` integer, nullable
        - `rooms` integer, nullable
        - `dwelling_type` string, nullable
        - `heating_installation` string, nullable
        - `heating_source` string, nullable
      - `land_area` integer, nullable
  - `transfers` PropertyTransferResponse[], required
    - `bfe_number` integer, required
    - `takeover_date` string, date-time, nullable
    - `registration_date` string, date-time, nullable
    - `transfer_method` string, nullable
    - `conditional` boolean, nullable
    - `deadline_date` string, date-time, nullable
    - `status` string, required
    - `rolled_back` boolean
    - `transaction` PropertyTransactionResponse: Transaction details for API response.
      - `total_purchase_price` number, nullable
      - `cash_purchase_price` number, nullable
      - `purchase_agreement_date` string, date-time, nullable
      - `transfer_date` string, date-time, nullable
      - `currency_code` string, nullable
      - `buildings_included` string, nullable
    - `bundle` BundleProperty[], nullable
      - `bfe_number` integer, required
      - `address` string, nullable
  - `administrators` PropertyAdministratorResponse[], required
    - `bfe_number` integer, required
    - `administrator_name` string, nullable
    - `administrator_cvr` string, nullable
    - `status` string, required
  - `energy_label` PropertyEnergyLabelResponse: Energy labels for a property (EMOData lookup, cached on the property).
    - `version` integer, required
    - `source` string, nullable: bfe or bbr lookup path
    - `classification` string, nullable: Current headline label
    - `valid_to` string, nullable
    - `label_count` integer
    - `labels` EnergyLabelItem[]
      - `serial` string, required
      - `classification` string, nullable: A2020/A2015/A2010/B..G
      - `status` string, nullable: VALID/EXPIRED/...
      - `valid_from` string, nullable
      - `valid_to` string, nullable
      - `type_usage` string, nullable
      - `based_on` string, nullable
      - `demo_link` string, nullable: sparenergi.dk deep link
      - `buildings` EnergyLabelBuilding[]
        - `number` string, nullable
        - `use_code` string, nullable
        - `year_built` string, nullable
        - `heat_supply` string, nullable
    - `assessed_at` string, date-time, nullable
  - `climate` ClimateRiskResponse: Flood risk assessment for a property (DHM bluespot + havvand paa land).
    - `version` integer, required
    - `bluespot_at_point` boolean, required
    - `bluespot_fill_mm` integer, nullable
    - `bluespot_share_10m` number
    - `havvand_flood_level_m` number, nullable
    - `assessed_at` string, date-time, nullable
  - `planning` PropertyPlanningResponse: Planning status at the property's coordinate (Plandata.dk point lookup).
    - `version` integer, required
    - `zonestatus` string, nullable: Byzone/Landzone/Sommerhusomraade
    - `lokalplaner` PlanningPlan[]
      - `planid` integer, nullable
      - `plannr` string, nullable
      - `plannavn` string, nullable
      - `plantype` number, nullable: Plandata plan type code (e.g. 20.1)
      - `anvendelse` string, nullable: General use category (anvendelse generel)
      - `zonestatus` string, nullable
      - `fremtidig_zonestatus` string, nullable
      - `status` string, nullable: Plan status code (V=vedtaget, F=forslag)
      - `dato_forslag` string, nullable
      - `dato_vedtaget` string, nullable
      - `dato_ikraft` string, nullable
      - `doklink` string, nullable: Link to the plan document (PDF)
      - `kommunenavn` string, nullable
      - `distrikt` string, nullable
      - `bebygpct` number, nullable: Max building coverage percentage
      - `maxetager` number, nullable
      - `maxbygnhjd` number, nullable: Max building height in meters
    - `lokalplan_forslag` PlanningPlan[]
      - `planid` integer, nullable
      - `plannr` string, nullable
      - `plannavn` string, nullable
      - `plantype` number, nullable: Plandata plan type code (e.g. 20.1)
      - `anvendelse` string, nullable: General use category (anvendelse generel)
      - `zonestatus` string, nullable
      - `fremtidig_zonestatus` string, nullable
      - `status` string, nullable: Plan status code (V=vedtaget, F=forslag)
      - `dato_forslag` string, nullable
      - `dato_vedtaget` string, nullable
      - `dato_ikraft` string, nullable
      - `doklink` string, nullable: Link to the plan document (PDF)
      - `kommunenavn` string, nullable
      - `distrikt` string, nullable
      - `bebygpct` number, nullable: Max building coverage percentage
      - `maxetager` number, nullable
      - `maxbygnhjd` number, nullable: Max building height in meters
    - `kommuneplanrammer` PlanningPlan[]
      - `planid` integer, nullable
      - `plannr` string, nullable
      - `plannavn` string, nullable
      - `plantype` number, nullable: Plandata plan type code (e.g. 20.1)
      - `anvendelse` string, nullable: General use category (anvendelse generel)
      - `zonestatus` string, nullable
      - `fremtidig_zonestatus` string, nullable
      - `status` string, nullable: Plan status code (V=vedtaget, F=forslag)
      - `dato_forslag` string, nullable
      - `dato_vedtaget` string, nullable
      - `dato_ikraft` string, nullable
      - `doklink` string, nullable: Link to the plan document (PDF)
      - `kommunenavn` string, nullable
      - `distrikt` string, nullable
      - `bebygpct` number, nullable: Max building coverage percentage
      - `maxetager` number, nullable
      - `maxbygnhjd` number, nullable: Max building height in meters
    - `assessed_at` string, date-time, nullable
  - `valuation` PropertyValuationResponse: Public valuations of a property. Final valuations newest first (old-system valuations to 2020, new-system valuations of homes as they become final) and the current preliminary valuations.
    - `latest` PropertyValuation: One public property valuation (offentlig ejendomsvurdering, Datafordeler VUR).
      - `year` integer, nullable: The year the valuation applies to
      - `property_value` integer, nullable: Ejendomsværdi in DKK; 0 means the register holds no value for that year
      - `land_value` integer, nullable: Grundværdi in DKK
      - `assessed_area` integer, nullable: Vurderet areal in m²
      - `legal_category_code` integer, nullable
      - `legal_category` string, nullable: Juridisk kategori, e.g. 'Ejerbolig til vurdering i lige år'
      - `legal_subcategory_code` integer, nullable
      - `legal_subcategory` string, nullable
      - `usage_code` string, nullable: Benyttelseskode
      - `change_code` string, nullable: Ændringskode (type of valuation or deciding authority)
      - `change_date` string, nullable: Date of the latest valid valuation
      - `updated_at` string, date-time, nullable: When the valuation was last updated in the register
      - `apartments_included` integer, nullable: Number of flats valued together with the property
      - `valuation_id` integer, nullable
      - `vurderingsejendom_id` integer, nullable
      - `moderejendom_id` integer, nullable
    - `history` PropertyValuation[], required
      - `year` integer, nullable: The year the valuation applies to
      - `property_value` integer, nullable: Ejendomsværdi in DKK; 0 means the register holds no value for that year
      - `land_value` integer, nullable: Grundværdi in DKK
      - `assessed_area` integer, nullable: Vurderet areal in m²
      - `legal_category_code` integer, nullable
      - `legal_category` string, nullable: Juridisk kategori, e.g. 'Ejerbolig til vurdering i lige år'
      - `legal_subcategory_code` integer, nullable
      - `legal_subcategory` string, nullable
      - `usage_code` string, nullable: Benyttelseskode
      - `change_code` string, nullable: Ændringskode (type of valuation or deciding authority)
      - `change_date` string, nullable: Date of the latest valid valuation
      - `updated_at` string, date-time, nullable: When the valuation was last updated in the register
      - `apartments_included` integer, nullable: Number of flats valued together with the property
      - `valuation_id` integer, nullable
      - `vurderingsejendom_id` integer, nullable
      - `moderejendom_id` integer, nullable
    - `count` integer, required
    - `source` string: Attribution the data licence requires
    - `preliminary` PropertyPreliminaryValuation[]: Current preliminary valuations, newest year first
      - `year` integer, nullable: The valuation year
      - `property_value` integer, nullable: Foreløbig ejendomsværdi in DKK (0 for business properties, which get a land value only)
      - `land_value` integer, nullable: Foreløbig grundværdi in DKK
      - `land_value_housing` integer, nullable: Land and forestry: grundværdi of the dwelling
      - `production_land_value` integer, nullable: Land and forestry: grundværdi of production land
      - `other_land_value` integer, nullable: Land and forestry: grundværdi of other land
      - `legal_category_code` integer, nullable
      - `legal_category` string, nullable: Juridisk kategori, e.g. 'Ejerbolig til vurdering i lige år'
      - `legal_subcategory_code` integer, nullable
      - `legal_subcategory` string, nullable
      - `vurderingsejendom_id` integer, nullable
      - `bfe_numbers` integer[]: Every BFE number the valuation covers
      - `release_date` string, nullable: Date of Vurderingsstyrelsen's data release (YYYY-MM-DD)
    - `preliminary_source` string, nullable: Attribution for the preliminary valuations
  - `meta` object

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/companydata/apis/companydata-dk-api.md) · [All operations](https://skmtc.dev/companydata/apis/companydata-dk-api/llms.txt) · [OpenAPI document](https://skmtc.dev/companydata/apis/companydata-dk-api/revisions/1cc6c361ae64?raw)
