Thinkific Courses API

Courses operations

OpenAPI Specification

thinkific-courses-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Thinkific Admin Bundles Courses API
  description: Thinkific's public API can be used to integrate your application with your Thinkific site.
  termsOfService: https://www.thinkific.com/legal/
  contact:
    email: developers@thinkific.com
  version: v1
servers:
- url: https://api.thinkific.com/api/public/v1
security:
- OAuthAccessToken: []
- ApiKey: []
  ApiKeySubdomain: []
tags:
- name: Courses
  description: Courses operations
paths:
  /courses:
    get:
      tags:
      - Courses
      summary: Get Courses
      description: Retrieve a list of Courses
      operationId: getCourses
      parameters:
      - name: page
        in: query
        description: The page within the collection to fetch.
        schema:
          type: number
          default: 1.0
      - name: limit
        in: query
        description: The number of items to be returned
        schema:
          type: number
          default: 25.0
      responses:
        200:
          description: Courses Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCoursesResponse'
        403:
          $ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
  /courses/{id}:
    get:
      tags:
      - Courses
      summary: Get courses by ID
      description: Returns the Course identified by the provided id.
      operationId: getCourseByID
      parameters:
      - name: id
        in: path
        description: ID of the Course in the form of an integer.
        required: true
        schema:
          type: number
      responses:
        200:
          description: Courses response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CourseResponse'
        403:
          $ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
        404:
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorNotFound'
  /courses/{id}/chapters:
    get:
      tags:
      - Courses
      summary: Get Chapters by Course ID
      description: Returns the Chapter of the course identified by the provided id.
      operationId: getChapterOfCourseByID
      parameters:
      - name: id
        in: path
        description: ID of the Chapter in the form of an integer.
        required: true
        schema:
          type: number
      - name: page
        in: query
        description: The page within the collection to fetch.
        schema:
          type: number
          default: 1.0
      - name: limit
        in: query
        description: The number of items to be returned.
        schema:
          type: number
          default: 25.0
      responses:
        200:
          description: Chapter of a course response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetChaptersResponse'
        403:
          $ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
components:
  responses:
    ErrorForbiddenAppsNotAvailableResponse:
      description: Access Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorForbiddenAppsNotAvailable'
  schemas:
    Meta:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/Pagination'
    CourseResponse:
      required:
      - chapter_ids
      - id
      - instructor_id
      - name
      - product_id
      - reviews_enabled
      type: object
      properties:
        id:
          type: number
          description: The ID of the course
          example: 1.0
        name:
          type: string
          description: The name of the course
          example: My Course
        slug:
          type: string
          description: URL-friendly version of the course name. Used to construct URL for course Landing Pages & Course Player.
          example: my-course
        subtitle:
          type: string
          description: Deprecated - Used in legacy themes to display the subtitle of the Course.
          example: My Course Subtitle
        product_id:
          type: number
          description: The Course's Product ID
        description:
          type: string
          description: The description of the Course(V2 themes currently don't have that info)
          example: Course description
        course_card_text:
          type: string
          description: Deprecated - use 'description'.* - Used in legacy themes to populate the text for a Course card.
          example: my course
        intro_video_youtube:
          type: string
          description: Deprecated - Used in legacy themes to designate an intro video from Youtube.
          example: youtube01
        contact_information:
          type: string
          description: Deprecated - The contact information of the Course.
          example: Contact info
        keywords:
          type: string
          description: The keywords of the Course
          example: course,learn,great
        duration:
          type: string
          description: Deprecated - Used in legacy themes to display the duration of the Course.
          example: '22'
        banner_image_url:
          type: string
          description: Deprecated - use 'course_card_image_url'* - The landing page banner image url of the Course.
          example: http://example.com/banner.jpg
        course_card_image_url:
          type: string
          description: The card image url of the Course
          example: http://example.com/card.jpg
        intro_video_wistia_identifier:
          type: string
          description: Deprecated - Used in legacy themes to designate an intro video from Wistia.
          example: wistia0123
        administrator_user_ids:
          type: array
          example:
          - 1
          - 2
          items:
            type: number
            description: The IDs of the Users that can administer the Course as integers
        chapter_ids:
          type: array
          example:
          - 1
          - 2
          items:
            type: number
            description: The IDs of the Chapters in the Course as integers
        reviews_enabled:
          type: boolean
          description: A boolean indicating whether reviews are enabled for the Course
          example: false
        user_id:
          type: number
          description: The ID of the User that created the Course
          example: 1.0
        instructor_id:
          type: number
          description: The ID of the Instructor of the Course
          example: 1.0
    GetChaptersResponse:
      required:
      - items
      - meta
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ChapterResponse'
        meta:
          $ref: '#/components/schemas/Meta'
    ErrorForbiddenAppsNotAvailable:
      type: object
      properties:
        error:
          type: string
          description: access forbidden
      example:
        error: Access to Apps is not available on your plan. Upgrade to gain access
    ErrorNotFound:
      type: object
      properties:
        error:
          type: string
          description: item not found error
      example:
        error: Record not found.
    ChapterResponse:
      required:
      - content_ids
      - id
      - name
      - position
      type: object
      properties:
        id:
          type: number
          description: The ID of the Chapter as an integer
          example: 1.0
        name:
          type: string
          description: The name of the Chapter
          example: Chapter 1
        position:
          type: number
          description: The position of the Chapter within the Course
          example: 1.0
        description:
          type: string
          description: The description of the Chapter
          example: The first Chapter
        duration_in_seconds:
          type: number
          description: The duration of the Chapter in seconds. This is the sum of the length of the video lessons in the Chapter
          example: 60.0
        content_ids:
          type: array
          example:
          - 1
          - 2
          - 3
          items:
            type: number
            description: The IDs of the Contents within the Chapter
    Pagination:
      type: object
      properties:
        current_page:
          type: number
          description: Current page number
          example: 1.0
        next_page:
          type: number
          description: Next page number
          example: 2.0
        prev_page:
          type: number
          description: Previous page number
        total_pages:
          type: number
          description: Number of total pages
          example: 10.0
        total_items:
          type: number
          description: Number of total items
          example: 250.0
        entries_info:
          type: string
          description: Entries info
          example: 1-10 of 10
      description: Pagination metadata
    GetCoursesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/CourseResponse'
        meta:
          $ref: '#/components/schemas/Meta'
  securitySchemes:
    OAuthAccessToken:
      type: http
      scheme: bearer
    ApiKey:
      type: apiKey
      in: header
      name: X-Auth-API-Key
      description: Used together with ApiKeySubdomain
    ApiKeySubdomain:
      type: apiKey
      in: header
      name: X-Auth-Subdomain
      description: Used together with ApiKey
externalDocs:
  description: Find out more about Thinkifc's API
  url: http://developers.thinkific.com/api/api-documentation/