> ## Documentation Index
> Fetch the complete documentation index at: https://docs.realtimelca.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get Construction Details

> 
Retrieves the full details of a specific **construction** by its unique identifier. A construction is a composite building element (e.g. a facade wall) made up of one or more EPD-backed materials, with aggregated LCIA (Life Cycle Impact Assessment) results across lifecycle modules.

---

## Endpoint

```
GET {{epdbaseUrl}}/construction/:id
```

---

## Path Variables

| Variable | Type | Required | Description |
|----------|------|----------|-------------|
| `id` | UUID (string) | ✅ Yes | The unique identifier of the construction to retrieve. Example: `9b1fc6c6-e08d-45b2-9d4f-df8d99bad066` |

---

## Authentication

This endpoint requires a **Bearer token** passed in the `Authorization` header.

```
Authorization: Bearer {{BearerToken}}
```

Obtain a token via the **Authenticate user** request and store it in the `BearerToken` environment variable.

---

## Response

### `200 OK`

Returns a JSON object representing the construction and its aggregated lifecycle impact data.

#### Top-Level Fields

| Field | Type | Description |
|-------|------|-------------|
| `id` | string (UUID) | The public unique identifier of the construction |
| `internalId` | string (UUID) | Internal system identifier |
| `internalVersionNumber` | integer | Numeric version of the internal record |
| `internalVersion` | string | Semantic version string (e.g. `"0.0.0"`) |
| `name` | string | Display name of the construction (e.g. `"Skousbo facadevæg, træ"`) |
| `names` | object \| null | Localized name map (nullable) |
| `description` | string | Short description of the construction (e.g. `"Ydervæg med træbeklædning"`) |
| `descriptions` | object \| null | Localized description map (nullable) |
| `tags` | string[] | List of classification tags (e.g. `["Træ", "Konstruktionstræ", "Mineraluld"]`) |
| `isPublic` | boolean | Whether the construction is publicly visible |
| `isConstruction` | boolean | Always `true` for construction objects |
| `isCustom` | boolean | Whether this is a custom (tenant-defined) construction |
| `expectedLifespan` | integer | Expected service life in years (e.g. `50`) |
| `tenantId` | string (UUID) | ID of the tenant that owns this construction |
| `tenantName` | string | Display name of the owning tenant |
| `newestVersion` | boolean | Whether this is the latest version of the record |
| `createdAt` | string (ISO 8601) | Timestamp of creation |
| `lastModifiedAt` | string \| null | Timestamp of last modification, or `null` if never modified |
| `dataSourceId` | string \| null | ID of the data source, if applicable |
| `datasourceName` | string | Name of the data source |
| `declarationOwnerName` | string | Name of the declaration owner |
| `basedOnMaterialIds` | string[] | IDs of base materials this construction is derived from |
| `epdInfo` | object \| null | EPD-specific metadata, if applicable |
| `transportationInfo` | object \| null | Transportation scenario data, if applicable |

---

#### `declaredUnit` Object

Describes the functional unit used for the LCIA calculations.

| Field | Type | Description |
|-------|------|-------------|
| `declaredUnit` | integer | Enum value for the declared unit type |
| `declaredValue` | number | Quantity of the declared unit |
| `baseEpdDeclaredUnitType` | integer | Base EPD unit type enum |
| `baseMassUnitType` | integer | Base mass unit type enum |
| `baseDeclaredMassValue` | number \| null | Mass value, if applicable |
| `mass` | number \| null | Mass of the construction |
| `massUnit` | integer | Unit enum for mass |

---

#### `lciaResults` Array

An array of lifecycle impact assessment results, one entry per lifecycle **module**.

| Field | Type | Description |
|-------|------|-------------|
| `moduleTypeEnum` | integer | Identifies the lifecycle module (e.g. `0` = A1-A3, `1` = A4, `15` = C3, `17` = D) |
| `moduleStatusEnum` | integer | Status of the module result (e.g. `2` = calculated) |
| `indicators` | array | List of environmental impact indicator results for this module |

**`indicators` item fields:**

| Field | Type | Description |
|-------|------|-------------|
| `type` | integer | Enum identifying the indicator (e.g. `12` = GWP total, `1` = ODP, `6` = PENRT) |
| `unit` | string | Unit of measurement (e.g. `"kg CO₂ eq."`, `"MJ"`, `"mol H+ eq."`) |
| `value` | number | Calculated impact value (may be negative for biogenic carbon or module D credits) |
| `originalIdentifier` | string | Original identifier string from the source data |

---

#### `constructionEpds` Array

The individual EPD components that make up this construction.

| Field | Type | Description |
|-------|------|-------------|
| `id` | string (UUID) | Unique ID of the construction EPD entry |
| `name` | string | Display name of the component material/EPD |
| `index` | integer \| null | Ordering index within the construction |
| `parentConstruction` | object \| null | Reference to a parent construction, if nested |
| `epd` | object | Full EPD object for this component (same structure as a material EPD) |

---

## Notes

- **Negative values** in `lciaResults` are expected and represent biogenic carbon storage (e.g. in timber) or net benefits in module D (beyond system boundary).
- The `moduleTypeEnum` values map to standard EN 15978 lifecycle modules. Common values: `0` = A1–A3, `1` = A4, `2` = A5, `3` = B, `5` = C1, `14` = C2, `15` = C3, `17` = D, `16` = C4, `4` = B4.
- The `type` field in `indicators` is an enum — refer to the indicator type reference in the API documentation for the full mapping.
- Tenant-scoped constructions will only be returned if the authenticated user belongs to the owning tenant.



## OpenAPI

````yaml /api-reference/realtime-lca-openapi.yaml get /construction/{id}
openapi: 3.0.0
info:
  title: Real-Time LCA REST Documentation
  version: 1.0.0
  description: >-
    ### Description 📝


    This collection contains a set of REST API requests for the Real-Time LCA
    (Life Cycle Assessment) service.


    ### Authenticate user 👤🔑


    In the `Auth` folder there's a `POST` request for authenticating the user.


    In this request body you can type in the user RTLCA user credentials
    (username & password) and a succesfull (`200 OK`) response will set the
    collection `BearerToken` variable which is then inherited by all other
    requests.
servers:
  - url: https://api.realtimelca.com/rest/api
    description: REST API.
  - url: https://api.realtimelca.com/epd/api
    description: EPD API.
  - url: https://auth.realtimelca.com/frontegg/identity/resources/auth/v1
    description: Authentication API (Frontegg identity v1).
  - url: https://realtimelca-prod.hasura.app
    description: GraphQL API (Hasura).
security:
  - BearerAuth: []
tags:
  - name: Auth
  - name: User
  - name: Overview
  - name: Project
  - name: Dashboard
  - name: Mapping
  - name: Automapping
  - name: Transport
  - name: Waste
  - name: Inspect
  - name: Report
  - name: Images
  - name: Library
  - name: Datasource
  - name: Owner
  - name: Material
  - name: Constructions
  - name: Enums
paths:
  /construction/{id}:
    servers:
      - url: https://api.realtimelca.com/epd/api
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
    get:
      tags:
        - Library
        - Constructions
      summary: Get Construction Details
      description: >-

        Retrieves the full details of a specific **construction** by its unique
        identifier. A construction is a composite building element (e.g. a
        facade wall) made up of one or more EPD-backed materials, with
        aggregated LCIA (Life Cycle Impact Assessment) results across lifecycle
        modules.


        ---


        ## Endpoint


        ```

        GET {{epdbaseUrl}}/construction/:id

        ```


        ---


        ## Path Variables


        | Variable | Type | Required | Description |

        |----------|------|----------|-------------|

        | `id` | UUID (string) | ✅ Yes | The unique identifier of the
        construction to retrieve. Example:
        `9b1fc6c6-e08d-45b2-9d4f-df8d99bad066` |


        ---


        ## Authentication


        This endpoint requires a **Bearer token** passed in the `Authorization`
        header.


        ```

        Authorization: Bearer {{BearerToken}}

        ```


        Obtain a token via the **Authenticate user** request and store it in the
        `BearerToken` environment variable.


        ---


        ## Response


        ### `200 OK`


        Returns a JSON object representing the construction and its aggregated
        lifecycle impact data.


        #### Top-Level Fields


        | Field | Type | Description |

        |-------|------|-------------|

        | `id` | string (UUID) | The public unique identifier of the
        construction |

        | `internalId` | string (UUID) | Internal system identifier |

        | `internalVersionNumber` | integer | Numeric version of the internal
        record |

        | `internalVersion` | string | Semantic version string (e.g. `"0.0.0"`)
        |

        | `name` | string | Display name of the construction (e.g. `"Skousbo
        facadevæg, træ"`) |

        | `names` | object \| null | Localized name map (nullable) |

        | `description` | string | Short description of the construction (e.g.
        `"Ydervæg med træbeklædning"`) |

        | `descriptions` | object \| null | Localized description map (nullable)
        |

        | `tags` | string[] | List of classification tags (e.g. `["Træ",
        "Konstruktionstræ", "Mineraluld"]`) |

        | `isPublic` | boolean | Whether the construction is publicly visible |

        | `isConstruction` | boolean | Always `true` for construction objects |

        | `isCustom` | boolean | Whether this is a custom (tenant-defined)
        construction |

        | `expectedLifespan` | integer | Expected service life in years (e.g.
        `50`) |

        | `tenantId` | string (UUID) | ID of the tenant that owns this
        construction |

        | `tenantName` | string | Display name of the owning tenant |

        | `newestVersion` | boolean | Whether this is the latest version of the
        record |

        | `createdAt` | string (ISO 8601) | Timestamp of creation |

        | `lastModifiedAt` | string \| null | Timestamp of last modification, or
        `null` if never modified |

        | `dataSourceId` | string \| null | ID of the data source, if applicable
        |

        | `datasourceName` | string | Name of the data source |

        | `declarationOwnerName` | string | Name of the declaration owner |

        | `basedOnMaterialIds` | string[] | IDs of base materials this
        construction is derived from |

        | `epdInfo` | object \| null | EPD-specific metadata, if applicable |

        | `transportationInfo` | object \| null | Transportation scenario data,
        if applicable |


        ---


        #### `declaredUnit` Object


        Describes the functional unit used for the LCIA calculations.


        | Field | Type | Description |

        |-------|------|-------------|

        | `declaredUnit` | integer | Enum value for the declared unit type |

        | `declaredValue` | number | Quantity of the declared unit |

        | `baseEpdDeclaredUnitType` | integer | Base EPD unit type enum |

        | `baseMassUnitType` | integer | Base mass unit type enum |

        | `baseDeclaredMassValue` | number \| null | Mass value, if applicable |

        | `mass` | number \| null | Mass of the construction |

        | `massUnit` | integer | Unit enum for mass |


        ---


        #### `lciaResults` Array


        An array of lifecycle impact assessment results, one entry per lifecycle
        **module**.


        | Field | Type | Description |

        |-------|------|-------------|

        | `moduleTypeEnum` | integer | Identifies the lifecycle module (e.g. `0`
        = A1-A3, `1` = A4, `15` = C3, `17` = D) |

        | `moduleStatusEnum` | integer | Status of the module result (e.g. `2` =
        calculated) |

        | `indicators` | array | List of environmental impact indicator results
        for this module |


        **`indicators` item fields:**


        | Field | Type | Description |

        |-------|------|-------------|

        | `type` | integer | Enum identifying the indicator (e.g. `12` = GWP
        total, `1` = ODP, `6` = PENRT) |

        | `unit` | string | Unit of measurement (e.g. `"kg CO₂ eq."`, `"MJ"`,
        `"mol H+ eq."`) |

        | `value` | number | Calculated impact value (may be negative for
        biogenic carbon or module D credits) |

        | `originalIdentifier` | string | Original identifier string from the
        source data |


        ---


        #### `constructionEpds` Array


        The individual EPD components that make up this construction.


        | Field | Type | Description |

        |-------|------|-------------|

        | `id` | string (UUID) | Unique ID of the construction EPD entry |

        | `name` | string | Display name of the component material/EPD |

        | `index` | integer \| null | Ordering index within the construction |

        | `parentConstruction` | object \| null | Reference to a parent
        construction, if nested |

        | `epd` | object | Full EPD object for this component (same structure as
        a material EPD) |


        ---


        ## Notes


        - **Negative values** in `lciaResults` are expected and represent
        biogenic carbon storage (e.g. in timber) or net benefits in module D
        (beyond system boundary).

        - The `moduleTypeEnum` values map to standard EN 15978 lifecycle
        modules. Common values: `0` = A1–A3, `1` = A4, `2` = A5, `3` = B, `5` =
        C1, `14` = C2, `15` = C3, `17` = D, `16` = C4, `4` = B4.

        - The `type` field in `indicators` is an enum — refer to the indicator
        type reference in the API documentation for the full mapping.

        - Tenant-scoped constructions will only be returned if the authenticated
        user belongs to the owning tenant.
      parameters:
        - name: isConstruction
          in: query
          schema:
            type: boolean
          example: 'true'
      responses:
        default:
          description: Response schema not yet documented in the upstream Postman spec.
components:
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer

````