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>