List Assignments
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/custom-kpi-datasets/{dataset_id}/assignments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/custom-kpi-datasets/{dataset_id}/assignments"
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/custom-kpi-datasets/{dataset_id}/assignments \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"id": "<string>",
"dataset_id": "<string>",
"organization_id": "<string>",
"facility_id": "<string>",
"data_owner_user_id": "<string>",
"data_owner_email": "<string>",
"created_at": {},
"updated_at": {}
}List Assignments
List all data owner assignments for a dataset
GET
/
v1
/
custom-kpi-datasets
/
{dataset_id}
/
assignments
List Assignments
const options = {
method: 'GET',
headers: {'x-api-key': '<x-api-key>', 'x-organization-id': '<x-organization-id>'}
};
fetch('https://api.dcycle.io/v1/custom-kpi-datasets/{dataset_id}/assignments', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.dcycle.io/v1/custom-kpi-datasets/{dataset_id}/assignments"
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/custom-kpi-datasets/{dataset_id}/assignments \
--header 'x-api-key: <x-api-key>' \
--header 'x-organization-id: <x-organization-id>'{
"id": "<string>",
"dataset_id": "<string>",
"organization_id": "<string>",
"facility_id": "<string>",
"data_owner_user_id": "<string>",
"data_owner_email": "<string>",
"created_at": {},
"updated_at": {}
}← Custom KPI
Retrieve all assignments (data owners) for a dataset. Each assignment links a data owner (by email) to an organization and optionally a specific facility.
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 parent datasetExample:
"a1b2c3d4-e5f6-7890-abcd-ef1234567890"Response
Returns an array of assignment objects with HTTP 200.string
Assignment UUID
string
Parent dataset UUID
string
Assigned organization UUID
string
Assigned facility UUID (nullable — null means org-level assignment)
string
Dcycle user UUID of the data owner (nullable)
string
Email address of the data owner
datetime
Timestamp when the assignment was created
datetime | null
Timestamp when the assignment was last updated
Example
curl -X GET "https://api.dcycle.io/v1/custom-kpi-datasets/${DATASET_ID}/assignments" \
-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"),
}
dataset_id = "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
response = requests.get(
f"https://api.dcycle.io/v1/custom-kpi-datasets/{dataset_id}/assignments",
headers=headers,
)
assignments = response.json()
for a in assignments:
scope = a.get("facility_id") or "organization-level"
print(f"{a['data_owner_email']} → {scope}")
const axios = require('axios');
const headers = {
'x-api-key': process.env.DCYCLE_API_KEY,
'x-organization-id': process.env.DCYCLE_ORG_ID,
};
const datasetId = 'a1b2c3d4-e5f6-7890-abcd-ef1234567890';
axios.get(`https://api.dcycle.io/v1/custom-kpi-datasets/${datasetId}/assignments`, { headers })
.then(response => {
response.data.forEach(a => console.log(`${a.data_owner_email}`));
});
Successful Response
[
{
"id": "d4e5f6a7-b8c9-0123-defa-234567890123",
"dataset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "a8315ef3-dd50-43f8-b7ce-d839e68d51fa",
"facility_id": "550e8400-e29b-41d4-a716-446655440000",
"data_owner_user_id": null,
"data_owner_email": "facility-manager@example.com",
"created_at": "2025-02-01T09:00:00Z",
"updated_at": null
},
{
"id": "e5f6a7b8-c9d0-1234-efab-345678901234",
"dataset_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"organization_id": "a8315ef3-dd50-43f8-b7ce-d839e68d51fa",
"facility_id": null,
"data_owner_user_id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
"data_owner_email": "sustainability@example.com",
"created_at": "2025-02-01T09:05:00Z",
"updated_at": 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 dataset does not exist or belongs to another organization{"detail": "Not Found"}
Related Endpoints
Create Assignment
Assign a data owner
Get Dataset
View the dataset and its KPIs
Was this page helpful?