Get started with PDC API

This page helps you make your first successful call to the Pentaho Data Catalog API in a few minutes. You will learn how to authenticate, run a request, and check the results.

The Data Catalog API enables you to programmatically interact with your catalog environment. You can use it to connect to data sources, run profiling jobs, trigger discovery, manage glossaries, or automate governance tasks without relying on the user interface.

This guide helps you get up and running in minutes. You will:

  • Configure the base API URL for your environment (production, staging, or local).

  • Authenticate using OAuth2 to obtain a bearer token.

  • Make your first API request to verify connectivity.

  • Add a data source and trigger a profiling job.

  • Poll a job until it completes and view the results.

Perform the following steps to quickly start with PDC API:

1

Open Swagger UI

Open the Swagger UI for your environment:

https://<your-domain>/api/public/swagger/

Example:

https://10.177.176.228/api/public/swagger/

This page lists all available PDC API endpoints grouped by domain.

2

Check PDC health

Call the Health endpoint to confirm your PDC instance is up and running.

curl -X GET "https://<your-domain>/api/public/health" \
  -H "accept: application/json"

Expected response (200):

{
  "message": "OK"
}
3

Get a bearer token

Use the Auth endpoint to authenticate with your PDC username and password.

curl -X POST "https://<your-domain>/api/public/v1/auth" \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "username=<your-username>" \
  -d "password=<your-password>"

Successful response (200):

{
  "message": "OK",
  "data": {
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR..."
  }
}

Copy the accessToken value.

4

Authorize in Swagger UI

  1. Click Authorize in the Swagger UI.

  2. Paste the bearer token (without the Bearer prefix).

  3. Click Authorize.

Swagger UI will now include the token automatically in every request.

5

Call a protected endpoint

Now test an authenticated request — for example, list notifications:

curl -X GET "https://<your-domain>/api/public/v1/notifications" \
  -H "accept: application/json" \
  -H "Authorization: Bearer <accessToken>"

Sample response:

[
  {
    "id": "notif_12345",
    "type": "JOB_COMPLETED",
    "message": "Profiling job finished successfully",
    "timestamp": "2025-09-01T08:30:00Z"
  }
]

Last updated