swagger: "2.0"
schemes:
  - https
  - http
basePath: /
info:
  description: |-
    API v3 targets v2 functionality with a few minor additions. The API is accessible via https://api.thetvdb.com and provides the following REST endpoints in JSON format.


    How to use this API documentation
    ----------------


    You may browse the API routes without authentication, but if you wish to send requests to the API and see response data, then you must authenticate.
    1. Obtain a JWT token by `POST`ing  to the `/login` route in the `Authentication` section with your API key and credentials.
    1. Paste the JWT token from the response into the "JWT Token" field at the top of the page and click the 'Add Token' button.


    You will now be able to use the remaining routes to send requests to the API and get a response.


    Language Selection
    ----------------


    Language selection is done via the `Accept-Language` header. At the moment, you may only pass one language abbreviation in the header at a time. Valid language abbreviations can be found at the `/languages` route..


    Authentication
    ----------------


    Authentication to use the API is similar to the How-to section above. Users must `POST` to the `/login` route with their API key and credentials in the following format in order to obtain a JWT token.

    `{"apikey":"APIKEY","username":"USERNAME","userkey":"USERKEY"}`

    Note that the username and key are ONLY required for the `/user` routes. The user's key is labled `Account Identifier` in the account section of the main site.
    The token is then used in all subsequent requests by providing it in the `Authorization` header. The header will look like: `Authorization: Bearer <yourJWTtoken>`. Currently, the token expires after 24 hours. You can `GET` the `/refresh_token` route to extend that expiration date.


    Versioning
    ----------------


    You may request a different version of the API by including an `Accept` header in your request with the following format: `Accept:application/vnd.thetvdb.v$VERSION`. This documentation automatically uses the version seen at the top and bottom of the page.
  title: TheTVDB API v3
  version: 3.0.0
  x-apisguru-categories:
    - media
    - open_data
  x-logo:
    url: https://twitter.com/thetvdb/profile_image?size=original
  x-origin:
    - format: swagger
      url: https://api.thetvdb.com/swagger.json
      version: "2.0"
  x-providerName: thetvdb.com
consumes:
  - application/json
produces:
  - application/json
securityDefinitions:
  jwtToken:
    description: JWT token prefixed with "Bearer "
    in: header
    name: Authorization
    type: apiKey
parameters:
  Accept-Language:
    description: Records are returned with the some fields in the desired language, if it exists. If there is no translation for the given language, then the record is still returned but with empty values for the translated fields.
    in: header
    name: Accept-Language
    type: string
  absoluteNumber:
    description: Absolute number of the episode
    in: query
    name: absoluteNumber
    type: string
  airedEpisode:
    description: Aired episode number
    in: query
    name: airedEpisode
    type: string
  airedSeason:
    description: Aired season number
    in: query
    name: airedSeason
    type: string
  dvdEpisode:
    description: DVD episode number
    in: query
    name: dvdEpisode
    type: string
  dvdSeason:
    description: DVD season number
    in: query
    name: dvdSeason
    type: string
  episodeId:
    description: ID of the episode
    format: int64
    in: path
    name: id
    required: true
    type: integer
  filterKeys:
    description: Comma-separated list of keys to filter by
    in: query
    name: keys
    required: true
    type: string
  fromTime:
    description: Epoch time to start your date range.
    in: query
    name: fromTime
    required: true
    type: string
  imdbId:
    description: IMDB id of the series
    in: query
    name: imdbId
    type: string
  itemId:
    description: ID of the ratings record that you wish to modify
    format: int64
    in: path
    name: itemId
    required: true
    type: integer
  itemRating:
    description: The updated rating number
    format: int64
    in: path
    name: itemRating
    required: true
    type: integer
  itemType:
    description: Item to update. Can be either 'series', 'episode', or 'image'
    format: string
    in: path
    name: itemType
    required: true
    type: string
  itemTypeNR:
    description: Item to query. Can be either 'series', 'episode', or 'banner'
    format: string
    in: query
    name: itemType
    type: string
  keyType:
    description: Type of image you're querying for (fanart, poster, etc. See ../images/query/params for more details).
    in: query
    name: keyType
    type: string
  languageId:
    description: ID of the language
    in: path
    name: id
    required: true
    type: string
  movieId:
    description: ID of the movie
    format: int64
    in: path
    name: id
    required: true
    type: integer
  page:
    description: Page of results to fetch. Defaults to page 1 if not provided.
    in: query
    name: page
    type: string
  resolution:
    description: Resolution to filter by (1280x1024, for example)
    in: query
    name: resolution
    type: string
  seriesId:
    description: ID of the series
    format: int64
    in: path
    name: id
    required: true
    type: integer
  seriesSearchName:
    description: Name of the series to search for.
    in: query
    name: name
    type: string
  since:
    description: Epoch time to start your date range.
    in: query
    name: since
    required: true
    type: string
  slug:
    description: Slug from site URL of series (https://www.thetvdb.com/series/$SLUG)
    in: query
    name: slug
    type: string
  subKey:
    description: Subkey for the above query keys. See /series/{id}/images/query/params for more information
    in: query
    name: subKey
    type: string
  toTime:
    description: Epoch time to end your date range. Must be one week from `fromTime`.
    in: query
    name: toTime
    type: string
  zap2itId:
    description: Zap2it ID of the series to search for.
    in: query
    name: zap2itId
    type: string
tags:
  - description: Obtaining and refreshing your JWT token
    name: Authentication
  - description: Information about a specific episode
    name: Episodes
  - description: Information about a specific series
    name: Series
  - description: Search for a particular series
    name: Search
  - description: Series that have been recently updated.
    name: Updates
  - description: Routes for handling user data.
    name: Users
  - description: Available languages and information
    name: Languages
  - description: Information about a specific movie
    name: Movies
paths:
  "/episodes/{id}":
    get:
      description: Returns the full information for a given episode id. __Deprecation Warning:__ The _director_ key will be deprecated in favor of the new _directors_ key in a future release.
      parameters:
        - $ref: "#/parameters/episodeId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of query keys as strings
          schema:
            $ref: "#/definitions/EpisodeRecordData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given episode ID does not exist.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Episodes
  /languages:
    get:
      description: All available languages. These language abbreviations can be used in the `Accept-Language` header for routes that return translation records.
      responses:
        "200":
          description: An array of language objects.
          schema:
            $ref: "#/definitions/LanguageData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
      security:
        - jwtToken: []
      tags:
        - Languages
  "/languages/{id}":
    get:
      description: Information about a particular language, given the language ID.
      parameters:
        - $ref: "#/parameters/languageId"
      responses:
        "200":
          description: An array of language objects.
          schema:
            $ref: "#/definitions/Language"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given language ID does not exist.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Languages
  /login:
    post:
      description: Returns a session token to be included in the rest of the requests. Note that API key authentication is required for all subsequent requests and user auth is required for routes in the `User` section
      parameters:
        - description: JSON string containing your authentication details.
          in: body
          name: Authentication string
          required: true
          schema:
            $ref: "#/definitions/Auth"
      responses:
        "200":
          description: Returns a JWT token for use with the rest of the API routes
          schema:
            $ref: "#/definitions/Token"
        "401":
          description: Invalid credentials and/or API token
          schema:
            $ref: "#/definitions/NotAuthorized"
      tags:
        - Authentication
  "/movies/{id}":
    get:
      description: Returns a movies records that contains all information known about a particular movies id.
      parameters:
        - $ref: "#/parameters/movieId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: A movie record.
          schema:
            $ref: "#/definitions/Movie"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Movies
  /movieupdates:
    get:
      description: Returns all movies ids updated since a given timestamp.
      parameters:
        - $ref: "#/parameters/since"
      responses:
        "200":
          description: All movies ids updated since a given date
          schema:
            $ref: "#/definitions/UpdatedMovies"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "405":
          description: Missing query params are given
          schema:
            $ref: "#/definitions/InvalidQueryParams"
        "422":
          description: Invalid query params provided
          schema:
            $ref: "#/definitions/InvalidQueryParams"
      security:
        - jwtToken: []
      tags:
        - Movies
  /refresh_token:
    get:
      description: Refreshes your current, valid JWT token and returns a new token. Hit this route so that you do not have to post to `/login` with your API key and credentials once you have already been authenticated.
      responses:
        "200":
          description: Returns a new token to use in your subsequent requests
          schema:
            $ref: "#/definitions/Token"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
      security:
        - jwtToken: []
      tags:
        - Authentication
  /search/series:
    get:
      description: Allows the user to search for a series based on the following parameters.
      parameters:
        - $ref: "#/parameters/seriesSearchName"
        - $ref: "#/parameters/imdbId"
        - $ref: "#/parameters/zap2itId"
        - $ref: "#/parameters/slug"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of results that match the provided query.
          schema:
            $ref: "#/definitions/SeriesSearchResults"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no records are found that match your query.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Search
  /search/series/params:
    get:
      description: Returns an array of parameters to query by in the `/search/series` route.
      responses:
        "200":
          description: An array of query keys as strings
          schema:
            $ref: "#/definitions/EpisodeDataQueryParams"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
      security:
        - jwtToken: []
      tags:
        - Search
  "/series/{id}":
    get:
      description: Returns a series records that contains all information known about a particular series id.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: A series record.
          schema:
            $ref: "#/definitions/SeriesData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
    head:
      description: Returns header information only about the given series ID.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: Series header information. Good for getting the Last-Updated header to find out when the series was last modified.
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/actors":
    get:
      description: Returns actors for the given series id
      parameters:
        - $ref: "#/parameters/seriesId"
      responses:
        "200":
          description: An array of actor objects for the given series id.
          schema:
            $ref: "#/definitions/SeriesActors"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/episodes":
    get:
      description: All episodes for a given series. Paginated with 100 results per page.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/page"
      responses:
        "200":
          description: An array of episode objects for the given series id.
          schema:
            $ref: "#/definitions/SeriesEpisodes"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/episodes/query":
    get:
      description: This route allows the user to query against episodes for the given series. The response is a paginated array of episode records.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/absoluteNumber"
        - $ref: "#/parameters/airedSeason"
        - $ref: "#/parameters/airedEpisode"
        - $ref: "#/parameters/dvdSeason"
        - $ref: "#/parameters/dvdEpisode"
        - $ref: "#/parameters/imdbId"
        - $ref: "#/parameters/page"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of basic Episode results that matched the query
          schema:
            $ref: "#/definitions/SeriesEpisodesQuery"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist or the query returns no results.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/episodes/query/params":
    get:
      description: Returns the allowed query keys for the `/series/{id}/episodes/query` route
      parameters:
        - $ref: "#/parameters/seriesId"
      responses:
        "200":
          description: An array of query keys as strings
          schema:
            $ref: "#/definitions/SeriesEpisodesQueryParams"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist or the query returns no results.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/episodes/summary":
    get:
      description: |-
        Returns a summary of the episodes and seasons available for the series.

        __Note__: Season "0" is for all episodes that are considered to be specials.
      parameters:
        - $ref: "#/parameters/seriesId"
      responses:
        "200":
          description: A summary of the episodes and seasons avaialable for the given series.
          schema:
            $ref: "#/definitions/SeriesEpisodesSummary"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/filter":
    get:
      description: Returns a series records, filtered by the supplied comma-separated list of keys. Query keys can be found at the `/series/{id}/filter/params` route.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/filterKeys"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: A filtered series record
          schema:
            $ref: "#/definitions/SeriesData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/filter/params":
    get:
      description: Returns the list of keys available for the `/series/{id}/filter` route
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: A list of keys to filter by
          schema:
            $ref: "#/definitions/FilterKeys"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/images":
    get:
      description: Returns a summary of the images for a particular series
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: A summary of the image types and counts available for the given series.
          schema:
            $ref: "#/definitions/SeriesImagesCounts"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/images/query":
    get:
      description: Query images for the given series ID.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/keyType"
        - $ref: "#/parameters/resolution"
        - $ref: "#/parameters/subKey"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of basic Episode results that matched the query
          schema:
            $ref: "#/definitions/SeriesImageQueryResults"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist or the query returns no results.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  "/series/{id}/images/query/params":
    get:
      description: Returns the allowed query keys for the `/series/{id}/images/query` route. Contains a parameter record for each unique `keyType`, listing values that will return results.
      parameters:
        - $ref: "#/parameters/seriesId"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of query keys as strings
          schema:
            $ref: "#/definitions/SeriesImagesQueryParams"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if the given series ID does not exist or the query returns no results.
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Series
  /updated/query:
    get:
      description: |-
        Returns an array of series that have changed in a maximum of one week blocks since the provided `fromTime`.


        The user may specify a `toTime` to grab results for less than a week. Any timespan larger than a week will be reduced down to one week automatically.
      parameters:
        - $ref: "#/parameters/fromTime"
        - $ref: "#/parameters/toTime"
        - $ref: "#/parameters/Accept-Language"
      responses:
        "200":
          description: An array of Update objects that match the given timeframe.
          schema:
            $ref: "#/definitions/UpdateData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no records exist for the given timespan
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Updates
  /updated/query/params:
    get:
      description: Returns an array of valid query keys for the `/updated/query/params` route.
      responses:
        "200":
          description: An array of Update objects that match the given timeframe.
          schema:
            $ref: "#/definitions/UpdateDataQueryParams"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no records exist for the given timespan
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Updates
  /user:
    get:
      description: Returns basic information about the currently authenticated user.
      responses:
        "200":
          description: User information.
          schema:
            $ref: "#/definitions/UserData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  /user/favorites:
    get:
      description: Returns an array of favorite series for a given user, will be a blank array if no favorites exist.
      responses:
        "200":
          description: User favorites.
          schema:
            $ref: "#/definitions/UserFavoritesData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  "/user/favorites/{id}":
    delete:
      description: Deletes the given series ID from the user’s favorite’s list and returns the updated list.
      parameters:
        - $ref: "#/parameters/seriesId"
      responses:
        "200":
          description: List of user favorites.
          schema:
            $ref: "#/definitions/UserFavoritesData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
        "409":
          description: Returned if requested record could not be deleted
          schema:
            $ref: "#/definitions/Conflict"
      security:
        - jwtToken: []
      tags:
        - Users
    put:
      description: Adds the supplied series ID to the user’s favorite’s list and returns the updated list.
      parameters:
        - $ref: "#/parameters/seriesId"
      responses:
        "200":
          description: List of user favorites.
          schema:
            $ref: "#/definitions/UserFavoritesData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
        "409":
          description: Returned if requested record could not be updated
          schema:
            $ref: "#/definitions/Conflict"
      security:
        - jwtToken: []
      tags:
        - Users
  /user/ratings:
    get:
      description: Returns an array of ratings for the given user.
      responses:
        "200":
          description: Array of user ratings.
          schema:
            $ref: "#/definitions/UserRatingsData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  /user/ratings/query:
    get:
      description: Returns an array of ratings for a given user that match the query.
      parameters:
        - $ref: "#/parameters/itemTypeNR"
      responses:
        "200":
          description: List of user ratings that match the given query.
          schema:
            $ref: "#/definitions/UserRatingsData"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  /user/ratings/query/params:
    get:
      description: Returns a list of query params for use in the `/user/ratings/query` route.
      responses:
        "200":
          description: Parameters to use for querying.
          schema:
            $ref: "#/definitions/UserRatingsQueryParams"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no information exists for the current user
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  "/user/ratings/{itemType}/{itemId}":
    delete:
      description: This route deletes a given rating of a given type.
      parameters:
        - $ref: "#/parameters/itemType"
        - $ref: "#/parameters/itemId"
      responses:
        "200":
          description: Returns OK if the delete was successful
          schema:
            $ref: "#/definitions/UserRatingsDataNoLinksEmptyArray"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no rating is found that matches your given parameters
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
  "/user/ratings/{itemType}/{itemId}/{itemRating}":
    put:
      description: This route updates a given rating of a given type.
      parameters:
        - $ref: "#/parameters/itemType"
        - $ref: "#/parameters/itemId"
        - $ref: "#/parameters/itemRating"
      responses:
        "200":
          description: Update OK if the update was successful
          schema:
            $ref: "#/definitions/UserRatingsDataNoLinks"
        "401":
          description: Returned if your JWT token is missing or expired
          schema:
            $ref: "#/definitions/NotAuthorized"
        "404":
          description: Returned if no rating is found that matches your given parameters
          schema:
            $ref: "#/definitions/NotFound"
      security:
        - jwtToken: []
      tags:
        - Users
definitions:
  Auth:
    properties:
      apikey:
        type: string
      userkey:
        type: string
      username:
        type: string
  BasicEpisode:
    properties:
      absoluteNumber:
        type: integer
      airedEpisodeNumber:
        type: integer
      airedSeason:
        type: integer
      dvdEpisodeNumber:
        type: integer
      dvdSeason:
        type: integer
      episodeName:
        type: string
      firstAired:
        type: string
      id:
        type: integer
      language:
        $ref: "#/definitions/EpisodeLanguageInfo"
      lastUpdated:
        type: integer
      overview:
        type: string
    type: object
  Conflict:
    properties:
      Error:
        default: Conflict
        type: string
  Episode:
    properties:
      absoluteNumber:
        type: integer
      airedEpisodeNumber:
        type: integer
      airedSeason:
        type: integer
      airsAfterSeason:
        type: integer
      airsBeforeEpisode:
        type: integer
      airsBeforeSeason:
        type: integer
      director:
        type: string
      directors:
        items:
          type: string
        type: array
      dvdChapter:
        type: number
      dvdDiscid:
        type: string
      dvdEpisodeNumber:
        type: number
      dvdSeason:
        type: integer
      episodeName:
        type: string
      filename:
        type: string
      firstAired:
        type: string
      guestStars:
        items:
          type: string
        type: array
      id:
        type: integer
      imdbId:
        type: string
      lastUpdated:
        type: integer
      lastUpdatedBy:
        type: string
      overview:
        type: string
      productionCode:
        type: string
      seriesId:
        type: string
      showUrl:
        type: string
      siteRating:
        type: number
      siteRatingCount:
        type: integer
      thumbAdded:
        type: string
      thumbAuthor:
        type: integer
      thumbHeight:
        type: string
      thumbWidth:
        type: string
      writers:
        items:
          type: string
        type: array
    type: object
  EpisodeDataQueryParams:
    properties:
      data:
        items:
          type: string
        type: array
    type: object
  EpisodeLanguageInfo:
    properties:
      episodeName:
        type: string
      overview:
        type: string
    type: object
  EpisodeRecordData:
    properties:
      data:
        $ref: "#/definitions/Episode"
      errors:
        $ref: "#/definitions/JSONErrors"
    type: object
  FilterKeys:
    properties:
      data:
        items:
          type: string
        type: array
  InvalidQueryParams:
    properties:
      Error:
        default: No valid query params given
        type: string
  JSONErrors:
    properties:
      invalidFilters:
        description: Invalid filters passed to route
        items:
          type: string
        type: array
      invalidLanguage:
        description: Invalid language or translation missing
        type: string
      invalidQueryParams:
        description: Invalid query params passed to route
        items:
          type: string
        type: array
    type: object
  Language:
    properties:
      abbreviation:
        type: string
      englishName:
        type: string
      id:
        type: integer
      name:
        type: string
    type: object
  LanguageData:
    properties:
      data:
        items:
          $ref: "#/definitions/Language"
        type: array
    type: object
  Links:
    properties:
      first:
        type: integer
      last:
        type: integer
      next:
        type: integer
      previous:
        type: integer
    type: object
  Movie:
    properties:
      artworks:
        items:
          $ref: "#/definitions/MovieArtwork"
        type: array
      genres:
        items:
          $ref: "#/definitions/MovieGenre"
        type: array
      id:
        type: integer
      people:
        properties:
          actors:
            items:
              $ref: "#/definitions/MoviePeople"
            type: array
          directors:
            items:
              $ref: "#/definitions/MoviePeople"
            type: array
          producers:
            items:
              $ref: "#/definitions/MoviePeople"
            type: array
          writers:
            items:
              $ref: "#/definitions/MoviePeople"
            type: array
      release_dates:
        items:
          $ref: "#/definitions/MovieReleaseDate"
        type: array
      remoteids:
        items:
          $ref: "#/definitions/MovieRemoteId"
        type: array
      runtime:
        type: integer
      trailers:
        items:
          $ref: "#/definitions/MovieTrailer"
        type: array
      translations:
        items:
          $ref: "#/definitions/MovieTranslation"
        type: array
      url:
        type: string
  MovieArtwork:
    properties:
      artwork_type:
        type: string
      height:
        type: integer
      id:
        type: string
      is_primary:
        type: boolean
      tags:
        type: string
      thumb_url:
        type: string
      url:
        type: string
      width:
        type: integer
  MovieGenre:
    properties:
      id:
        type: integer
      name:
        type: string
      url:
        type: string
  MoviePeople:
    properties:
      id:
        type: string
      imdb_id:
        type: string
      is_featured:
        type: boolean
      name:
        type: string
      people_facebook:
        type: string
      people_id:
        type: string
      people_image:
        type: string
      people_instagram:
        type: string
      people_twitter:
        type: string
      role:
        type: string
      role_image:
        type: string
  MovieReleaseDate:
    properties:
      country:
        type: string
      date:
        type: string
      type:
        type: string
  MovieRemoteId:
    properties:
      id:
        type: string
      source_id:
        type: integer
      source_name:
        type: string
      source_url:
        type: string
      url:
        type: string
  MovieTrailer:
    properties:
      name:
        type: string
      url:
        type: string
  MovieTranslation:
    properties:
      is_primary:
        type: boolean
      language_code:
        type: string
      name:
        type: string
      overview:
        type: string
      tagline:
        type: string
  NotAuthorized:
    properties:
      Error:
        default: Not Authorized
        type: string
  NotFound:
    properties:
      Error:
        default: Not Found
        type: string
  Series:
    properties:
      added:
        type: string
      airsDayOfWeek:
        type: string
      airsTime:
        type: string
      aliases:
        items:
          type: string
        type: array
      banner:
        type: string
      firstAired:
        type: string
      genre:
        items:
          type: string
        type: array
      id:
        type: integer
      imdbId:
        type: string
      lastUpdated:
        type: integer
      network:
        type: string
      networkId:
        type: string
      overview:
        type: string
      rating:
        type: string
      runtime:
        type: string
      seriesId:
        type: string
      seriesName:
        type: string
      siteRating:
        type: number
      siteRatingCount:
        type: integer
      slug:
        type: string
      status:
        type: string
      zap2itId:
        type: string
    type: object
  SeriesActors:
    properties:
      data:
        items:
          $ref: "#/definitions/SeriesActorsData"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
  SeriesActorsData:
    properties:
      id:
        type: integer
      image:
        type: string
      imageAdded:
        type: string
      imageAuthor:
        type: integer
      lastUpdated:
        type: string
      name:
        type: string
      role:
        type: string
      seriesId:
        type: integer
      sortOrder:
        type: integer
    type: object
  SeriesData:
    properties:
      data:
        $ref: "#/definitions/Series"
      errors:
        $ref: "#/definitions/JSONErrors"
        description: Informative error messages (optional)
    type: object
  SeriesEpisodes:
    properties:
      data:
        items:
          $ref: "#/definitions/Episode"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
      links:
        $ref: "#/definitions/Links"
  SeriesEpisodesQuery:
    properties:
      data:
        items:
          $ref: "#/definitions/Episode"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
      links:
        $ref: "#/definitions/Links"
  SeriesEpisodesQueryParams:
    properties:
      data:
        items:
          type: string
        type: array
  SeriesEpisodesSummary:
    properties:
      airedEpisodes:
        description: Number of all aired episodes for this series
        type: string
      airedSeasons:
        items:
          type: string
        type: array
      dvdEpisodes:
        description: Number of all dvd episodes for this series
        type: string
      dvdSeasons:
        items:
          type: string
        type: array
    type: object
  SeriesImageQueryResult:
    properties:
      fileName:
        type: string
      id:
        type: integer
      keyType:
        type: string
      languageId:
        type: integer
      ratingsInfo:
        properties:
          average:
            description: Average rating for the given record.
            type: number
          count:
            description: Number of ratings for the given record.
            type: integer
        type: object
      resolution:
        type: string
      subKey:
        type: string
      thumbnail:
        type: string
    type: object
  SeriesImageQueryResults:
    properties:
      data:
        items:
          $ref: "#/definitions/SeriesImageQueryResult"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
  SeriesImagesCount:
    properties:
      fanart:
        type: integer
      poster:
        type: integer
      season:
        type: integer
      seasonwide:
        type: integer
      series:
        type: integer
    type: object
  SeriesImagesCounts:
    properties:
      data:
        $ref: "#/definitions/SeriesImagesCount"
  SeriesImagesQueryParam:
    properties:
      keyType:
        type: string
      languageId:
        type: string
      resolution:
        items:
          type: string
        type: array
      subKey:
        items:
          type: string
        type: array
  SeriesImagesQueryParams:
    properties:
      data:
        items:
          $ref: "#/definitions/SeriesImagesQueryParam"
        type: array
  SeriesSearchResult:
    properties:
      aliases:
        items:
          type: string
        type: array
      banner:
        type: string
      firstAired:
        type: string
      id:
        type: integer
      image:
        type: string
      network:
        type: string
      overview:
        type: string
      poster:
        type: string
      seriesName:
        type: string
      slug:
        type: string
      status:
        type: string
    type: object
  SeriesSearchResults:
    properties:
      data:
        items:
          $ref: "#/definitions/SeriesSearchResult"
        type: array
  Token:
    properties:
      token:
        type: string
  Update:
    properties:
      id:
        type: integer
      lastUpdated:
        type: integer
    type: object
  UpdateData:
    properties:
      data:
        items:
          $ref: "#/definitions/Update"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
    type: object
  UpdateDataQueryParams:
    properties:
      data:
        items:
          type: string
        type: array
    type: object
  UpdatedMovies:
    properties:
      movies:
        items:
          type: integer
        type: array
  User:
    properties:
      favoritesDisplaymode:
        type: string
      language:
        type: string
      userName:
        type: string
    type: object
  UserData:
    properties:
      data:
        $ref: "#/definitions/User"
    type: object
  UserFavorites:
    properties:
      favorites:
        items:
          type: string
        type: array
    type: object
  UserFavoritesData:
    properties:
      data:
        $ref: "#/definitions/UserFavorites"
      errors:
        $ref: "#/definitions/JSONErrors"
    type: object
  UserRatings:
    properties:
      rating:
        type: integer
      ratingItemId:
        type: integer
      ratingType:
        type: string
    type: object
  UserRatingsData:
    properties:
      data:
        items:
          $ref: "#/definitions/UserRatings"
        type: array
      errors:
        $ref: "#/definitions/JSONErrors"
      links:
        $ref: "#/definitions/Links"
    type: object
  UserRatingsDataNoLinks:
    properties:
      data:
        items:
          $ref: "#/definitions/UserRatings"
        type: array
    type: object
  UserRatingsDataNoLinksEmptyArray:
    properties:
      data:
        items: {}
        type: array
    type: object
  UserRatingsQueryParams:
    properties:
      data:
        items:
          type: string
        type: array
    type: object
