Period Emissions
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions"
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/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"type": "<string>",
"status": "<string>",
"quantity": {},
"has_missing_impacts": true,
"use_of_product_data_id": {}
}
}Period Emissions
Get emissions breakdown for a sold product period
GET
/
v1
/
sold-products
/
{sold_product_id}
/
periods
/
{period_id}
/
emissions
Period Emissions
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions"
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/v1/sold-products/{sold_product_id}/periods/{period_id}/emissions \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"items": {
"type": "<string>",
"status": "<string>",
"quantity": {},
"has_missing_impacts": true,
"use_of_product_data_id": {}
}
}← Sold Products API
Retrieve the emissions breakdown for a specific sold product period. Returns downstream emissions calculated for Scope 3 Category 11 (Use of Sold Products), including use-phase and end-of-life emissions.
Request
Headers
string
required
Your API key for authenticationExample:
sk_live_1234567890abcdefstring
required
Your organization UUIDExample:
a8315ef3-dd50-43f8-b7ce-d839e68d51faPath Parameters
string
required
UUID of the sold productExample:
"550e8400-e29b-41d4-a716-446655440000"string
required
UUID of the periodExample:
"11111111-1111-1111-1111-111111111111"Response
Returns a list of emission entries by type (HTTP 200).array[object]
List of emission entries.
Show Emission Object
Show Emission Object
string
Emission type:
use_phase or end_of_life.string
Calculation status (e.g.
calculated, pending).number | null
Emissions in kgCO2e.
null if not yet calculated.boolean
Whether some impacts could not be calculated.
string | null
UUID referencing the use-of-product configuration data.
null for end-of-life.Example
curl -X GET "https://api.dcycle.io/v1/sold-products/550e8400-e29b-41d4-a716-446655440000/periods/11111111-1111-1111-1111-111111111111/emissions" \
-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"),
}
product_id = "550e8400-e29b-41d4-a716-446655440000"
period_id = "11111111-1111-1111-1111-111111111111"
response = requests.get(
f"https://api.dcycle.io/v1/sold-products/{product_id}/periods/{period_id}/emissions",
headers=headers,
)
emissions = response.json()
for emission in emissions["items"]:
qty = emission["quantity"] or 0
print(f"{emission['type']}: {qty} kgCO2e ({emission['status']})")
const axios = require('axios');
const headers = {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
};
const productId = '550e8400-e29b-41d4-a716-446655440000';
const periodId = '11111111-1111-1111-1111-111111111111';
axios.get(
`https://api.dcycle.io/v1/sold-products/${productId}/periods/${periodId}/emissions`,
{ headers }
)
.then(response => {
response.data.items.forEach(e =>
console.log(`${e.type}: ${e.quantity ?? 0} kgCO2e (${e.status})`)
);
});
Successful Response
{
"items": [
{
"type": "use_phase",
"status": "calculated",
"quantity": 12500.0,
"has_missing_impacts": false,
"use_of_product_data_id": "data-uuid-001"
},
{
"type": "end_of_life",
"status": "calculated",
"quantity": 350.0,
"has_missing_impacts": false,
"use_of_product_data_id": null
}
]
}
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"}
404 Not Found
Cause: The sold product or period does not exist or belongs to another organization{"detail": "Not Found"}
Related Endpoints
Period Country Sales
View country-level sales for this period
Emissions Summary
Get aggregated emissions across all categories
Was this page helpful?