Skip to main content

DeepSkill Strapi API (v1.97.0)

Download OpenAPI specification:Download

DeepSkill Tech: platform@deepskill.com License: MIT

API documentation for DeepSkill Strapi backend including custom routes

Analytics

Get dashboard summary analytics

Aggregated summary metrics for the main analytics dashboard

Authorizations:
bearerAuth

Responses

Get dashboard visitor analytics

Visitor-related metrics for the analytics dashboard

Authorizations:
bearerAuth

Responses

Get dashboard booking analytics

Booking and Calendly-related metrics for the dashboard

Authorizations:
bearerAuth

Responses

Get dashboard ratings analytics

Program rating analytics for the dashboard

Authorizations:
bearerAuth

Responses

Get programs analytics

Analytics data for programs including enrollment, completion, and survey filters

Authorizations:
bearerAuth
query Parameters
timeframe
string
Default: "30d"
Enum: "7d" "30d" "90d" "1y"

Time period for analytics data

status
string
Enum: "active" "completed" "paused"

Filter by program status

Responses

Get specific program analytics

Detailed analytics for a single program

Authorizations:
bearerAuth
path Parameters
programId
required
string

Program identifier

query Parameters
timeframe
string
Default: "30d"
Enum: "7d" "30d" "90d" "1y"

Responses

Get customer analytics

Analytics for a specific customer

Authorizations:
bearerAuth
path Parameters
customerId
required
string
query Parameters
timeframe
string
Default: "30d"
Enum: "7d" "30d" "90d" "1y"

Responses

Coaches

Match coach with user

Find and match the most suitable coach for a specific user based on their preferences, goals, and availability

Authorizations:
bearerAuth
path Parameters
userId
required
string

Unique identifier of the user requesting coach matching

query Parameters
preferences
string

User preferences for coach matching (JSON string)

goals
string

User goals and focus areas (JSON string)

availability
string

User availability preferences (JSON string)

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

Get learners of a specific coach

Retrieve all learners assigned to a specific coach with their progress and session information

Authorizations:
bearerAuth
path Parameters
id
required
string

Unique identifier of the coach

query Parameters
include
string

Additional data to include (progress, sessions, etc.)

status
string
Enum: "active" "completed" "paused"

Filter learners by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

Get learners of current user's coach

Retrieve all learners assigned to the current authenticated user's coach profile

Authorizations:
bearerAuth
query Parameters
include
string

Additional data to include (progress, sessions, etc.)

status
string
Enum: "active" "completed" "paused"

Filter learners by status

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

Get Calendly events for learner

Retrieve Calendly events information for a specific learner including scheduled sessions and availability

Authorizations:
bearerAuth
Request Body schema: application/json
required
learnerId
string

Unique identifier of the learner

coachId
string

Unique identifier of the coach

object

Date range for events

Responses

Request samples

Content type
application/json
{
  • "learnerId": "string",
  • "coachId": "string",
  • "dateRange": {
    }
}

Response samples

Content type
application/json
{
  • "data": {
    },
  • "meta": {
    }
}

List coaches with analytics and filters

Returns paginated coach analytics for the Coach Pool. Supports industry filtering with OR/AND logic.

Authorizations:
bearerAuth
query Parameters
page
integer
Default: 1

Page number

pageSize
integer
Default: 100

Number of coaches per page (max 100)

sort
string
Default: "firstName:asc"

Sort field and order (e.g. firstName:asc, lastName:desc)

industries
string

One or more industry titles to filter by. Pass comma-separated titles for multiple selections (e.g. Healthcare,Retail). Titles that contain commas themselves (e.g. "Education, Research") are supported. Valid values are listed in meta.filterOptions.industries.

industriesLogic
string
Default: "or"
Enum: "or" "and"

How multiple selected industries are combined. "or" returns coaches with experience in at least one selected industry (default). "and" returns coaches with experience in all selected industries.

hideDeepskillCoaches
boolean

Exclude coaches with @deepskill.com email addresses

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get analytics for a single coach

Returns analytics for one coach by ID. Accepts the same filter query parameters as /coach-analytics.

Authorizations:
bearerAuth
path Parameters
id
required
integer

Coach ID

query Parameters
industries
string

One or more industry titles to filter by. See /coach-analytics for parsing rules and valid values in meta.filterOptions.industries.

industriesLogic
string
Default: "or"
Enum: "or" "and"

How multiple selected industries are combined. "or" (default) matches at least one; "and" matches all selected industries.

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Custom Content

Start custom chapter content generation for a program

Accepts the request and generates content in the background for each skill chapter and target group using LLM v2. Uses the program's saved customPrompt for the given locale. Requires Learning or Learning-Tester role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
programId
required
integer
locale
string
Default: "de"

Responses

Request samples

Content type
application/json
{
  • "programId": 0,
  • "locale": "de"
}

Save custom prompt on a program

Persists the custom prompt on the program for the given locale. Requires Learning or Learning-Tester role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
programId
required
integer
customPrompt
required
string
locale
string
Default: "de"

Responses

Request samples

Content type
application/json
{
  • "programId": 0,
  • "customPrompt": "string",
  • "locale": "de"
}

Ratings

Submit a content rating

Save a one-time 5-star rating for an e-learning chapter or podcast episode. The authenticated user is taken from the JWT; do not send user in the body. Submitted ratings are final and cannot be edited. Duplicate submissions are rejected.

Authorizations:
bearerAuth
Request Body schema: application/json
required
type
required
string
Enum: "ELEARNING_CHAPTER" "PODCAST"

Content rating type

skill
required
integer

Skill id the content belongs to

foreignId
string

Chapter id; required when type is ELEARNING_CHAPTER

rating
required
integer [ 1 .. 5 ]

Star rating from 1 to 5

Responses

Request samples

Content type
application/json
Example
{
  • "type": "ELEARNING_CHAPTER",
  • "skill": 7,
  • "foreignId": "chapter-123",
  • "rating": 5
}

Response samples

Content type
application/json
{
  • "message": "Successfully saved rating.",
  • "data": { }
}

Get content ratings for a user and skill

Returns existing e-learning chapter and podcast ratings for the given user and skill. Used to hydrate read-only rating state on page load. Only the authenticated user may request their own ratings; userId must match the JWT subject.

Authorizations:
bearerAuth
path Parameters
userId
required
integer

Authenticated learner user id

skillId
required
integer

Skill id to load ratings for

Responses

Response samples

Content type
application/json
{
  • "chapters": [
    ],
  • "podcast": {
    }
}

Skills

Backfill tailored description display names for a skill

Reads all tailored descriptions on every chapter of the given skill and updates display_name from targetGroup.title and industry.title. Requires Learning or Learning-Tester role.

Authorizations:
bearerAuth
path Parameters
skillId
required
integer

Skill ID

query Parameters
locale
string
Default: "de"

Skill locale to process

Responses

Response samples

Content type
application/json
{
  • "skillId": 0,
  • "locale": "string",
  • "updated": 0,
  • "descriptions": [
    ]
}

Create empty target-group descriptions for skills

Adds one empty description for each of the four available target groups to every chapter of the requested skills. Existing descriptions are preserved. Requires Learning or Learning-Tester role.

Authorizations:
bearerAuth
Request Body schema: application/json
required
required
integer or Array of integers
locale
string
Default: "de"

Responses

Request samples

Content type
application/json
{
  • "skillIds": 0,
  • "locale": "de"
}

Blueprint

Get all blueprints

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}

Category

Get all categories

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "meta": { }
}