CDE API Overview

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 keyValue
tokenYour valid Alation API token
📘

Where to get your Alation API token

If 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:

KeyValue
tokenyour_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 is CDEToken, not token and not Authorization.

Using the wrong key name will result in a 401 Unauthorized or 400 Bad Request response 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:

KeyValue
CDETokenyour_cde_token_here

Authentication summary

StepEndpointHeader keyHeader value
1 — Get CDE tokenPOST /cde-service/integration/auth/tokenYour Alation API token
2 — Call CDE endpointsAny /cde-service/integration/* endpointCDETokenThe 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.

OperationMethodPath
List / filter CDEsGET/cde-service/integration/cde/
Create a CDEPOST/cde-service/integration/cde/
Get a CDE by IDGET/cde-service/integration/cde/{id}/
Update a CDEPUT/cde-service/integration/cde/{id}/
Delete a CDEDELETE/cde-service/integration/cde/{id}/
Bulk create CDEs (up to 1,000)POST/cde-service/integration/cde/bulk/
Bulk delete CDEsPOST/cde-service/integration/cde/bulk_delete/
Get next possible statusesGET/cde-service/integration/cde/{id}/next_status/
Change CDE statusPOST/cde-service/integration/cde/{id}/status/
Recall CDE to DraftPOST/cde-service/integration/cde/{id}/recall/
Restore a deleted CDEPOST/cde-service/integration/cde/{id}/restore/
Create a new versionPOST/cde-service/integration/cde/{id}/new_version/
Get Overlay Standards for a CDEGET/cde-service/integration/cde/{id}/standard/
Add Overlay StandardsPUT/cde-service/integration/cde/{id}/standard/add/
Remove Overlay StandardsPUT/cde-service/integration/cde/{id}/standard/remove/
Approve Overlay StandardsPOST/cde-service/integration/cde/{id}/standard/approve/
Get Overlay Standard templateGET/cde-service/integration/cde/standard/{key}/template/
Accept data (standards / sections / fields)PUT/cde-service/integration/cde/{id}/accept/
Query PDEsPOST/cde-service/integration/cde/{id}/pde/query/
Add PDEsPOST/cde-service/integration/cde/{id}/pde/
Remove PDEsPOST/cde-service/integration/cde/{id}/pde/remove/
Update PDEsPOST/cde-service/integration/cde/{id}/pde/update/
Accept PDEsPUT/cde-service/integration/cde/{id}/pde/accept/
Get PDE settingsGET/cde-service/integration/cde/{id}/pde/settings/
Review risk assessmentPOST/cde-service/integration/cde/{id}/risk/review/
Trigger a CDE actionPOST/cde-service/integration/cde/{id}/trigger_action/

Standard (Overlay Policies)

Manage governance standards that can be applied to CDEs.

OperationMethodPath
List / filter StandardsGET/cde-service/integration/standard/
Create a StandardPOST/cde-service/integration/standard/
Get a Standard by IDGET/cde-service/integration/standard/{id}/
Update a StandardPUT/cde-service/integration/standard/{id}/
Delete a StandardDELETE/cde-service/integration/standard/{id}/
Get next possible statusesGET/cde-service/integration/standard/{id}/next_status/
Change Standard statusPOST/cde-service/integration/standard/{id}/status/
Create a new versionPOST/cde-service/integration/standard/{id}/new_version/

Job

Track and manage long-running asynchronous operations (bulk creation, scoring, data mapping).

OperationMethodPath
List / filter JobsGET/cde-service/integration/job/
Get a Job by IDGET/cde-service/integration/job/{id}/
Cancel a JobPOST/cde-service/integration/job/{id}/cancel/

User

Look up Alation users for assignment to CDEs and Standards.

OperationMethodPath
List / filter UsersGET/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/.

StatusMeaning
CANDIDATEInitial state — identified as a potential critical element
DRAFTUnder active definition (default when creating via API)
PENDING_APPROVERS_APPROVALAwaiting sign-off from designated approvers
PENDING_OWNERS_APPROVALAwaiting sign-off from data owners
CERTIFIEDFully approved and certified
IN_REVIEWUnder 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:

TypeMeaning
BASELINECore organizational standard
CC_BASELINEConnected catalog baseline standard
CURATIONStandard governing curation requirements
OVERLAYStandard applied as an overlay to CDEs
RISKStandard governing risk assessment
STANDARDS_APPROVERSStandard 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:

RelationshipMeaning
control_pointThe primary physical representation of this CDE
relatedA related field that contains the same or derived data
suggestedAI-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 statusMeaning
QUEUEDWaiting to be picked up by the worker
IN_PROGRESSCurrently being processed
FINISHEDCompleted successfully
ERRORFailed — check job details for reason
CANCELEDManually canceled via POST /job/{id}/cancel/

Pagination

List endpoints (/cde/, /standard/, /job/, /user/) support pagination via query parameters:

ParameterTypeDefaultDescription
skipinteger0Number of records to skip
limitinteger10Records to return per page (max 100)
order_bystringField 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 statusMeaningCommon cause
400 Bad RequestMalformed request or missing required fieldWrong header key name (for example, token instead of CDEToken on a CDE endpoint); missing required body field
401 UnauthorizedAuthentication failedExpired or invalid token; using the wrong token type for the step
403 ForbiddenInsufficient permissionsThe authenticated user does not have the required role to perform this operation
500 Internal Server ErrorServer-side failureRetry the request; if persistent, raise a support ticket
502 Bad GatewayCDE service unreachableNetwork connectivity issue between Alation and the CDE microservice

Related resources