OpenAPI Specification
openapi: 3.0.1
info:
title: Thinkific Admin Bundles Course Reviews 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: Course Reviews
description: Course Reviews operations
paths:
/course_reviews:
get:
tags:
- Course Reviews
summary: Get Course Reviews
description: Retrieve a list of Course Reviews
operationId: getCourseReviews
parameters:
- name: course_id
in: query
description: ID of the Course 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
- name: approved
in: query
description: If true, returns only approved Course Reviews.
schema:
type: boolean
responses:
200:
description: CourseReviews
content:
application/json:
schema:
$ref: '#/components/schemas/GetCourseReviewsResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
post:
tags:
- Course Reviews
summary: Create a course review
description: Create a course review
operationId: createCourseReview
parameters:
- name: course_id
in: query
description: ID of the Course for which the review needs to be created for.
required: true
schema:
type: number
requestBody:
description: Course Review Attributes
content:
application/json:
schema:
$ref: '#/components/schemas/CreateCourseReviewRequest'
required: true
responses:
201:
description: Course Review Created
content:
application/json:
schema:
$ref: '#/components/schemas/CourseReviewResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
404:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorNotFound'
422:
description: UnprocessableEntity
content:
application/json:
schema:
$ref: '#/components/schemas/UnprocessableEntityError'
example:
errors:
user_id:
- can't be blank
x-codegen-request-body-name: body
/course_reviews/{id}:
get:
tags:
- Course Reviews
summary: Get Course Reviews By ID
description: Retrieve a Course Review identified by the provided id.
operationId: getCourseReviewByID
parameters:
- name: id
in: path
description: ID of the Course Review in the form of an integer.
required: true
schema:
type: number
responses:
200:
description: CourseReviewByID
content:
application/json:
schema:
$ref: '#/components/schemas/CourseReviewResponse'
403:
$ref: '#/components/responses/ErrorForbiddenAppsNotAvailableResponse'
404:
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorNotFound'
components:
schemas:
CreateCourseReviewRequest:
required:
- approved
- rating
- review_text
- title
- user_id
type: object
properties:
rating:
type: number
description: The rating, out of 5, of the Course Review.
example: 4.0
title:
type: string
description: The Course Review title.
example: My Review
review_text:
type: string
description: The body of the Course Review.
example: It was great!
user_id:
type: number
description: The ID of the User writing the Course Review as an integer.
example: 1.0
approved:
type: boolean
description: A boolean indicating whether the Course Review has been approved.
example: true
ValidationError:
type: object
properties:
field_name:
type: string
description: validation error
Meta:
type: object
properties:
pagination:
$ref: '#/components/schemas/Pagination'
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
CourseReviewResponse:
required:
- approved
- course_id
- id
- rating
- review_text
- title
- user_id
type: object
properties:
id:
type: number
description: The ID of the Course Review as an integer.
example: 1.0
rating:
type: number
description: The rating, out of 5, of the Course Review.
example: 4.0
title:
type: string
description: The Course Review title.
example: My Review
review_text:
type: string
description: The body of the Course Review.
example: It was great!
user_id:
type: number
description: The ID of the User writing the Course Review as an integer.
example: 1.0
course_id:
type: number
description: The ID of the Course being reviewed as an integer.
example: 1.0
approved:
type: boolean
description: A boolean indicating whether the Course Review has been approved.
example: true
created_at:
type: string
description: The date and time the Course Review was created.
format: date-time
example: '2017-04-30T01:00:00Z'
ErrorNotFound:
type: object
properties:
error:
type: string
description: item not found error
example:
error: Record not found.
GetCourseReviewsResponse:
required:
- items
- meta
type: object
properties:
items:
type: array
items:
$ref: '#/components/schemas/CourseReviewResponse'
meta:
$ref: '#/components/schemas/Meta'
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
responses:
ErrorForbiddenAppsNotAvailableResponse:
description: Access Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorForbiddenAppsNotAvailable'
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/