Course details
Details of a course that can be offered to a contact or purchased
Course Attributes
created_at(string) - The date and time the course was createdtitle(string) - The title of the coursedescription(string) - The description of the coursethumbnail_url(string) - The URL of the course thumbnail
Including Relationships
Use the include query parameter to load related resources:
Include modules, lessons and related media, and offers
GET /v1/courses/123?include=modules,lessons,lessons.media,offers
Response will include the requested related resources (Note: The responses listed within the “included” array will also include the relationships for each resource)
{
"data": {
"id": "123",
"type": "courses",
"attributes": {
"created_at": "2024-08-06T05:30:38.669Z",
"title": "Advanced Marketing",
"description": "Master level marketing course",
"thumbnail_url": "https://example.com/thumbnail.jpg"
},
"relationships": {
"modules": {
"data": [{
"id": "456",
"type": "modules"
}]
},
"lessons": {
"data": [{
"id": "789",
"type": "lessons"
}]
},
"offers": {
"data": [{
"id": "101",
"type": "offers"
}]
}
},
"included": [{
"id": "456",
"type": "modules",
"attributes": {
"title": "Marketing Fundamentals",
"description": "Introduction to marketing concepts",
"position": 1,
"poster_image_url": "https://example.com/poster.jpg",
"publishing_option": "published"
}
},
{
"id": "789",
"type": "lessons",
"attributes": {
"title": "Marketing Basics",
"position": 1,
"status": "published",
"publishing_option": "published"
}
},
{
"id": "202",
"type": "media",
"attributes": {
"duration_in_minutes": 1,
}
},
{
"id": "101",
"type": "offers",
"attributes": {
"price": 100.0,
"currency": "USD",
"status": "active"
}
}]
}
}
Module attributes
Modules are part of Kajabi’s course structure: courses contain modules and modules contain lessons
title(string) - A required field that represents the name or heading of the module. This is used to:- Identify and display the module in the course outline
- Organize related lessons/content
- Provide navigation structure in the course
- The title must be unique within a course.
description(string) - An optional text field that provides additional information about the module’s content. This can be used to:- Give students an overview of what they’ll learn
- Explain the module’s objectives
- Provide context for the contained lessons
- Help students understand the module’s purpose in the course structure
position(integer) - A numeric field that determines the order of modules within a course. This:- Used for sorting
- Allows modules to be reordered
- Maintains the course’s logical progression
- Is used for navigation between modules
- Starts at position 1 for the first module
poster_image_url(string) - A URL to an image that represents the module visually. This:- Can be uploaded through the Kajabi admin interface
- Is used as a thumbnail/preview image
- Helps with visual organization of the course
publishing_option(string) - Controls the visibility and availability of the module. Options include:published- Module is visible and available to studentsdraft- Module is hidden and not yet available- Can be used with drip settings for timed release
- Affects the visibility of contained lessons
- Syncs with the course’s overall publishing status
Lesson attributes
Lessons can include various types of content: text content (body), videos, audio, quizzes, assessments, and downloads.
title(string) - A required field that represents the name or heading of the lesson. This:- Must be present
- Has a maximum length of 200 characters
- Is used for display and navigation
- Can be searched (using pg_search)
- Is used in course outlines and navigation
position(integer) - A numeric field that determines the order of lessons within a module (category). This:- Usedfor sorting (ranks :sort, column: :position)
- Is scoped within each module
- Allows lessons to be reordered
- Maintains the logical flow of content
- Is used for navigation between lessons
status(string) - An field that tracks the lesson’s processing state:ready- Default state, lesson is ready for useduplicating- Lesson is being copiedfailed- An error occurred during processing- This is particularly relevant for lessons with media content or during duplication.
publishing_option(string) - Controls the visibility and availability of the lesson. Options include:draft- Lesson is hidden and not yet available to studentspublished- Lesson is visible and available (sets publish_at to current time)drip- Lesson becomes available after a specified number of dayslocked- Lesson is locked until certain conditions are met (e.g., completing previous lessons)
Media attributes
duration_in_minutes(float) - The length of a media file (typically video or audio) in minutes.
Sparse Fields
Use the fields parameter to request only specific attributes:
Only return title and thumbnail_url attributes
GET /v1/courses/123?fields[courses]=title,thumbnail_url
Response will only include requested fields
{
"data": {
"id": "123",
"type": "courses",
"attributes": {
"title": "Marketing Fundamentals",
"thumbnail_url": "https://example.com/thumbnail.jpg"
}
}
}
Using Multiple Parameters Together
You can combine sparse fields and include in a single request:
Get course details with modules and lessons, showing only specific fields
GET /v1/courses/123?include=modules,lessons,lessons.media&fields[courses]=title,thumbnail_url&fields[modules]=title&fields[lessons]=title&fields[media]=duration_in_minutes
Response will include related resources with requested fields
{
"data": {
"id": "123",
"type": "courses",
"attributes": {
"title": "Marketing Fundamentals",
"thumbnail_url": "https://example.com/thumbnail.jpg"
},
"relationships": {}
},
"included": [{
"id": "456",
"type": "modules",
"attributes": {
"title": "Marketing Basics"
}
},
{
"id": "789",
"type": "lessons",
"attributes": {
"title": "Marketing Strategies"
}
},
{
"id": "101",
"type": "media",
"attributes": {
"duration_in_minutes": 30
}
}]
}
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
Query Parameters
Load the related resources, for example ?include=modules,lessons,lessons.media