List LCA Portfolios
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/lca/portfolio', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/lca/portfolio"
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 \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"description": {},
"impact_categories": {},
"final_product_id": {},
"unit_id": {},
"value": {},
"start_date": {},
"end_date": {},
"status": "<string>",
"created_at": {},
"updated_at": {}
},
"total": 123,
"page": 123,
"size": 123
}List LCA Portfolios
Retrieve a paginated list of Life Cycle Assessment portfolios
GET
/
lca
/
portfolio
List LCA Portfolios
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/lca/portfolio', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/lca/portfolio"
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 \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"id": "<string>",
"organization_id": "<string>",
"name": "<string>",
"description": {},
"impact_categories": {},
"final_product_id": {},
"unit_id": {},
"value": {},
"start_date": {},
"end_date": {},
"status": "<string>",
"created_at": {},
"updated_at": {}
},
"total": 123,
"page": 123,
"size": 123
}Retrieve a paginated list of LCA portfolios belonging to your organization.
Request
Headers
string
required
Your API key for authenticationExample:
sk_live_1234567890abcdefstring
required
Your organization UUIDExample:
a8315ef3-dd50-43f8-b7ce-d839e68d51faQuery Parameters
integer
default:"1"
Page number for pagination
integer
default:"10"
Number of items per page (max 100)
string
Filter expression. Supports filtering by name and status.Example:
"name:My Product"string
Sort expression. Supports sorting by
name, created_at, updated_at.Example: "created_at:desc"Response
array[object]
Array of LCA portfolio objects
Show LCA Portfolio Object
Show LCA Portfolio Object
string
Unique identifier (UUID)
string
Organization UUID
string
LCA portfolio name
string | null
Portfolio description
array[string]
List of EN 15804+A2 impact categories selected for this LCA.Example:
["climate_change", "acidification", "ozone_depletion"]string | null
UUID of the final product
string | null
UUID of the functional unit
number | null
Functional unit value (quantity)
date | null
Assessment start date
date | null
Assessment end date
string
LCA status:
active, draft, archiveddatetime
When the portfolio was created
datetime | null
When the portfolio was last updated
integer
Total number of LCAs matching the filter
integer
Current page number
integer
Number of items per page
Example
curl -X GET "https://api.dcycle.io/lca/portfolio?page=1&size=20" \
-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")
}
response = requests.get(
"https://api.dcycle.io/lca/portfolio",
headers=headers,
params={"page": 1, "size": 20}
)
for lca in response.json()["items"]:
print(f"{lca['name']} ({lca['status']})")
const axios = require('axios');
const headers = {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID
};
axios.get('https://api.dcycle.io/lca/portfolio', {
headers,
params: { page: 1, size: 20 }
})
.then(response => {
response.data.items.forEach(lca => {
console.log(`${lca.name} (${lca.status})`);
});
});
Successful Response
{
"items": [
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "a8315ef3-dd50-43f8-b7ce-d839e68d51fa",
"name": "Ceramic Tile 60x60",
"description": "LCA for standard ceramic tile production",
"impact_categories": [
"climate_change",
"acidification",
"eutrophication_freshwater",
"eutrophication_marine",
"ozone_depletion",
"water_scarcity"
],
"final_product_id": "bf800281-bcc7-42f4-81e4-8ec9abb9745e",
"unit_id": "c1d2e3f4-a5b6-7890-cdef-ab1234567890",
"value": 1000.0,
"start_date": "2025-01-01",
"end_date": "2025-12-31",
"status": "active",
"created_at": "2025-01-15T10:00:00Z",
"updated_at": "2025-06-20T14:30:00Z"
}
],
"total": 5,
"page": 1,
"size": 20
}
Common Errors
401 Unauthorized
Cause: Missing or invalid API key{"detail": "Invalid API key for organization", "code": "INVALID_API_KEY"}
403 Forbidden
Cause: The authenticated user is not a member of the organization{"detail": "Logged User is not Member of Organization", "code": "LOGGED_USER_NOT_MEMBER"}
Related Endpoints
LCA Dashboard
Get environmental impact results for an LCA
LCA Overview
LCA API introduction and concepts
Was this page helpful?