Skip to content

TheTVDB API v3 API

by thetvdb.com

API keyHTTPSMedia
Open documentation ↗

Overview

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.

TheTVDB API v3 is a media API from thetvdb.com. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 31 endpoints.

At a glance

Authentication
API key
HTTPS
Yes
CORS
Unknown
Category
Media
Version
3.0.0
Endpoints
31
Spec updated
2021-06-21

Endpoints

MethodPathWhat it does
GET/episodes/{id}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 fut
GET/languagesAll available languages. These language abbreviations can be used in the `Accept-Language` header for routes that return translation records.
GET/languages/{id}Information about a particular language, given the language ID.
POST/loginReturns 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 re
GET/movies/{id}Returns a movies records that contains all information known about a particular movies id.
GET/movieupdatesReturns all movies ids updated since a given timestamp.
GET/refresh_tokenRefreshes 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 on
GET/search/seriesAllows the user to search for a series based on the following parameters.
GET/search/series/paramsReturns an array of parameters to query by in the `/search/series` route.
GET/series/{id}Returns a series records that contains all information known about a particular series id.
GET/series/{id}/actorsReturns actors for the given series id
GET/series/{id}/episodesAll episodes for a given series. Paginated with 100 results per page.
GET/series/{id}/episodes/queryThis route allows the user to query against episodes for the given series. The response is a paginated array of episode records.
GET/series/{id}/episodes/query/paramsReturns the allowed query keys for the `/series/{id}/episodes/query` route
GET/series/{id}/episodes/summaryReturns a summary of the episodes and seasons available for the series.
GET/series/{id}/filterReturns a series records, filtered by the supplied comma-separated list of keys. Query keys can be found at the `/series/{id}/filter/params` route.
GET/series/{id}/filter/paramsReturns the list of keys available for the `/series/{id}/filter` route
GET/series/{id}/imagesReturns a summary of the images for a particular series
GET/series/{id}/images/queryQuery images for the given series ID.
GET/series/{id}/images/query/paramsReturns the allowed query keys for the `/series/{id}/images/query` route. Contains a parameter record for each unique `keyType`, listing values that will return
GET/updated/queryReturns an array of series that have changed in a maximum of one week blocks since the provided `fromTime`.
GET/updated/query/paramsReturns an array of valid query keys for the `/updated/query/params` route.
GET/userReturns basic information about the currently authenticated user.
GET/user/favoritesReturns an array of favorite series for a given user, will be a blank array if no favorites exist.
PUT/user/favorites/{id}Adds the supplied series ID to the user’s favorite’s list and returns the updated list.
DELETE/user/favorites/{id}Deletes the given series ID from the user’s favorite’s list and returns the updated list.
GET/user/ratingsReturns an array of ratings for the given user.
GET/user/ratings/queryReturns an array of ratings for a given user that match the query.
GET/user/ratings/query/paramsReturns a list of query params for use in the `/user/ratings/query` route.
DELETE/user/ratings/{itemType}/{itemId}This route deletes a given rating of a given type.
PUT/user/ratings/{itemType}/{itemId}/{itemRating}This route updates a given rating of a given type.

Questions

Does the TheTVDB API v3 API need an API key?

Yes. The TheTVDB API v3 API uses API key authentication; the documentation explains how to get credentials.

Does the TheTVDB API v3 API support HTTPS?

Yes, the TheTVDB API v3 API is served over HTTPS.

How many endpoints does the TheTVDB API v3 API have?

Its OpenAPI description lists 31 endpoints in version 3.0.0. All of them are shown on this page.

What are alternatives to the TheTVDB API v3 API?

Other Media APIs include SiriKit Cloud Media, Radio & Music Services, Spotify Web API, setlist.fm API, NBA Stats API.

Compare alternatives →

SiriKit Cloud Media

Media

Add intelligent features with Apple Intelligence, machine learning, and related technologies.

No auth6 endpoints

Radio & Music Services

Media

We encapsulate Radio & Music business logic for iPlayer Radio and BBC Music products on all platforms. We add value by reliably providing the right blend of metadata needed by clients.

No auth75 endpoints

Spotify Web API

Media

You can use Spotify's Web API to discover music and podcasts, manage your Spotify library, control audio playback, and much more. Browse our available Web API endpoints using the sidebar at left, or via the navigation bar on top of this page on smaller screens. In order to make successful Web API requests your app will need a valid access token. One can be obtained through <a href="https://developer.spotify.com/documentation/general/guides/authorization-guide/">OAuth 2.0</a>. The base URI for all Web API requests is `https://api.spotify.com/v1`. Need help? See our <a href="https://developer.spotify.com/documentation/web-api/guides/">Web API guides</a> for more information, or visit the <a href="https://community.spotify.com/t5/Spotify-for-Developers/bd-p/Spotify_Developer">Spotify for Developers community forum</a> to ask questions and connect with other developers.

OAuth88 endpoints

setlist.fm API

Media

<p> The setlist.fm API has been designed to give you easy access to setlist data in order to build fancy websites and other applications. Before starting to use the API, be sure to ... <ol> <li>... understand how setlist.fm works (the <a href="https://www.setlist.fm/faq">FAQ</a> and the <a href="https://www.setlist.fm/guidelines">Guidelines</a> are a good starting point),</li> <li>... read this documentation carefully and</li> <li>... <a href="https://www.setlist.fm/settings/api">apply for an API key</a> (link for logged in users only) - if you're no registered user yet, then <a href="https://www.setlist.fm/signup">register first</a> (it's free).</li> </ol> </p> <p> If this documentation isn't enough or if you've got other things you'd like to tell us about the API, visit the <a href="https://www.setlist.fm/forum/setlistfm/setlistfm-api">API Forum</a>. </p> <p> Note that the setlist.fm API is, according to the <a href="https://www.setlist.fm/help/api-terms">API terms of service</a>, only free for non-commercial projects. If you're interested in using the API for commercial purposes, <a href="https://www.setlist.fm/contact">contact us</a>. </p> <h2>About this Service</h2> <p> This service provides methods to get both setlists and components of setlists such as artists, cities, countries or venues. </p> <h2>Supported Content Types</h2> <p> The REST service currently supports XML (default) and JSON content. </p> <p> To receive a JSON response, set the <code>Accept</code> <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.1">header</a> to <em>application/json</em>. </p> <h2>Internationalization</h2> <p> <small>(Please note that this is an experimental feature and does not work for all cities!)</small> </p> <p> Most of the featured methods honor the <code>Accept-Language</code> <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.4">header</a>. This header is used for localizing cities and countries. The default language is English (en), but you can provide any of the languages Spanish (es), French (fr), German (de), Portuguese (pt), Turkish (tr), Italian (it) or Polish (pl). </p> <p> E.g. if you search a setlist for a concert that took place in Vienna and you pass &quot;de&quot; as header, you'll get <em>&quot;Wien, &Ouml;sterreich&quot;</em> instead of <em>&quot;Vienna, Austria&quot;</em>.<br/> This also works if you use a different language than the country's native language. </p> <p> E.g. for a concert in New York, you'll get <em>&quot;Nueva York, Estados Unidos&quot;</em> instead of <em>&quot;New York, United States&quot;</em> if you pass &quot;es&quot; as language. </p> <h2>API Keys</h2> API keys (<a href="https://www.setlist.fm/settings/api">application form</a>) must be included in the request with the <code>x-api-key</code> header. <h2>Version History</h2> <table class="table table-bordered table-versions"> <thead> <tr> <th>Version</th> <th>Docs</th> <th>End of Service</th> </tr> </thead> <tbody> <tr> <td><strong>1.0</strong></td> <td><a href="/docs/1.0">Docs</a></td> <td>-</li> </tr> <tr> <td><strong>0.1</strong></td> <td></td> <td>December 31, 2017</li> </tr> </tbody> </table>

No auth15 endpoints

NBA Stats API

Media

The destination for current and historic NBA statistics.

No auth91 endpoints

APOD

Media

This endpoint structures the APOD imagery and associated metadata so that it can be repurposed for other applications. In addition, if the concept_tags parameter is set to True, then keywords derived from the image explanation are returned. These keywords could be used as auto-generated hashtags for twitter or instagram feeds; but generally help with discoverability of relevant imagery

API key1 endpoints

Listed from APIs.guru (CC0).