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/