OpenAPI Specification
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/