# DiscovrAPI ## Docs - [Mint Session Token](https://docs.discovr.media/api-reference/auth/session-token.md): Exchanges a refresh token + a `profileId` for a short-lived **session token** scoped to that profile. This single endpoint covers three flows: - [Add an item to disliked list](https://docs.discovr.media/api-reference/discovr/add-an-item-to-disliked-list.md): Adds a media item to the disliked list for a specific profile. - [Add an item to history list](https://docs.discovr.media/api-reference/discovr/add-an-item-to-history-list.md): Adds a media item to the history list for a specific profile. - [Add an item to liked list](https://docs.discovr.media/api-reference/discovr/add-an-item-to-liked-list.md): Adds a media item to the liked list for a specific profile. - [Add an item to playback list](https://docs.discovr.media/api-reference/discovr/add-an-item-to-playback-list.md): Adds a media item to the playback list for a specific profile. - [Add an item to super_liked list](https://docs.discovr.media/api-reference/discovr/add-an-item-to-super_liked-list.md): Adds a media item to the super_liked list for a specific profile. - [Add an item to watchlist](https://docs.discovr.media/api-reference/discovr/add-an-item-to-watchlist.md): Adds a media item to the watchlist for a specific profile. - [Create a new page](https://docs.discovr.media/api-reference/discovr/create-a-new-page.md): Create a new page for the profile bound to your **session token** (`profileId` is a JWT claim, not request body). - [Create a new profile](https://docs.discovr.media/api-reference/discovr/create-a-new-profile.md): Creates a new profile for the authenticated user. - [Delete a profile](https://docs.discovr.media/api-reference/discovr/delete-a-profile.md): Permanently deletes a profile and all associated data. - [Delete an item from disliked list](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-disliked-list.md): Removes a specific item from the disliked list by its media ID. - [Delete an item from history list](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-history-list.md): Removes a history item from the history list by its media ID. - [Delete an item from liked list](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-liked-list.md): Removes a specific item from the liked list by its media ID. - [Delete an item from playback list](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-playback-list.md): Removes a specific item from the playback list by its media ID. - [Delete an item from super_liked list](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-super_liked-list.md): Removes a specific item from the super_liked list by its media ID. - [Delete an item from watchlist](https://docs.discovr.media/api-reference/discovr/delete-an-item-from-watchlist.md): Removes a specific item from the watchlist by its media ID. - [Get a page by ID](https://docs.discovr.media/api-reference/discovr/get-a-page-by-id.md): Retrieves a single page by its unique identifier. - [Get a profile by ID](https://docs.discovr.media/api-reference/discovr/get-a-profile-by-id.md): Retrieves a single profile by its unique identifier. - [Get a row by ID](https://docs.discovr.media/api-reference/discovr/get-a-row-by-id.md): Retrieves a single row by its unique identifier. - [Get available profile images](https://docs.discovr.media/api-reference/discovr/get-available-profile-images.md): Returns all available profile image URLs from Firebase Storage. - [Get disliked items](https://docs.discovr.media/api-reference/discovr/get-disliked-items.md): Retrieves all items from the disliked list for a specific profile. - [Get history items](https://docs.discovr.media/api-reference/discovr/get-history-items.md): Retrieves all items from the history list for a specific profile. - [Get history items for a specific media](https://docs.discovr.media/api-reference/discovr/get-history-items-by-media-id.md): Retrieves all history entries for a specific media item from the history list. - [Get items in a row](https://docs.discovr.media/api-reference/discovr/get-items-in-a-row.md): Retrieves a paginated list of media items for a specific row. - [Get liked items](https://docs.discovr.media/api-reference/discovr/get-liked-items.md): Retrieves all items from the liked list for a specific profile. - [Get media details](https://docs.discovr.media/api-reference/discovr/get-media-details.md): Retrieves details for a specific media item (Movie or TV Show) by its ID. The ID must be prefixed with "MV_" for movies or "TV_" for TV shows. - [Get media profile metadata](https://docs.discovr.media/api-reference/discovr/get-media-profile-metadata.md): Checks if the media item exists in any of the profile's lists. - [Get playback items](https://docs.discovr.media/api-reference/discovr/get-playback-items.md): Retrieves all items from the playback list for a specific profile. - [Get rows for a page](https://docs.discovr.media/api-reference/discovr/get-rows-for-a-page.md): Retrieves a paginated list of rows for a specific page. Rows are created on-demand if they don't exist. - [Get super_liked items](https://docs.discovr.media/api-reference/discovr/get-super_liked-items.md): Retrieves all items from the super_liked list for a specific profile. - [Get user profiles](https://docs.discovr.media/api-reference/discovr/get-user-profiles.md): Retrieves all profiles belonging to the authenticated user. - [Get watchlist items](https://docs.discovr.media/api-reference/discovr/get-watchlist-items.md): Retrieves all items from the watchlist for a specific profile. - [Poll for auth token](https://docs.discovr.media/api-reference/discovr/poll-for-auth-token.md): Polls for the authorization status of a device code. - [Record a skip event](https://docs.discovr.media/api-reference/discovr/record-a-skip-event.md): Track skip events during playback. Used for analytics; currently logs the event. - [Redirect to web authentication](https://docs.discovr.media/api-reference/discovr/redirect-to-web-authentication.md): Initiates the web authentication flow by redirecting the user to the hosted authentication page. - [Request device code](https://docs.discovr.media/api-reference/discovr/request-device-code.md): Initiates the device code flow by creating a device code and user code. - [Record or update scrobble progress](https://docs.discovr.media/api-reference/discovr/scrobble.md): Record or update playback progress for a media item. Creates a playback entry if it does not exist. Updates history with the current progress. If progress is 80% or higher, the item is marked as completed. - [Search for GIFs](https://docs.discovr.media/api-reference/discovr/search-for-gifs.md): Search for GIFs using the Tenor API. This endpoint provides a wrapper around Tenor's GIF search functionality, supporting all Tenor search parameters including query, pagination, content filtering, and localization. - [Search media and persons](https://docs.discovr.media/api-reference/discovr/search-media-and-persons.md): Searches for movies, TV shows, and persons using the TMDB multi-search API. Results are returned with transformed IDs: - TV shows: `TV_{tmdb_id}` - Movies: `MV_{tmdb_id}` - Persons: `{tmdb_id}` (unchanged) - [Update a profile](https://docs.discovr.media/api-reference/discovr/update-a-profile.md): Updates an existing profile. You can update the profile name, avatar URL, or both. - [Update playback progress](https://docs.discovr.media/api-reference/discovr/update-playback-progress.md): Updates the playback progress for an existing item in the playback list. - [Get Media Images](https://docs.discovr.media/api-reference/media/get-media-images.md): Retrieves images (backdrops, logos, and posters) for a specific media item (Movie or TV Show) by its ID. The ID must be prefixed with "MV_" for movies or "TV_" for TV shows. - [Get TV Season Details](https://docs.discovr.media/api-reference/media/get-season-details.md): Retrieves details for a specific TV season, including its episodes. The series ID must be prefixed with "TV_". - [Get Similar Recommendations](https://docs.discovr.media/api-reference/media/get-similar-recommendations.md): Retrieves similar movie or TV show recommendations from TMDB based on the provided media ID. Results are returned with transformed IDs: - TV shows: `TV_{tmdb_id}` - Movies: `MV_{tmdb_id}` - [Device Code Flow](https://docs.discovr.media/guides/authentication/device-code.md): Second-screen authentication for TVs, IoT, and devices without browsers. - [Error Handling](https://docs.discovr.media/guides/authentication/error-handling.md): Map error codes to developer actions. Handle sign-in failures, token expiry, network errors. - [Authentication Overview](https://docs.discovr.media/guides/authentication/index.md): Authenticate your app with DiscovrSDK. Two tokens, two sign-in flows. - [Security Best Practices](https://docs.discovr.media/guides/authentication/security.md): Protect refresh tokens. Use HTTPS. Let SDK handle secure storage. - [Sessions, Profiles & Sign Out](https://docs.discovr.media/guides/authentication/sessions-profiles.md): Select profiles, understand session tokens, and sign out the current device. - [Web Sign-in Flow](https://docs.discovr.media/guides/authentication/web-sign-in.md): Authenticate web and mobile browser apps with DiscovrSDK popup or redirect sign-in. - [Search](https://docs.discovr.media/guides/content-discovery/search.md): Let users search for titles by name, cast, or keywords. Learn how to build a search UI and handle results. - [The Discovr API](https://docs.discovr.media/guides/getting-started/index.md): Build powerful applications with the Discovr API - [Quick Start](https://docs.discovr.media/guides/getting-started/quickstart.md): Get started with the Discovr API in a few minutes. - [Media details](https://docs.discovr.media/guides/media/index.md): Build a movie or TV sheet from MV_/TV_ ids—getMedia plus images, seasons and episodes for series, optional similar picks; session-tier. - [Pages Overview](https://docs.discovr.media/guides/pages/index.md): Hero + stacked rows assembled at runtime per profile by Discovr’s recommendation layer—Home/Movies/Series tabs, stack navigation from rows, and the three-level depth limit. - [Profile context](https://docs.discovr.media/guides/profile-context/index.md): Profile-scoped lists, playback for Continue Watching UX, title overlays with getMediaProfileMeta, scrobbling, and history—session-tier after selectProfile. - [Understanding Your Media State](https://docs.discovr.media/guides/profile-context/media-profile-meta.md): What the user has watched, liked, or started watching. Learn how to layer user-specific state on top of catalog data for personalized title sheets and UX. - [Tracking Playback with Scrobbling](https://docs.discovr.media/guides/profile-context/scrobbling.md): Keep watch history in sync with real-time progress updates. Scrobbling sends playback data as users watch, enabling resume functionality and play/pause history. - [Profiles Overview](https://docs.discovr.media/guides/profiles/index.md): How profiles scope recommendations and session behavior, and how to build picker and management flows. - [Listing and selecting profiles](https://docs.discovr.media/guides/profiles/listing-and-selecting-profiles.md): Use getProfiles() to list profiles for your picker UI, select one with selectProfile, then call session-tier APIs. - [Managing profiles](https://docs.discovr.media/guides/profiles/managing-profiles.md): Create, read, update, and delete profiles—avatarUrl as image or MP4 URLs, Discovr helpers for defaults and GIF search, and safeguards when deleting. - [Rows overview](https://docs.discovr.media/guides/rows/index.md): Rails chosen and filled dynamically per profile via Discovr; four row types, paging, items, and how they map to your UI. - [getActiveProfileId()](https://docs.discovr.media/sdk-reference/authentication/get-active-profile-id.md): Get the currently selected profile ID - [handleRedirectResult()](https://docs.discovr.media/sdk-reference/authentication/handle-redirect-result.md): Complete a redirect flow sign-in - [hasActiveProfile()](https://docs.discovr.media/sdk-reference/authentication/has-active-profile.md): Check if a profile is selected and session is ready - [isSignedIn()](https://docs.discovr.media/sdk-reference/authentication/is-signed-in.md): Check if a refresh token is held - [onAuthStateChanged()](https://docs.discovr.media/sdk-reference/authentication/on-auth-state-changed.md): Subscribe to auth state changes - [onSessionRefreshed()](https://docs.discovr.media/sdk-reference/authentication/on-session-refreshed.md): Subscribe to session refresh events - [selectProfile()](https://docs.discovr.media/sdk-reference/authentication/select-profile.md): Select a profile and mint a session token - [signInWithDeviceCode()](https://docs.discovr.media/sdk-reference/authentication/sign-in-with-device-code.md): Sign in using a device code (second-screen flow) - [signInWithPopup()](https://docs.discovr.media/sdk-reference/authentication/sign-in-with-popup.md): Sign in with a popup window (web only) - [signInWithWebAuth()](https://docs.discovr.media/sdk-reference/authentication/sign-in-with-web-auth.md): Sign in with a redirect flow (web and mobile) - [signOut()](https://docs.discovr.media/sdk-reference/authentication/sign-out.md): Sign out the current device - [switchProfile()](https://docs.discovr.media/sdk-reference/authentication/switch-profile.md): Switch to a different profile (alias for selectProfile) - [SDK Reference](https://docs.discovr.media/sdk-reference/index.md): TypeScript, Kotlin, and Swift SDK reference for Discovr. - [getMedia()](https://docs.discovr.media/sdk-reference/media/get-media.md): Get media details - [getMediaImages()](https://docs.discovr.media/sdk-reference/media/get-media-images.md): Get media images - [getMediaProfileMeta()](https://docs.discovr.media/sdk-reference/media/get-media-profile-meta.md): Get media profile metadata - [getSeasonDetails()](https://docs.discovr.media/sdk-reference/media/get-season-details.md): Get TV season details - [getSimilarRecommendations()](https://docs.discovr.media/sdk-reference/media/get-similar-recommendations.md): Get similar recommendations - [searchMedia()](https://docs.discovr.media/sdk-reference/media/search-media.md): Search media and persons - [getProfileImages()](https://docs.discovr.media/sdk-reference/misc/get-profile-images.md): Get available profile images - [searchGifs()](https://docs.discovr.media/sdk-reference/misc/search-gifs.md): Search for GIFs - [createPage()](https://docs.discovr.media/sdk-reference/pages/create-page.md): Create a new page - [getPage()](https://docs.discovr.media/sdk-reference/pages/get-page.md): Get a page by ID - [addDislikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-disliked-item.md): Add an item to disliked list - [addHistoryItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-history-item.md): Add an item to history list - [addLikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-liked-item.md): Add an item to liked list - [addPlaybackItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-playback-item.md): Add an item to playback list - [addSuperLikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-super-liked-item.md): Add an item to super_liked list - [addWatchlistItem()](https://docs.discovr.media/sdk-reference/profile-lists/add-watchlist-item.md): Add an item to watchlist - [deleteDislikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-disliked-item.md): Delete an item from disliked list - [deleteHistoryItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-history-item.md): Delete an item from history list - [deleteLikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-liked-item.md): Delete an item from liked list - [deletePlaybackItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-playback-item.md): Delete an item from playback list - [deleteSuperLikedItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-super-liked-item.md): Delete an item from super_liked list - [deleteWatchlistItem()](https://docs.discovr.media/sdk-reference/profile-lists/delete-watchlist-item.md): Delete an item from watchlist - [getDislikedItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-disliked-items.md): Get disliked items - [getHistoryItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-history-items.md): Get history items - [getHistoryItemsByMediaId()](https://docs.discovr.media/sdk-reference/profile-lists/get-history-items-by-media-id.md): Get history items for a specific media - [getLikedItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-liked-items.md): Get liked items - [getPlaybackItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-playback-items.md): Get playback items - [getSuperLikedItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-super-liked-items.md): Get super_liked items - [getWatchlistItems()](https://docs.discovr.media/sdk-reference/profile-lists/get-watchlist-items.md): Get watchlist items - [patchHistoryItem()](https://docs.discovr.media/sdk-reference/profile-lists/patch-history-item.md): Update or create a history item - [updatePlaybackItem()](https://docs.discovr.media/sdk-reference/profile-lists/update-playback-item.md): Update playback progress - [createProfile()](https://docs.discovr.media/sdk-reference/profiles/create-profile.md): Create a new profile - [deleteProfile()](https://docs.discovr.media/sdk-reference/profiles/delete-profile.md): Delete a profile - [getProfile()](https://docs.discovr.media/sdk-reference/profiles/get-profile.md): Get a profile by ID - [getProfiles()](https://docs.discovr.media/sdk-reference/profiles/get-profiles.md): Get user profiles - [updateProfile()](https://docs.discovr.media/sdk-reference/profiles/update-profile.md): Update a profile - [getRow()](https://docs.discovr.media/sdk-reference/rows/get-row.md): Get a row by ID - [getRowItems()](https://docs.discovr.media/sdk-reference/rows/get-row-items.md): Get items in a row - [getRows()](https://docs.discovr.media/sdk-reference/rows/get-rows.md): Get rows for a page - [scrobble()](https://docs.discovr.media/sdk-reference/scrobble/scrobble.md): Record or update scrobble progress - [scrobbleSkip()](https://docs.discovr.media/sdk-reference/scrobble/scrobble-skip.md): Record a skip event - [Common Types](https://docs.discovr.media/sdk-reference/types/common.md): Shared types used across multiple SDK operations. - [Media Types](https://docs.discovr.media/sdk-reference/types/media.md): Types used by Media SDK operations. - [Misc Types](https://docs.discovr.media/sdk-reference/types/misc.md): Types used by Misc SDK operations. - [Pages Types](https://docs.discovr.media/sdk-reference/types/pages.md): Types used by Pages SDK operations. - [Profile Lists Types](https://docs.discovr.media/sdk-reference/types/profile-lists.md): Types used by Profile Lists SDK operations. - [Profiles Types](https://docs.discovr.media/sdk-reference/types/profiles.md): Types used by Profiles SDK operations. - [Rows Types](https://docs.discovr.media/sdk-reference/types/rows.md): Types used by Rows SDK operations. - [Scrobble Types](https://docs.discovr.media/sdk-reference/types/scrobble.md): Types used by Scrobble SDK operations. ## OpenAPI Specs - [openapi](https://docs.discovr.media/openapi.yaml) ## Optional - [Dashboard](https://discoveryapi.com/dashboard)