Skip to main content
GET
/
lca
/
portfolio
/
{lca_id}
/
dashboard
Get LCA Dashboard
const options = {
  method: 'GET',
  headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};

fetch('https://api.dcycle.io/lca/portfolio/{lca_id}/dashboard', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
import requests

url = "https://api.dcycle.io/lca/portfolio/{lca_id}/dashboard"

headers = {
    "x-api-key": "<x-api-key>",
    "x-organization-id": "<x-organization-id>"
}

response = requests.get(url, headers=headers)

print(response.text)
curl --request GET \
  --url https://api.dcycle.io/lca/portfolio/{lca_id}/dashboard \
  --header 'x-api-key: <x-api-key>' \
  --header 'x-organization-id: <x-organization-id>'
{
  "meta": {
    "lca_id": "<string>",
    "product_name": "<string>",
    "methodology_id": "<string>",
    "functional_unit_value": 123,
    "functional_unit_id": "<string>",
    "view": "<string>",
    "selected_output_product_id": {},
    "allocation_method": {},
    "output_products": {
      "output_product_id": "<string>",
      "name": {},
      "quantity": 123,
      "unit_id": {},
      "allocation_factor": 123
    }
  },
  "stages": {
    "stage": "<string>",
    "phase": "<string>",
    "label": "<string>",
    "categories": {
      "impact_category": "<string>",
      "impact_value": 123,
      "impact_unit": {},
      "top_contributors": {
        "block_id": {},
        "block_name": "<string>",
        "impact_value": 123
      }
    }
  },
  "is_stale": true,
  "validation_errors": {
    "code": "<string>",
    "detail": "<string>",
    "pieces": {
      "piece_id": {},
      "piece_name": "<string>"
    }
  },
  "calculation_warnings": {
    "impact_category": "<string>",
    "detail": "<string>"
  }
}

Get LCA Dashboard

Retrieve the calculated environmental impact results for a specific LCA, organized by EN 15804 life cycle stages (A1–A4, B6, B7). Each stage contains impact values across all selected impact categories.

Request

Path Parameters

lca_id
uuid
required
The UUID of the LCA portfolioExample: a1b2c3d4-e5f6-7890-abcd-ef1234567890

Headers

x-api-key
string
required
Your API key for authenticationExample: sk_live_1234567890abcdef
x-organization-id
string
required
Your organization UUIDExample: a8315ef3-dd50-43f8-b7ce-d839e68d51fa

Query Parameters

view
string
default:"system"
Allocation view for co-product LCAs.Available values:
  • system — Total system impact (default)
  • product_total — Impact allocated to a specific co-product (requires output_product_id)
  • product_unit — Per-unit impact of a co-product (requires output_product_id)
output_product_id
uuid
UUID of the output product for co-product allocation views (product_total or product_unit). Required when view is not system.Example: bf800281-bcc7-42f4-81e4-8ec9abb9745e

Response

meta
object
LCA metadata and dashboard configuration
stages
array[object]
Array of life cycle stage results
is_stale
boolean
Whether the results may be outdated and need recalculation
validation_errors
array[object]
Structural validation issues detected before calculation
calculation_warnings
array[object]
Warnings from the calculation engine (e.g., missing emission factors)

Example

curl -X GET "https://api.dcycle.io/lca/portfolio/a1b2c3d4-e5f6-7890-abcd-ef1234567890/dashboard?view=system" \
  -H "x-api-key: ${DCYCLE_API_KEY}" \
  -H "x-organization-id: ${DCYCLE_ORG_ID}"
import requests
import os

headers = {
    "x-api-key": os.getenv("DCYCLE_API_KEY"),
    "x-organization-id": os.getenv("DCYCLE_ORG_ID")
}

lca_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
response = requests.get(
    f"https://api.dcycle.io/lca/portfolio/{lca_id}/dashboard",
    headers=headers,
    params={"view": "system"}
)

dashboard = response.json()
for stage in dashboard["stages"]:
    print(f"\n{stage['stage']} - {stage['label']} ({stage['phase']})")
    for cat in stage["categories"]:
        if cat["impact_value"] is not None:
            print(f"  {cat['impact_category']}: {cat['impact_value']} {cat['impact_unit']}")
const axios = require('axios');

const headers = {
  'x-api-key': process.env.DCYCLE_API_KEY,
  'x-organization-id': process.env.DCYCLE_ORG_ID
};

const lcaId = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890';
axios.get(`https://api.dcycle.io/lca/portfolio/${lcaId}/dashboard`, {
  headers,
  params: { view: 'system' }
})
.then(response => {
  response.data.stages.forEach(stage => {
    console.log(`\n${stage.stage} - ${stage.label} (${stage.phase})`);
    stage.categories.forEach(cat => {
      if (cat.impact_value !== null) {
        console.log(`  ${cat.impact_category}: ${cat.impact_value} ${cat.impact_unit}`);
      }
    });
  });
});

Successful Response

{
  "meta": {
    "lca_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "product_name": "Ceramic Tile 60x60",
    "methodology_id": "d4e5f6a7-b8c9-0123-def0-456789012345",
    "functional_unit_value": 1000.0,
    "functional_unit_id": "c1d2e3f4-a5b6-7890-cdef-ab1234567890",
    "view": "system",
    "selected_output_product_id": null,
    "allocation_method": null,
    "output_products": [
      {
        "output_product_id": "bf800281-bcc7-42f4-81e4-8ec9abb9745e",
        "name": "Ceramic Tile 60x60",
        "quantity": 1000.0,
        "unit_id": "c1d2e3f4-a5b6-7890-cdef-ab1234567890",
        "allocation_factor": 1.0
      }
    ]
  },
  "stages": [
    {
      "stage": "A1",
      "phase": "Production",
      "label": "Raw material supply",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 245.67,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": [
            {
              "block_id": "e5f6a7b8-c9d0-1234-ef01-567890123456",
              "block_name": "Portland cement",
              "impact_value": 180.2
            }
          ]
        },
        {
          "impact_category": "acidification",
          "impact_value": 1.23,
          "impact_unit": "mol H+-Eq",
          "top_contributors": [
            {
              "block_id": "e5f6a7b8-c9d0-1234-ef01-567890123456",
              "block_name": "Portland cement",
              "impact_value": 0.95
            }
          ]
        }
      ]
    },
    {
      "stage": "A2",
      "phase": "Production",
      "label": "Transport to manufacturer",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 18.45,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": [
            {
              "block_id": "f6a7b8c9-d0e1-2345-f012-678901234567",
              "block_name": "Truck transport 28t",
              "impact_value": 18.45
            }
          ]
        }
      ]
    },
    {
      "stage": "A3",
      "phase": "Production",
      "label": "Manufacturing",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 95.12,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": [
            {
              "block_id": "a7b8c9d0-e1f2-3456-0123-789012345678",
              "block_name": "Kiln firing",
              "impact_value": 95.12
            }
          ]
        }
      ]
    },
    {
      "stage": "A4",
      "phase": "Downstream",
      "label": "Distribution",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 12.34,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": []
        }
      ]
    },
    {
      "stage": "B6",
      "phase": "Downstream",
      "label": "Operational energy use",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 0.0,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": []
        }
      ]
    },
    {
      "stage": "B7",
      "phase": "Downstream",
      "label": "Operational water use",
      "categories": [
        {
          "impact_category": "climate_change",
          "impact_value": 0.0,
          "impact_unit": "kg CO2-Eq",
          "top_contributors": []
        }
      ]
    }
  ],
  "is_stale": false,
  "validation_errors": [],
  "calculation_warnings": []
}

Co-Product Allocation Example

For LCAs with multiple output products, use the view and output_product_id parameters to see allocated impacts:
# Per-unit impact for a specific co-product
curl -X GET "https://api.dcycle.io/lca/portfolio/{lca_id}/dashboard?view=product_unit&output_product_id={product_id}" \
  -H "x-api-key: ${DCYCLE_API_KEY}" \
  -H "x-organization-id: ${DCYCLE_ORG_ID}"

Common Errors

404 Not Found

Cause: LCA does not exist or does not belong to the specified organization
{
  "code": "NOT_FOUND",
  "detail": "LCA not found"
}

422 Validation Error

Cause: product_total or product_unit view requested without output_product_id
{
  "detail": "output_product_id is required for product_total and product_unit views"
}

List LCA Portfolios

Retrieve all LCA portfolios

LCA Overview

LCA API introduction and concepts