Madaster Private API - Build: 5370 API Reference

Welcome to the Madaster Private API endpoint. This endpoint can be used to interact with the Madaster Platform and its resources. This API does not fully cover all functionality of the platform yet, please see below for the available functions and what they can be used for. For detailed information about the platform and this API, please refer to the Madaster Documentation or the Madaster API Documentation.

To access these resources, you need an authorization token. If you do not have one yet, see the chapter about Authorization in the API documentation. This token should be sent as a header with the name 'X-API-Key', which will authenticate the request with the token. The documentation below specifies which requests are available and which responses they might produce.

This API can be reached at the endpoint: https://api.madaster.com/
The interactive Swagger/OpenAPI documentation can be found at: https://api.madaster.com/swagger
If you prefer a static documentation: https://docs.madaster.com/api-docs

Contact: service@madaster.com
Version: v2.3

Authentication

Token

Token Authorization

type
apiKey
name
X-API-Key
in
header

Accounts

All actions related to the account entity.

Gets the current account for the token.

GET /api/v2.3/accounts/current

Sample request:

GET api/v2.3/accounts/current

The account for the used token.

Response Content-Types: text/plain, application/json, text/json
Response Example (200 OK)
{
  "name": "string",
  "accountType": "integer (int32)",
  "id": "string (uuid)"
}

Gets the available element databases for the token's account.

GET /api/v2.3/accounts/availabledatabases

Sample request:

GET api/v2.3/accounts/availabledatabases

The available element databases.

Response Content-Types: text/plain, application/json, text/json
Response Example (200 OK)
[
  {
    "name": "string",
    "accountType": "integer (int32)",
    "id": "string (uuid)"
  }
]

Building

All actions related to the building entity.

Gets all buildings.

GET /api/v2.3/buildings

Sample request:

GET api/v2.3/buildings

The request was successful and will return all buildings.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "portfolioId": "string (uuid)",
    "name": "string",
    "images": [
      "string"
    ],
    "cadastralDesignation": "string",
    "cadastralArea": "integer (int32)",
    "parcelnumber": "string",
    "publicLawRestriction": "string",
    "completionDate": "string (date-time)",
    "lastRenovationDate": "string (date-time)",
    "addressStreet": "string",
    "addressHousenumber": "string",
    "addressHousenumberAddition": "string",
    "addressZipcode": "string",
    "addressCity": "string",
    "addressCountry": "string",
    "buildingUsage": "string",
    "grossSurfaceArea": "number (double)",
    "energyLabel": "string",
    "energyPerformanceCoefficient": "number (double)",
    "energyIndex": "number (double)",
    "expectedLifespan": "integer (int32)",
    "expectedLifespanStructure": "integer (int32)",
    "expectedLifespanSkin": "integer (int32)",
    "expectedLifespanServices": "integer (int32)",
    "expectedLifespanSpacePlan": "integer (int32)",
    "expectedLifespanStuff": "integer (int32)",
    "breeamLabel": "integer (int32)",
    "gprLabel": "number (double)",
    "mpgLabel": "number (double)",
    "mpgLabelManual": "number (double)",
    "mpgLabelIndicative": "number (double)",
    "leedLabel": "string",
    "wellScoreBuilding": "integer (int32)",
    "wellScoreInterior": "integer (int32)",
    "wellScoreCoreAndShell": "integer (int32)",
    "isDirty": "boolean",
    "hasDirtyElements": "boolean",
    "mostRecentBimInfo": "string (date-time)",
    "geoLatitude": "number (double)",
    "geoLongtitude": "number (double)",
    "phaseType": "string (uuid)",
    "classificationType": "string (uuid)",
    "id": "string (uuid)"
  }
]

Adds a building.

POST /api/v2.3/buildings

Sample request:

POST api/v2.3/buildings

The building model.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "classificationType": "string (uuid)"
}
201 Created

The building was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "images": [
    "string"
  ],
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "mpgLabelManual": "number (double)",
  "mpgLabelIndicative": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "isDirty": "boolean",
  "hasDirtyElements": "boolean",
  "mostRecentBimInfo": "string (date-time)",
  "geoLatitude": "number (double)",
  "geoLongtitude": "number (double)",
  "phaseType": "string (uuid)",
  "classificationType": "string (uuid)",
  "id": "string (uuid)"
}

Gets a building by its identifier.

GET /api/v2.3/buildings/{id}

Sample request:

GET api/v2.3/buildings/[id]
id: string (uuid)
in path

The identifier of the building.

The request was successful and will return the building.

Response Content-Types: application/json
Response Example (200 OK)
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "images": [
    "string"
  ],
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "mpgLabelManual": "number (double)",
  "mpgLabelIndicative": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "isDirty": "boolean",
  "hasDirtyElements": "boolean",
  "mostRecentBimInfo": "string (date-time)",
  "geoLatitude": "number (double)",
  "geoLongtitude": "number (double)",
  "phaseType": "string (uuid)",
  "classificationType": "string (uuid)",
  "id": "string (uuid)"
}

Replaces a building.

PUT /api/v2.3/buildings/{id}

Sample request:

PUT api/v2.3/buildings/[id]

The building model.

id: string (uuid)
in path

The identifier of the building.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "classificationType": "string (uuid)"
}

The building was replaced in its entirety and the result will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "images": [
    "string"
  ],
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "mpgLabelManual": "number (double)",
  "mpgLabelIndicative": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "isDirty": "boolean",
  "hasDirtyElements": "boolean",
  "mostRecentBimInfo": "string (date-time)",
  "geoLatitude": "number (double)",
  "geoLongtitude": "number (double)",
  "phaseType": "string (uuid)",
  "classificationType": "string (uuid)",
  "id": "string (uuid)"
}

Deletes the building and all related data.

DELETE /api/v2.3/buildings/{id}
The building was successfully deleted. Sample request: ``` DELETE api/v2.3/buildings/[id]/delete ```
id: string (uuid)
in path

The identifier of the building.

204 No Content

The building was successfully deleted.

Gets the circular information of a building.

GET /api/v2.3/buildings/{id}/circular
id: string (uuid)
in path

The identifier of the building.

The request was successful and will return the building's circular information.

Response Content-Types: application/json
Response Example (200 OK)
{
  "circularityConstructionPhase": 0.09,
  "circularityUsagePhase": 0.63,
  "circularityEndOfLifePhase": 0.04,
  "ciScoreBuilding": 0.05,
  "correctionUnknownMaterials": 0.8,
  "correctionUnknownBrandLayer": 0.87,
  "madasterCiScore": 0.05
}

Gets the financial information of a building.

GET /api/v2.3/buildings/{id}/financial
id: string (uuid)
in path

The identifier of the building.

inflation: number (double)
in query

The inflation rate to use for the calculation, leave empty to use the default value.

bdbIndex: number (double)
in query

The BDB Index to use for the calculation, leave empty to use the default value.

discountRate: number (double)
in query

The discount rate to use for the calculation, leave empty to use the default value.

The request was successful and will return the building's financial information.

Response Content-Types: application/json
Response Example (200 OK)
{
  "currentValue": 3774692,
  "currentValuePerMaterialFamily": {
    "stone": -484427,
    "glass": -67714,
    "wood": -9731,
    "plastic": -38027,
    "organic": -10133,
    "metal": 4384724
  },
  "ncwValue": -4931739,
  "ncwValuePerBuildingLevel": [
    {
      "id": "26a9ccae-ca9d-4cf0-9683-503321791978",
      "label": "Site",
      "value": -1102967
    },
    {
      "id": "9804b68f-25b5-4224-a408-1eca54aaa5bc",
      "label": "Structure",
      "value": -2638551
    },
    {
      "id": "b3f780d4-3a36-4dce-a8d0-e98557f73713",
      "label": "Skin",
      "value": -794324
    },
    {
      "id": "e8cf6e3d-35e4-4c61-8d72-fa417b0e9328",
      "label": "Services",
      "value": -173276
    },
    {
      "id": "f70048be-590e-4e5a-8a1f-09763d26ec87",
      "label": "Space plan",
      "value": -222791
    },
    {
      "id": "82c1967b-1f20-4c1f-8fe2-685a23ab01be",
      "label": "Stuff",
      "value": 157
    },
    {
      "id": "e2f286ba-6c71-425e-8d99-b9a00895be95",
      "label": "Unknown",
      "value": 13
    }
  ]
}

Gets building validation parameters.

GET /api/v2.3/buildings/{id}/validation

Sample request:

GET api/v2.3/buildings/[id]/validation
id: string (uuid)
in path

The identifier of the building.

The building validation paramaters for the active source files.

Response Content-Types: application/json
Response Example (200 OK)
{
  "percentageClassificationAssignedByNumber": 0.3,
  "percentageClassificationAssignedByVolume": 0.3,
  "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
  "percentageAreaBaseQuantityAssignedByNumber": 0.3,
  "percentageLengthBaseQuantityAssignedByNumber": 0.3,
  "percentageBaseQuantitiesAssignedByNumber": 0.3,
  "percentageMaterialSpecifiedByNumber": 0.3,
  "percentageMaterialSpecifiedByVolume": 0.3,
  "percentageElementsWithKnownMassByNumber": 0.3,
  "percentageElementsMappedByNumber": 0.3,
  "percentageElementsMappedByVolume": 0.3
}

Gets all users for a building.

GET /api/v2.3/buildings/{id}/users

Sample request:

GET api/v2.3/buildings/[id]/users
id: string (uuid)
in path

The identifier of the building.

The request was successful and will return all users.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "userId": "string (uuid)",
    "name": "string",
    "level": "integer (int32)",
    "userType": "integer (int32)",
    "isInvite": "boolean"
  }
]

Replaces the security of a users for a building.

PUT /api/v2.3/buildings/{id}/users

Sample request:

PUT api/v2.3/portfolios/[id]/users

The users to set.

The users to set.

UserRightRequest
id: string (uuid)
in path

The identifier of the portfolio.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "userId": "string (uuid)",
    "level": "integer (int32)"
  }
]

The users were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "userId": "string (uuid)",
  "name": "string",
  "level": "integer (int32)",
  "userType": "integer (int32)",
  "isInvite": "boolean"
}

Schedules the building for proccesing, recalculates all data.

POST /api/v2.3/buildings/{id}/process

Sample request:

POST api/v2.3/buildings/[id]/process
id: string (uuid)
in path

The identifier of the building.

202 Accepted

The processing was accepted for generation.

Schedules the generation of a PDF building passport.

POST /api/v2.3/buildings/{id}/exportpassport

Sample request:

POST api/v2.3/buildings/[id]/exportpassport
id: string (uuid)
in path

The identifier of the building.

accept-language: string nl, en, es, fr, it, de en
in header

The culture to use for the request

202 Accepted

The pdf passport was accepted for generation.

Schedules the generation of a PDF building passport.

POST /api/v2.3/buildings/{id}/exportexcelpassport

Sample request:

POST api/v2.3/buildings/[id]/exportexcelpassport
id: string (uuid)
in path

The identifier of the building.

accept-language: string nl, en, es, fr, it, de en
in header

The culture to use for the request

202 Accepted

The excel passport was accepted for generation.

Adds an image to a building.

POST /api/v2.3/buildings/{id}/images/{fileName}

Sample request:

POST api/v2.3/buildings/[id]/images
id: string (uuid)
in path

The identifier of the building.

fileName: string
in path

The name of the uploaded file.

Request Content-Types: image/png, image/jpeg
Request Example
"string (binary)"
200 OK

The image was added to this building, and its file name will be returned.

type
string
Response Content-Types: application/json
Response Example (200 OK)
"string"

BuildingFile

All actions related to the building file entity.

Gets all building files.

GET /api/v2.3/buildings/{buildingId}/files

Sample request:

GET api/v2.3/buildings/[buildingId]/files
buildingId: string (uuid)
in path

(no description)

The request was successful and will return all building files.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "buildingId": "string (uuid)",
    "isActive": "boolean",
    "isDirty": "boolean",
    "fileName": "string",
    "fileSize": "integer (int64)",
    "status": "integer (int32)",
    "type": "integer (int32)",
    "lastModifiedDate": "string (date-time)",
    "tags": [
      "string"
    ],
    "validation": {
      "percentageClassificationAssignedByNumber": 0.3,
      "percentageClassificationAssignedByVolume": 0.3,
      "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
      "percentageAreaBaseQuantityAssignedByNumber": 0.3,
      "percentageLengthBaseQuantityAssignedByNumber": 0.3,
      "percentageBaseQuantitiesAssignedByNumber": 0.3,
      "percentageMaterialSpecifiedByNumber": 0.3,
      "percentageMaterialSpecifiedByVolume": 0.3,
      "percentageElementsWithKnownMassByNumber": 0.3,
      "percentageElementsMappedByNumber": 0.3,
      "percentageElementsMappedByVolume": 0.3
    },
    "id": "string (uuid)"
  }
]

Adds a building file.

POST /api/v2.3/buildings/{buildingId}/files

Sample request:

POST api/v2.3/buildings/[buildingId]/files

The building file model.

buildingId: string (uuid)
in path

The building identifier.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "type": "integer (int32)",
  "tags": [
    "string"
  ],
  "name": "string",
  "preferredAccountIds": [
    "string (uuid)"
  ]
}
201 Created

The building file was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "buildingId": "string (uuid)",
  "isActive": "boolean",
  "isDirty": "boolean",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "validation": {
    "percentageClassificationAssignedByNumber": 0.3,
    "percentageClassificationAssignedByVolume": 0.3,
    "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
    "percentageAreaBaseQuantityAssignedByNumber": 0.3,
    "percentageLengthBaseQuantityAssignedByNumber": 0.3,
    "percentageBaseQuantitiesAssignedByNumber": 0.3,
    "percentageMaterialSpecifiedByNumber": 0.3,
    "percentageMaterialSpecifiedByVolume": 0.3,
    "percentageElementsWithKnownMassByNumber": 0.3,
    "percentageElementsMappedByNumber": 0.3,
    "percentageElementsMappedByVolume": 0.3
  },
  "id": "string (uuid)"
}

Gets a building file by its identifier.

GET /api/v2.3/buildings/{buildingId}/files/{id}

Sample request:

GET api/v2.3/buildings/[buildingId]/files/[id]
buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

The request was successful and will return the building file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "buildingId": "string (uuid)",
  "isActive": "boolean",
  "isDirty": "boolean",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "validation": {
    "percentageClassificationAssignedByNumber": 0.3,
    "percentageClassificationAssignedByVolume": 0.3,
    "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
    "percentageAreaBaseQuantityAssignedByNumber": 0.3,
    "percentageLengthBaseQuantityAssignedByNumber": 0.3,
    "percentageBaseQuantitiesAssignedByNumber": 0.3,
    "percentageMaterialSpecifiedByNumber": 0.3,
    "percentageMaterialSpecifiedByVolume": 0.3,
    "percentageElementsWithKnownMassByNumber": 0.3,
    "percentageElementsMappedByNumber": 0.3,
    "percentageElementsMappedByVolume": 0.3
  },
  "id": "string (uuid)"
}

Deletes a building file.

DELETE /api/v2.3/buildings/{buildingId}/files/{id}

Sample request:

DELETE api/v2.3/buildings/[buildingId]/file/[id]
buildingId: string (uuid)
in path

The building identifier.

id: string (uuid)
in path

The identifier of the building.

204 No Content

The building was successfully deleted.

Gets a building file status by its identifier.

GET /api/v2.3/buildings/{buildingId}/files/{id}/status

Sample request:

GET api/v2.3/buildings/[buildingId]/files/[id]/status
buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

The request was successful and will return the building file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "status": "integer (int32)",
  "elementProcessedCount": "integer (int32)",
  "elementCount": "integer (int32)",
  "statusMessage": "string",
  "id": "string (uuid)"
}

Gets a download url for the building file.

GET /api/v2.3/buildings/{buildingId}/files/{id}/download

Sample request:

GET api/v2.3/buildings/[buildingId]/file/[id]/download
buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

The request was successful and will return the building file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "url": "string",
  "expirationDateTime": "string (date-time)"
}

Activates or deactivates a building file.

POST /api/v2.3/buildings/{buildingId}/files/{id}/active

Sample request:

POST api/v2.3/buildings/[buildingId]/files/[id]/active

The new active-status.

The new active-status.

buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
"boolean"

The active-status of the building file was updated and the building file will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "buildingId": "string (uuid)",
  "isActive": "boolean",
  "isDirty": "boolean",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "validation": {
    "percentageClassificationAssignedByNumber": 0.3,
    "percentageClassificationAssignedByVolume": 0.3,
    "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
    "percentageAreaBaseQuantityAssignedByNumber": 0.3,
    "percentageLengthBaseQuantityAssignedByNumber": 0.3,
    "percentageBaseQuantitiesAssignedByNumber": 0.3,
    "percentageMaterialSpecifiedByNumber": 0.3,
    "percentageMaterialSpecifiedByVolume": 0.3,
    "percentageElementsWithKnownMassByNumber": 0.3,
    "percentageElementsMappedByNumber": 0.3,
    "percentageElementsMappedByVolume": 0.3
  },
  "id": "string (uuid)"
}

Sets the status of a file to 'importing', so element can be added or updated can be made.

POST /api/v2.3/buildings/{buildingId}/files/{id}/setimporting

Sample request:

POST api/v2.3/buildings/[buildingId]/files/[id]/setimporting
buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

204 No Content

The building file was set to 'importing', no content will be returned.

Starts the refinement of a building file.

POST /api/v2.3/buildings/{buildingId}/files/{id}/startrefinement

Sample request:

POST api/v2.3/buildings/[buildingId]/files/[id]/startrefinement
buildingId: string (uuid)
in path

The identifier of the building.

id: string (uuid)
in path

The identifier of the building file.

202 Accepted

The refinement of the building file was started and the location to fetch it's status can be found in the header.

Uploads a building file.

POST /api/v2.3/buildings/{buildingId}/files/{id}/upload/{fileName}

Sample request:

POST api/v2.3/buildings/[buildingId]/files/[id]/upload
buildingId: string (uuid)
in path

The building identifier.

id: string (uuid)
in path

The building file identifier.

fileName: string
in path

The name of the uploaded file.

Request Content-Types: application/octet-stream
Request Example
"string (binary)"
201 Created

The building file was successfully uploaded, and scheduled for further processing.

202 Accepted

The building file was successfully uploaded.

BuildingFileElement

All actions related to the building file element (ifc element) entity.

Gets a building file's elements by its file identifier.

GET /api/v2.3/buildings/{buildingId}/files/{fileId}/elements

Sample request:

GET api/v2.3/buildings/[buildingId]/files/[fileId]/elements

This API is ODATA enabled, the following filters can be used:

  • $select
  • $filter
  • $skip
  • $top

READ MORE

buildingId: string (uuid)
in path

The identifier of the building.

fileId: string (uuid)
in path

The identifier of the building file.

$select: string
in query

Selects which properties to include in the response.

$filter: string
in query

Filters the results, based on a Boolean condition.

$top: integer
in query

Retrieve a maximum of results.

$skip: integer
in query

Skips a number of results.

$orderby: string
in query

Sorts the results.

The request was successful and will return the building file element.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "id": "3Zn3ivgPIMHOq3QI3MqtiY",
    "name": null,
    "buildingFileId": "00000000-0000-0000-0000-000000000000",
    "materialName": "Concrete",
    "typeName": "Gyproc GF 75 ECO DGS/2.50.0 (1 zijde) 75",
    "elementClass": "IfcWall",
    "volume": 0.065902375,
    "area": 0.84335,
    "height": 3.34,
    "width": 0.075,
    "length": 0.25,
    "weight": 0,
    "mapping": null,
    "phaseMatch": null,
    "brandLayerMatch": null,
    "classificationMatch": null,
    "phaseLookup": null,
    "classificationLookup": null,
    "floor": null
  }
]

Create a new building file element.

POST /api/v2.3/buildings/{buildingId}/files/{fileId}/elements

Sample request:

POST api/v2.3/buildings/[buildingId]/files/[fileId]/elements

The element to create.

buildingId: string (uuid)
in path

The identifier of the building.

fileId: string (uuid)
in path

The identifier of the building file.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "id": "string",
  "name": "string",
  "materialName": "string",
  "materialId": "string (uuid)",
  "typeName": "string",
  "elementClass": "string",
  "volume": "number (double)",
  "area": "number (double)",
  "height": "number (double)",
  "width": "number (double)",
  "length": "number (double)",
  "weight": "number (double)",
  "phaseLookup": "string",
  "classificationLookup": "string",
  "floor": "string"
}

The building file element was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "id": "3Zn3ivgPIMHOq3QI3MqtiY",
  "name": null,
  "buildingFileId": "00000000-0000-0000-0000-000000000000",
  "materialName": "Concrete",
  "typeName": "Gyproc GF 75 ECO DGS/2.50.0 (1 zijde) 75",
  "elementClass": "IfcWall",
  "volume": 0.065902375,
  "area": 0.84335,
  "height": 3.34,
  "width": 0.075,
  "length": 0.25,
  "weight": 0,
  "mapping": null,
  "phaseMatch": null,
  "brandLayerMatch": null,
  "classificationMatch": null,
  "phaseLookup": null,
  "classificationLookup": null,
  "floor": null
}

Gets a building file element by its identifier and its building file's identifier.

GET /api/v2.3/buildings/{buildingId}/files/{fileId}/elements/{id}

Sample request:

GET api/v2.3/buildings/[buildingId]/files/[fileId]/elements/[id]
buildingId: string (uuid)
in path

The identifier of the building.

fileId: string (uuid)
in path

The identifier of the building file.

id: string
in path

The identifier of the element.

The request was successful and will return the building file element.

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "3Zn3ivgPIMHOq3QI3MqtiY",
  "name": null,
  "buildingFileId": "00000000-0000-0000-0000-000000000000",
  "materialName": "Concrete",
  "typeName": "Gyproc GF 75 ECO DGS/2.50.0 (1 zijde) 75",
  "elementClass": "IfcWall",
  "volume": 0.065902375,
  "area": 0.84335,
  "height": 3.34,
  "width": 0.075,
  "length": 0.25,
  "weight": 0,
  "mapping": null,
  "phaseMatch": null,
  "brandLayerMatch": null,
  "classificationMatch": null,
  "phaseLookup": null,
  "classificationLookup": null,
  "floor": null
}

Updates an existing building file element.

PUT /api/v2.3/buildings/{buildingId}/files/{fileId}/elements/{id}

Sample request:

PUT api/v2.3/buildings/[buildingId]/files/[fileId]/elements/[id]

The element to create.

buildingId: string (uuid)
in path

The identifier of the building.

fileId: string (uuid)
in path

The identifier of the building file.

id: string
in path

The identifier of the element.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "id": "string",
  "name": "string",
  "materialName": "string",
  "materialId": "string (uuid)",
  "typeName": "string",
  "elementClass": "string",
  "volume": "number (double)",
  "area": "number (double)",
  "height": "number (double)",
  "width": "number (double)",
  "length": "number (double)",
  "weight": "number (double)",
  "phaseLookup": "string",
  "classificationLookup": "string",
  "floor": "string"
}

The building file element was replaced in its entirety and the result will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "id": "3Zn3ivgPIMHOq3QI3MqtiY",
  "name": null,
  "buildingFileId": "00000000-0000-0000-0000-000000000000",
  "materialName": "Concrete",
  "typeName": "Gyproc GF 75 ECO DGS/2.50.0 (1 zijde) 75",
  "elementClass": "IfcWall",
  "volume": 0.065902375,
  "area": 0.84335,
  "height": 3.34,
  "width": 0.075,
  "length": 0.25,
  "weight": 0,
  "mapping": null,
  "phaseMatch": null,
  "brandLayerMatch": null,
  "classificationMatch": null,
  "phaseLookup": null,
  "classificationLookup": null,
  "floor": null
}

Deletes an existing building file element.

DELETE /api/v2.3/buildings/{buildingId}/files/{fileId}/elements/{id}

Sample request:

DELETE api/v2.3/buildings/[buildingid]/files/[fileid]/elements/[id]
buildingId: string (uuid)
in path

The identifier of the building.

fileId: string (uuid)
in path

The identifier of the building file.

id: string
in path

The identifier of the element.

204 No Content

The building file element was successfully deleted.

Material

All actions related to the material entity.

Gets all materials (optionaly filtered for a specific database).

GET /api/v2.3/materials

Sample request:

GET api/v2.3/materials
databaseId: string (uuid)
in query

Retrieve only the materials for a specific database (read manufacturer / material database provider), if not specified the Madaster materials will be retrieved.

200 OK

The request was successful and will return all materials.

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": {
      "en": "material name",
      "nl": "materiaalnaam"
    },
    "elementFamily": "family",
    "description": {
      "en": "material description",
      "nl": "materiaalbeschrijving"
    },
    "supplier": "supplier",
    "specificWeight": 50.5,
    "lifeTime": 50,
    "circular": {
      "recycledPercentageFeedstock": 0.4,
      "rapidRenewablesPercentageFeedstock": 0.4,
      "virginPercentageFeedstock": 0.2,
      "recycledPercentageEndOfLife": 0.4,
      "landfillPercentageEndOfLife": 0.4,
      "incinerationPercentageEndOfLife": 0.2,
      "efficiencyPercentageRecyclingFeedstock": 0.5,
      "efficiencyPercentageRecyclingEndOfLife": 0.5
    },
    "financial": {
      "importType": 0,
      "priceSetId": "priceset",
      "transportCosts": 50,
      "handlingFeedstockEuroKg": 50,
      "handlingFeedstockPercentage": 0.5
    },
    "id": "00000000-0000-0000-0000-000000000000"
  }
]

Adds a material.

POST /api/v2.3/materials

Sample request:

POST api/v2.3/materials

The material model.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}
201 Created

The material was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}

Gets a material by its identifier.

GET /api/v2.3/materials/{id}

Sample request:

GET api/v2.3/materials/[id]
id: string (uuid)
in path

The identifier of the material.

200 OK

The request was successful and will return the material.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}

Replaces a material.

PUT /api/v2.3/materials/{id}

Sample request:

PUT api/v2.3/materials/[id]

The material model.

id: string (uuid)
in path

The identifier.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}
200 OK

The material was replaced in its entirety and the result will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}

Gets the financial values of a material, for manual import mode.

GET /api/v2.3/materials/{id}/financialvalues

Sample request:

GET api/v2.3/materials/[id]/financialvalues
id: string (uuid)
in path

The identifier of the material.

The request was successful and will return the material's financial values.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.5521793Z",
    "currency": "EUR",
    "unit": 2
  }
]

Adds a financial value for a material, for manual import mode.

POST /api/v2.3/materials/{id}/financialvalues

Sample request:

POST api/v2.3/materials/[id]/financialvalues

The value to add.

id: string (uuid)
in path

The identifier of the material.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.5521793Z",
  "currency": "EUR",
  "unit": 2
}

The financial value was added and the object will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.5521793Z",
  "currency": "EUR",
  "unit": 2
}

Replaces the financial values for a material, for manual import mode.

PUT /api/v2.3/materials/{id}/financialvalues

Sample request:

PUT api/v2.3/materials/[id]/financialvalues

The values to set.

The values to set.

MaterialFinancialValue
id: string (uuid)
in path

The identifier of the material.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.5521793Z",
    "currency": "EUR",
    "unit": 2
  }
]

The financial values were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.5521793Z",
    "currency": "EUR",
    "unit": 2
  }
]

Gets the matches of a material.

GET /api/v2.3/materials/{id}/matches

Sample request:

GET api/v2.3/materials/[id]/matches
id: string (uuid)
in path

The identifier of the material.

200 OK

The request was successful and will return the material's matches.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": "match",
    "matchType": 10
  }
]

Adds a match for a material.

POST /api/v2.3/materials/{id}/matches

Sample request:

POST api/v2.3/materials/[id]/matches

The match to add.

id: string (uuid)
in path

The identifier of the material.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "value": "match",
  "matchType": 10
}
200 OK

The match was added and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "value": "match",
  "matchType": 10
}

Replaces the matches for a material.

PUT /api/v2.3/materials/{id}/matches

Sample request:

PUT api/v2.3/materials/[id]/matches

The matches to set.

The matches to set.

MaterialMatch
id: string (uuid)
in path

The identifier of the material.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "value": "match",
    "matchType": 10
  }
]
200 OK

The matches were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": "match",
    "matchType": 10
  }
]

Portfolio

All actions related to the portfolio entity.

Gets all portfolios.

GET /api/v2.3/portfolios

Sample request:

GET api/v2.3/portfolios

The request was successful and will return all portfolios.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": "A portfolio",
    "logo": "https://madaster.blob.core.windows.net/assets/00000000-0000-0000-0000-000000000000/portfolio.jpg",
    "id": "00000000-0000-0000-0000-000000000000"
  }
]

Adds a portfolio.

POST /api/v2.3/portfolios

Sample request:

POST api/v2.3/portfolios

The portfolio model.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": "A portfolio"
}
201 Created

The portfolio was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "name": "A portfolio",
  "logo": "https://madaster.blob.core.windows.net/assets/00000000-0000-0000-0000-000000000000/portfolio.jpg",
  "id": "00000000-0000-0000-0000-000000000000"
}

Gets a portfolio by its identifier.

GET /api/v2.3/portfolios/{id}

Sample request:

GET api/v2.3/portfolios/[id]
id: string (uuid)
in path

The identifier of the portfolio.

The request was successful and will return the portfolio.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": "A portfolio",
  "logo": "https://madaster.blob.core.windows.net/assets/00000000-0000-0000-0000-000000000000/portfolio.jpg",
  "id": "00000000-0000-0000-0000-000000000000"
}

Replaces a portfolio.

PUT /api/v2.3/portfolios/{id}

Sample request:

PUT api/v2.3/portfolios/[id]

The portfolio model.

id: string (uuid)
in path

The identifier of the portfolio.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": "A portfolio"
}

The portfolio was replaced in its entirety and the result will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": "A portfolio",
  "logo": "https://madaster.blob.core.windows.net/assets/00000000-0000-0000-0000-000000000000/portfolio.jpg",
  "id": "00000000-0000-0000-0000-000000000000"
}

Deletes a portfolio.

DELETE /api/v2.3/portfolios/{id}

Sample request:

DELETE api/v2.3/portfolios/[id]
id: string (uuid)
in path

The identifier of the portfolio.

204 No Content

The portfolio was successfully deleted.

Gets the available element databases for files in this portfolio.

GET /api/v2.3/portfolios/{id}/availabledatabases

Sample request:

GET api/v2.3/portfolios/[id]/availabledatabases
id: string (uuid)
in path

(no description)

The available element databases.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": "string",
    "accountType": "integer (int32)",
    "id": "string (uuid)"
  }
]

Schedules the generation of a PDF portfolio passport.

POST /api/v2.3/portfolios/{id}/passport

Sample request:

POST api/v2.3/portfolios/[id]/passport

The request information to create the passport.

id: string (uuid)
in path

The identifier of the portfolio.

accept-language: string nl, en, es, fr, it, de en
in header

The culture to use for the request

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "buildingIds": [
    "string (uuid)"
  ]
}
202 Accepted

The passport file was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (202 Accepted)
{
  "portfolioId": "string (uuid)",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "id": "string (uuid)"
}

Gets all buildings for a portfolio.

GET /api/v2.3/portfolios/{id}/buildings

Sample request:

GET api/v2.3/portfolios/[id]/buildings
id: string (uuid)
in path

The identifier of the portfolio.

The request was successful and will return all buildings.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "portfolioId": "string (uuid)",
    "name": "string",
    "images": [
      "string"
    ],
    "cadastralDesignation": "string",
    "cadastralArea": "integer (int32)",
    "parcelnumber": "string",
    "publicLawRestriction": "string",
    "completionDate": "string (date-time)",
    "lastRenovationDate": "string (date-time)",
    "addressStreet": "string",
    "addressHousenumber": "string",
    "addressHousenumberAddition": "string",
    "addressZipcode": "string",
    "addressCity": "string",
    "addressCountry": "string",
    "buildingUsage": "string",
    "grossSurfaceArea": "number (double)",
    "energyLabel": "string",
    "energyPerformanceCoefficient": "number (double)",
    "energyIndex": "number (double)",
    "expectedLifespan": "integer (int32)",
    "expectedLifespanStructure": "integer (int32)",
    "expectedLifespanSkin": "integer (int32)",
    "expectedLifespanServices": "integer (int32)",
    "expectedLifespanSpacePlan": "integer (int32)",
    "expectedLifespanStuff": "integer (int32)",
    "breeamLabel": "integer (int32)",
    "gprLabel": "number (double)",
    "mpgLabel": "number (double)",
    "mpgLabelManual": "number (double)",
    "mpgLabelIndicative": "number (double)",
    "leedLabel": "string",
    "wellScoreBuilding": "integer (int32)",
    "wellScoreInterior": "integer (int32)",
    "wellScoreCoreAndShell": "integer (int32)",
    "isDirty": "boolean",
    "hasDirtyElements": "boolean",
    "mostRecentBimInfo": "string (date-time)",
    "geoLatitude": "number (double)",
    "geoLongtitude": "number (double)",
    "phaseType": "string (uuid)",
    "classificationType": "string (uuid)",
    "id": "string (uuid)"
  }
]

Gets all users for a portfolio.

GET /api/v2.3/portfolios/{id}/users

Sample request:

GET api/v2.3/portfolios/[id]/users
id: string (uuid)
in path

The identifier of the portfolio.

The request was successful and will return all users.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "userId": "string (uuid)",
    "name": "string",
    "level": "integer (int32)",
    "userType": "integer (int32)",
    "isInvite": "boolean"
  }
]

Replaces the security of a users for a portfolio.

PUT /api/v2.3/portfolios/{id}/users

Sample request:

PUT api/v2.3/portfolios/[id]/users

The users to set.

The users to set.

UserRightRequest
id: string (uuid)
in path

The identifier of the portfolio.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "userId": "string (uuid)",
    "level": "integer (int32)"
  }
]

The users were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "userId": "string (uuid)",
  "name": "string",
  "level": "integer (int32)",
  "userType": "integer (int32)",
  "isInvite": "boolean"
}

Sets the logo of a portfolio.

POST /api/v2.3/portfolios/{id}/logo/{fileName}

Sample request:

POST api/v2.3/portfolios/[id]/logo
id: string (uuid)
in path

The identifier of the portfolio.

fileName: string
in path

The name of the uploaded file.

Request Content-Types: image/png, image/jpeg
Request Example
"string (binary)"
200 OK

The logo was updated and set for this portfolio, and its file name will be returned.

type
string
Response Content-Types: application/json
Response Example (200 OK)
"string"

PortfolioFile

All actions related to the portfolio file entity.

Gets all portfolio files for a portfolio.

GET /api/v2.3/portfolios/{portfolioId}/files

Sample request:

GET api/v2.3/portfolios/[portfolioId]/file
portfolioId: string (uuid)
in path

The identifier of the portfolio.

The request was successful and will return all portfolio files.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "portfolioId": "string (uuid)",
    "fileName": "string",
    "fileSize": "integer (int64)",
    "status": "integer (int32)",
    "type": "integer (int32)",
    "lastModifiedDate": "string (date-time)",
    "tags": [
      "string"
    ],
    "id": "string (uuid)"
  }
]

Adds a portfolio file.

POST /api/v2.3/portfolios/{portfolioId}/files

Sample request:

POST api/v2.3/portfolios/[portfolioId]/file

The portfolio file model.

portfolioId: string (uuid)
in path

The identifier of the portfolio.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": "string",
  "tags": [
    "string"
  ]
}
201 Created

The portfolio file was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "portfolioId": "string (uuid)",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "id": "string (uuid)"
}

Gets a portfolio file by its identifier.

GET /api/v2.3/portfolios/{portfolioId}/files/{id}

Sample request:

GET api/v2.3/portfolios/[portfolioId]/file/[id]
portfolioId: string (uuid)
in path

The identifier of the portfolio.

id: string (uuid)
in path

The identifier of the portfolio file.

The request was successful and will return the portfolio file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "portfolioId": "string (uuid)",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "id": "string (uuid)"
}

Deletes a portfolio file.

DELETE /api/v2.3/portfolios/{portfolioId}/files/{id}

Sample request:

DELETE api/v2.3/portfolios/[portfolioId]/file/[id]
portfolioId: string (uuid)
in path

The portfolio identifier.

id: string (uuid)
in path

The identifier of the portfolio.

204 No Content

The portfolio was successfully deleted.

Gets a portfolio file status by its identifier.

GET /api/v2.3/portfolios/{portfolioId}/files/{id}/status

Sample request:

GET api/v2.3/portfolios/[portfolioId]/file/[id]/status
portfolioId: string (uuid)
in path

The identifier of the portfolio.

id: string (uuid)
in path

The identifier of the portfolio file.

The request was successful and will return the portfolio file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "status": "integer (int32)",
  "statusMessage": "string",
  "id": "string (uuid)"
}

Uploads a portfolio file.

POST /api/v2.3/portfolios/{portfolioId}/files/{id}/upload/{fileName}

Sample request:

POST api/v2.3/portfolios/[portfolioId]/file/upload
portfolioId: string (uuid)
in path

The portfolio identifier.

id: string (uuid)
in path

The portfolio file identifier.

fileName: string
in path

The name of the uploaded file.

204 No Content

The portfolio file was successfully uploaded.

Gets a download url for the portfolio file.

GET /api/v2.3/portfolios/{portfolioId}/files/{id}/download

Sample request:

GET api/v2.3/portfolios/[portfolioId]/file/[id]/download
portfolioId: string (uuid)
in path

The identifier of the portfolio.

id: string (uuid)
in path

The identifier of the portfolio file.

The request was successful and will return the portfolio file.

Response Content-Types: application/json
Response Example (200 OK)
{
  "url": "string",
  "expirationDateTime": "string (date-time)"
}

Product

All actions related to the product entity.

Gets all products.

GET /api/v2.3/products

Sample request:

GET api/v2.3/products
databaseId: string (uuid)
in query

Retrieve only the products for a specific database (read manufacturer / material database provider), if not specified the Madaster products will be retrieved.

200 OK

The request was successful and will return all products.

type
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": {
      "en": "product name",
      "nl": "productnaam"
    },
    "type": 40,
    "description": {
      "en": "product description",
      "nl": "productbeschrijving"
    },
    "supplier": "supplier",
    "productCode": "12345A",
    "circular": {
      "recycledPercentageFeedstock": 0.4,
      "rapidRenewablesPercentageFeedstock": 0.4,
      "virginPercentageFeedstock": 0.2,
      "recycledPercentageEndOfLife": 0.4,
      "landfillPercentageEndOfLife": 0.4,
      "incinerationPercentageEndOfLife": 0.2,
      "efficiencyPercentageRecyclingFeedstock": 0.5,
      "efficiencyPercentageRecyclingEndOfLife": 0.5,
      "technicalLifetime": 50,
      "functionalLifetime": 50,
      "productReusedPercentageFeedstock": 0.5,
      "productRecycledPercentageFeedstock": 0.2,
      "productRapidRenewablesPercentageFeedstock": 0.2,
      "productVirginPercentageFeedstock": 0.1,
      "productReusedPercentageEndOfLife": 0.5,
      "productRecycledPercentageEndOfLife": 0.2,
      "productLandfillPercentageEndOfLife": 0.2,
      "productIncinerationPercentageEndOfLife": 0.1
    },
    "fixedDimensions": [
      {
        "dimensionValue": 0.3,
        "dimensionType": 0
      }
    ],
    "defaultDimensions": [
      {
        "dimensionValue": 0.2,
        "dimensionType": 1
      },
      {
        "dimensionValue": 0.4,
        "dimensionType": 2
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000"
  }
]

Adds a product.

POST /api/v2.3/products

Sample request:

POST api/v2.3/products

The product model.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}
201 Created

The product was created and the location of the resource will be returned in the 'location' header.

Response Content-Types: application/json
Response Example (201 Created)
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}

Gets a product by its identifier.

GET /api/v2.3/products/{id}

Sample request:

GET api/v2.3/products/[id]
id: string (uuid)
in path

The identifier of the product.

200 OK

The request was successful and will return the product.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}

Replaces a product.

PUT /api/v2.3/products/{id}

Sample request:

PUT api/v2.3/products/[id]

The product model.

id: string (uuid)
in path

The identifier.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}
200 OK

The product was replaced in its entirety and the result will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}

Gets the matches of a product.

GET /api/v2.3/products/{id}/matches

Sample request:

GET api/v2.3/products/[id]/matches
id: string (uuid)
in path

The identifier of the product.

200 OK

The request was successful and will return the product's matches.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": "match",
    "matchType": 10
  }
]

Replaces the matches for a product.

PUT /api/v2.3/products/{id}/matches

Sample request:

PUT api/v2.3/products/[id]/matches

The matches to set.

The matches to set.

ProductMatch
id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "value": "match",
    "matchType": 10
  }
]
200 OK

The matches were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": "match",
    "matchType": 10
  }
]

Adds a match for a product.

POST /api/v2.3/products/{id}/matches

Sample request:

POST api/v2.3/products/[id]/matches

The match to add.

id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "value": "match",
  "matchType": 10
}
201 Created

The match was added and will be returned.

Response Content-Types: application/json
Response Example (201 Created)
{
  "value": "match",
  "matchType": 10
}

Gets the children of a product.

GET /api/v2.3/products/{id}/children

Sample request:

GET api/v2.3/products/[id]/children
id: string (uuid)
in path

The identifier of the product.

200 OK

The request was successful and will return the product's children.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 0.3,
    "childId": "00000000-0000-0000-0000-000000000000",
    "circular": {
      "inheritFeedstockPercentages": true,
      "recycledPercentageFeedstock": 0,
      "rapidRenewablesPercentageFeedstock": 0,
      "inheritEndOfLifePercentages": false,
      "recycledPercentageEndOfLife": 0.4,
      "landfillPercentageEndOfLife": 0.3,
      "inheritEfficiencyPercentages": true,
      "efficiencyPercentageRecyclingFeedstock": 0,
      "efficiencyPercentageRecyclingEndOfLife": 0
    }
  }
]

Adds a child for a product.

POST /api/v2.3/products/{id}/children

Sample request:

POST api/v2.3/products/[id]/children

The child to add.

id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "value": 0.3,
  "childId": "00000000-0000-0000-0000-000000000000",
  "circular": {
    "inheritFeedstockPercentages": true,
    "recycledPercentageFeedstock": 0,
    "rapidRenewablesPercentageFeedstock": 0,
    "inheritEndOfLifePercentages": false,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.3,
    "inheritEfficiencyPercentages": true,
    "efficiencyPercentageRecyclingFeedstock": 0,
    "efficiencyPercentageRecyclingEndOfLife": 0
  }
}
201 Created

The child was added and will be returned.

Response Content-Types: application/json
Response Example (201 Created)
{
  "value": 0.3,
  "childId": "00000000-0000-0000-0000-000000000000",
  "circular": {
    "inheritFeedstockPercentages": true,
    "recycledPercentageFeedstock": 0,
    "rapidRenewablesPercentageFeedstock": 0,
    "inheritEndOfLifePercentages": false,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.3,
    "inheritEfficiencyPercentages": true,
    "efficiencyPercentageRecyclingFeedstock": 0,
    "efficiencyPercentageRecyclingEndOfLife": 0
  }
}

Replaces the children for a product.

PUT /api/v2.3/products/{id}/children

Sample request:

PUT api/v2.3/products/[id]/children 

The matches to set.

The matches to set.

ProductChild
id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "value": 0.3,
    "childId": "00000000-0000-0000-0000-000000000000",
    "circular": {
      "inheritFeedstockPercentages": true,
      "recycledPercentageFeedstock": 0,
      "rapidRenewablesPercentageFeedstock": 0,
      "inheritEndOfLifePercentages": false,
      "recycledPercentageEndOfLife": 0.4,
      "landfillPercentageEndOfLife": 0.3,
      "inheritEfficiencyPercentages": true,
      "efficiencyPercentageRecyclingFeedstock": 0,
      "efficiencyPercentageRecyclingEndOfLife": 0
    }
  }
]
200 OK

The children were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 0.3,
    "childId": "00000000-0000-0000-0000-000000000000",
    "circular": {
      "inheritFeedstockPercentages": true,
      "recycledPercentageFeedstock": 0,
      "rapidRenewablesPercentageFeedstock": 0,
      "inheritEndOfLifePercentages": false,
      "recycledPercentageEndOfLife": 0.4,
      "landfillPercentageEndOfLife": 0.3,
      "inheritEfficiencyPercentages": true,
      "efficiencyPercentageRecyclingFeedstock": 0,
      "efficiencyPercentageRecyclingEndOfLife": 0
    }
  }
]

Gets the financial values of a product.

GET /api/v2.3/products/{id}/financialvalues

Sample request:

GET api/v2.3/products/[id]/financialvalues
id: string (uuid)
in path

The identifier of the product.

The request was successful and will return the product's financial values.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.6375766Z",
    "currency": "EUR",
    "unit": 2
  }
]

Adds a financial value for a product.

POST /api/v2.3/products/{id}/financialvalues

Sample request:

POST api/v2.3/products/[id]/financialvalues

The value to add.

id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.6375766Z",
  "currency": "EUR",
  "unit": 2
}

The financial value was added and the object will be returned.

Response Content-Types: application/json
Response Example (200 OK)
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.6375766Z",
  "currency": "EUR",
  "unit": 2
}

Replaces the financial values for a product.

PUT /api/v2.3/products/{id}/financialvalues

Sample request:

PUT api/v2.3/products/[id]/financialvalues

The values to set.

The values to set.

ProductFinancialValue
id: string (uuid)
in path

The identifier of the product.

Request Content-Types: application/json-patch+json, application/json, text/json, application/*+json
Request Example
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.6375766Z",
    "currency": "EUR",
    "unit": 2
  }
]

The financial values were set and will be returned.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "value": 50.5,
    "valueDate": "2020-07-09T14:30:52.6375766Z",
    "currency": "EUR",
    "unit": 2
  }
]

SystemSettings

All actions not related to any entity.

Gets the available classification methods.

GET /api/v2.3/system/classificationmethods

Sample request:

GET api/v2.3/system/classificationmethods

The classification methods.

Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "name": {
      "en": "english value",
      "nl": "nederlandse waarde"
    },
    "classificationTypeId": "string (uuid)",
    "classificationLevelTypeId": "string (uuid)",
    "id": "string (uuid)"
  }
]

Schema Definitions

AccountType: integer

The account type enum.

1 = VerifiedDatabase (A verified database)

2 = Supplier (A supplier)

3 = General (A regular account)

4 = Private (A private person.)

integer (int32) 1, 2, 3, 4
Example
"integer (int32)"

AccountResponse: object

An account response model.

name: string

Gets or sets the name of the account.

accountType: AccountType
id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "name": "string",
  "accountType": "integer (int32)",
  "id": "string (uuid)"
}

BuildingResponse: object

portfolioId: string (uuid)

Gets or sets the identifier of the portfolio.

name: string

Gets or sets the name of the building.

images: string[]

Gets or sets the images of the building.

string
cadastralDesignation: string

Gets or sets the cadastral designation of the building.

cadastralArea: integer (int32)

Gets or sets the cadastral area of the building in square meters.

parcelnumber: string

Gets or sets the parcel number of the building.

publicLawRestriction: string

Gets or sets the restrictions of public law in place for the building.

completionDate: string (date-time)

Gets or sets the completion date of the building.

lastRenovationDate: string (date-time)

Gets or sets the date of the last renovation of the building.

addressStreet: string

Gets or sets the street that the building is situated on.

addressHousenumber: string

Gets or sets the housenumber in the street that the building is situated on.

addressHousenumberAddition: string

Gets or sets the addition of the housenumber in the street that the building is situated on.

addressZipcode: string

Gets or sets the zipcode of the location that the building is situated on.

addressCity: string

Gets or sets the city that the building is situated in.

addressCountry: string

Gets or sets the identifier of the country that the building is situated in.

buildingUsage: string

Gets or sets the current designation of the building.

grossSurfaceArea: number (double)

Gets or sets the gross surface area of the building.

energyLabel: string

Gets or sets the current energy label of the building, e.g.: F, B or A++.

energyPerformanceCoefficient: number (double)

Gets or sets the energy performance coefficient.

energyIndex: number (double)

Gets or sets the energy index.

expectedLifespan: integer (int32)

Gets or sets the expected lifespan for the building.

expectedLifespanStructure: integer (int32)

Gets or sets the expected lifespan for the structure brand layer.

expectedLifespanSkin: integer (int32)

Gets or sets the expected lifespan for the skin brand layer.

expectedLifespanServices: integer (int32)

Gets or sets the expected lifespan for the services brand layer.

expectedLifespanSpacePlan: integer (int32)

Gets or sets the expected lifespan for the space plan brand layer.

expectedLifespanStuff: integer (int32)

Gets or sets the expected lifespan for the v.

breeamLabel: integer (int32)

Gets or sets the BREEAM label.

gprLabel: number (double)

Gets or sets the GPR-score of the building.

mpgLabel: number (double)

Gets or sets the MPG-score of the building.

mpgLabelManual: number (double)

Gets or sets the manual MPG-score of the building.

mpgLabelIndicative: number (double)

Gets or sets the indicative MPG-score of the building.

leedLabel: string

Gets or sets the LEED label of the building.

wellScoreBuilding: integer (int32)

Gets or sets the well score for building.

wellScoreInterior: integer (int32)

Gets or sets the well score for interior.

wellScoreCoreAndShell: integer (int32)

Gets or sets the well score for core and shell.

isDirty: boolean

Gets or sets a value indicating whether the building is dirty.

hasDirtyElements: boolean

Gets or sets a value indicating whether the building contains any elements that have changed.

mostRecentBimInfo: string (date-time)

Gets or sets the time of the most recent BIM info change.

geoLatitude: number (double)

Gets or sets the geo latitude of the building.

geoLongtitude: number (double)

Gets or sets the geo longtitude of the building.

phaseType: string (uuid)

Gets the identifier of the phase type of the building.

classificationType: string (uuid)

Gets the identifier of the building classification type of the building.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "images": [
    "string"
  ],
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "mpgLabelManual": "number (double)",
  "mpgLabelIndicative": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "isDirty": "boolean",
  "hasDirtyElements": "boolean",
  "mostRecentBimInfo": "string (date-time)",
  "geoLatitude": "number (double)",
  "geoLongtitude": "number (double)",
  "phaseType": "string (uuid)",
  "classificationType": "string (uuid)",
  "id": "string (uuid)"
}

BuildingRequest: object

portfolioId: string (uuid)

Gets or sets the identifier of the portfolio.

name: string

Gets or sets the name of the building.

cadastralDesignation: string

Gets or sets the cadastral designation of the building.

cadastralArea: integer (int32)

Gets or sets the cadastral area of the building in square meters.

parcelnumber: string

Gets or sets the parcel number of the building.

publicLawRestriction: string

Gets or sets the restrictions of public law in place for the building.

completionDate: string (date-time)

Gets or sets the completion date of the building.

lastRenovationDate: string (date-time)

Gets or sets the date of the last renovation of the building.

addressStreet: string

Gets or sets the street that the building is situated on.

addressHousenumber: string

Gets or sets the housenumber in the street that the building is situated on.

addressHousenumberAddition: string

Gets or sets the addition of the housenumber in the street that the building is situated on.

addressZipcode: string

Gets or sets the zipcode of the location that the building is situated on.

addressCity: string

Gets or sets the city that the building is situated in.

addressCountry: string

Gets or sets the identifier of the country that the building is situated in.

buildingUsage: string

Gets or sets the current designation of the building.

grossSurfaceArea: number (double)

Gets or sets the gross surface area of the building.

energyLabel: string

Gets or sets the current energy label of the building, e.g.: F, B or A++.

energyPerformanceCoefficient: number (double)

Gets or sets the energy performance coefficient.

energyIndex: number (double)

Gets or sets the energy index.

expectedLifespan: integer (int32)

Gets or sets the expected lifespan for the building.

expectedLifespanStructure: integer (int32)

Gets or sets the expected lifespan for the structure brand layer.

expectedLifespanSkin: integer (int32)

Gets or sets the expected lifespan for the skin brand layer.

expectedLifespanServices: integer (int32)

Gets or sets the expected lifespan for the services brand layer.

expectedLifespanSpacePlan: integer (int32)

Gets or sets the expected lifespan for the space plan brand layer.

expectedLifespanStuff: integer (int32)

Gets or sets the expected lifespan for the v.

breeamLabel: integer (int32)

Gets or sets the BREEAM label.

gprLabel: number (double)

Gets or sets the GPR-score of the building.

mpgLabel: number (double)

Gets or sets the MPG-score of the building.

leedLabel: string

Gets or sets the LEED label of the building.

wellScoreBuilding: integer (int32)

Gets or sets the well score for building.

wellScoreInterior: integer (int32)

Gets or sets the well score for interior.

wellScoreCoreAndShell: integer (int32)

Gets or sets the well score for core and shell.

classificationType: string (uuid)

Gets or sets the building type identifier, only supported value = 'fc6b8c6b-acb6-4c8a-a18b-fafee57964f1'.

Example
{
  "portfolioId": "string (uuid)",
  "name": "string",
  "cadastralDesignation": "string",
  "cadastralArea": "integer (int32)",
  "parcelnumber": "string",
  "publicLawRestriction": "string",
  "completionDate": "string (date-time)",
  "lastRenovationDate": "string (date-time)",
  "addressStreet": "string",
  "addressHousenumber": "string",
  "addressHousenumberAddition": "string",
  "addressZipcode": "string",
  "addressCity": "string",
  "addressCountry": "string",
  "buildingUsage": "string",
  "grossSurfaceArea": "number (double)",
  "energyLabel": "string",
  "energyPerformanceCoefficient": "number (double)",
  "energyIndex": "number (double)",
  "expectedLifespan": "integer (int32)",
  "expectedLifespanStructure": "integer (int32)",
  "expectedLifespanSkin": "integer (int32)",
  "expectedLifespanServices": "integer (int32)",
  "expectedLifespanSpacePlan": "integer (int32)",
  "expectedLifespanStuff": "integer (int32)",
  "breeamLabel": "integer (int32)",
  "gprLabel": "number (double)",
  "mpgLabel": "number (double)",
  "leedLabel": "string",
  "wellScoreBuilding": "integer (int32)",
  "wellScoreInterior": "integer (int32)",
  "wellScoreCoreAndShell": "integer (int32)",
  "classificationType": "string (uuid)"
}

BuildingCircularInformation: object

Circular information about a building

circularityConstructionPhase: number (double)

The use of non-virgin materials during the construction phase.

circularityUsagePhase: number (double)

The utility of the building.

circularityEndOfLifePhase: number (double)

The percentage of the content that is recoverable during the end-of-life phase.

ciScoreBuilding: number (double)

The combined CI score of the building using the circularity of the phases.

correctionUnknownMaterials: number (double)

The applicable correction for the amount of elements that have a known material.

correctionUnknownBrandLayer: number (double)

The applicable correction for the amount of elements that have a known brand layer.

madasterCiScore: number (double)

The final Madaster CI score, taking into account the corrections on the CI score.

Example
{
  "circularityConstructionPhase": 0.09,
  "circularityUsagePhase": 0.63,
  "circularityEndOfLifePhase": 0.04,
  "ciScoreBuilding": 0.05,
  "correctionUnknownMaterials": 0.8,
  "correctionUnknownBrandLayer": 0.87,
  "madasterCiScore": 0.05
}

BuildingFinancialInformationPerBuildingLevel: object

Financial information for a building level.

id: string (uuid)

Gets or sets the identifier of the building level.

label: string

Gets or sets the label of the building level.

value: number (double)

Gets or sets the netto value (NCW) of the building, taking into account rates and indexes, for this building level.

Example
{
  "id": "string (uuid)",
  "label": "string",
  "value": "number (double)"
}

BuildingFinancialInformation: object

Financial information about a building

currentValue: number (double)

The current value of the building, combining the value of all material families at the current time.

currentValuePerMaterialFamily: object

The current value of the building per material family.

ncwValue: number (double)

The netto value (NCW) of the building, taking into account rates and indexes, combining the value of all building levels.

ncwValuePerBuildingLevel: BuildingFinancialInformationPerBuildingLevel

The netto value (NCW) of the building, taking into account rates and indexes, per building level.

BuildingFinancialInformationPerBuildingLevel
Example
{
  "currentValue": 3774692,
  "currentValuePerMaterialFamily": {
    "stone": -484427,
    "glass": -67714,
    "wood": -9731,
    "plastic": -38027,
    "organic": -10133,
    "metal": 4384724
  },
  "ncwValue": -4931739,
  "ncwValuePerBuildingLevel": [
    {
      "id": "26a9ccae-ca9d-4cf0-9683-503321791978",
      "label": "Site",
      "value": -1102967
    },
    {
      "id": "9804b68f-25b5-4224-a408-1eca54aaa5bc",
      "label": "Structure",
      "value": -2638551
    },
    {
      "id": "b3f780d4-3a36-4dce-a8d0-e98557f73713",
      "label": "Skin",
      "value": -794324
    },
    {
      "id": "e8cf6e3d-35e4-4c61-8d72-fa417b0e9328",
      "label": "Services",
      "value": -173276
    },
    {
      "id": "f70048be-590e-4e5a-8a1f-09763d26ec87",
      "label": "Space plan",
      "value": -222791
    },
    {
      "id": "82c1967b-1f20-4c1f-8fe2-685a23ab01be",
      "label": "Stuff",
      "value": 157
    },
    {
      "id": "e2f286ba-6c71-425e-8d99-b9a00895be95",
      "label": "Unknown",
      "value": 13
    }
  ]
}

BuildingValidation: object

Validation data about a building

percentageClassificationAssignedByNumber: number (double)

The percentage of elements that have an assigned classifications, counted by number of elements

percentageClassificationAssignedByVolume: number (double)

The percentage of elements that have an assigned classifications, counted by volume of elements

percentageVolumeBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have a volume base quantity, counted by number of elements

percentageAreaBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have an area base quantity, counted by number of elements

percentageLengthBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have a length base quantity, counted by number of elements

percentageBaseQuantitiesAssignedByNumber: number (double)

The percentage of elements that have base quantity information, counted by number of elements

percentageMaterialSpecifiedByNumber: number (double)

The percentage of elements that have a material specified, counted by number of elements

percentageMaterialSpecifiedByVolume: number (double)

The percentage of elements that have a material specified, counted by volume of elements

percentageElementsWithKnownMassByNumber: number (double)

The percentage of elements that have a known mass, counted by number of elements

percentageElementsMappedByNumber: number (double)

The percentage of elements that have been mapped to an element, counted by number of elements

percentageElementsMappedByVolume: number (double)

The percentage of elements that have been mapped to an element, counted by volume of elements

Example
{
  "percentageClassificationAssignedByNumber": 0.3,
  "percentageClassificationAssignedByVolume": 0.3,
  "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
  "percentageAreaBaseQuantityAssignedByNumber": 0.3,
  "percentageLengthBaseQuantityAssignedByNumber": 0.3,
  "percentageBaseQuantitiesAssignedByNumber": 0.3,
  "percentageMaterialSpecifiedByNumber": 0.3,
  "percentageMaterialSpecifiedByVolume": 0.3,
  "percentageElementsWithKnownMassByNumber": 0.3,
  "percentageElementsMappedByNumber": 0.3,
  "percentageElementsMappedByVolume": 0.3
}

PermissionLevel: integer

integer (int32) 0, 50, 70, 90
Example
"integer (int32)"

UserType: integer

integer (int32) 0, 1
Example
"integer (int32)"

UserRightResponse: object

userId: string (uuid)

Gets or sets the user identifier.

name: string

Gets or sets the name.

level: PermissionLevel
userType: UserType
isInvite: boolean

Gets or sets a value whether the user is an invite.

Example
{
  "userId": "string (uuid)",
  "name": "string",
  "level": "integer (int32)",
  "userType": "integer (int32)",
  "isInvite": "boolean"
}

UserRightRequest: object

userId: string (uuid)

Gets or sets the user identifier.

level: PermissionLevel
Example
{
  "userId": "string (uuid)",
  "level": "integer (int32)"
}

BuildingFileStatuses: integer

integer (int32) 0, 1, 2, 3, 4, 5, 6, 7, 8, 99
Example
"integer (int32)"

BuildingFileType: integer

integer (int32) 0, 1, 1000, 1001
Example
"integer (int32)"

BuildingFileValidation: object

Validation data about a building file

percentageClassificationAssignedByNumber: number (double)

The percentage of elements that have an assigned classifications, counted by number of elements

percentageClassificationAssignedByVolume: number (double)

The percentage of elements that have an assigned classifications, counted by volume of elements

percentageVolumeBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have a volume base quantity, counted by number of elements

percentageAreaBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have an area base quantity, counted by number of elements

percentageLengthBaseQuantityAssignedByNumber: number (double)

The percentage of elements that have a length base quantity, counted by number of elements

percentageBaseQuantitiesAssignedByNumber: number (double)

The percentage of elements that have base quantity information, counted by number of elements

percentageMaterialSpecifiedByNumber: number (double)

The percentage of elements that have a material specified, counted by number of elements

percentageMaterialSpecifiedByVolume: number (double)

The percentage of elements that have a material specified, counted by volume of elements

percentageElementsWithKnownMassByNumber: number (double)

The percentage of elements that have a known mass, counted by number of elements

percentageElementsMappedByNumber: number (double)

The percentage of elements that have been mapped to an element, counted by number of elements

percentageElementsMappedByVolume: number (double)

The percentage of elements that have been mapped to an element, counted by volume of elements

Example
{
  "percentageClassificationAssignedByNumber": 0.3,
  "percentageClassificationAssignedByVolume": 0.3,
  "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
  "percentageAreaBaseQuantityAssignedByNumber": 0.3,
  "percentageLengthBaseQuantityAssignedByNumber": 0.3,
  "percentageBaseQuantitiesAssignedByNumber": 0.3,
  "percentageMaterialSpecifiedByNumber": 0.3,
  "percentageMaterialSpecifiedByVolume": 0.3,
  "percentageElementsWithKnownMassByNumber": 0.3,
  "percentageElementsMappedByNumber": 0.3,
  "percentageElementsMappedByVolume": 0.3
}

BuildingFileResponse: object

buildingId: string (uuid)

Gets or sets the building identifier.

isActive: boolean

Gets or sets a value indicating whether the buildingfile will be included in the building data.

isDirty: boolean

Gets or sets a value indicating whether the file is dirty.

fileName: string

Gets or sets the name of the file.

fileSize: integer (int64)

Get or sets the size of the file in bytes.

status: BuildingFileStatuses
type: BuildingFileType
lastModifiedDate: string (date-time)

Gets or sets the last modified date for the building file.

tags: string[]

Gets or sets the tags for the building file.

string
validation: BuildingFileValidation
id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "buildingId": "string (uuid)",
  "isActive": "boolean",
  "isDirty": "boolean",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "validation": {
    "percentageClassificationAssignedByNumber": 0.3,
    "percentageClassificationAssignedByVolume": 0.3,
    "percentageVolumeBaseQuantityAssignedByNumber": 0.3,
    "percentageAreaBaseQuantityAssignedByNumber": 0.3,
    "percentageLengthBaseQuantityAssignedByNumber": 0.3,
    "percentageBaseQuantitiesAssignedByNumber": 0.3,
    "percentageMaterialSpecifiedByNumber": 0.3,
    "percentageMaterialSpecifiedByVolume": 0.3,
    "percentageElementsWithKnownMassByNumber": 0.3,
    "percentageElementsMappedByNumber": 0.3,
    "percentageElementsMappedByVolume": 0.3
  },
  "id": "string (uuid)"
}

BuildingRequestFileType: integer

integer (int32) 0, 1
Example
"integer (int32)"

BuildingFileRequest: object

type: BuildingRequestFileType
tags: string[]

Gets or sets the tags for the building file.

string
name: string

Gets or sets the name of the building file.

preferredAccountIds: string[]

Gets or sets the preferred account identifiers.

string (uuid)
Example
{
  "type": "integer (int32)",
  "tags": [
    "string"
  ],
  "name": "string",
  "preferredAccountIds": [
    "string (uuid)"
  ]
}

BuildingFileStatusResponse: object

status: BuildingFileStatuses
elementProcessedCount: integer (int32)

Gets or sets the total processed elements (imported or refined).

elementCount: integer (int32)

Gets or sets the total elements.

statusMessage: string

Gets or sets the import or refinement status message.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "status": "integer (int32)",
  "elementProcessedCount": "integer (int32)",
  "elementCount": "integer (int32)",
  "statusMessage": "string",
  "id": "string (uuid)"
}

FileDownloadResponse: object

url: string

Gets or sets the url.

expirationDateTime: string (date-time)

Gets or sets the expiration of the url.

Example
{
  "url": "string",
  "expirationDateTime": "string (date-time)"
}

ElementType: integer

integer (int32) 10, 20, 30, 40, 50
Example
"integer (int32)"

Mapping: object

A mapping.

type: ElementType
id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "type": "integer (int32)",
  "id": "string (uuid)"
}

PhaseMatch: object

A phase match.

name: string

Gets or sets the name of the matched phase.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "name": "string",
  "id": "string (uuid)"
}

BrandLayerMatch: object

A brand layer match.

name: string

Gets or sets the name of the matched brand layer.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "name": "string",
  "id": "string (uuid)"
}

ClassificationMatch: object

A classification match.

name: string

Gets or sets the name of the matched classification.

code: string

Gets or sets the code of the matched classification.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "name": "string",
  "code": "string",
  "id": "string (uuid)"
}

BuildingFileElementResponse: object

A building file element

id: string

The identifier of the element

name: string

The name of the element

buildingFileId: string (uuid)

The identifier of the building file that this building file element belongs to.

materialName: string

The name of the element

typeName: string

The type name of the element

elementClass: string

The element class of the element

volume: number (double)

The volume of the element

area: number (double)

The area of the element

height: number (double)

The height of the element

width: number (double)

The width of the element

length: number (double)

The length of the element

weight: number (double)

The weight of the element

mapping: Mapping
phaseMatch: PhaseMatch
brandLayerMatch: BrandLayerMatch
classificationMatch: ClassificationMatch
phaseLookup: string[]

The building process phase lookups for the element, these values will be used to match to a phase

string
classificationLookup: string[]

The classification lookups for the element, these values will be used to match to a classification

string
floor: string

The floor of the element

Example
{
  "id": "3Zn3ivgPIMHOq3QI3MqtiY",
  "name": null,
  "buildingFileId": "00000000-0000-0000-0000-000000000000",
  "materialName": "Concrete",
  "typeName": "Gyproc GF 75 ECO DGS/2.50.0 (1 zijde) 75",
  "elementClass": "IfcWall",
  "volume": 0.065902375,
  "area": 0.84335,
  "height": 3.34,
  "width": 0.075,
  "length": 0.25,
  "weight": 0,
  "mapping": null,
  "phaseMatch": null,
  "brandLayerMatch": null,
  "classificationMatch": null,
  "phaseLookup": null,
  "classificationLookup": null,
  "floor": null
}

BuildingFileElementRequest: object

A request for a building file element.

id: string

Gets or sets the mark.

name: string

Gets or sets the name.

materialName: string

Gets or sets the name of the element.

materialId: string (uuid)

Gets or sets the Madaster material ID of the element.

typeName: string

Gets or sets the type name.

elementClass: string

Gets or sets the ifc element class (example: IfcWall).

volume: number (double)

Gets or sets the volume.

area: number (double)

Gets or sets the area.

height: number (double)

Gets or sets the height.

width: number (double)

Gets or sets the width.

length: number (double)

Gets or sets the length.

weight: number (double)

Gets or sets the specified weight.

phaseLookup: string

Gets or sets the building process phase lookup.

classificationLookup: string

Gets or sets the classification (NL/SfB) lookup.

floor: string

Gets or sets the floor name.

Example
{
  "id": "string",
  "name": "string",
  "materialName": "string",
  "materialId": "string (uuid)",
  "typeName": "string",
  "elementClass": "string",
  "volume": "number (double)",
  "area": "number (double)",
  "height": "number (double)",
  "width": "number (double)",
  "length": "number (double)",
  "weight": "number (double)",
  "phaseLookup": "string",
  "classificationLookup": "string",
  "floor": "string"
}

MaterialCircularInformation: object

The circular properties of the element

recycledPercentageFeedstock: number (double) 0 ≤ x ≤ 1

The percentage of the material's feedstock that comes from recycled sources

rapidRenewablesPercentageFeedstock: number (double) 0 ≤ x ≤ 1

The percentage of the material's feedstock that comes from rapidly renewable sources

virginPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from virgin sources

recycledPercentageEndOfLife: number (double) 0 ≤ x ≤ 1

The percentage of the material that can be recycled at its end of life

landfillPercentageEndOfLife: number (double) 0 ≤ x ≤ 1

The percentage of the material that will go to the landfill at its end of life

incinerationPercentageEndOfLife: number (double)

The percentage of the material that will be incinerated at its end of life

efficiencyPercentageRecyclingFeedstock: number (double) 0 ≤ x ≤ 1

The efficiency of the recycling process that led to the feedstock

efficiencyPercentageRecyclingEndOfLife: number (double) 0 ≤ x ≤ 1

The efficiency of the recycling process when the material reaches its end of life

Example
{
  "recycledPercentageFeedstock": 0.4,
  "rapidRenewablesPercentageFeedstock": 0.4,
  "virginPercentageFeedstock": 0.2,
  "recycledPercentageEndOfLife": 0.4,
  "landfillPercentageEndOfLife": 0.4,
  "incinerationPercentageEndOfLife": 0.2,
  "efficiencyPercentageRecyclingFeedstock": 0.5,
  "efficiencyPercentageRecyclingEndOfLife": 0.5
}

FinancialImportType: integer

integer (int32) 0, 10, 20, 30
Example
"integer (int32)"

MaterialFinancialInformation: object

The financial properties of the element

importType: FinancialImportType
priceSetId: string

The identifier of the price set that supplies the financial information

transportCosts: number (double)

The costs of transporting the material to its destination

handlingFeedstockEuroKg: number (double)

The handling costs of the material, in € / kg

handlingFeedstockPercentage: number (double)

The handling costs of the material, in percentage of its value

Example
{
  "importType": 0,
  "priceSetId": "priceset",
  "transportCosts": 50,
  "handlingFeedstockEuroKg": 50,
  "handlingFeedstockPercentage": 0.5
}

Material: object

A material

name: object

The name of the material

nl: string
en: string
de: string
it: string
fr: string
es: string
elementFamily: string

The element family

description: object

The description of the element

nl: string
en: string
de: string
it: string
fr: string
es: string
supplier: string

The supplier of the material

specificWeight: number (double)

The specific weight of the material, in kg / m3

lifeTime: integer (int32)

The lifetime of the material, in years

circular: MaterialCircularInformation
financial: MaterialFinancialInformation
id: string (uuid)

The unique identifier

Example
{
  "name": {
    "en": "material name",
    "nl": "materiaalnaam"
  },
  "elementFamily": "family",
  "description": {
    "en": "material description",
    "nl": "materiaalbeschrijving"
  },
  "supplier": "supplier",
  "specificWeight": 50.5,
  "lifeTime": 50,
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5
  },
  "financial": {
    "importType": 0,
    "priceSetId": "priceset",
    "transportCosts": 50,
    "handlingFeedstockEuroKg": 50,
    "handlingFeedstockPercentage": 0.5
  },
  "id": "00000000-0000-0000-0000-000000000000"
}

PriceUnit: integer

integer (int32) 0, 1, 2, 3, 4, 5
Example
"integer (int32)"

MaterialFinancialValue: object

A material financial value

value: number (double)

The value of the material at this given moment

valueDate: string (date-time)

The moment at which this value was taken

currency: string

The identifier of the currency of this value

unit: PriceUnit
Example
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.5521793Z",
  "currency": "EUR",
  "unit": 2
}

MatchType: integer

The type of match for this property.

10 = Contains

11 = Equals

12 = StartWith

13 = EndsWith

20 = Ean

integer (int32) 10, 11, 12, 13, 20
Example
"integer (int32)"

MaterialMatch: object

A material match

value: string

The value that this material will match to

matchType: MatchType
Example
{
  "value": "match",
  "matchType": 10
}

PortfolioResponse: object

A portfolio

name: string

The name of the portfolio

logo: string

The file name of the logo of the portfolio

id: string (uuid)

The unique identifier

Example
{
  "name": "A portfolio",
  "logo": "https://madaster.blob.core.windows.net/assets/00000000-0000-0000-0000-000000000000/portfolio.jpg",
  "id": "00000000-0000-0000-0000-000000000000"
}

PortfolioRequest: object

A portfolio request

name: string

The name of the portfolio

Example
{
  "name": "A portfolio"
}

CreatePassportRequest: object

buildingIds: string[]

Gets or sets the building identifiers.

string (uuid)
Example
{
  "buildingIds": [
    "string (uuid)"
  ]
}

PortfolioFileStatuses: integer

integer (int32) 1, 6
Example
"integer (int32)"

PortfolioFileType: integer

integer (int32) 1, 1000
Example
"integer (int32)"

PortfolioFileResponse: object

portfolioId: string (uuid)

Gets or sets the building identifier.

fileName: string

Gets or sets the name of the file.

fileSize: integer (int64)

Get or sets the size of the file in bytes.

status: PortfolioFileStatuses
type: PortfolioFileType
lastModifiedDate: string (date-time)

Gets or sets the last modified date for the building file.

tags: string[]

Gets or sets the tags for the building file.

string
id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "portfolioId": "string (uuid)",
  "fileName": "string",
  "fileSize": "integer (int64)",
  "status": "integer (int32)",
  "type": "integer (int32)",
  "lastModifiedDate": "string (date-time)",
  "tags": [
    "string"
  ],
  "id": "string (uuid)"
}

PortfolioFileRequest: object

name: string

Gets or sets the name of the portfolio file.

tags: string[]

Gets or sets the tags for the portfolio file.

string
Example
{
  "name": "string",
  "tags": [
    "string"
  ]
}

PortfolioFileStatusResponse: object

status: PortfolioFileStatuses
statusMessage: string

Gets or sets the import or refinement status message.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "status": "integer (int32)",
  "statusMessage": "string",
  "id": "string (uuid)"
}

ProductType: integer

The type of product.

20 = VolumeProduct

30 = QuantityProduct

40 = AreaProduct

50 = LengthProduct

integer (int32) 20, 30, 40, 50
Example
"integer (int32)"

ProductCircularInformation: object

The circular properties of the element

recycledPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from recycled sources

rapidRenewablesPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from rapidly renewable sources

virginPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from virgin sources

recycledPercentageEndOfLife: number (double)

The percentage of the material that can be recycled at its end of life

landfillPercentageEndOfLife: number (double)

The percentage of the material that will go to the landfill at its end of life

incinerationPercentageEndOfLife: number (double)

The percentage of the material that will be incinerated at its end of life

efficiencyPercentageRecyclingFeedstock: number (double)

The efficiency of the recycling process that led to the feedstock

efficiencyPercentageRecyclingEndOfLife: number (double)

The efficiency of the recycling process when the material reaches its end of life

technicalLifetime: integer (int32) 0 ≤ x ≤ 1000

The technical lifetime of the product

functionalLifetime: integer (int32) 0 ≤ x ≤ 1000

The functional lifetime of the product

productReusedPercentageFeedstock: number (double) 0 ≤ x ≤ 1

The percentage of the product's feedstock that is re-used from other sources

productRecycledPercentageFeedstock: number (double)

The percentage of the product's feedstock that comes from recycled sources

productRapidRenewablesPercentageFeedstock: number (double)

The percentage of the product's feedstock that comes from rapidly renewable sources

productVirginPercentageFeedstock: number (double)

The percentage of the product's feedstock that comes from virgin sources

productReusedPercentageEndOfLife: number (double) 0 ≤ x ≤ 1

The percentage of the product that can be re-used at its end of life

productRecycledPercentageEndOfLife: number (double)

The percentage of the product that can be recycled at its end of life

productLandfillPercentageEndOfLife: number (double)

The percentage of the product that will go to the landfill at its end of life

productIncinerationPercentageEndOfLife: number (double)

The percentage of the product that will be incinerated at its end of life

Example
{
  "recycledPercentageFeedstock": 0.4,
  "rapidRenewablesPercentageFeedstock": 0.4,
  "virginPercentageFeedstock": 0.2,
  "recycledPercentageEndOfLife": 0.4,
  "landfillPercentageEndOfLife": 0.4,
  "incinerationPercentageEndOfLife": 0.2,
  "efficiencyPercentageRecyclingFeedstock": 0.5,
  "efficiencyPercentageRecyclingEndOfLife": 0.5,
  "technicalLifetime": 50,
  "functionalLifetime": 50,
  "productReusedPercentageFeedstock": 0.5,
  "productRecycledPercentageFeedstock": 0.2,
  "productRapidRenewablesPercentageFeedstock": 0.2,
  "productVirginPercentageFeedstock": 0.1,
  "productReusedPercentageEndOfLife": 0.5,
  "productRecycledPercentageEndOfLife": 0.2,
  "productLandfillPercentageEndOfLife": 0.2,
  "productIncinerationPercentageEndOfLife": 0.1
}

ElementDimensionType: integer

integer (int32) 0, 1, 2, 3, 4, 5, 6, 7, 8
Example
"integer (int32)"

ProductDimension: object

A product dimension

dimensionValue: number (double)

The value of this dimension

dimensionType: ElementDimensionType
Example
{
  "dimensionValue": 0.5,
  "dimensionType": 0
}

Product: object

A product

name: object

The name of the product

nl: string
en: string
de: string
it: string
fr: string
es: string
type: ProductType
description: object

The description of the element

nl: string
en: string
de: string
it: string
fr: string
es: string
supplier: string

The supplier of the product

productCode: string

The product code (EAN)

circular: ProductCircularInformation
fixedDimensions: ProductDimension

The fixed dimensions of this product

ProductDimension
defaultDimensions: ProductDimension

The default dimensions of this product's variable size, which will be used as a factor for all child relations

ProductDimension
id: string (uuid)

The unique identifier

Example
{
  "name": {
    "en": "product name",
    "nl": "productnaam"
  },
  "type": 40,
  "description": {
    "en": "product description",
    "nl": "productbeschrijving"
  },
  "supplier": "supplier",
  "productCode": "12345A",
  "circular": {
    "recycledPercentageFeedstock": 0.4,
    "rapidRenewablesPercentageFeedstock": 0.4,
    "virginPercentageFeedstock": 0.2,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.4,
    "incinerationPercentageEndOfLife": 0.2,
    "efficiencyPercentageRecyclingFeedstock": 0.5,
    "efficiencyPercentageRecyclingEndOfLife": 0.5,
    "technicalLifetime": 50,
    "functionalLifetime": 50,
    "productReusedPercentageFeedstock": 0.5,
    "productRecycledPercentageFeedstock": 0.2,
    "productRapidRenewablesPercentageFeedstock": 0.2,
    "productVirginPercentageFeedstock": 0.1,
    "productReusedPercentageEndOfLife": 0.5,
    "productRecycledPercentageEndOfLife": 0.2,
    "productLandfillPercentageEndOfLife": 0.2,
    "productIncinerationPercentageEndOfLife": 0.1
  },
  "fixedDimensions": [
    {
      "dimensionValue": 0.3,
      "dimensionType": 0
    }
  ],
  "defaultDimensions": [
    {
      "dimensionValue": 0.2,
      "dimensionType": 1
    },
    {
      "dimensionValue": 0.4,
      "dimensionType": 2
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000"
}

ProductMatch: object

A product match

value: string

The value that this product will match to

matchType: MatchType
Example
{
  "value": "match",
  "matchType": 10
}

ProductChildCircularInformation: object

Circular information about a product child

inheritFeedstockPercentages: boolean

Whether the feedstock percentages should be inherited from the child

recycledPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from recycled sources

rapidRenewablesPercentageFeedstock: number (double)

The percentage of the material's feedstock that comes from rapidly renewable sources

inheritEndOfLifePercentages: boolean

Whether the end of life percentages should be inherited from the child

recycledPercentageEndOfLife: number (double)

The percentage of the material that can be recycled at its end of life

landfillPercentageEndOfLife: number (double)

The percentage of the material that will go to the landfill at its end of life

inheritEfficiencyPercentages: boolean

Whether the efficiency percentages should be inherited from the child

efficiencyPercentageRecyclingFeedstock: number (double)

The efficiency of the recycling process that led to the feedstock

efficiencyPercentageRecyclingEndOfLife: number (double)

The efficiency of the recycling process when the material reaches its end of life

Example
{
  "inheritFeedstockPercentages": true,
  "recycledPercentageFeedstock": 0,
  "rapidRenewablesPercentageFeedstock": 0,
  "inheritEndOfLifePercentages": false,
  "recycledPercentageEndOfLife": 0.4,
  "landfillPercentageEndOfLife": 0.3,
  "inheritEfficiencyPercentages": true,
  "efficiencyPercentageRecyclingFeedstock": 0,
  "efficiencyPercentageRecyclingEndOfLife": 0
}

ProductChild: object

A product child

value: number (double)

The value of this child relation, so how much of the child can be found in the parent product, with a unit depending on the relation type

childId: string (uuid)

The identifier of the child

circular: ProductChildCircularInformation
Example
{
  "value": 0.3,
  "childId": "00000000-0000-0000-0000-000000000000",
  "circular": {
    "inheritFeedstockPercentages": true,
    "recycledPercentageFeedstock": 0,
    "rapidRenewablesPercentageFeedstock": 0,
    "inheritEndOfLifePercentages": false,
    "recycledPercentageEndOfLife": 0.4,
    "landfillPercentageEndOfLife": 0.3,
    "inheritEfficiencyPercentages": true,
    "efficiencyPercentageRecyclingFeedstock": 0,
    "efficiencyPercentageRecyclingEndOfLife": 0
  }
}

ProductFinancialValue: object

A material match

value: number (double)

The value of the product at this given moment

valueDate: string (date-time)

The moment at which this value was taken

currency: string

The identifier of the currency of this value

unit: PriceUnit
Example
{
  "value": 50.5,
  "valueDate": "2020-07-09T14:30:52.6375766Z",
  "currency": "EUR",
  "unit": 2
}

ClassificationMethod: object

A classification method.

name: object

A dictionary with language-specific values

nl: string
en: string
de: string
it: string
fr: string
es: string
classificationTypeId: string (uuid)

The identifier of the underlying classification type.

classificationLevelTypeId: string (uuid)

The identifier of the underlying classification level type.

id: string (uuid)

Gets or sets the unique identifier.

Example
{
  "name": {
    "en": "english value",
    "nl": "nederlandse waarde"
  },
  "classificationTypeId": "string (uuid)",
  "classificationLevelTypeId": "string (uuid)",
  "id": "string (uuid)"
}