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 Domain | Description |
|---|---|
| Tokens | Create and manage API tokens and client credentials |
| Catalog | Retrieve your company’s content catalog — programs, assessments, and learning plans |
| Program Progress | Pull enrollment and progress data for programs across your organization |
| Assessment Progress | Query assessment attempt data — status, results, and timestamps |
| Learning Plan Progress | Track 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:
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_TOKEN4. 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
- Authentication — Learn about the auth model and scopes
- API Reference — Browse the full schema documentation
- Playground — Try queries interactively
- Guides — Pagination, filtering, and best practices