Getting Started

Welcome to the Udacity Public API! This API gives Udacity Enterprise customers programmatic access to their data, including content catalogs, program and assessment progress, learning plan data, and API token management—all through a modern GraphQL interface.

What you can do

API DomainDescription
TokensCreate and manage API tokens and client credentials
CatalogRetrieve your company’s content catalog — programs, assessments, and learning plans
Program ProgressPull enrollment and progress data for programs across your organization
Assessment ProgressQuery assessment attempt data — status, results, and timestamps
Learning Plan ProgressTrack per-user progress through learning plans — steps completed, activity, and completion

Quick start (4 steps)

1. Create client credentials

Go to the Udacity Management Portal to create a client credential:

Generate API Credentials

Navigate to Settings → API Credentials for your company.

URL pattern: https://manage.udacity.com/c/<your-company>/settings/api-tokens

You’ll receive a Client ID (prefixed udcl_) and a Client Secret (prefixed udcs_). Store the secret immediately — it is shown only once.

See Generate API Credentials for detailed instructions.

2. Exchange credentials for a token

Call the token endpoint — no Authorization header required:

curl -X POST https://api.udacity.com/api/public/api/v1/tokens/graphql \
  -H "Content-Type: application/json" \
  -d '{
    "query": "mutation($input: GenerateTokenInput!) { generateToken(input: $input) { unredactedToken expiresIn } }",
    "variables": {
      "input": {
        "clientId": "YOUR_CLIENT_ID",
        "clientSecret": "YOUR_CLIENT_SECRET"
      }
    }
  }'

The response contains an unredactedToken and an expiresIn (seconds). Tokens expire after 1 hour by default. If your credential covers multiple companies, add "companyId": "YOUR_COMPANY_ID" to the input.

See Authentication for details.

3. Authenticate your requests

Include your token in the Authorization header:

Authorization: Token YOUR_TOKEN

4. Make your first request

curl -X POST https://api.udacity.com/api/public/api/v1/catalog/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Token YOUR_TOKEN" \
  -d '{"query": "{ catalog { companyId programs { key title type } assessments { id title } learningPlans { id title } } }"}'

See Make Your First Request for a full walkthrough.

Next steps