Return the catalogue of dataset keys available to the authenticated organization. This is the discovery step for Query datasets: without it, the keys are not enumerable from the API at all.The response is two halves concatenated. First the native datasets, defined in code and identical for every organization. Then the organization’s own custom (elastic) datasets, keyed as elastic:<uuid>.
For native datasets, an i18n key such as datasets.own_workforce_contracts.label — translate it against your locale bundle.For custom datasets this is not an i18n key: it is the literal name a user typed. Do not run it through translation.
kpi, activity, master (native master-data tables such as facilities and vehicles), custom (a user-created elastic dataset) or custom_kpi (a custom-KPI group, one column per KPI)
The native half is not filtered by permissions, feature flags or data volume. Every organization sees the same native keys, including ones it has no rows for. A key appearing here does not mean the organization has data behind it — query it and read the result. Only the custom half is organization-specific.
Seven of the native keys cover the social pillar, and they are the cheap way to get aggregates that the Own Workforce API would otherwise make you compute client-side:
Key
What it aggregates
own_workforce_contracts
Headcount, FTE and contract composition
own_workforce_remuneration
Average remuneration and the gender pay gap
own_workforce_trainings
Training hours
own_workforce_absenteeism
Absence hours
own_workforce_accidents
Accidents, split by whether they caused sick leave
own_workforce_hires
Contracts that started in the window, on the contract start date
import osimport requestsheaders = { "x-api-key": os.getenv("DCYCLE_API_KEY"), "x-organization-id": os.getenv("DCYCLE_ORG_ID"),}datasets = requests.get("https://api.dcycle.io/v1/datasets", headers=headers).json()social = [d for d in datasets if d["key"].startswith("own_workforce")]for dataset in social: print(dataset["key"], dataset["kind"])
Cause: the key is invalid or revoked (INVALID_API_KEY), expired (API_KEY_EXPIRED), belongs neither to the organization in x-organization-id nor to one of its parents (API_KEY_ORG_MISMATCH), or has no owner (API_KEY_NO_OWNER). A request carrying no credentials at all answers AUTHENTICATION_REQUIRED. See Errors.
{ "detail": "Invalid API key for organization", "code": "INVALID_API_KEY"}