v8

OpenAPI 3.1.02026-08-033623795.0 MB
Courses

Create course

Create a new course within an experience, with optional chapters, lessons, and a certificate.

Required permissions:

  • courses:update
post/courses

Request body

certificate_after_completion_enabledboolean nullable

Whether the course awards students a PDF certificate after completing all lessons.

experience_idstring required

The unique identifier of the experience to create the course in (e.g., "exp_XXXXX").

orderstring nullable

The decimal order position of the course within its experience. Use fractional values (e.g., "1.5") to place between existing courses.

require_completing_lessons_in_orderboolean nullable

Whether students must complete each lesson sequentially before advancing to the next one.

taglinestring nullable

A short tagline displayed beneath the course title (e.g., "Master the fundamentals of design").

titlestring required

The display title of the course (e.g., "Introduction to Web Development").

visibility'visible' | 'hidden'

The available visibilities for a course. Determines how / whether a course is visible to users.

Example request

{
  "experience_id": "exp_xxxxxxxxxxxxxx",
  "order": "123.45"
}

Response

A successful response

certificate_after_completion_enabledboolean nullable required

Whether students receive a PDF certificate after completing all lessons in this course. Null if the setting has not been configured.

cover_imagestring nullable required

The URL of the course cover image shown on preview cards. Null if no cover image has been uploaded.

created_atstring date-time required

The datetime the course was created.

descriptionstring nullable required

A brief summary of the course content and objectives. Null if no description has been set.

idstring required

The unique identifier for the course.

language'en' | 'es' | 'it' | 'pt' | 'de' | 'fr' | 'pl' | 'ru' | 'nl' | 'ca' | 'tr' | 'sv' | 'uk' | 'no' | 'fi' | 'sk' | 'el' | 'cs' | 'hr' | 'da' | 'ro' | 'bg' required

The available languages for a course

orderstring required

The sort position of this course within its parent experience, as a decimal for flexible ordering.

require_completing_lessons_in_orderboolean required

Whether students must complete each lesson sequentially before advancing to the next one.

taglinestring nullable required

A short marketing tagline displayed beneath the course title. Null if no tagline has been set.

titlestring nullable required

The display name of the course shown to students. Null if no title has been set.

updated_atstring date-time required

The datetime the course was last updated.

visibility'visible' | 'hidden' required

The available visibilities for a course. Determines how / whether a course is visible to users.

Example response

{
  "chapters": [
    {
      "id": "chap_xxxxxxxxxxxxx",
      "lessons": [
        {
          "id": "lesn_xxxxxxxxxxxxx",
          "order": 42,
          "thumbnail": {
            "url": "https://media.whop.com/abc123/optimized.jpg"
          },
          "title": "Understanding Candlestick Patterns",
          "video_asset": {
            "duration_seconds": 42
          }
        }
      ],
      "order": 42,
      "title": "Getting Started"
    }
  ],
  "cover_image": "https://assets.whop.com/images/course-cover.jpg",
  "created_at": "2023-12-01T05:00:00.401Z",
  "description": "Learn advanced trading strategies from industry experts.",
  "id": "cors_xxxxxxxxxxxxx",
  "order": "123.45",
  "tagline": "Master the fundamentals in 30 days",
  "thumbnail": {
    "content_type": "image/jpeg",
    "filename": "document.pdf",
    "optimized_url": "https://media.whop.com/abc123/optimized.jpg",
    "source_url": "https://media.whop.com/abc123/original.jpg"
  },
  "title": "Introduction to Technical Analysis",
  "updated_at": "2023-12-01T05:00:00.401Z"
}