Files
mtdb_movie/public/swagger.yaml
maher 703f50a09d
Some checks failed
Build / run (push) Has been cancelled
first commit
2025-10-29 11:42:25 +01:00

1748 lines
51 KiB
YAML
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.0
info:
description: 'Access token should be sent along with every request to SITE_NAME API in authorization header: `Authorization: Bearer <Token>` <br> This token can either be acquired via `auth/login` endpoint or from account settings page on [SITE_NAME website](SITE_URL/account/settings).'
version: '1.0.0'
title: SITE_NAME API
security:
- accessToken: []
tags:
- name: Titles
- name: Episodes
- name: People
- name: News
- name: Search
- name: Lists
- name: Users
- name: Reviews
- name: Auth
description: Authenticate requests to the API
paths:
/titles:
get:
tags:
- Titles
summary: Browse movies and series
operationId: getAllTitles
parameters:
- name: perPage
in: query
description: How many titles to show per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
- name: order
in: query
description: What to sorty results by
schema:
type: string
default: popularity:desc
enum:
- popularity:desc
- budget:desc
- certification:desc
- release_date:desc
- revenue:desc
- runtime:desc
- score:desc
- name: type
in: query
description: Title type to filter results by
schema:
type: string
enum:
- movie
- series
default: null
- name: genre
in: query
description: Comma separated list of genre names to filter results by
schema:
type: string
example: action, comedy
default: null
- name: released
in: query
description: Release date range to filter results by. Date should be either year only or full date in YYYY-MM-DD format
schema:
type: string
example: 2019,2021
default: null
- name: runtime
in: query
description: Runtime range to filter results by.
schema:
type: string
example: 120,240
default: null
- name: score
in: query
description: Score range to filter results by.
schema:
type: string
example: 7,10
default: null
- name: language
in: query
description: ISO 639-1 language code to filter results by.
schema:
type: string
example: en
default: null
- name: certification
in: query
description: Certification code to filter results by.
schema:
type: string
example: pg-13
default: null
- name: country
in: query
description: Production country code to filter results by.
schema:
type: string
example: us
default: null
- name: onlyStreamable
in: query
description: Only show titles that are available to stream on the site
schema:
type: boolean
default: false
- name: includeAdult
in: query
description: Whether adult titles should be shown
schema:
type: boolean
default: false
responses:
'200':
description: Response body contains a paginated list of titles in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/titles/{id}:
parameters:
- name: id
in: path
description: ID of the title
example: 1
- name: seasonNumber
in: query
description: Number of season that should be returned along with a series
required: false
- name: episodeNumber
in: query
description: Number of episode that should be returned along with a series
required: false
- name: fullCredits
in: query
description: Whether to return all credits (15 are returned normally)
required: false
get:
tags:
- Titles
summary: Get full details about a movie or series
operationId: getTitle
responses:
'200':
description: Response body contains title data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
title:
$ref: '#/components/schemas/FullTitle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/titles/{id}/related:
parameters:
- name: id
in: path
description: ID of the title
example: 1
get:
tags:
- Titles
summary: Get related titles for specified movie or series
operationId: getRelatedTitles
responses:
'200':
description: Response body contains a list of related titles in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
titles:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/episodes/{id}:
parameters:
- name: id
in: path
description: ID of the episode
example: 1
get:
tags:
- Episodes
summary: Get full details about an episode
operationId: getEpisode
responses:
'200':
description: Response body contains episode data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
episode:
$ref: '#/components/schemas/Episode'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/people:
get:
tags:
- People
summary: Browse people
operationId: getAllPeople
parameters:
- name: perPage
in: query
description: How many people to show per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
- name: mostPopular
in: query
description: Only show people that are above certain popularity
schema:
type: boolean
default: false
- name: includeAdult
in: query
description: Whether adult starts should be included
schema:
type: boolean
default: false
responses:
'200':
description: Response body contains a paginated list of people in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
type: object
allOf:
- $ref: '#/components/schemas/PartialPerson'
- type: object
properties:
popular_credits:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/people/{id}:
parameters:
- name: id
in: path
description: ID of the person
example: 1
get:
tags:
- People
summary: Get full details about a person
operationId: getPerson
responses:
'200':
description: Response body contains person data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
person:
$ref: '#/components/schemas/FullPerson'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/news:
get:
tags:
- News
summary: Browse news articles
operationId: getAllNews
parameters:
- name: perPage
in: query
description: How many articles to show per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
responses:
'200':
description: Response body contains a paginated list of articles in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
$ref: '#/components/schemas/NewsArticle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/news/{id}:
parameters:
- name: id
in: path
description: ID of the article
example: 1
get:
tags:
- News
summary: Get full details about a news article
operationId: getNewsArticle
responses:
'200':
description: Response body contains article data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
article:
$ref: '#/components/schemas/NewsArticle'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/search/{query}:
parameters:
- name: query
in: path
description: Search query
schema:
type: string
get:
tags:
- Search
summary: Search for movies, series and people
operationId: searchEverything
parameters:
- name: limit
in: query
description: How many search results to return
schema:
type: integer
default: 20
responses:
'200':
description: Response body contains a list of results matching search query in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
query:
type: string
example: batman
results:
oneOf:
- $ref: '#/components/schemas/PartialTitle'
- $ref: '#/components/schemas/PartialPerson'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
/lists:
post:
tags:
- Lists
summary: Create a new list
operationId: createList
requestBody:
required: true
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CrupdateListPayload'
- type: object
nullable: true
properties:
items:
type: array
items:
type: object
properties:
id:
type: integer
example: 1
type:
type: string
example: title
enum:
- title
- person
- episode
responses:
'200':
description: On success, the response body contains the created list object in JSON format
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
list:
$ref: '#/components/schemas/PartialList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
$ref: '#/components/schemas/422-Response'
/lists/{id}:
parameters:
- name: id
in: path
description: ID of the list
example: 1
get:
tags:
- Lists
summary: Get the details of a list
operationId: getList
responses:
'200':
description: Response body contains list data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
list:
$ref: '#/components/schemas/FullList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
put:
tags:
- Lists
summary: Update specified list details
operationId: updateList
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CrupdateListPayload'
responses:
'200':
description: On success, the response body contains the updated list object in JSON format
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
list:
$ref: '#/components/schemas/PartialList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
$ref: '#/components/schemas/422-Response'
delete:
tags:
- Lists
summary: Delete a list
operationId: deleteList
responses:
'200':
description: List has been deleted successfully
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/lists/{id}/add:
parameters:
- name: id
in: path
description: ID of the list
example: 1
post:
tags:
- Lists
summary: Add an item to a list
operationId: addToList
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
itemId:
type: integer
example: 1
description: ID of the item to add to list
itemType:
type: string
example: title
enum:
- title
- person
- episode
description: Type of the item
responses:
'200':
description: Response body contains list data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
list:
$ref: '#/components/schemas/PartialList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/lists/{id}/remove:
parameters:
- name: id
in: path
description: ID of the list
example: 1
post:
tags:
- Lists
summary: Remove an item from a list
operationId: removeFromList
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
itemId:
type: integer
example: 1
description: ID of the item to remove from list
itemType:
type: string
example: title
enum:
- title
- person
- episode
description: Type of the item
responses:
'200':
description: Response body contains list data in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
list:
$ref: '#/components/schemas/PartialList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/user-profile/{id}:
parameters:
- name: id
in: path
description: ID of the user or "me" for currently logged in user.
example: me
get:
tags:
- Users
summary: Get public profile information about a user.
operationId: getUser
responses:
'200':
description: Response body contains a user object in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
user:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/user-profile/{id}/lists:
parameters:
- name: id
in: path
description: ID of the user or "me" for currently logged in user.
example: me
get:
tags:
- Users
summary: Lists created by the user
operationId: getUserLists
parameters:
- name: perPage
in: query
description: How many lists to return per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
responses:
'200':
description: Response body contains a paginated list of lists user has created in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PartialList'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/user-profile/{id}/reviews:
parameters:
- name: id
in: path
description: ID of the user or "me" for currently logged in user.
example: me
get:
tags:
- Users
summary: Reviews created by the user
operationId: getUserReviews
parameters:
- name: perPage
in: query
description: How many reviews to return per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
responses:
'200':
description: Response body contains a paginated list of reviews user has created in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Review'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/user-profile/{id}/ratings:
parameters:
- name: id
in: path
description: ID of the user or "me" for currently logged in user.
example: me
get:
tags:
- Users
summary: Ratings left by the user
operationId: getUserRatings
parameters:
- name: perPage
in: query
description: How many ratings to return per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
responses:
'200':
description: Response body contains a paginated list of ratings user has created in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Review'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/user-profile/{id}/comments:
parameters:
- name: id
in: path
description: ID of the user or "me" for currently logged in user.
example: me
get:
tags:
- Users
summary: Comments left by the user
operationId: getUserComments
parameters:
- name: perPage
in: query
description: How many comments to return per page
schema:
type: integer
default: 20
- name: page
in: query
description: Which page to return
schema:
type: integer
default: 1
responses:
'200':
description: Response body contains a paginated list of comments user has created in JSON format.
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
pagination:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Comment'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/reviews:
post:
tags:
- Reviews
summary: Create a new review or rating
operationId: createReview
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateReviewPayload'
responses:
'200':
description: On success, the response body contains the created review object in JSON format
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
review:
$ref: '#/components/schemas/Review'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
$ref: '#/components/schemas/422-Response'
/reviews/{id}:
parameters:
- name: id
in: path
description: ID of the review
example: 1
put:
tags:
- Reviews
summary: Update specified review details
operationId: updateReview
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
review:
type: string
description: Review body
score:
type: integer
example: 7
description: Review score
responses:
'200':
description: On success, the response body contains the updated revew object in JSON format
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
review:
$ref: '#/components/schemas/Review'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
$ref: '#/components/schemas/422-Response'
delete:
tags:
- Reviews
summary: Delete a review or rating
operationId: deleteReview
responses:
'200':
description: Review has been deleted successfully
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'404':
$ref: '#/components/schemas/404-Response'
/auth/register:
post:
security: []
tags:
- Auth
summary: Register for a new account
operationId: register
responses:
'200':
description: User registered
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
user:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
description: Invalid data specified
content:
application/json:
schema:
$ref: '#/components/schemas/422-Response'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
example: 'example@gmail.com'
password:
type: string
example: password
token_name:
type: string
example: 'iphone 12'
/auth/login:
post:
security: []
tags:
- Auth
summary: Get access token
description: 'Logs in specified user and returns user object along with access token. <br><br> Access Token is a string that enables SITE_NAME to verify that a request belongs to an authorized session. This token should be sent along with every request to SITE_NAME API in a authorization header: `Authorization: Bearer <Token>`.'
operationId: login
responses:
'200':
description: Operation successful
content:
application/json:
schema:
type: object
properties:
status:
type: string
example: success
user:
$ref: '#/components/schemas/User'
'401':
$ref: '#/components/schemas/401-Response'
'403':
$ref: '#/components/schemas/403-Response'
'422':
description: Invalid data specified
content:
application/json:
schema:
$ref: '#/components/schemas/422-Response'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
email:
type: string
example: 'example@gmail.com'
password:
type: string
example: 'password'
device_name:
type: string
example: 'iphone 12'
components:
schemas:
Pagination:
type: object
properties:
current_page:
type: integer
format: int64
example: 1
from:
type: integer
format: int64
example: 1
to:
type: integer
format: int64
example: 100
per_page:
type: integer
format: int64
example: 25
last_page:
type: integer
format: int64
example: 156
total:
type: integer
format: int64
example: 264
PartialTitle:
properties:
id:
type: integer
format: int64
example: 1
name:
type: string
example: The Suicide Squad
description: Title's name
release_date:
type: string
example: '2021-07-28T00:00:00.000000Z'
description: Title's Release date in ISO format
year:
type: string
example: 2021
description: Year title first released or was aired (if series)
tagline:
type: string
example: They're dying to save the world.
description: Title's tagline
poster:
type: string
example: https://image.tmdb.org/t/p/original/iCi4c4FvVdbaU1t8poH1gvzT6xM.jpg
description: Title's poster URL
backdrop:
type: string
example: https://image.tmdb.org/t/p/w1280/jlGmlFOcfo8n5tURmhC7YVd4Iyy.jpg
description: Title's backdrop URL
runtime:
type: integer
example: 132
description: Title's runtime in minutes
budget:
type: integer
example: 180000000
description: Title's budget in US dollars
revenue:
type: integer
example: 121261711
description: Current title's revenue worldwide
popularity:
type: integer
example: 5659
description: Title's popularity
tmdb_id:
type: integer
example: 436969
description: Title's ID on themoviedatabase site
imdb_id:
type: string
example: tt6334354
description: Title's ID on IMDb site
is_series:
type: boolean
example: false
description: Whether title is a series
adult:
type: boolean
example: false
description: Whether it's an adult title
season_count:
type: integer
example: 0
description: Number of seasons title has (if it's a series)
episode_count:
type: integer
example: 0
description: Number of episodes title has (if it's a series)
series_ended:
type: boolean
example: false
description: Whether series has ended or was cancelled
language:
type: string
example: en
description: Title's primary spoken language (ISO 639-1)
original_title:
type: string
example: The Suicide Squad
description: Title's original language (if name is not in english)
certification:
type: string
example: r
description: Title's certification code
rating:
type: string
example: 8.1
description: Title's user rating
vote_count:
type: integer
example: 2657
description: How many users rated the title
FullTitle:
allOf:
- $ref: '#/components/schemas/PartialTitle'
- type: object
properties:
images:
type: array
items:
$ref: '#/components/schemas/Image'
description: List of backdrop and poster images for the title
genres:
type: array
items:
$ref: '#/components/schemas/Genre'
description: List of genres for the title
keywords:
type: array
items:
$ref: '#/components/schemas/Keyword'
description: List of keywords for the title
credits:
type: array
items:
$ref: '#/components/schemas/TitleCredit'
description: List of credits for the title
seasons:
type: array
items:
$ref: '#/components/schemas/Season'
description: List of title's seasons (if it's a series)
season:
type: array
items:
$ref: '#/components/schemas/Season'
description: Currently selected season (Specified via "seasonNumber" query parameter)
description:
type: string
description: Title's plot
example: Supervillains Harley Quinn, Bloodsport, Peacemaker and a collection of nutty cons at Belle Reve prison join the super-secret, super-shady Task Force X as they are dropped off at the remote, enemy-infused island of Corto Maltese.
Image:
type: object
properties:
url:
type: string
example: https://image.tmdb.org/t/p/original/jlGmlFOcfo8n5tURmhC7YVd4Iyy.jpg
description: Image's URL
type:
type: string
example: backdrop
description: Image's type
source:
type: string
example: tmdb
description: Image's source
Genre:
type: object
properties:
name:
type: string
example: action
description: Genre's slug
display_name:
type: string
example: Action
description: Genre name visible to user
Keyword:
type: object
properties:
name:
type: string
example: superhero
description: Keyword's slug
display_name:
type: string
example: Superhero
description: Keyword name visible to user
Video:
type: object
properties:
name:
type: string
example: The Suicide Squad - King Shark
description: Video's name
thumbnail:
type: string
example: https://site.com/thumbnail.jpg
description: Video's thumbnail URL
url:
type: string
example: https://youtube.com/embed/JD17Usa3588
description: Video's URL
type:
type: string
example: embed
description: Video's type
quality:
type: string
example: hd
description: Video's quality
source:
type: string
example: tmdb
description: Video's source
language:
type: string
example: en
description: Video's language
category:
type: string
example: teaser
description: Video's category
captions:
type: array
items:
$ref: '#/components/schemas/Caption'
description: List of captions for the video
Caption:
type: object
properties:
name:
type: string
example: English
description: Caption's name
language:
type: string
example: en
description: Caption's language code
url:
type: string
example: https://site.com/caption.vtt
description: Caption's file URL
Season:
type: object
properties:
number:
type: integer
example: 1
description: Season's number
release_date:
type: string
example: '2021-06-09T00:00:00.000000Z'
description: Season's air date
episode_count:
type: integer
example: 8
description: Number of episodes in this season
poster:
type: string
example: https://image.tmdb.org/t/p/original/8uVqe9ThcuYVNdh4O0kuijIWMLL.jpg
description: Season's primary poster URL
episodes:
type: array
description: Only available when showing full season details.
items:
$ref: '#/components/schemas/Episode'
Episode:
type: object
properties:
name:
type: string
example: Glorious Purpose
description: Episodes's name
descrption:
type: string
example: Glorious Purpose
description: 'After stealing the Tesseract in \"Avengers: Endgame,\" Loki lands before the Time Variance Authority.'
poster:
type: string
example: https://image.tmdb.org/t/p/original/gxh0k3aADsYkt9tgkfm2kGn2qQj.jpg
description: Episode's primary poster URL
release_date:
type: string
example: '2021-06-09T00:00:00.000000Z'
description: Episode's air date
season_number:
type: integer
example: 1
description: Season number
episode_number:
type: integer
example: 1
description: Episode number
year:
type: integer
example: 2021
description: Episode's air year
popularity:
type: integer
example: 5659
description: Episode's popularity
rating:
type: string
example: 6.6
description: Episode's user rating
vote_count:
type: integer
example: 50
description: How many users rated the episode
credits:
type: array
description: List of credits for the episode. Only available when showing full episode details
items:
$ref: '#/components/schemas/TitleCredit'
TitleCredit:
type: object
properties:
name:
type: string
example: James Gunn
description: Person name
poster:
type: string
example: https://image.tmdb.org/t/p/original/nHr6yzPF15jQz5eBke1SDNWectu.jpg
description: Person image
pivot:
type: object
properties:
job:
type: string
example: directing
department:
type: string
example: directing
character:
type: string
example: King Shar
PartialPerson:
type: object
properties:
name:
type: string
example: Margot Robbie
description: Person's name
description:
type: string
example: Margot Elise Robbie (born 2 July 1990) is an Australian actress and producer. She has received nominations for two Academy Awards and five BAFTA Awards. In 2017, Time magazine named her one of the 100 most influential people in the world, and in 2019, she was ranked among the world's highest-paid actresses.\n\nRobbie studied drama at Somerset College and began her career in Australian independent films in the late 2000s, before working in the soap opera Neighbours (20082011). After moving to Amer...
description: Person's biogragphy
poster:
type: string
example: https://image.tmdb.org/t/p/original/euDPyqLnuwaWMHajcU3oZ9uZezR.jpg
description: Person's image
gender:
type: string
example: female
description: Person's gender
birth_date:
type: string
example: '1990-07-02'
description: Person's birth date
death_date:
type: string
example: null
description: Person's death date
birth_place:
type: string
example: Dalby, Queensland, Australia
description: Person's birth place
imdb_id:
type: string
example: nm3053338
description: Person's ID on IMDb site
tmdb_id:
type: integer
example: 234352
description: Person's ID on themoviedatabase site
known_for:
type: string
example: acting
description: Acting, directing, writing etc.
adult:
type: boolean
example: false
description: Whether it's an adult star
FullPerson:
allOf:
- $ref: '#/components/schemas/PartialPerson'
- type: object
properties:
credits:
type: object
properties:
cast:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
production:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
knownFor:
type: array
items:
$ref: '#/components/schemas/PartialTitle'
PartialList:
type: object
properties:
name:
type: string
example: My List
description: List's name
description:
type: string
example: This is my list...
description: List's description
public:
type: boolean
default: false
description: Whether list is set as public
created_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date list was created
updated_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date list was last updated
image:
type: string
example: https://image.tmdb.org/t/p/original/2mtQwJKVKQrZgTz49Dizb25eOQQ.jpg
description: Primary image for the list
FullList:
allOf:
- $ref: '#/components/schemas/PartialList'
- type: object
properties:
items:
allOf:
- $ref: '#/components/schemas/Pagination'
- type: object
properties:
data:
type: array
items:
oneOf:
- $ref: '#/components/schemas/PartialTitle'
- $ref: '#/components/schemas/PartialPerson'
- $ref: '#/components/schemas/Episode'
CrupdateListPayload:
type: object
properties:
details:
type: object
properties:
name:
type: string
example: My list
description:
type: string
nullable: true
description: Short description
public:
type: string
nullable: true
default: false
description: Whether this list will be set as public
Review:
type: object
properties:
body:
type: string
description: Review body created by the user
score:
type: integer
example: 7
description: Review rating
created_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date review was created
updated_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date review was last updated
image:
type: string
example: https://image.tmdb.org/t/p/original/2mtQwJKVKQrZgTz49Dizb25eOQQ.jpg
description: Primary image for the list
reviewable:
oneOf:
- $ref: '#/components/schemas/PartialTitle'
- $ref: '#/components/schemas/Episode'
CreateReviewPayload:
type: object
properties:
mediaId:
type: integer
example: 1
description: ID of the title or episode
mediaType:
type: integer
example: title
enum:
- title
- episode
review:
type: string
description: Review body
score:
type: integer
example: 7
description: Review score
NewsArticle:
type: object
properties:
id:
type: integer
title:
type: string
description: Article title
body:
type: string
description: Article body
slug:
type: string
description: Article slug
created_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date article was created
updated_at:
type: string
example: '2021-07-12T01:28:52.000000Z'
description: Date article was last updated
Comment:
type: object
properties:
id:
type: integer
content:
type: string
description: Comment content
parent_id:
type: integer
description: Id of the comment this comment was in reply to
deleted:
type: boolean
description: If deleted is true, comment content will not be available
depth:
type: integer
description: How deep is this comment withtin a thread
commentable:
oneOf:
- $ref: '#/components/schemas/PartialTitle'
- $ref: '#/components/schemas/Episode'
user:
$ref: '#/components/schemas/User'
User:
type: object
properties:
id:
type: integer
format: int64
display_name:
type: string
avatar:
type: string
first_name:
type: string
last_name:
type: string
gender:
type: string
Tag:
type: object
properties:
id:
type: integer
format: int64
example: 1
name:
type: string
example: favorites
401-Response:
description: Unauthenticated. Either access token is not provided or is invalid.
403-Response:
description: Unauthorized access. You don't have permissions required to perform this operation.
404-Response:
description: Resource not found. Could not find a resource with specified name or ID.
422-Response:
type: object
properties:
status:
type: string
example: error
message:
type: string
example: 'Reason for the error'
errors:
type: object
properties:
some_data_1:
type: string
example: Error message for data 1
some_data_2:
type: string
example: Error message for data 2
securitySchemes:
accessToken:
type: http
scheme: bearer