OpenAPI Specification
openapi: 3.0.1
info:
title: Thinkific Admin Bundles Instructors 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: Instructors
description: Instructors operations
paths:
/instructors:
get:
tags:
- Instructors
summary: Get Instructors
description: Retrieve a list of Instructors
operationId: getInstructors
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: Instructors response
content:
application/json:
schema:
$ref: '#/components/schemas/GetInstructorsResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
post:
tags:
- Instructors
summary: Create instructor
description: 'Creates a new Instructor '
operationId: createInstructor
requestBody:
description: New instructor attributes
content:
application/json:
schema:
$ref: '#/components/schemas/InstructorRequest'
required: true
responses:
201:
description: Instructor response
content:
application/json:
schema:
$ref: '#/components/schemas/InstructorResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
422:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityError'
example:
errors:
last_name:
- can't be blank
x-codegen-request-body-name: body
/instructors/{id}:
get:
tags:
- Instructors
summary: Get Instructor by ID
description: Returns the Instructor identified by the provided id.
operationId: getInstructorByID
parameters:
- name: id
in: path
description: ID of the Instructor in the form of an integer.
required: true
schema:
type: number
responses:
200:
description: Instructor response
content:
application/json:
schema:
$ref: '#/components/schemas/InstructorResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
404:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorNotFound'
put:
tags:
- Instructors
summary: Update instructor
description: Updates the Instructor identified by the provided id
operationId: updateInstructor
parameters:
- name: id
in: path
description: ID of the Instructor in the form of an integer
required: true
schema:
type: number
requestBody:
description: New instructor attributes
content:
application/json:
schema:
$ref: '#/components/schemas/InstructorRequest'
required: true
responses:
204:
description: Instructor Updated
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
404:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorNotFound'
422:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityError'
example:
errors:
- Instructor could not be found
x-codegen-request-body-name: body
delete:
tags:
- Instructors
summary: Delete instructor
description: Delete the Instructor identified by the provided id
operationId: deleteInstructorByID
parameters:
- name: id
in: path
description: ID of the Instructor in the form of an integer
required: true
schema:
type: number
responses:
204:
description: Instructor deleted
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
404:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorNotFound'
components:
responses:
ErrorForbiddenAppsNotAvailableResponse:
description: Access Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorForbiddenAppsNotAvailable'
schemas:
GetInstructorsResponse:
required:
- items
- meta
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/InstructorResponse'
meta:
$ref: '#/components/schemas/Meta'
InstructorResponse:
required:
- created_at
- first_name
- id
- last_name
type: object
properties:
id:
type: number
description: The ID of the Instructor as an integer.
example: 1.0
user_id:
type: number
description: The ID of the User owning the Instructor
example: 12.0
title:
type: string
description: The title of the Instructor
example: Mr.
first_name:
type: string
description: The first name of the Instructor.
example: My Course
last_name:
type: string
description: The last name of the Instructor.
example: My Course
bio:
type: string
description: The bio of the Instructor
example: Bob Jones is an instructor of note.
slug:
type: string
description: 'The slug of the Instructor NOTE: This will be removed in future API versions'
example: bob
avatar_url:
type: string
description: The fully-qualified url of the Instructor's avatar
example: https://example.com/avatar.png
email:
type: string
description: The email of the Instructor
example: bob_jones@example.com
created_at:
type: string
description: The date/time that the Instructor was created.
ValidationError:
type: object
properties:
field_name:
type: string
description: validation error
Meta:
type: object
properties:
pagination:
$ref: '#/components/schemas/Pagination'
InstructorRequest:
required:
- first_name
- last_name
- slug
type: object
properties:
user_id:
type: number
description: The ID of the User owning the Instructor
example: 12.0
title:
type: string
description: The title of the Instructor
example: Mr.
first_name:
type: string
description: The first name of the Instructor
example: Bob
last_name:
type: string
description: The last name of the Instructor
example: Jones
bio:
type: string
description: The bio of the Instructor
example: Bob Jones is an instructor of note.
slug:
type: string
description: 'The slug of the Instructor NOTE: This will be removed in future API versions'
example: bob
avatar_url:
type: string
description: The fully-qualified url of the Instructor's avatar
example: https://example.com/avatar.png
email:
type: string
description: The email of the Instructor
example: bob_jones@example.com
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.
UnprocessableEntityError:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ValidationError'
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
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/