### OpenAPI definition for Get all videos Source: https://docs.trakt.tv/reference/getshowsvideos Defines the GET /shows/{id}/videos endpoint, including parameters, response schema, and security requirements. ```json { "openapi": "3.0.2", "paths": { "/shows/{id}/videos": { "get": { "description": "#### ✨ Extended Info\nReturns all videos including trailers, teasers, clips, and featurettes.", "summary": "Get all videos", "tags": [ "shows" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "The slug of the resource." } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "title": { "type": "string" }, "url": { "type": "string" }, "site": { "type": "string" }, "type": { "type": "string" }, "size": { "type": "integer" }, "official": { "type": "boolean" }, "published_at": { "type": "string" }, "country": { "type": "string" }, "language": { "type": "string" } }, "required": [ "title", "url", "site", "type", "size", "official", "published_at", "country", "language" ] } } } } } }, "security": [ { "traktAPI": [], "traktOAuth": [] }, { "traktAPI": [] } ], "operationId": "getShowsVideos" } } }, "info": { "title": "Trakt API", "version": "2.0.0" }, "servers": [ { "url": "https://api.trakt.tv", "description": "Production" }, { "url": "https://api-staging.trakt.tv", "description": "Staging" }, { "url": "https://apiz.trakt.tv", "description": "Private production" } ], "components": { "securitySchemes": { "traktAPI": { "type": "apiKey", "in": "header", "name": "trakt-api-key" }, "traktOAuth": { "type": "oauth2", "flows": { "authorizationCode": { "authorizationUrl": "https://trakt.tv/oauth/authorize", "tokenUrl": "https://api.trakt.tv/oauth/token", "scopes": { "public": "Access public data" } } } } } }, "x-readme": { "headers": [ { "key": "User-Agent", "value": "readme/1.0" }, { "key": "trakt-api-version", "value": "2" } ] } } ``` -------------------------------- ### OpenAPI definition for Get follow requests Source: https://docs.trakt.tv/reference/getusersrequestsfollow The OpenAPI specification defining the GET /users/requests/ endpoint. ```json { "openapi": "3.0.2", "paths": { "/users/requests/": { "get": { "description": "#### 🔒 OAuth Required ✨ Extended Info\nList a user's pending follow requests so they can either approve or deny them.", "summary": "Get follow requests", "tags": [ "users", "requests" ], "parameters": [ { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "requested_at": { "type": "string" }, "user": { "type": "object", "properties": { "username": { "type": "string" }, "private": { "type": "boolean" }, "deleted": { "type": "boolean" }, "name": { "type": "string", "nullable": true }, "vip": { "type": "boolean", "nullable": true }, "vip_ep": { "type": "boolean", "nullable": true }, "director": { "type": "boolean", "nullable": true }, "ids": { "type": "object", "properties": { "slug": { "type": "string", "nullable": true }, "trakt": { "type": "integer" } }, "required": [ "trakt" ] }, "joined_at": { "type": "string", "nullable": true }, "location": { "type": "string", "nullable": true }, "about": { "type": "string", "nullable": true }, "gender": { "type": "string", "nullable": true }, "age": { "type": "integer", "nullable": true }, "images": { "type": "object", "properties": { "avatar": { "type": "object", "properties": { "full": { "type": "string" } }, "required": [ "full" ] } }, "required": [ "avatar" ], "nullable": true }, "vip_og": { "type": "boolean", "nullable": true }, "vip_years": { "type": "integer", "nullable": true }, "vip_cover_image": { "type": "string" ``` -------------------------------- ### GET /shows/updates/{start_date} Source: https://docs.trakt.tv/reference/getshowsupdates Returns all shows updated since the specified UTC date. It is recommended to store the latest updated_at value locally for subsequent requests. ```APIDOC ## GET /shows/updates/{start_date} ### Description Returns all shows updated since the specified UTC date. We recommend storing the latest `updated_at` locally and using it for the next request. ### Method GET ### Endpoint /shows/updates/{start_date} ### Parameters #### Path Parameters - **start_date** (string) - Required - UTC date to start checking for updates. #### Query Parameters - **extended** (string) - Optional - Extended information to include in the response. - **page** (integer) - Optional - The page number to retrieve. - **limit** (integer) - Optional - The number of items per page. ### Response #### Success Response (200) - **updated_at** (string) - The timestamp of the update. - **show** (object) - The show object containing title, year, ids, and images. ``` -------------------------------- ### OpenAPI definition for Get blocked users Source: https://docs.trakt.tv/reference/getusersblocked The OpenAPI specification defining the /users/blocked GET endpoint and its response schema. ```json { "openapi": "3.0.2", "paths": { "/users/blocked": { "get": { "description": "#### 🔒 OAuth Required\nReturns all users you have blocked, including when each user was blocked.", "summary": "Get blocked users", "tags": [ "users" ], "parameters": [], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "blocked_at": { "type": "string" }, "user": { "type": "object", "properties": { "username": { "type": "string" }, "private": { "type": "boolean" }, "deleted": { "type": "boolean" }, "name": { "type": "string", "nullable": true }, "vip": { "type": "boolean", "nullable": true }, "vip_ep": { "type": "boolean", "nullable": true }, "director": { "type": "boolean", "nullable": true }, "ids": { "type": "object", "properties": { "slug": { "type": "string", "nullable": true }, "trakt": { "type": "integer" } }, "required": [ "trakt" ] }, "joined_at": { "type": "string", "nullable": true }, "location": { "type": "string", "nullable": true }, "about": { "type": "string", "nullable": true }, "gender": { "type": "string", "nullable": true }, "age": { "type": "integer", "nullable": true }, "images": { "type": "object", "properties": { "avatar": { "type": "object", "properties": { "full": { "type": "string" } }, "required": [ "full" ] } }, "required": [ "avatar" ], "nullable": true }, "vip_og": { "type": "boolean", "nullable": true }, "vip_years": { "type": "integer", "nullable": true }, "vip_cover_image": { "type": "string", "nullable": true } }, "required": [ "username", "private", "deleted", "ids" ] } }, "required": [ "blocked_at", ``` -------------------------------- ### POST /users/settings/plex/connect Source: https://docs.trakt.tv/reference/postusersplexconnect Mints a Plex web-auth URL for the client to open. The return_url is validated against a trakt-owned allowlist. ```APIDOC ## POST /users/settings/plex/connect ### Description Mints a Plex web-auth URL for the client to open. Plex uses a 2-step PIN OAuth; the PIN is stashed server-side under an opaque `state` token and Plex is forwarded to a website return endpoint that exchanges it and redirects back to your `return_url` with `?plex_status=connected|error`. `return_url` is validated against the trakt-owned allowlist (`trakt://`, `http(s)://localhost`, `https://*.trakt.tv`); a `400` is returned otherwise. ### Method POST ### Endpoint /users/settings/plex/connect ### Parameters #### Request Body - **return_url** (string) - Required - Where to return the user once the Plex web-auth flow completes. Must be a trakt-owned destination (`trakt://…`, `http(s)://localhost`, or `https://*.trakt.tv`); the flow appends `?plex_status=connected|error`. ### Request Example { "return_url": "https://myapp.trakt.tv/callback" } ### Response #### Success Response (200) - **url** (string) - The Plex web-auth URL for the client to open. #### Response Example { "url": "https://plex.tv/auth#..." } ``` -------------------------------- ### GET /users/settings/plex/ Source: https://docs.trakt.tv/reference/getusersplexsettings Returns the authenticated user's Plex connection status, real-time scrobbler webhook info, server/library/home-user selection, and both toggle sets (batch sync + real-time scrobbler). ```APIDOC ## GET /users/settings/plex/ ### Description Returns the authenticated user's Plex connection status, real-time scrobbler webhook info, server/library/home-user selection, and both toggle sets (batch `sync` + real-time `scrobbler`). Read-only, though the VIP webhook URL lazily mints its tokens. ### Method GET ### Endpoint /users/settings/plex/ ### Response #### Success Response (200) - **connection** (object) - Plex connection status - **connected** (boolean) - Whether a Plex authorization exists. - **username** (string, nullable) - The stored Plex uid. - **webhook** (object) - Real-time scrobbler webhook info - **url** (string, nullable) - The real-time scrobbler webhook URL; null unless the user is VIP. - **last_event_at** (string, nullable) - When the webhook last fired, normalized to .000Z, or null. - **event_count** (integer) - Number of events. - **home_users** (string, nullable) - Comma-separated Plex home usernames to scrobble for. - **sync** (object) - Sync configuration - **configured** (boolean) - Whether the initial sync has been set up. - **error** (boolean) - Whether a persisted Plex-sync error is currently active. ``` -------------------------------- ### OpenAPI definition for Get movies Source: https://docs.trakt.tv/reference/getcalendarsmovies The OpenAPI specification defining the path, parameters, and schema for the Get movies endpoint. ```json { "openapi": "3.0.2", "paths": { "/calendars/{target}/movies/{start_date}/{days}": { "get": { "description": "#### ✨ Extended Info 🎚 Filters\nReturns movies with a release date during the requested UTC date range. Use `target` to choose the authenticated user calendar (`my`) or the global calendar (`all`).", "summary": "Get movies", "tags": [ "calendars" ], "parameters": [ { "name": "target", "in": "path", "required": true, "schema": { "type": "string", "enum": [ "my", "all" ] }, "description": "Use \"my\" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist.\n Use \"all\" for all items items airing during the specified period." }, { "name": "start_date", "in": "path", "required": true, "schema": { "type": "string" }, "description": "The start date of the calendar. Must be formatted as \"YYYY-MM-DD\"." }, { "name": "days", "in": "path", "required": true, "schema": { "type": "integer" }, "description": "The number of days to retrieve." }, { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } }, { "name": "watchnow", "in": "query", "description": "Use \"favorites\" for streaming on a favorite service of the user.\n Use \"any\" for streaming on any service in the user's country.\n Use \"any_all\" for streaming on any service in all countries.\n Use \"free\" for streaming for free in the user's country.\n Use \"free_all\" for streaming for free in all countries.\n Use \"subscriptions\" for streaming on any subscription service (Netflix, Hulu, etc) in the user's country.\n Use \"subscriptions_all\" streaming on any subscription service in all countries", "schema": { "type": "string", "enum": [ "favorites", "any", "any_all", "free", "free_all", "subscriptions", "subscriptions_all" ], "nullable": true } }, { "name": "genres", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "subgenres", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "years", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "ratings", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "start_date", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "end_date", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "runtimes", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "countries", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "certifications", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "ignore_watched", "in": "query", "description": "Ignore watched items.", "schema": { "type": "boolean", "nullable": true } }, { "name": "ignore_collected", "in": "query", "description": "Ignore collected items.", "schema": { ``` -------------------------------- ### OpenAPI Definition for Get Friends Source: https://docs.trakt.tv/reference/getusersfriends The OpenAPI specification defining the path, parameters, and response schema for the get friends endpoint. ```json { "openapi": "3.0.2", "paths": { "/users/{id}/friends": { "get": { "description": "#### 🔓 OAuth Optional ✨ Extended Info\nReturns all friends for a user including when the relationship began. Friendship is a 2 way relationship where each user follows the other.", "summary": "Get friends", "tags": [ "users" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "The slug that identifies the user, or \"me\" for the authenticated user." }, { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "friends_at": { "type": "string" }, "user": { "type": "object", "properties": { "username": { "type": "string" }, "private": { "type": "boolean" }, "deleted": { "type": "boolean" }, "name": { "type": "string", "nullable": true }, "vip": { "type": "boolean", "nullable": true }, "vip_ep": { "type": "boolean", "nullable": true }, "director": { "type": "boolean", "nullable": true }, "ids": { "type": "object", "properties": { "slug": { "type": "string", "nullable": true }, "trakt": { "type": "integer" } }, "required": [ "trakt" ] }, "joined_at": { "type": "string", "nullable": true }, "location": { "type": "string", "nullable": true }, "about": { "type": "string", "nullable": true }, "gender": { "type": "string", "nullable": true }, "age": { "type": "integer", "nullable": true }, "images": { "type": "object", "properties": { "avatar": { "type": "object", "properties": { "full": { "type": "string" } }, "required": [ "full" ] } }, "required": [ "avatar" ], "nullable": true }, "vip_og": { "type": "boolean", "nullable": true } ``` -------------------------------- ### GET /sync/collection/minimal/shows Source: https://docs.trakt.tv/reference/getsynccollectionminimalshows Returns the authenticated user show collection in a minimal format optimized for syncing local state. ```APIDOC ## GET /sync/collection/minimal/shows ### Description Returns the authenticated user show collection in a minimal format optimized for syncing local state. This endpoint requires OAuth authentication. ### Method GET ### Endpoint /sync/collection/minimal/shows ### Parameters #### Query Parameters - **available_on** (string) - Optional - Filter by availability. ### Response #### Success Response (200) - **object** (object) - A collection of shows in a minimal format. ``` -------------------------------- ### POST /scrobble/start Source: https://docs.trakt.tv/reference/postscrobblestart Use this method when the video initially starts playing or is unpaused. This will remove any playback progress if it exists. ```APIDOC ## POST /scrobble/start ### Description Use this method when the video initially starts playing or is unpaused. This will remove any playback progress if it exists. A watching status will auto expire after the remaining runtime has elapsed. ### Method POST ### Endpoint /scrobble/start ### Request Body - **item** (object) - Required - A movie or episode object. - **progress** (float) - Required - Progress percentage between 0 and 100. ``` -------------------------------- ### OpenAPI Definition for Get Following Source: https://docs.trakt.tv/reference/getusersfollowing The OpenAPI specification defining the path, parameters, and response schema for the Get Following endpoint. ```json { "openapi": "3.0.2", "paths": { "/users/{id}/following": { "get": { "description": "#### 🔓 OAuth Optional ✨ Extended Info\nReturns all user's they follow including when the relationship began.", "summary": "Get following", "tags": [ "users" ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" }, "description": "The slug that identifies the user, or \"me\" for the authenticated user." }, { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "followed_at": { "type": "string" }, "user": { "type": "object", "properties": { "username": { "type": "string" }, "private": { "type": "boolean" }, "deleted": { "type": "boolean" }, "name": { "type": "string", "nullable": true }, "vip": { "type": "boolean", "nullable": true }, "vip_ep": { "type": "boolean", "nullable": true }, "director": { "type": "boolean", "nullable": true }, "ids": { "type": "object", "properties": { "slug": { "type": "string", "nullable": true }, "trakt": { "type": "integer" } }, "required": [ "trakt" ] }, "joined_at": { "type": "string", "nullable": true }, "location": { "type": "string", "nullable": true }, "about": { "type": "string", "nullable": true }, "gender": { "type": "string", "nullable": true }, "age": { "type": "integer", "nullable": true }, "images": { "type": "object", "properties": { "avatar": { "type": "object", "properties": { "full": { "type": "string" } }, "required": [ "full" ] } }, "required": [ "avatar" ], "nullable": true }, "vip_og": { "type": "boolean", "nullable": true }, "vip_years": { "type": "integer", "nullable": true ``` -------------------------------- ### OpenAPI Definition for Get Episode Collection Source: https://docs.trakt.tv/reference/getsynccollectionepisodes The OpenAPI specification defining the GET request for the sync collection episodes endpoint. ```json { "openapi": "3.0.2", "paths": { "/sync/collection/episodes": { "get": { "description": "#### 🔒 OAuth Required 📄 Pagination ✨ Extended Info\nReturns episodes in the authenticated user collection. Use `available_on` and pagination to filter and move through collected episodes.", "summary": "Get episode collection", "tags": [ "sync", "collection" ], "parameters": [ { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } }, { "name": "available_on", "in": "query", "schema": { "type": "string", "nullable": true } }, { "name": "page", "in": "query", "description": "The page number to retrieve", "schema": { "type": "integer", "nullable": true } }, { "name": "limit", "in": "query", "description": "The number of items per page", "schema": { "type": "integer", "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "type": { "type": "string", "enum": [ "episode" ] }, "episode": { "type": "object", "properties": { "season": { "type": "integer" }, "number": { "type": "integer" }, "title": { "type": "string", "nullable": true }, "first_aired": { "type": "string", "nullable": true }, "released": { "type": "string", "nullable": true }, "effective_release_date": { "type": "string", "nullable": true }, "number_abs": { "type": "integer", "nullable": true }, "rating": { "type": "number", "format": "float", "nullable": true }, "votes": { "type": "integer", "nullable": true }, "comment_count": { "type": "integer", "nullable": true }, "updated_at": { "type": "string", "nullable": true }, "available_translations": { "type": "array", "items": { "type": "string" }, "nullable": true }, "runtime": { "type": "integer", "nullable": true }, "overview": { "type": "string", "nullable": true }, "episode_type": { "type": "string", "enum": [ "standard", "series_premiere", "season_premiere", "mid_season_finale", "mid_season_premiere", "season_finale", ``` -------------------------------- ### GET /calendars/{target}/shows/{start_date}/{days} Source: https://docs.trakt.tv/reference/getcalendarsshows Returns shows airing during the requested UTC date range. Use `target` to choose the authenticated user calendar (`my`) or the global calendar (`all`), and send `start_date` and `days` to define the window. ```APIDOC ## GET /calendars/{target}/shows/{start_date}/{days} ### Description Returns shows airing during the requested UTC date range. Use `target` to choose the authenticated user calendar (`my`) or the global calendar (`all`), and send `start_date` and `days` to define the window. ### Method GET ### Endpoint /calendars/{target}/shows/{start_date}/{days} ### Parameters #### Path Parameters - **target** (string) - Required - Use "my" for all items that have been watched, collected, or watchlisted plus individual episodes on the watchlist. Use "all" for all items items airing during the specified period. - **start_date** (string) - Required - The start date of the calendar. Must be formatted as "YYYY-MM-DD". - **days** (integer) - Required - The number of days to retrieve. #### Query Parameters - **extended** (string) - Optional - Extended information to include in the response. - **watchnow** (string) - Optional - Filter by streaming service availability (favorites, any, any_all, free, free_all, subscriptions, subscriptions_all). - **genres** (string) - Optional - Filter by genres. - **subgenres** (string) - Optional - Filter by subgenres. - **years** (string) - Optional - Filter by years. - **ratings** (string) - Optional - Filter by ratings. - **start_date** (string) - Optional - Filter by start date. - **end_date** (string) - Optional - Filter by end date. - **runtimes** (string) - Optional - Filter by runtimes. - **countries** (string) - Optional - Filter by countries. - **certifications** (string) - Optional - Filter by certifications. - **ignore_watched** (boolean) - Optional - Ignore watched items. ``` -------------------------------- ### OpenAPI definition for Get data syncs Source: https://docs.trakt.tv/reference/getuserssyncslist The OpenAPI specification defining the GET /users/syncs/ endpoint, including parameters and response schema. ```json { "openapi": "3.0.2", "paths": { "/users/syncs/": { "get": { "description": "#### 🔒 OAuth Required 📄 Pagination\nPaginated list of the authenticated user's data syncs across **every** connected app (younify, plex, importers). Counts only — the paused/skipped item arrays are served by the dedicated paginated endpoints.\n\nPagination is via `page` / `limit` and the standard `X-Pagination-*` headers. `X-Pagination-Item-Count` is the total sync count (use it for the \"Data has synced N times\" banner). All timestamps are normalized to `.000Z`.", "summary": "Get data syncs", "tags": [ "users", "syncs" ], "parameters": [ { "name": "page", "in": "query", "description": "The page number to retrieve", "schema": { "type": "integer", "nullable": true } }, { "name": "limit", "in": "query", "description": "The number of items per page", "schema": { "type": "integer", "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "id": { "type": "integer" }, "created_at": { "type": "string", "description": "When the sync ran, normalized to `.000Z`." }, "kind": { "type": "string", "enum": [ "younify", "plex", "import" ] }, "source": { "type": "string", "nullable": true, "description": "Streaming service / importer source (`netflix`, `plex`, `csv`, …), or null." }, "application": { "type": "string", "nullable": true, "description": "Name of the OAuth app that created the sync; null for `application_id 0` importers." }, "undone": { "type": "boolean" }, "undone_at": { "type": "string", "nullable": true, "description": "When the sync was reversed, normalized to `.000Z`, or null." }, "items": { "type": "object", "properties": { "history": { "type": "object", "properties": { "movies": { "type": "integer" }, "episodes": { "type": "integer" }, "shows": { "type": "integer" }, "seasons": { "type": "integer" } } }, "library": { "type": "object", "properties": { "movies": { "type": "integer" }, "episodes": { "type": "integer" }, "shows": { "type": "integer" }, "seasons": { "type": "integer" } } }, "ratings": { ``` -------------------------------- ### GET /users/settings/plex/servers/{server_id} Source: https://docs.trakt.tv/reference/getusersplexserveraccounts Returns the home accounts (owned servers only) and syncable libraries for a Plex server, with the user's current library selection flagged. ```APIDOC ## GET /users/settings/plex/servers/{server_id} ### Description Returns the home accounts (owned servers only) and syncable libraries for a Plex server, with the user's current library selection flagged. This operation is network-bound and requires OAuth authentication. ### Method GET ### Endpoint /users/settings/plex/servers/{server_id} ### Parameters #### Path Parameters - **server_id** (string) - Required - The Plex server machine identifier. ### Response #### Success Response (200) - **accounts** (array) - Home accounts on the server; empty for servers the user does not own. - **libraries** (array) - List of syncable libraries on the server. #### Error Handling Errors use the shared { error_code, message, guidance } envelope: - 401: missing_token, bad_auth - 404: invalid_server_id, plex_not_found - 422: missing_server_id, plex_unprocessable - 502: plex_bad_response, plex_generic_error - 503: invalid_server_url - 504: plex_timeout ``` -------------------------------- ### OpenAPI definition for Get show collection Source: https://docs.trakt.tv/reference/getsynccollectionshows The OpenAPI specification defining the GET /sync/collection/shows endpoint, including parameters and response schema. ```json { "openapi": "3.0.2", "paths": { "/sync/collection/shows": { "get": { "description": "#### 🔒 OAuth Required ✨ Extended Info\nReturns shows in the authenticated user collection, including collected seasons and episodes.", "summary": "Get show collection", "tags": [ "sync", "collection" ], "parameters": [ { "name": "extended", "in": "query", "description": "Extended information to include in the response.", "schema": { "nullable": true } }, { "name": "available_on", "in": "query", "schema": { "type": "string", "nullable": true } } ], "responses": { "200": { "description": "200", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "object", "properties": { "last_collected_at": { "type": "string", "nullable": true }, "last_updated_at": { "type": "string", "nullable": true }, "seasons": { "type": "array", "items": { "type": "object", "properties": { "number": { "type": "integer" }, "episodes": { "type": "array", "items": { "type": "object", "properties": { "number": { "type": "integer" }, "collected_at": { "type": "string" }, "available_on": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" } }, "required": [ "name" ] }, "nullable": true } }, "required": [ "number", "collected_at" ] } } }, "required": [ "number", "episodes" ] }, "nullable": true }, "type": { "type": "string", "enum": [ "show" ] }, "show": { "type": "object", "properties": { "title": { "type": "string" }, "year": { "type": "integer", "nullable": true }, "ids": { "type": "object", "properties": { "trakt": { "type": "integer" }, "tvdb": { "type": "integer", "nullable": true }, "imdb": { "type": "string", "nullable": true }, "tmdb": { "type": "integer", "nullable": true ``` -------------------------------- ### POST /scrobble/start Source: https://docs.trakt.tv/reference/postscrobblestart Initiates a scrobble session for a movie or episode. ```APIDOC ## POST /scrobble/start ### Description Initiates a scrobble session for a movie or episode. ### Method POST ### Endpoint /scrobble/start ### Request Body - **id** (string) - Required - The unique identifier for the media item. - **progress** (number) - Required - The current progress of the media item. - **action** (string) - Required - The action being performed. ``` -------------------------------- ### PUT /users/settings/plex/ Source: https://docs.trakt.tv/reference/putusersplexupdatesettings Updates the Plex toggles, selection, and home users. Omitted toggle keys are left unchanged, and library_ids are rebuilt server-side. ```APIDOC ## PUT /users/settings/plex/ ### Description Writes the Plex toggles, selection, and home users. Mirrors the GET shape so it round-trips; omitted toggle keys are left unchanged (no clobbering), and `library_ids` is sent structured and rebuilt into the `server|uuid` storage server-side. The optional `trigger_sync` block is the only thing that touches sync timestamps or enqueues work: any `*_all_data: true` resets the affected cursors and enqueues a full sync per selected server; present-but-all-false seeds every cursor to "now" (the first sync skips old history); absent writes settings without syncing. ### Method PUT ### Endpoint /users/settings/plex/ ### Request Body - **sync** (object) - Optional - Contains selection and toggle settings. - **selection** (object) - Optional - Selection criteria for servers, libraries, and users. - **server_ids** (array) - Optional - List of server IDs. - **library_ids** (array) - Optional - List of objects containing `server_id` and `uuid`. - **user_ids** (array) - Optional - List of user IDs. - **toggles** (object) - Optional - Feature toggles for movies, shows, seasons, and episodes. ``` -------------------------------- ### GET /lists/{id} Source: https://docs.trakt.tv/reference/getlistssummary Returns a single list. Use the /lists/:id/items method to get the actual items this list contains. ```APIDOC ## GET /lists/{id} ### Description Returns a single list. Use the [/lists/:id/items](#reference/lists/list-items) method to get the actual items this list contains. You must use an integer `id`, and only public lists will return data. ### Method GET ### Endpoint /lists/{id} ### Parameters #### Path Parameters - **id** (string) - Required - The slug of the resource. #### Query Parameters - **extended** (string) - Optional - Extended information to include in the response. - **watchnow** (string) - Optional - Filter by streaming service availability (favorites, any, any_all, free, free_all, subscriptions, subscriptions_all). - **genres** (string) - Optional - Filter by genres. - **subgenres** (string) - Optional - Filter by subgenres. - **years** (string) - Optional - Filter by years. - **ratings** (string) - Optional - Filter by ratings. - **start_date** (string) - Optional - Filter by start date. - **end_date** (string) - Optional - Filter by end date. - **runtimes** (string) - Optional - Filter by runtimes. - **countries** (string) - Optional - Filter by countries. - **certifications** (string) - Optional - Filter by certifications. - **ignore_watched** (boolean) - Optional - Ignore watched items. - **ignore_collected** (boolean) - Optional - Ignore collected items. - **ignore_watchlisted** (boolean) - Optional - Ignore watchlisted items. ### Response #### Success Response (200) - **name** (string) - The name of the list. - **description** (string) - The description of the list. ``` -------------------------------- ### GET /users/requests/ Source: https://docs.trakt.tv/reference/getusersrequestsfollow List a user's pending follow requests so they can either approve or deny them. This endpoint requires OAuth authentication. ```APIDOC ## GET /users/requests/ ### Description List a user's pending follow requests so they can either approve or deny them. This endpoint requires OAuth authentication. ### Method GET ### Endpoint /users/requests/ ### Parameters #### Query Parameters - **extended** (string) - Optional - Extended information to include in the response. ### Response #### Success Response (200) - **id** (integer) - Request ID - **requested_at** (string) - Timestamp of the request - **user** (object) - User object containing details like username, private status, and IDs. ``` -------------------------------- ### GET /movies/updates/{start_date} Source: https://docs.trakt.tv/reference/getmoviesupdates Returns all movies updated since the specified UTC date. ```APIDOC ## GET /movies/updates/{start_date} ### Description Returns all movies updated since the specified UTC date. We recommend storing the latest `updated_at` locally and using it for the next request. ### Method GET ### Endpoint /movies/updates/{start_date} ### Parameters #### Path Parameters - **start_date** (string) - Required - UTC date to start checking for updates. #### Query Parameters - **extended** (nullable) - Optional - Extended information to include in the response. - **page** (integer) - Optional - The page number to retrieve - **limit** (integer) - Optional - The number of items per page ### Response #### Success Response (200) - **updated_at** (string) - The timestamp of the update. - **movie** (object) - The movie object containing title, year, ids, and images. ```