How to Generate and Manage API Keys
API Keys allow you to securely authenticate applications and integrate with the platform programmatically. You can generate multiple API keys for different applications, rotate keys when needed, and access API documentation with ready-to-use endpoint examples.
Before You Begin
You must have Organization Admin access.
Keep your API keys secure and never expose them in public repositories or client-side applications.
Every API request requires both an API Key and your Domain ID.
Generate an API Key
Step 1: Open API Settings
Navigate to Global Settings and select API.
Step 2: Create a New API Key
Enter a 'Descriptive Name' for the API key, then click 'Generate'.
Step 3: Manage API Keys
A new API key is created and added to the list. 'Copy the API Key' for later use.
For each API key, you can perform the following actions:
View the complete API key.
Copy the API key to your clipboard.
Rename the API key.
Regenerate the API key if it has been compromised.
Delete an API key that is no longer required.
View Available API Endpoints
Step 4: Open the Endpoints Tab
Click the 'Endpoints' tab to view the complete API documentation.
Authenticate API Requests
Every request must include both your 'API Key' and 'Domain ID' in the request headers.
X-API-Key: your_api_key_here
X-Domain-ID: your_domain_id
Your 'Domain ID' is displayed on the API documentation page and must be included in every request.
Understanding Resource IDs
Some endpoints contain an :id parameter.
Replace :id with the UUID of the resource you want to access.
Example
/api/v1/courses/:id
becomes
/api/v1/courses/99818a18-1d22-46a1-8ce2-0e093ae74f96
You can copy resource IDs from pages such as:
Courses
Assessments
Teams
People
Use the displayed ID or the 'Copy ID' option available in the item menu.
Common API Endpoints
The API supports endpoints for managing learning content, users, teams, enrollments, and learner progress.
Courses
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/courses | List all courses |
| GET | /api/v1/courses/:id | Retrieve course details |
| POST | /api/v1/courses | Create a course |
Assessments
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/assessments | List assessments |
| GET | /api/v1/assessments/:id | Retrieve assessment details |
Learners
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/learners/:id/progress | View learner progress |
| GET | /api/v1/learners/:id/assessments | View learner assessment results |
Teams
| Method | Endpoint | Purpose |
|---|---|---|
| GET | /api/v1/teams/:id/progress | View team learning progress |
| GET | /api/v1/teams/:id/assessments | View team assessment results |
| POST | /api/v1/teams | Create a team |
| DELETE | /api/v1/teams/:id | Delete a team |
Users
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/v1/users | Create a user |
| DELETE | /api/v1/users/:id | Delete a user |
Enrollments
| Method | Endpoint | Purpose |
|---|---|---|
| POST | /api/v1/enrollments/course | Enroll a learner in a course |
| DELETE | /api/v1/enrollments/course/:user_id/:course_id | Remove a learner from a course |
| POST | /api/v1/enrollments/assessment | Enroll a learner in an assessment |
| DELETE | /api/v1/enrollments/assessment/:user_id/:assessment_id | Remove a learner from an assessment |
Common API Error Codes
If an API request fails, the response includes a standard HTTP status code.
| Status Code | Description |
|---|---|
| 400 | Bad Request. The request contains invalid data. |
| 401 | Unauthorized. The API Key or Domain ID is invalid. |
| 403 | Forbidden. You do not have permission to access the resource. |
| 404 | Not Found. The requested resource does not exist. |
| 405 | Method Not Allowed. The endpoint does not support the requested HTTP method. |
| 406 | Not Acceptable. Only JSON responses are supported. |
| 429 | Too Many Requests. The API rate limit has been exceeded. |
| 500 | Internal Server Error. An unexpected server error occurred. |
| 503 | Service Unavailable. The service is temporarily unavailable due to maintenance. |
Best Practices
Create separate API keys for different applications or environments.
Store API keys securely and avoid exposing them in client-side code.
Regenerate API keys immediately if you suspect they have been compromised.
Delete unused API keys to reduce security risks.
Always include both the API Key and Domain ID in every request.
Test API calls using the sample requests available in the Endpoints tab before deploying them to production.
You have successfully learned how to generate, manage, and use API keys for secure integrations. Use the API documentation to explore available endpoints and build custom integrations with your learning platform.