Overview of the Critical Data Element (CDE) API, including how authentication works and how to get started with the API endpoints.
Critical Data Element (CDE) API
The CDE API lets you programmatically manage Critical Data Elements and their full lifecycle — from creation and governance through to physical data mapping, risk assessment, and certification. It is a separate microservice from the core Alation platform and has its own base path and its own authentication mechanism.
The CDE API uses a different authentication flow from all other Alation APIs.Unlike every other Alation API endpoint (which accepts your Alation API token directly), the CDE API requires a two-step token exchange before you can call any CDE endpoint. The header key names are also different at each step. This is not obvious from the endpoint reference alone — read the Authentication section below before making your first request.
Base URL
All CDE API endpoints are served from a separate path:
{protocol}://{alation_domain}/cde-service/integration/
Replace {alation_domain} with your Alation instance URL (for example, your-company.alationcloud.com).
Authentication
CDE authentication works in two steps. Both steps use different header key names from each other and from the rest of the Alation API.
Step 1 — Exchange your Alation API token for a CDE token
Call the auth endpoint, passing your existing Alation API token (refresh token or access token) in the request header using the key token.
POST /cde-service/integration/auth/
| Header key | Value |
|---|---|
token | Your valid Alation API token |
Where to get your Alation API tokenIf you do not already have one, generate an Alation API token using the standard Alation token endpoint. See Authentication into Alation APIs for instructions.
Example request (curl):
curl -X POST "https://{alation_domain}/cde-service/integration/auth/" \
-H "token: {your_alation_api_token}"Example request (Postman):
In the Headers tab, add:
| Key | Value |
|---|---|
token | your_alation_api_token_here |
Response:
The endpoint returns a plain string — your CDE token — valid for 24 hours.
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Store this token. You will use it in the header of every subsequent CDE API call.
Step 2 — Call CDE endpoints using the CDE token
For all requests to CDE endpoints (/cde/, /standard/, /job/, /user/), pass the token from Step 1 in the header using the key CDEToken.
The header key name isCDEToken, nottokenand notAuthorization.Using the wrong key name will result in a
401 Unauthorizedor400 Bad Requestresponse even when your token is valid.
Example request (curl):
curl -X GET "https://{alation_domain}/cde-service/integration/cde/" \
-H "CDEToken: {your_cde_token}"Example request (Postman):
In the Headers tab, add:
| Key | Value |
|---|---|
CDEToken | your_cde_token_here |
Authentication summary
| Step | Endpoint | Header key | Header value |
|---|---|---|---|
| 1 — Get CDE token | POST /cde-service/integration/auth/ | token | Your Alation API token |
| 2 — Call CDE endpoints | Any /cde-service/integration/* endpoint | CDEToken | The CDE token from Step 1 |
Token validity: The CDE token expires after 24 hours. When it expires, repeat Step 1 to obtain a new token.
Endpoints
The CDE API is organized into four resource groups.
Critical Data Element (CDE)
The core resource. Covers the full CDE lifecycle.
| Operation | Method | Path |
|---|---|---|
| List / filter CDEs | GET | /cde-service/integration/cde/ |
| Create a CDE | POST | /cde-service/integration/cde/ |
| Get a CDE by ID | GET | /cde-service/integration/cde/{id}/ |
| Update a CDE | PUT | /cde-service/integration/cde/{id}/ |
| Delete a CDE | DELETE | /cde-service/integration/cde/{id}/ |
| Bulk create CDEs (up to 1,000) | POST | /cde-service/integration/cde/bulk/ |
| Bulk delete CDEs | POST | /cde-service/integration/cde/bulk_delete/ |
| Get next possible statuses | GET | /cde-service/integration/cde/{id}/next_status/ |
| Change CDE status | POST | /cde-service/integration/cde/{id}/status/ |
| Recall CDE to Draft | POST | /cde-service/integration/cde/{id}/recall/ |
| Restore a deleted CDE | POST | /cde-service/integration/cde/{id}/restore/ |
| Create a new version | POST | /cde-service/integration/cde/{id}/new_version/ |
| Get Overlay Standards for a CDE | GET | /cde-service/integration/cde/{id}/standard/ |
| Add Overlay Standards | PUT | /cde-service/integration/cde/{id}/standard/add/ |
| Remove Overlay Standards | PUT | /cde-service/integration/cde/{id}/standard/remove/ |
| Approve Overlay Standards | POST | /cde-service/integration/cde/{id}/standard/approve/ |
| Get Overlay Standard template | GET | /cde-service/integration/cde/standard/{key}/template/ |
| Accept data (standards / sections / fields) | PUT | /cde-service/integration/cde/{id}/accept/ |
| Query PDEs | POST | /cde-service/integration/cde/{id}/pde/query/ |
| Add PDEs | POST | /cde-service/integration/cde/{id}/pde/ |
| Remove PDEs | POST | /cde-service/integration/cde/{id}/pde/remove/ |
| Update PDEs | POST | /cde-service/integration/cde/{id}/pde/update/ |
| Accept PDEs | PUT | /cde-service/integration/cde/{id}/pde/accept/ |
| Get PDE settings | GET | /cde-service/integration/cde/{id}/pde/settings/ |
| Review risk assessment | POST | /cde-service/integration/cde/{id}/risk/review/ |
| Trigger a CDE action | POST | /cde-service/integration/cde/{id}/trigger_action/ |
Standard (Overlay Policies)
Manage governance standards that can be applied to CDEs.
| Operation | Method | Path |
|---|---|---|
| List / filter Standards | GET | /cde-service/integration/standard/ |
| Create a Standard | POST | /cde-service/integration/standard/ |
| Get a Standard by ID | GET | /cde-service/integration/standard/{id}/ |
| Update a Standard | PUT | /cde-service/integration/standard/{id}/ |
| Delete a Standard | DELETE | /cde-service/integration/standard/{id}/ |
| Get next possible statuses | GET | /cde-service/integration/standard/{id}/next_status/ |
| Change Standard status | POST | /cde-service/integration/standard/{id}/status/ |
| Create a new version | POST | /cde-service/integration/standard/{id}/new_version/ |
Job
Track and manage long-running asynchronous operations (bulk creation, scoring, data mapping).
| Operation | Method | Path |
|---|---|---|
| List / filter Jobs | GET | /cde-service/integration/job/ |
| Get a Job by ID | GET | /cde-service/integration/job/{id}/ |
| Cancel a Job | POST | /cde-service/integration/job/{id}/cancel/ |
User
Look up Alation users for assignment to CDEs and Standards.
| Operation | Method | Path |
|---|---|---|
| List / filter Users | GET | /cde-service/integration/user/ |
Key concepts
CDE lifecycle statuses
A CDE moves through a defined set of statuses. Use GET /cde/{id}/next_status/ to programmatically check which transitions are valid from the current state before calling POST /cde/{id}/status/.
| Status | Meaning |
|---|---|
CANDIDATE | Initial state — identified as a potential critical element |
DRAFT | Under active definition (default when creating via API) |
PENDING_APPROVERS_APPROVAL | Awaiting sign-off from designated approvers |
PENDING_OWNERS_APPROVAL | Awaiting sign-off from data owners |
CERTIFIED | Fully approved and certified |
IN_REVIEW | Under periodic review |
To revert a CDE back to DRAFT, use the dedicated POST /cde/{id}/recall/ endpoint instead of the status-change endpoint.
Standard types
When creating or filtering Standards, the type field accepts the following values:
| Type | Meaning |
|---|---|
BASELINE | Core organizational standard |
CC_BASELINE | Connected catalog baseline standard |
CURATION | Standard governing curation requirements |
OVERLAY | Standard applied as an overlay to CDEs |
RISK | Standard governing risk assessment |
STANDARDS_APPROVERS | Standard defining who can approve |
Physical Data Elements (PDEs)
PDEs link a CDE to the actual physical columns or fields in your data sources. Each PDE has a relationship to the CDE:
| Relationship | Meaning |
|---|---|
control_point | The primary physical representation of this CDE |
related | A related field that contains the same or derived data |
suggested | AI-suggested mapping, pending human review |
Use POST /cde/{id}/pde/query/ to filter PDEs by name, relationship type, or path within a CDE rather than retrieving all PDEs at once.
Asynchronous jobs
Some operations — including bulk CDE creation and score calculations — are processed asynchronously. These operations return a job_id immediately. Use GET /job/{id}/ to poll the job status until it reaches FINISHED, ERROR, or CANCELED.
| Job status | Meaning |
|---|---|
QUEUED | Waiting to be picked up by the worker |
IN_PROGRESS | Currently being processed |
FINISHED | Completed successfully |
ERROR | Failed — check job details for reason |
CANCELED | Manually canceled via POST /job/{id}/cancel/ |
Pagination
List endpoints (/cde/, /standard/, /job/, /user/) support pagination via query parameters:
| Parameter | Type | Default | Description |
|---|---|---|---|
skip | integer | 0 | Number of records to skip |
limit | integer | 10 | Records to return per page (max 100) |
order_by | string | — | Field to sort by. Prefix with - for descending order (for example, -ts_created) |
All list responses include a total_count field alongside the items array, so you can calculate the total number of pages without an additional request.
Error responses
| HTTP status | Meaning | Common cause |
|---|---|---|
400 Bad Request | Malformed request or missing required field | Wrong header key name (for example, token instead of CDEToken on a CDE endpoint); missing required body field |
401 Unauthorized | Authentication failed | Expired or invalid token; using the wrong token type for the step |
403 Forbidden | Insufficient permissions | The authenticated user does not have the required role to perform this operation |
500 Internal Server Error | Server-side failure | Retry the request; if persistent, raise a support ticket |
502 Bad Gateway | CDE service unreachable | Network connectivity issue between Alation and the CDE microservice |
Related resources
- Authentication into Alation APIs — how to obtain your Alation API token (required before Step 1 above)
- Create Public CDE API token — the auth endpoint reference
- API throttling — rate limits that apply across Alation APIs
- API error codes — general Alation API error reference