Authentication and Access
To access Skillsoft Percipio’s secured APIs, all integration partners must authenticate using OAuth2 with the Client Credentials Grant flow. This ensures that only authorized systems can push content or learner activity data into the Percipio LMS.
This section explains how to obtain access tokens, configure API permissions, and handle authentication-related errors.
Overview: Accessing Percipio APIs
All inbound integration APIs—including Content Import, Track, and Statements—are protected using OAuth2. Each API request must include a valid bearer token in the request header.
Tokens are generated using a client ID and client secret issued during provider onboarding in Percipio.
API Permissions and Scopes
Your service account must be provisioned with one or more of the following API-level permissions:
| API Permission | Required For |
| CONTENT_IMPORT | Access to Content Import API |
| CONTENT_AGGREGATION | Access to Track and Statement APIs |
These permissions are configured in Percipio during the onboarding phase and are managed by Skillsoft’s internal admin tools. You can only generate a valid token with the appropriate permission scopes.
Obtaining Your Client ID and Secret
To access a Skillsoft Percipio API, you will need a valid client ID and client secret.
These credentials are issued during the integration onboarding process managed by the Skillsoft Engineering or Partner Success team. They are specific to your organization and environment (e.g., development or production).
If you have not yet received your credentials, please reach out to your designated Skillsoft onboarding contact.
See the "iX Studio On-boarding Guide" for detailed onboarding information.
OAuth2 Token Generation
Skillsoft uses a standard client credentials grant flow to generate access tokens.
-
Token Endpoint
bash
POST https://oauth2-provider.develop.squads-dev.com/oauth2-provider/token
- Request Headers
pgsql
Content-Type: application/json Accept: application/json
- Request Body (JSON)
json
{
"client_id": "<your_client_id>",
"client_secret": "<your_client_secret>",
"grant_type": "client_credentials",
"scope": "api"
}
-
Sample cURL Command
bash
curl -X POST \ 'https://oauth2-provider.develop.squads-dev.com/oauth2-provider/token' \ -H 'Content-Type: application/json' \ -H 'Accept: application/json' \ -d '{ "client_id": "your-client-id", "client_secret": "your-client-secret", "grant_type": "client_credentials", "scope": "api" }'
-
Response Example
json
{ "access_token": "<token>",
"token_type": "Bearer",
"expires_in": 3600,
"scope": "api"
}
Use the returned access token in the Authorization header for all API requests:
makefile
Authorization: Bearer <access_token>