Trakt API
At Trakt, we collect lots of interesting information about what tv shows and movies everyone is watching. Part of the fun with such data is making it available for anyone to mash up and use on their own site or app. The Trakt API was made just for this purpose. It is very easy to use, you basically call a URL and get some JSON back.
More complex API calls (such as adding a movie or show to your collection) involve sending us data. These are still easy to use, you simply POST some JSON data to a specific URL.
Make sure to check out the and sections for more info on what needs to be sent with each API call. Also check out the section insight into the features Trakt supports.
Create an App
To use the Trakt API, you'll need to .
Stay Connected
API discussion and bugs should be posted in the and watch the repository if you'd like to get notifications. Make sure to follow our and too.
API URL
The API should always be accessed over SSL.
If you would like to use our sandbox environment to not fill production with test data, use this URL over SSL. Note: Staging is a completely separate environment, so you'll need to .
Verbs
The API uses restful verbs.
Status Codes
The API will respond with one of the following HTTP status codes.
Required Headers
You'll need to send some headers when making API calls to identify your application, set the version and set the content type to JSON.
All POST, PUT, and DELETE methods require a valid OAuth access_token. Some GET calls require OAuth and others will return user specific data if OAuth is sent. Methods that π require or have π optional OAuth will be indicated.
Your OAuth library should take care of sending the auth headers for you, but for reference here's how the Bearer token should be sent.
Rate Limiting
All API methods are rate limited. A 429 HTTP status code is returned when the limit has been exceeded. Check the headers for detailed info, then try your API call in Retry-After seconds.
Here are the current limits. There are separate limits for authed (user level) and unauthed (application level) calls. We'll continue to adjust these limits to optimize API performance for everyone. The goal is to prevent API abuse and poor coding, but allow users to use apps normally.
Locked User Account
A 423 HTTP status code is returned when the OAuth user has a locked user account. Please instruct the user to so we can fix their account. API access will be suspended for the user until we fix their account.
VIP Methods
Some API methods are tagged π₯ VIP Only. A 426 HTTP status code is returned when the user isn't a VIP, indicating they need to sign up for in order to use this method. In your app, please open a browser to X-Upgrade-URL so the user can sign up for Trakt VIP.
Some API methods are tagged π₯ VIP Enhanced. A 420 HTTP status code is returned when the user has exceeded their account limit. Signing up for will increase these limits. If the user isn't a VIP, please open a browser to X-Upgrade-URL so the user can sign up for Trakt VIP. If they are already VIP and still exceeded the limit, please display a message indicating this.
Pagination
Some methods are paginated. Methods with π Pagination will load 1 page of 10 items by default. Methods with π Pagination Optional will load all items by default. In either case, append a query string like ?page={page}&limit={limit} to the URL to influence the results.
All paginated methods will return these HTTP headers.
Extended Info
By default, all methods will return minimal info for movies, shows, episodes, people, and users. Minimal info is typically all you need to match locally cached items and includes the title, year, and ids. However, you can request different extended levels of information by adding ?extended={level} to the URL. Send a comma separated string to get multiple types of extended info.
Note: This returns a lot of extra data, so please only use extended parameters if you actually need them!
Filters
Some movies, shows, calendars, and search methods support additional filters and will be tagged with π Filters. Applying these filters refines the results and helps your users to more easily discover new items.
Add a query string (i.e. ?years=2016&genres=action) with any filters you want to use. Some filters allow multiples which can be sent as comma delimited parameters. For example, ?genres=action,adventure would match the action OR adventure genre.
Note: Make sure to properly URL encode the parameters including spaces and special characters.
Common Filters
Rating Filters
Trakt, TMDB, and IMDB ratings apply to movies, shows, and episodes. Rotten Tomatoes and Metacritic apply to movies.
Movie Filters
Show Filters
CORS
When creating your API app, specify the JavaScript (CORS) origins you'll be using. We use these origins to return the headers needed for CORS.
Dates
All dates will be GMT and returned in the ISO 8601 format like 2014-09-01T09:10:11.000Z. Adjust accordingly in your app for the user's local timezone.
Emojis
We use short codes for emojis like :smiley: and :raised_hands: and render them on the Trakt website using (verion 6.6.0). Methods that support emojis are tagged with π Emojis. For POST methods, you can send standard unicode emojis and we'll automatically convert them to short codes. For GET methods, we'll return the short codes and it's up to your app to convert them back to unicode emojis.
Standard Media Objects
All methods will accept or return standard media objects for movie, show, season, episode, person, and user items. Here are examples for all minimal objects.
movie
show
season
episode
person
user
Images
The standard media objects for all movie, show, season, episode, and person items include an ids object. These ids map to other services like , , , , and .
Most of these services have free APIs you can use to grab lots of great looking images. Hereβs a chart to help you find the best artwork for your app.
Website Media Links
There are several ways to construct direct links to media on the Trakt website. The website itself uses slugs so the URLs are more readable.
You can also create links using the Trakt, IMDB, TMDB, or TVDB IDs. We recommend using the Trakt ID if possible since that will always have full coverage. If you use the search url without an id_type it will return search results if multiple items are found.
Third Party Libraries
All of the libraries listed below are user contributed. If you find a bug or missing feature, please contact the developer directly. These might help give your project a head start, but we can't provide direct support for any of these libraries. Please help us keep this list up to date.
Terminology
Trakt has a lot of features and here's a chart to help explain the differences between some of them.
https://api.trakt.tvhttps://api-staging.trakt.tv{ "title": "Batman Begins", "year": 2005, "ids": { "trakt": 1, "slug": "batman-begins-2005", "imdb": "tt0372784", "tmdb": 272 }}{ "title": "Breaking Bad", "year": 2008, "ids": { "trakt": 1, "slug": "breaking-bad", "tvdb": 81189, "imdb": "tt0903747", "tmdb": 1396 }}{ "number": 0, "ids": { "trakt": 1, "tvdb": 439371, "tmdb": 3577 }}{ "season": 1, "number": 1, "title": "Pilot", "ids": { "trakt": 16, "tvdb": 349232, "imdb": "tt0959621", "tmdb": 62085 }}{ "name": "Bryan Cranston", "ids": { "trakt": 142, "slug": "bryan-cranston", "imdb": "nm0186505", "tmdb": 17419 }}{ "username": "sean", "private": false, "name": "Sean Rudford", "vip": true, "vip_ep": true, "ids": { "slug": "sean" }}- Homepage
- https://api.apis.guru/v2/specs/trakt.tv/1.0.0.json
- Provider
- trakt.tv
- OpenAPI version
- 3.0.0
- Spec (JSON)
- https://api.apis.guru/v2/specs/trakt.tv/1.0.0/openapi.json
- Spec (YAML)
- https://api.apis.guru/v2/specs/trakt.tv/1.0.0/openapi.yaml
Tools (185)
Extracted live via the executor SDK.
-
authenticationDevices.generateNewDeviceCodesGenerate new codes to start the device authentication process. The
device_codeandintervalwill be used later to poll for theaccess_token. Theuser_codeandverification_urlshould be presented to the user as mentioned in the flow steps above.JSON POST Data
-
authenticationDevices.pollForTheAccessTokenUse the
device_codeand poll at theinterval(in seconds) to check if the user has authorized you app. Useexpires_into stop polling after that many seconds, and gracefully instruct the user to restart the process. It is important to poll at the correct interval and also stop polling when expired.When you receive a
200success response, save theaccess_tokenso your app can authenticate the user in methods that require it. Theaccess_tokenis valid for 3 months. Save and use therefresh_tokento get a newaccess_tokenwithout asking the user to re-authenticate. Check below for all the error codes that you should handle.JSON POST Data
Status Codes
This method will send various HTTP status codes that you should handle accordingly.
-
authenticationOAuth.authorizeApplicationConstruct then redirect to this URL. The Trakt website will request permissions for your app, which the user needs to approve. If the user isn't signed into Trakt, it will ask them to do so. Send
signup=trueif you prefer the account sign up page to be the default.Note: You should use the normal hostname when creating this URL and not the API URL.
-
authenticationOAuth.exchangeRefreshTokenForAccessTokenUse the
refresh_tokento get a newaccess_tokenwithout asking the user to re-authenticate. Theaccess_tokenis valid for 3 months before it needs to be refreshed again.JSON POST Data
-
authenticationOAuth.revokeAnAccessTokenAn
access_tokencan be revoked when a user signs out of their Trakt account in your app. This is not required, but might improve the user experience so the user doesn't have an unused app connection hanging around.JSON POST Data
-
calendars.getCalendarsAllDvdStartDateDaysβ¨ Extended Info π Filters
Returns all movies with a DVD release date during the time period specified.
-
calendars.getCalendarsAllMoviesStartDateDaysβ¨ Extended Info π Filters
Returns all movies with a release date during the time period specified.
-
calendars.getCalendarsAllShowsNewStartDateDaysβ¨ Extended Info π Filters
Returns all new show premieres (season 1, episode 1) airing during the time period specified.
-
calendars.getCalendarsAllShowsPremieresStartDateDaysβ¨ Extended Info π Filters
Returns all show premieres (any season, episode 1) airing during the time period specified.
-
calendars.getCalendarsAllShowsStartDateDaysβ¨ Extended Info π Filters
Returns all shows airing during the time period specified.
-
calendars.getDvdReleasesπ OAuth Required β¨ Extended Info π Filters
Returns all movies with a DVD release date during the time period specified.
-
calendars.getMoviesπ OAuth Required β¨ Extended Info π Filters
Returns all movies with a release date during the time period specified.
-
calendars.getNewShowsπ OAuth Required β¨ Extended Info π Filters
Returns all new show premieres (season 1, episode 1) airing during the time period specified.
-
calendars.getSeasonPremieresπ OAuth Required β¨ Extended Info π Filters
Returns all show premieres (any season, episode 1) airing during the time period specified.
-
calendars.getShowsπ OAuth Required β¨ Extended Info π Filters
Returns all shows airing during the time period specified.
-
certifications.getCertificationsGet a list of all certifications, including names, slugs, and descriptions.
-
checkin.checkIntoAnItemπ OAuth Required
Check into a movie or episode. This should be tied to a user action to manually indicate they are watching something. The item will display as watching on the site, then automatically switch to watched status once the duration has elapsed. A unique history
id(64-bit integer) will be returned and can be used to reference this checkin directly.JSON POST Data
Sharing
The
sharingobject is optional and will apply the user's settings if not sent. Ifsharingis sent, each key will override the user's setting for that social network. Sendtrueto post orfalseto not post on the indicated social network. You can see which social networks a user has connected with the method.Note: If a checkin is already in progress, a
409HTTP status code will returned. The response will contain anexpires_attimestamp which is when the user can check in again.* -
checkin.deleteAnyActiveCheckinsπ OAuth Required
Removes any active checkins, no need to provide a specific item.
-
comments.deleteACommentOrReplyπ OAuth Required
Delete a single comment. The OAuth user must match the author of the comment in order to delete it. If not, a
401HTTP status code is returned. The comment must also be less than 2 weeks old or have 0 replies. If not, a409HTTP status is returned. -
comments.getACommentOrReplyπ Emojis
Returns a single comment and indicates how many replies it has. Use to get the actual replies.
-
comments.getAllUsersWhoLikedACommentπ Pagination
Returns all users who liked a comment. If you only need the
repliescount, the maincommentobject already has that, so no need to use this method. -
comments.getRecentlyCreatedCommentsπ Pagination β¨ Extended Info π Emojis
Returns the most recently written comments across all of Trakt. You can optionally filter by the
comment_typeand mediatypeto limit what gets returned. If you want toinclude_repliesthat will return replies in place alongside top level comments. -
comments.getRecentlyUpdatedCommentsπ Pagination β¨ Extended Info π Emojis
Returns the most recently updated comments across all of Trakt. You can optionally filter by the
comment_typeand mediatypeto limit what gets returned. If you want toinclude_repliesthat will return replies in place alongside top level comments. -
comments.getRepliesForACommentπ Pagination π Emojis
Returns all replies for a comment. It is possible these replies could have replies themselves, so in that case you would just call again with the new comment
id. -
comments.getTheAttachedMediaItem⨠Extended Info
Returns the media item this comment is attached to. The media type can be
movie,show,season,episode, orlistand it also returns the standard media object for that media type. -
comments.getTrendingCommentsπ Pagination β¨ Extended Info π Emojis
Returns all comments with the most likes and replies over the last 7 days. You can optionally filter by the
comment_typeand mediatypeto limit what gets returned. If you want toinclude_repliesthat will return replies in place alongside top level comments. -
comments.likeACommentπ OAuth Required
Votes help determine popular comments. Only one like is allowed per comment per user.
-
comments.postACommentπ OAuth Required π Emojis
Add a new comment to a movie, show, season, episode, or list. Make sure to allow and encourage spoilers to be indicated in your app and follow the rules listed above.
JSON POST Data
Sharing
The
sharingobject is optional and will apply the user's settings if not sent. Ifsharingis sent, each key will override the user's setting for that social network. Sendtrueto post orfalseto not post on the indicated social network. You can see which social networks a user has connected with the method. -
comments.postAReplyForACommentπ OAuth Required π Emojis
Add a new reply to an existing comment. Make sure to allow and encourage spoilers to be indicated in your app and follow the rules listed above.
JSON POST Data
-
comments.removeLikeOnACommentπ OAuth Required
Remove a like on a comment.
-
comments.updateACommentOrReplyπ OAuth Required π Emojis
Update a single comment. The OAuth user must match the author of the comment in order to update it. If not, a
401HTTP status is returned.JSON POST Data
-
countries.getCountriesGet a list of all countries, including names and codes.
-
episodes.getAllEpisodeCommentsπ Pagination π Emojis
Returns all top level comments for an episode. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, mostreplies,highestrated,lowestrated, and mostplays. -
episodes.getAllEpisodeTranslationsReturns all translations for an episode, including language and translated values for title and overview.
-
episodes.getAllPeopleForAnEpisode⨠Extended Info
Returns all
castandcrewfor an episode. Eachcastmember will have acharactersarray and a standardpersonobject.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting, andediting(if there are people for those crew positions). Each of those members will have ajobsarray and a standardpersonobject.Guest Stars
If you add
?extended=guest_starsto the URL, it will return all guest stars that appeared in the episode.Note: This returns a lot of data, so please only use this extended parameter if you actually need it!
-
episodes.getASingleEpisodeForAShow⨠Extended Info
Returns a single episode's details. All date and times are in UTC and were calculated using the episode's
air_dateand show'scountryandair_time.Note: If the
first_airedis unknown, it will be set tonull. -
episodes.getEpisodeRatingsReturns rating (between 0 and 10) and distribution for an episode.
-
episodes.getEpisodeStatsReturns lots of episode stats.
-
episodes.getListsContainingThisEpisodeπ Pagination π Emojis
Returns all lists that contain this episode. By default,
personallists are returned sorted by the mostpopular. -
episodes.getShowsIdSeasonsSeasonEpisodesEpisodeWatching⨠Extended Info
Returns all users watching this episode right now.
-
genres.getGenresGet a list of all genres, including names and slugs.
-
languages.getLanguagesGet a list of all langauges, including names and codes.
-
lists.getAllListCommentsπ Pagination π Emojis
Returns all top level comments for a list. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, and mostreplies. -
lists.getAllUsersWhoLikedAListπ Pagination
Returns all users who liked a list.
-
lists.getItemsOnAListπ Pagination Optional β¨ Extended Info π Emojis
Get all items on a personal list. Items can be a
movie,show,season,episode, orperson. You can optionally specify thetypeparameter with a single value or comma delimited string for multiple item types.Notes
Each list item contains a
notesfield with text entered by the user.Sorting Headers
All list items are sorted by ascending
rank. We also sendX-Sort-ByandX-Sort-Howheaders which can be used to custom sort the list in your app based on the user's preference. Values forX-Sort-Byincluderank,added,title,released,runtime,popularity,percentage,votes,my_rating,random,watched, andcollected. Values forX-Sort-Howincludeascanddesc. -
lists.getListπ Emojis
Returns a single list. Use the method to get the actual items this list contains.
Note: You must use an integer
id, and only public lists will return data. -
lists.getPopularListsπ Pagination π Emojis
Returns the most popular lists. Popularity is calculated using total number of likes and comments.
-
lists.getTrendingListsπ Pagination π Emojis
Returns all lists with the most likes and comments over the last 7 days.
-
movies.getAllMovieAliasesReturns all title aliases for a movie. Includes country where name is different.
-
movies.getAllMovieCommentsπ Pagination π Emojis
Returns all top level comments for a movie. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, mostreplies,highestrated,lowestrated, and mostplays. -
movies.getAllMovieReleasesReturns all releases for a movie including country, certification, release date, release type, and note. The release type can be set to
unknown,premiere,limited,theatrical,digital,physical, ortv. Thenotemight have optional info such as the film festival name for apremiererelease or Blu-ray specs for aphysicalrelease. We pull this info from . -
movies.getAllMovieTranslationsReturns all translations for a movie, including language and translated values for title, tagline and overview.
-
movies.getAllPeopleForAMovie⨠Extended Info
Returns all
castandcrewfor a movie. Eachcastmember will have acharactersarray and a standardpersonobject.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting, andediting(if there are people for those crew positions). Each of those members will have ajobsarray and a standardpersonobject. -
movies.getAMovie⨠Extended Info
Returns a single movie's details.
Note: When getting
fullextended info, thestatusfield can have a value ofreleased,in production,post production,planned,rumored, orcanceled. -
movies.getListsContainingThisMovieπ Pagination π Emojis
Returns all lists that contain this movie. By default,
personallists are returned sorted by the mostpopular. -
movies.getMovieRatingsReturns rating (between 0 and 10) and distribution for a movie.
-
movies.getMovieStatsReturns lots of movie stats.
-
movies.getMovieStudiosReturns all studios for a movie.
-
movies.getPopularMoviesπ Pagination β¨ Extended Info π Filters
Returns the most popular movies. Popularity is calculated using the rating percentage and the number of ratings.
-
movies.getRecentlyUpdatedMoviesπ Pagination β¨ Extended Info
Returns all movies updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
movies.getRecentlyUpdatedMovieTraktIDsπ Pagination
Returns all movie Trakt IDs updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
movies.getRelatedMoviesπ Pagination β¨ Extended Info
Returns related and similar movies.
-
movies.getTheMostAnticipatedMoviesπ Pagination β¨ Extended Info π Filters
Returns the most anticipated movies based on the number of lists a movie appears on.
-
movies.getTheMostCollectedMoviesπ Pagination β¨ Extended Info π Filters
Returns the most collected (unique users) movies in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
movies.getTheMostPlayedMoviesπ Pagination β¨ Extended Info π Filters
Returns the most played (a single user can watch multiple times) movies in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
movies.getTheMostRecommendedMoviesπ Pagination β¨ Extended Info π Filters
Returns the most recommended movies in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
movies.getTheMostWatchedMoviesπ Pagination β¨ Extended Info π Filters
Returns the most watched (unique users) movies in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
movies.getTheWeekendBoxOffice⨠Extended Info
Returns the top 10 grossing movies in the U.S. box office last weekend. Updated every Monday morning.
-
movies.getTrendingMoviesπ Pagination β¨ Extended Info π Filters
Returns all movies being watched right now. Movies with the most users are returned first.
-
movies.getUsersWatchingRightNow⨠Extended Info
Returns all users watching this movie right now.
-
networks.getNetworksGet a list of all TV networks, including the name.
-
people.getASinglePerson⨠Extended Info
Returns a single person's details.
Gender
If available, the
genderproperty will be set tomale,female, ornon_binary.Known For Department
If available, the
known_for_departmentproperty will be set toproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting, orediting. Many people have credits across departments,known_forallows you to select their default credits more accurately. -
people.getListsContainingThisPersonπ Pagination π Emojis
Returns all lists that contain this person. By default,
personallists are returned sorted by the mostpopular. -
people.getMovieCredits⨠Extended Info
Returns all movies where this person is in the
castorcrew. Eachcastobject will have acharactersarray and a standardmovieobject.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting, andediting(if there are people for those crew positions). Each of those members will have ajobsarray and a standardmovieobject. -
people.getRecentlyUpdatedPeopleπ Pagination β¨ Extended Info
Returns all people updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
people.getRecentlyUpdatedPeopleTraktIDsπ Pagination
Returns all people Trakt IDs updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
people.getShowCredits⨠Extended Info
Returns all shows where this person is in the
castorcrew, including theepisode_countfor which they appear. Eachcastobject will have acharactersarray and a standardshowobject. Ifseries_regularistrue, this person is a series regular and not simply a guest star.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting,editing, andcreated by(if there are people for those crew positions). Each of those members will have ajobsarray and a standardshowobject. -
recommendations.getMovieRecommendationsπ OAuth Required β¨ Extended Info
Movie recommendations for a user. By default,
10results are returned. You can send alimitto get up to100results per page. Setignore_collected=trueto filter out movies the user has already collected orignore_watchlisted=trueto filter out movies the user has already watchlisted. -
recommendations.getShowRecommendationsπ OAuth Required β¨ Extended Info
TV show recommendations for a user. By default,
10results are returned. You can send alimitto get up to100results per page. Setignore_collected=trueto filter out shows the user has already collected orignore_watchlisted=trueto filter out shows the user has already watchlisted. -
recommendations.hideAMovieRecommendationπ OAuth Required
Hide a movie from getting recommended anymore.
-
recommendations.hideAShowRecommendationπ OAuth Required
Hide a show from getting recommended anymore.
-
scrobble.pauseWatchingInAMediaCenterπ OAuth Required
Use this method when the video is paused. The playback progress will be saved and can be used to resume the video from this exact position. Unpause a video by calling the method again.
JSON POST Data
-
scrobble.startWatchingInAMediaCenterπ OAuth Required
Use this method when the video initially starts playing or is unpaused. This will remove any playback progress if it exists.
Note: A watching status will auto expire after the remaining runtime has elapsed. There is no need to call this method again while continuing to watch the same item.
JSON POST Data
-
scrobble.stopOrFinishWatchingInAMediaCenterπ OAuth Required
Use this method when the video is stopped or finishes playing on its own. If the progress is above 80%, the video will be scrobbled and the
actionwill be set to scrobble. A unique historyid(64-bit integer) will be returned and can be used to reference thisscrobbledirectly.If the progress is less than 80%, it will be treated as a pause and the
actionwill be set to pause. The playback progress will be saved and can be used to resume the video from this exact position.Note: If you prefer to use a threshold higher than 80%, you should use yourself so it doesn't create duplicate scrobbles.
JSON POST Data
Note: If the same item was just scrobbled, a
409HTTP status code will returned to avoid scrobbling a duplicate. The response will contain awatched_attimestamp when the item was last scrobbled and aexpires_attimestamp when the item can be scrobbled again. -
search.getIdLookupResultsπ Pagination β¨ Extended Info
Lookup items by their Trakt, IMDB, TMDB, or TVDB ID. If you use the search url without a
typeit might return multiple items if theid_typeis not globally unique. Specify thetypeof results by sending a single value or a comma delimited string for multiple types. -
search.getTextQueryResultsπ Pagination β¨ Extended Info π Filters
Search all text fields that a media object contains (i.e. title, overview, etc). Results are ordered by the most relevant score. Specify the
typeof results by sending a single value or a comma delimited string for multiple types.Special Characters
Our search engine (Solr) gives the following characters special meaning when they appear in a query:
+ - && || ! ( ) { } [ ] ^ " ~ * ? : /To interpret any of these characters literally (and not as a special character), precede the character with a backslash
\character.Search Fields
By default, all text fields are used to search for the
query. You can optionally specify thefieldsparameter with a single value or comma delimited string for multiple fields. Eachtypehas specificfieldsthat can be specified. This can be useful if you want to support more strict searches (i.e. title only). -
seasons.getAllPeopleForASeason⨠Extended Info
Returns all
castandcrewfor a season, including theepisode_countfor which they appear. Eachcastmember will have acharactersarray and a standardpersonobject.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting, andediting(if there are people for those crew positions).. Each of those members will have ajobsarray and a standardpersonobject.Guest Stars
If you add
?extended=guest_starsto the URL, it will return all guest stars that appeared in at least 1 episode of the season.Note: This returns a lot of data, so please only use this extended parameter if you actually need it!
-
seasons.getAllSeasonCommentsπ Pagination π Emojis
Returns all top level comments for a season. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, mostreplies,highestrated,lowestrated, mostplays, and highestwatchedpercentage. -
seasons.getAllSeasonsForAShow⨠Extended Info
Returns all seasons for a show including the number of episodes in each season.
Episodes
If you add
?extended=episodesto the URL, it will return all episodes for all seasons.Note: This returns a lot of data, so please only use this extended parameter if you actually need it!
-
seasons.getAllSeasonTranslationsReturns all translations for an season, including language and translated values for title and overview.
-
seasons.getListsContainingThisSeasonπ Pagination π Emojis
Returns all lists that contain this season. By default,
personallists are returned sorted by the mostpopular. -
seasons.getSeasonRatingsReturns rating (between 0 and 10) and distribution for a season.
-
seasons.getSeasonStatsReturns lots of season stats.
-
seasons.getShowsIdSeasonsSeasonWatching⨠Extended Info
Returns all users watching this season right now.
-
seasons.getSingleSeasonForAShow⨠Extended Info
Returns all episodes for a specific season of a show.
Translations
If you'd like to included translated episode titles and overviews in the response, include the
translationsparameter in the URL. Include all languages by setting the parameter toallor use a specific 2 digit country language code to further limit it.Note: This returns a lot of data, so please only use this parameter if you actually need it!
-
shows.getAllPeopleForAShow⨠Extended Info
Returns all
castandcrewfor a show, including theepisode_countfor which they appears. Eachcastmember will have acharactersarray and a standardpersonobject.The
crewobject will be broken up by department intoproduction,art,crew,costume & make-up,directing,writing,sound,camera,visual effects,lighting,editing, andcreated by(if there are people for those crew positions). Each of those members will have ajobsarray and a standardpersonobject.Guest Stars
If you add
?extended=guest_starsto the URL, it will return all guest stars that appeared in at least 1 episode of the show.Note: This returns a lot of data, so please only use this extended parameter if you actually need it!
-
shows.getAllShowAliasesReturns all title aliases for a show. Includes country where name is different.
-
shows.getAllShowCertificationsReturns all content certifications for a show, including the country.
-
shows.getAllShowCommentsπ Pagination π Emojis
Returns all top level comments for a show. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, mostreplies,highestrated,lowestrated, mostplays, and highestwatchedpercentage. -
shows.getAllShowTranslationsReturns all translations for a show, including language and translated values for title and overview.
-
shows.getASingleShow⨠Extended Info
Returns a single shows's details. If you request extended info, the
airsobject is relative to the show's country. You can use theday,time, andtimezoneto construct your own date then convert it to whatever timezone your user is in.Note: When getting
fullextended info, thestatusfield can have a value ofreturning series(airing right now),continuing(airing right now),in production(airing soon),planned(in development),upcoming(in development),pilot,canceled, orended. -
shows.getLastEpisode⨠Extended Info
Returns the most recently aired episode. If no episode is found, a
204HTTP status code will be returned. -
shows.getListsContainingThisShowπ Pagination π Emojis
Returns all lists that contain this show. By default,
personallists are returned sorted by the mostpopular. -
shows.getNextEpisode⨠Extended Info
Returns the next scheduled to air episode. If no episode is found, a
204HTTP status code will be returned. -
shows.getPopularShowsπ Pagination β¨ Extended Info π Filters
Returns the most popular shows. Popularity is calculated using the rating percentage and the number of ratings.
-
shows.getRecentlyUpdatedShowsπ Pagination β¨ Extended Info
Returns all shows updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
shows.getRecentlyUpdatedShowTraktIDsπ Pagination
Returns all show Trakt IDs updated since the specified UTC date and time. We recommended storing the
X-Start-Dateheader you can be efficient using this method moving forward. By default,10results are returned. You can send alimitto get up to100results per page.Important! The
start_dateis only accurate to the hour, for caching purposes. Please drop the minutes and seconds from your timestamp to help optimize our cached data. For example, use2021-07-17T12:00:00Zand not2021-07-17T12:23:34Z.Note: The
start_datecan only be a maximum of 30 days in the past. -
shows.getRelatedShowsπ Pagination β¨ Extended Info
Returns related and similar shows.
-
shows.getShowCollectionProgressπ OAuth Required
Returns collection progress for a show including details on all aired seasons and episodes. The
next_episodewill be the next episode the user should collect, if there are no upcoming episodes it will be set tonull.By default, any hidden seasons will be removed from the response and stats. To include these and adjust the completion stats, set the
hiddenflag totrue.By default, specials will be excluded from the response. Set the
specialsflag totrueto include season 0 and adjust the stats accordingly. If you'd like to include specials, but not adjust the stats, setcount_specialstofalse.By default, the
last_episodeandnext_episodeare calculated using the lastairedepisode the user has collected, even if they've collected older episodes more recently. To use their last collected episode for these calculations, set thelast_activityflag tocollected.Note: Only aired episodes are used to calculate progress. Episodes in the future or without an air date are ignored.
-
shows.getShowRatingsReturns rating (between 0 and 10) and distribution for a show.
-
shows.getShowsIdWatching⨠Extended Info
Returns all users watching this show right now.
-
shows.getShowStatsReturns lots of show stats.
-
shows.getShowStudiosReturns all studios for a show.
-
shows.getShowWatchedProgressπ OAuth Required
Returns watched progress for a show including details on all aired seasons and episodes. The
next_episodewill be the next episode the user should watch, if there are no upcoming episodes it will be set tonull. If notnull, thereset_atdate is when the user started re-watching the show. Your app can adjust the progress by ignoring episodes with alast_watched_atprior to thereset_at.By default, any hidden seasons will be removed from the response and stats. To include these and adjust the completion stats, set the
hiddenflag totrue.By default, specials will be excluded from the response. Set the
specialsflag totrueto include season 0 and adjust the stats accordingly. If you'd like to include specials, but not adjust the stats, setcount_specialstofalse.By default, the
last_episodeandnext_episodeare calculated using the lastairedepisode the user has watched, even if they've watched older episodes more recently. To use their last watched episode for these calculations, set thelast_activityflag towatched.Note: Only aired episodes are used to calculate progress. Episodes in the future or without an air date are ignored.
-
shows.getTheMostAnticipatedShowsπ Pagination β¨ Extended Info π Filters
Returns the most anticipated shows based on the number of lists a show appears on.
-
shows.getTheMostCollectedShowsπ Pagination β¨ Extended Info π Filters
Returns the most collected (unique users) shows in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
shows.getTheMostPlayedShowsπ Pagination β¨ Extended Info π Filters
Returns the most played (a single user can watch multiple episodes multiple times) shows in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
shows.getTheMostRecommendedShowsπ Pagination β¨ Extended Info π Filters
Returns the most recommended shows in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
shows.getTheMostWatchedShowsπ Pagination β¨ Extended Info π Filters
Returns the most watched (unique users) shows in the specified time
period, defaulting toweekly. All stats are relative to the specific timeperiod. -
shows.getTrendingShowsπ Pagination β¨ Extended Info π Filters
Returns all shows being watched right now. Shows with the most users are returned first.
-
shows.resetShowProgressπ OAuth Required π₯ VIP Only
Reset a show's progress when the user started re-watching the show. You can optionally specify the
reset_atdate to have it calculate progress from that specific date onwards. -
shows.undoResetShowProgressπ OAuth Required π₯ VIP Only
Undo the reset and have watched progress use all watched history for the show.
-
sync.addItemsToCollectionπ OAuth Required
Add items to a user's collection. Accepts shows, seasons, episodes and movies. If only a show is passed, all episodes for the show will be collected. If seasons are specified, all episodes in those seasons will be collected.
Send a
collected_atUTC datetime to mark items as collected in the past. You can also send additional metadata about the media itself to have a very accurate collection. Showcase what is available to watch from your epic HD DVD collection down to your downloaded iTunes movies.Note: You can resend items already in your collection and they will be updated with any new values. This includes the
collected_atand any other metadata.JSON POST Data
Media Object POST Data
-
sync.addItemsToPersonalRecommendationsπ OAuth Required π Emojis
If the user only had 50 movies and TV shows to bring with them on a desert island, what would they be? These recommendations are used to enchance Trakt's social recommendation algorithm. Apps should encourage user's to build their personal recommendations so the algorithm keeps getting better.
Notes
Each recommendation can optionally accept a
notes(255 maximum characters) field explaining why the user recommended the item.Limits
If the user has recommended 50 items already, a
420HTTP error code is returned. This limit applies to all users.JSON POST Data
-
sync.addItemsToWatchedHistoryπ OAuth Required
Add items to a user's watch history. Accepts shows, seasons, episodes and movies. If only a show is passed, all episodes for the show will be added. If seasons are specified, only episodes in those seasons will be added.
Send a
watched_atUTC datetime to mark items as watched in the past. This is useful for syncing past watches from a media center.Note: Please be careful with sending duplicate data. We don't verify the
item+watched_atto ensure it's unique, it is up to your app to veify this and not send duplicate plays.JSON POST Data
Media Object POST Data
-
sync.addItemsToWatchlistπ OAuth Required π Emojis π₯ VIP Enhanced
Add one of more items to a user's watchlist. Accepts shows, seasons, episodes and movies. If only a show is passed, only the show itself will be added. If seasons are specified, all of those seasons will be added.
Notes
Each watchlist item can optionally accept a
notes(255 maximum characters) field with custom text. The user must be a to sendnotes.Limits
If the user's watchlist limit is exceeded, a
420HTTP error code is returned. Use the method to get all limits for a user account. In most cases, upgrading to will increase the limits.JSON POST Data
-
sync.addNewRatingsπ OAuth Required
Rate one or more items. Accepts shows, seasons, episodes and movies. If only a show is passed, only the show itself will be rated. If seasons are specified, all of those seasons will be rated.
Send a
rated_atUTC datetime to mark items as rated in the past. This is useful for syncing ratings from a media center.JSON POST Data
Media Object POST Data
-
sync.getCollectionπ OAuth Required β¨ Extended Info
Get all collected items in a user's collection. A collected item indicates availability to watch digitally or on physical media.
Each
movieobject containscollected_atandupdated_attimestamps. Since users can set custom dates when they collected movies, it is possible forcollected_atto be in the past. We also includeupdated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the movie if you see a newer timestamp.Each
showobject containslast_collected_atandlast_updated_attimestamps. Since users can set custom dates when they collected episodes, it is possible forlast_collected_atto be in the past. We also includelast_updated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the show if you see a newer timestamp.If you add
?extended=metadatato the URL, it will return the additionalmedia_type,resolution,hdr,audio,audio_channelsand '3d' metadata. It will usenullif the metadata isn't set for an item. -
sync.getLastActivityπ OAuth Required
This method is a useful first step in the syncing process. We recommended caching these dates locally, then you can compare to know exactly what data has changed recently. This can greatly optimize your syncs so you don't pull down a ton of data only to see nothing has actually changed.
Account
settings_atis set when the OAuth user updates any of their Trakt settings on the website.followed_atis set when another Trakt user follows or unfollows the OAuth user.following_atis set when the OAuth user follows or unfollows another Trakt user.pending_atis set when the OAuth user follows a private account, which requires their approval.requested_atis set when the OAuth user has a private account and someone requests to follow them. -
sync.getPersonalRecommendationsπ OAuth Required π Pagination Optional β¨ Extended Info π Emojis
If the user only had 50 movies and TV shows to bring with them on a desert island, what would they be? These recommendations are used to enchance Trakt's social recommendation algorithm. Apps should encourage user's to build their personal recommendations so the algorithm keeps getting better.
Notes
Each recommendation contains a
notesfield explaining why the user recommended the item. -
sync.getPlaybackProgressπ OAuth Required π Pagination Optional
Whenever a scrobble is paused, the playback progress is saved. Use this progress to sync up playback across different media centers or apps. For example, you can start watching a movie in a media center, stop it, then resume on your tablet from the same spot. Each item will have the
progresspercentage between 0 and 100.You can optionally specify a
typeto only getmoviesorepisodes.By default, all results will be returned. Pagination is optional and can be used for something like an "on deck" feature, or if you only need a limited data set.
Note: We only save playback progress for the last 6 months.
-
sync.getRatingsπ OAuth Required π Pagination Optional β¨ Extended Info
Get a user's ratings filtered by
type. You can optionally filter for a specificratingbetween 1 and 10. Send a comma separated string forratingif you need multiple ratings. -
sync.getWatchedπ OAuth Required β¨ Extended Info
Returns all movies or shows a user has watched sorted by most plays.
If
typeis set to shows and you add?extended=noseasonsto the URL, it won't return season or episode info.Each
movieandshowobject containslast_watched_atandlast_updated_attimestamps. Since users can set custom dates when they watched movies and episodes, it is possible forlast_watched_atto be in the past. We also includelast_updated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the movies and shows if you see a newer timestamp.Each
showobject contains areset_attimestamp. If notnull, this is when the user started re-watching the show. Your app can adjust the progress by ignoring episodes with alast_watched_atprior to thereset_at. -
sync.getWatchedHistoryπ OAuth Required π Pagination β¨ Extended Info
Returns movies and episodes that a user has watched, sorted by most recent. You can optionally limit the
typetomoviesorepisodes. Theid(64-bit integer) in each history item uniquely identifies the event and can be used to remove individual events by using the method. Theactionwill be set toscrobble,checkin, orwatch.Specify a
typeand traktidto limit the history for just that item. If theidis valid, but there is no history, an empty array will be returned. -
sync.getWatchlistπ OAuth Required π Pagination Optional β¨ Extended Info π Emojis
Returns all items in a user's watchlist filtered by type.
Notes
Each watchlist item contains a
notesfield with text entered by the user.Sorting Headers
By default, all list items are sorted by
rankasc. We sendX-Applied-Sort-ByandX-Applied-Sort-Howheaders to indicate how the results are actually being sorted.We also send
X-Sort-ByandX-Sort-Howheaders which indicate the user's sort preference. Use these to to custom sort the watchlist in your app for more advanced sort abilities we can't do in the API. Values forX-Sort-Byincluderank,added,title,released,runtime,popularity,percentage, andvotes. Values forX-Sort-Howincludeascanddesc.Auto Removal
When an item is watched, it will be automatically removed from the watchlist. For shows and seasons, watching 1 episode will remove the entire show or season.
The watchlist should not be used as a list of what the user is actively watching.
Use a combination of the and methods to get what the user is actively watching.
-
sync.removeAPlaybackItemπ OAuth Required
Remove a playback item from a user's playback progress list. A
404will be returned if theidis invalid. -
sync.removeItemsFromCollectionπ OAuth Required
Remove one or more items from a user's collection.
JSON POST Data
-
sync.removeItemsFromHistoryπ OAuth Required
Remove items from a user's watch history including all watches, scrobbles, and checkins. Accepts shows, seasons, episodes and movies. If only a show is passed, all episodes for the show will be removed. If seasons are specified, only episodes in those seasons will be removed.
You can also send a list of raw history
ids(64-bit integers) to delete single plays from the watched history. The method will return an individualid(64-bit integer) for each history item.JSON POST Data
-
sync.removeItemsFromPersonalRecommendationsπ OAuth Required
Remove items from a user's personal recommendations. These recommendations are used to enchance Trakt's social recommendation algorithm. Apps should encourage user's to build their personal recommendations so the algorithm keeps getting better.
JSON POST Data
-
sync.removeItemsFromWatchlistπ OAuth Required
Remove one or more items from a user's watchlist.
JSON POST Data
-
sync.removeRatingsπ OAuth Required
Remove ratings for one or more items.
JSON POST Data
-
sync.reorderPersonallyRecommendedItemsπ OAuth Required
Reorder all items on a user's personal recommendations by sending the updated
rankof list item ids. Use the method to get all list item ids. -
sync.reorderWatchlistItemsπ OAuth Required
Reorder all items on a user's watchlist by sending the updated
rankof list item ids. Use the method to get all list item ids. -
users.addHiddenItemsπ OAuth Required
Hide items for a specific section. Here's what type of items can hidden for each section.
Hideable Media Objects
| Section | Objects | |---|---|---| |
calendar|movie,show| |progress_watched|show,season| |progress_collected|show,season| |recommendations|movie,show| |comments|user|JSON POST Data
-
users.addItemsToPersonalListπ OAuth Required π Emojis π₯ VIP Enhanced
Add one or more items to a personal list. Items can be movies, shows, seasons, episodes, or people.
Notes
Each list item can optionally accept a
notes(255 maximum characters) field with custom text. The user must be a to sendnotes.Limits
If the user's list item limit is exceeded, a
420HTTP error code is returned. Use the method to get all limits for a user account. In most cases, upgrading to will increase the limits.JSON POST Data
-
users.approveFollowRequestπ OAuth Required
Approve a follower using the
idof the request. If theidis not found, was already approved, or was already denied, a404error will be returned. -
users.createPersonalListπ OAuth Required π₯ VIP Enhanced
Create a new personal list. The
nameis the only required field, but the other info is recommended to ask for.Limits
If the user's list limit is exceeded, a
420HTTP error code is returned. Use the method to get all limits for a user account. In most cases, upgrading to will increase the limits.JSON POST Data
-
users.deleteAUserSPersonalListπ OAuth Required
Remove a personal list and all items it contains.
-
users.denyFollowRequestπ OAuth Required
Deny a follower using the
idof the request. If theidis not found, was already approved, or was already denied, a404error will be returned. -
users.followThisUserπ OAuth Required
If the user has a private profile, the follow request will require approval (
approved_atwill be null). If a user is public, they will be followed immediately (approved_atwill have a date).Note: If this user is already being followed, a
409HTTP status code will returned. -
users.getAllListsAUserCanCollaborateOnπ OAuth Optional
Returns all lists a user can collaborate on. This gives full access to add, remove, and re-order list items. It essentially works just like a list owned by the user, just make sure to use the correct list owner
userwhen building the API URLs. -
users.getAUserSPersonalListsπ OAuth Optional π Emojis
Returns all personal lists for a user. Use the method to get the actual items a specific list contains.
-
users.getCommentsπ OAuth Optional π Pagination β¨ Extended Info
Returns the most recently written comments for the user. You can optionally filter by the
comment_typeand mediatypeto limit what gets returned.By default, only top level comments are returned. Set
?include_replies=trueto return replies in addition to top level comments. Set?include_replies=onlyto return only replies and no top level comments. -
users.getFollowersπ OAuth Optional β¨ Extended Info
Returns all followers including when the relationship began.
-
users.getFollowingπ OAuth Optional β¨ Extended Info
Returns all user's they follow including when the relationship began.
-
users.getFollowRequestsπ OAuth Required β¨ Extended Info
List a user's pending follow requests so they can either approve or deny them.
-
users.getFriendsπ OAuth Optional β¨ Extended Info
Returns all friends for a user including when the relationship began. Friendship is a 2 way relationship where each user follows the other.
-
users.getHiddenItemsπ OAuth Required π Pagination β¨ Extended Info
Get hidden items for a section. This will return an array of standard media objects. You can optionally limit the
typeof results to return. -
users.getItemsOnAPersonalListπ OAuth Optional π Pagination Optional β¨ Extended Info π Emojis
Get all items on a personal list. Items can be a
movie,show,season,episode, orperson. You can optionally specify thetypeparameter with a single value or comma delimited string for multiple item types.Notes
Each list item contains a
notesfield with text entered by the user.Sorting Headers
All list items are sorted by ascending
rank. We also sendX-Sort-ByandX-Sort-Howheaders which can be used to custom sort the list in your app based on the user's preference. Values forX-Sort-Byincluderank,added,title,released,runtime,popularity,percentage,votes,my_rating,random,watched, andcollected. Values forX-Sort-Howincludeascanddesc. -
users.getLikesπ OAuth Optional π Pagination
Get items a user likes. This will return an array of standard media objects. You can optionally limit the
typeof results to return.Comment Media Objects
If you add
?extended=commentsto the URL, it will return media objects for each comment like.Note: This returns a lot of data, so please only use this extended parameter if you actually need it!
-
users.getPendingFollowingRequestsπ OAuth Required β¨ Extended Info
List a user's pending following requests that they're waiting for the other user's to approve.
-
users.getPersonalListπ OAuth Optional π Emojis
Returns a single personal list. Use the method to get the actual items this list contains.
-
users.getSavedFiltersπ OAuth Required π Pagination π₯ VIP Only
Get all saved filters a user has created. The
pathandquerycan be used to construct an API path to retrieve the saved data. Think of this like a dynamically updated list. -
users.getStatsπ OAuth Optional
Returns stats about the movies, shows, and episodes a user has watched, collected, and rated.
-
users.getUserProfileπ OAuth Optional β¨ Extended Info
Get a user's profile information. If the user is private, info will only be returned if you send OAuth and are either that user or an approved follower. Adding
?extended=vipwill return some additional VIP related fields so you can display the user's Trakt VIP status and year count. -
users.getUsersIdCollectionTypeπ OAuth Optional β¨ Extended Info
Get all collected items in a user's collection. A collected item indicates availability to watch digitally or on physical media.
Each
movieobject containscollected_atandupdated_attimestamps. Since users can set custom dates when they collected movies, it is possible forcollected_atto be in the past. We also includeupdated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the movie if you see a newer timestamp.Each
showobject containslast_collected_atandlast_updated_attimestamps. Since users can set custom dates when they collected episodes, it is possible forlast_collected_atto be in the past. We also includelast_updated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the show if you see a newer timestamp.If you add
?extended=metadatato the URL, it will return the additionalmedia_type,resolution,hdr,audio,audio_channelsand '3d' metadata. It will usenullif the metadata isn't set for an item. -
users.getUsersIdHistoryTypeItemIdπ OAuth Optional π Pagination β¨ Extended Info
Returns movies and episodes that a user has watched, sorted by most recent. You can optionally limit the
typetomoviesorepisodes. Theid(64-bit integer) in each history item uniquely identifies the event and can be used to remove individual events by using the method. Theactionwill be set toscrobble,checkin, orwatch.Specify a
typeand traktitem_idto limit the history for just that item. If theitem_idis valid, but there is no history, an empty array will be returned. -
users.getUsersIdListsListIdCommentsSortπ OAuth Optional π Pagination π Emojis
Returns all top level comments for a list. By default, the
newestcomments are returned first. Other sorting options includeoldest, mostlikes, and mostreplies. -
users.getUsersIdListsListIdLikesπ OAuth Optional π Pagination
Returns all users who liked a list.
-
users.getUsersIdRatingsTypeRatingπ OAuth Optional π Pagination Optional β¨ Extended Info
Get a user's ratings filtered by
type. You can optionally filter for a specificratingbetween 1 and 10. Send a comma separated string forratingif you need multiple ratings. -
users.getUsersIdRecommendationsTypeSortπ OAuth Required π Pagination Optional β¨ Extended Info π Emojis
Returns the top 50 items a user personally recommendeds to others. These recommendations are used to enchance Trakt's social recommendation algorithm. Apps should encourage user's to build their personal recommendations so the algorithm keeps getting better.
Notes
Each recommendation contains a
notesfield explaining why the user recommended the item. -
users.getUsersIdWatchedTypeπ OAuth Optional β¨ Extended Info
Returns all movies or shows a user has watched sorted by most plays.
If
typeis set to shows and you add?extended=noseasonsto the URL, it won't return season or episode info.Each
movieandshowobject containslast_watched_atandlast_updated_attimestamps. Since users can set custom dates when they watched movies and episodes, it is possible forlast_watched_atto be in the past. We also includelast_updated_atto help sync Trakt data with your app. Cache this timestamp locally and only re-process the movies and shows if you see a newer timestamp.Each
showobject contains areset_attimestamp. If notnull, this is when the user started re-watching the show. Your app can adjust the progress by ignoring episodes with alast_watched_atprior to thereset_at. -
users.getUsersIdWatchlistTypeSortπ OAuth Optional π Pagination Optional β¨ Extended Info π Emojis
Returns all items in a user's watchlist filtered by type.
Notes
Each watchlist item contains a
notesfield with text entered by the user.Sorting Headers
By default, all list items are sorted by
rankasc. We sendX-Applied-Sort-ByandX-Applied-Sort-Howheaders to indicate how the results are actually being sorted.We also send
X-Sort-ByandX-Sort-Howheaders which indicate the user's sort preference. Use these to to custom sort the watchlist in your app for more advanced sort abilities we can't do in the API. Values forX-Sort-Byincluderank,added,title,released,runtime,popularity,percentage, andvotes. Values forX-Sort-Howincludeascanddesc.Auto Removal
When an item is watched, it will be automatically removed from the watchlist. For shows and seasons, watching 1 episode will remove the entire show or season.
The watchlist should not be used as a list of what the user is actively watching.
Use a combination of the and methods to get what the user is actively watching.
-
users.getWatchingπ OAuth Optional β¨ Extended Info
Returns a movie or episode if the user is currently watching something. If they are not, it returns no data and a
204HTTP status code. -
users.likeAListπ OAuth Required
Votes help determine popular lists. Only one like is allowed per list per user.
-
users.removeHiddenItemsπ OAuth Required
Unhide items for a specific section. Here's what type of items can unhidden for each section.
Unhideable Media Objects
| Section | Objects | |---|---|---| |
calendar|movie,show| |progress_watched|show,season| |progress_collected|show,season| |recommendations|movie,show| |comments|user|JSON POST Data
-
users.removeItemsFromPersonalListπ OAuth Required
Remove one or more items from a personal list.
JSON POST Data
-
users.removeLikeOnAListπ OAuth Required
Remove a like on a list.
-
users.reorderAUserSListsπ OAuth Required
Reorder all lists by sending the updated
rankof list ids. Use the method to get all list ids. -
users.reorderItemsOnAListπ OAuth Required
Reorder all items on a list by sending the updated
rankof list item ids. Use the method to get all list item ids. -
users.retrieveSettingsπ OAuth Required
Get the user's settings so you can align your app's experience with what they're used to on the trakt website. A globally unique
uuidis also returned, which can be used to identify the user locally in your app if needed. However, theuuidcan't be used to retrieve data from the Trakt API. -
users.unfollowThisUserπ OAuth Required
Unfollow someone you already follow.
-
users.updatePersonalListπ OAuth Required
Update a personal list by sending 1 or more parameters. If you update the list name, the original slug will still be retained so existing references to this list won't break.
JSON POST Data
| Key | Type | Value | |---|---|---|---| |
name| string | Name of the list. | |description| string | Description for this list. | |privacy| string |private,friends,public| |display_numbers| boolean | Should each item be numbered? | |allow_comments| boolean | Are comments allowed? | |sort_by| string |rank,added,title,released,runtime,popularity,percentage,votes,my_rating,random,watched,collected| |sort_how| string |asc,desc| -
openapi.previewSpecPreview an OpenAPI document before adding it as a source
-
openapi.addSourceAdd an OpenAPI source and register its operations as tools