openapi: 3.0.3 info: title: TiVo Video Metadata Content API description: The TiVo Video Metadata API v3 provides access to a universe of high-quality entertainment imagery and information. The HTTP-based API delivers JSON responses for TV shows, movies, episodes, and related entertainment content. Supports content search by metadata fields and precise ID-based lookup using Rovi, TMDB, and EIDR identifiers. version: v3 contact: name: TiVo Developer Support url: https://developers.tivo.com x-logo: url: https://business.tivo.com/logo.png servers: - url: https://data.tivo.com description: TiVo Video Metadata API security: - bearerAuth: [] tags: - name: Content description: Search and retrieve entertainment content metadata paths: /v3/content/search: get: operationId: searchContent summary: Search Content description: Search for entertainment content using a variety of metadata fields. Returns matching TV shows, movies, episodes, and other content assets. Use this endpoint when you don't have a known identifier for the content. tags: - Content parameters: - name: q in: query description: Search query text - title, person name, or keyword schema: type: string - name: type in: query description: Content type filter schema: type: string enum: - movie - series - episode - person - sport - program - name: genre in: query description: Genre filter schema: type: string - name: year in: query description: Release year filter schema: type: integer - name: language in: query description: Language code (ISO 639-1) schema: type: string - name: limit in: query description: Maximum number of results to return schema: type: integer default: 10 maximum: 100 - name: offset in: query description: Pagination offset schema: type: integer default: 0 - name: include in: query description: Comma-separated list of additional fields to include schema: type: string responses: '200': description: Successful search response with matching content content: application/json: schema: $ref: '#/components/schemas/ContentSearchResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '429': $ref: '#/components/responses/RateLimited' /v3/content/{contentId}/images: get: operationId: getContentImages summary: Get Content Images description: Retrieve high-quality entertainment imagery for a specific content item including posters, backdrops, cast photos, and promotional images. tags: - Content parameters: - name: contentId in: path required: true schema: type: string - name: type in: query description: Image type filter schema: type: string enum: - poster - backdrop - still - headshot - logo - name: width in: query description: Preferred image width in pixels schema: type: integer - name: height in: query description: Preferred image height in pixels schema: type: integer responses: '200': description: List of available images content: application/json: schema: $ref: '#/components/schemas/ImageList' '404': $ref: '#/components/responses/NotFound' /v3/content/{contentId}/seasons: get: operationId: getContentSeasons summary: Get Content Seasons description: Retrieve season information for a TV series including episode counts and season-level metadata. tags: - Content parameters: - name: contentId in: path required: true schema: type: string - name: language in: query schema: type: string responses: '200': description: Season list for the series content: application/json: schema: $ref: '#/components/schemas/SeasonList' '404': $ref: '#/components/responses/NotFound' /v3/content/{contentId}/episodes: get: operationId: getContentEpisodes summary: Get Content Episodes description: Retrieve episode listings for a TV series or specific season with episode metadata, air dates, and descriptions. tags: - Content parameters: - name: contentId in: path required: true schema: type: string - name: season in: query description: Season number to filter episodes schema: type: integer - name: limit in: query schema: type: integer default: 20 - name: offset in: query schema: type: integer default: 0 responses: '200': description: Episode list content: application/json: schema: $ref: '#/components/schemas/EpisodeList' '404': $ref: '#/components/responses/NotFound' components: responses: RateLimited: description: Too many requests content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized - invalid or missing token content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: Bad request - invalid parameters content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Content not found content: application/json: schema: $ref: '#/components/schemas/Error' schemas: Season: type: object properties: seasonNumber: type: integer episodeCount: type: integer year: type: integer description: type: string Episode: type: object properties: id: type: string title: type: string episodeNumber: type: integer seasonNumber: type: integer airDate: type: string format: date description: type: string runtime: type: integer ImageList: type: object properties: images: type: array items: $ref: '#/components/schemas/Image' Image: type: object properties: url: type: string type: type: string enum: - poster - backdrop - still - headshot - logo width: type: integer height: type: integer language: type: string EpisodeList: type: object properties: episodes: type: array items: $ref: '#/components/schemas/Episode' total: type: integer ContentSearchResponse: type: object properties: results: type: array items: $ref: '#/components/schemas/ContentItem' total: type: integer offset: type: integer limit: type: integer CastMember: type: object properties: personId: type: string name: type: string role: type: string enum: - actor - director - writer - producer - composer character: type: string SeasonList: type: object properties: seasons: type: array items: $ref: '#/components/schemas/Season' Error: type: object properties: error: type: string message: type: string code: type: integer ContentItem: type: object properties: id: type: string description: Unique content identifier title: type: string description: Content title type: type: string description: Content type (movie, series, episode) enum: - movie - series - episode - person - sport - program year: type: integer description: Release or premiere year description: type: string description: Content synopsis or description genres: type: array items: type: string rating: type: string description: Content rating (PG, R, TV-MA, etc.) runtime: type: integer description: Runtime in minutes languages: type: array items: type: string cast: type: array items: $ref: '#/components/schemas/CastMember' images: type: array items: $ref: '#/components/schemas/Image' externalIds: type: object properties: rovi: type: string tmdb: type: string eidr: type: string availableOn: type: array items: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: TiVo API authentication token