{"info":{"title":"Metadata Aggregator API","version":"1.0.0","description":"Read-only catalog API with TMDB-compatible URL paths.\n\nEach endpoint returns a **single JSON document** that already includes detail data and every configured append response. You do not need to chain TMDB calls for credits, images, videos, seasons, or episodes.\n\n### Movies — `GET /3/movie/{movie_id}`\n\nReturns the movie detail payload plus: `alternative_titles`, `credits`, `external_ids`, `images`, `keywords`, `lists`, `recommendations`, `release_dates`, `reviews`, `similar`, `translations`, `videos`, `watch/providers`. When `belongs_to_collection` is set, `collection_details` is included.\n\n### TV — `GET /3/tv/{series_id}`\n\nReturns the series detail payload plus hydrated `seasons[]`, optional flattened `episodes[]`, and: `aggregate_credits`, `content_ratings`, `credits`, `episode_groups`, `external_ids`, `images`, `keywords`, `lists`, `recommendations`, `reviews`, `screened_theatrically`, `similar`, `translations`, `videos`, `watch/providers`.\n\n### Errors\n\nMissing catalog entries return HTTP 404 with TMDB-style `{ success: false, status_code, status_message }`.\n\n### Compatibility\n\nPaths mirror [TMDB API v3](https://developer.themoviedb.org/docs/getting-started) so existing clients can point at this host. Response shapes follow TMDB conventions but may include extra fields from ingestion."},"servers":[{"url":"/","description":"Current host"}],"openapi":"3.0.3","paths":{"/3/movie/{movie_id}":{"get":{"operationId":"getMovie","summary":"Get movie by TMDB ID","description":"Returns one JSON object with the movie detail and every configured movie append (credits, images, videos, keywords, recommendations, and more). When the movie belongs to a collection, `collection_details` is included. Drop-in replacement for chaining multiple TMDB `/3/movie/{id}` requests.","tags":["Movies"],"parameters":[{"name":"movie_id","in":"path","required":true,"schema":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"exclusiveMinimum":0},"description":"TMDB movie ID (positive integer).","example":550}],"responses":{"200":{"description":"Complete movie document from the local catalog.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/MovieDocument"},"example":{"id":550,"title":"Fight Club","overview":"A ticking-time-bomb insomniac and a slippery soap salesman channel primal male aggression into a shocking new form of therapy.","release_date":"1999-10-15","runtime":139,"genres":[{"id":18,"name":"Drama"}],"credits":{"cast":[{"id":819,"name":"Edward Norton","character":"The Narrator","order":0}],"crew":[{"id":7467,"name":"David Fincher","job":"Director","department":"Directing"}]},"images":{"backdrops":[],"posters":[]},"videos":{"results":[]},"keywords":{"keywords":[{"id":818,"name":"based on novel or book"}]},"collection_details":null}}}},"404":{"description":"No catalog entry exists for the requested movie ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmdbNotFound"},"example":{"success":false,"status_code":34,"status_message":"The resource you requested could not be found."}}}}}}},"/3/tv/{series_id}":{"get":{"operationId":"getTv","summary":"Get TV series by TMDB ID","description":"Returns one JSON object with the series detail, fully hydrated `seasons[]`, optional flattened `episodes[]`, and every configured TV append (aggregate credits, content ratings, images, videos, and more). Drop-in replacement for chaining TMDB series, season, and episode requests.","tags":["TV"],"parameters":[{"name":"series_id","in":"path","required":true,"schema":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991,"exclusiveMinimum":0},"description":"TMDB TV series ID (positive integer).","example":87108}],"responses":{"200":{"description":"Complete TV document from the local catalog.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SeriesDocument"},"example":{"id":87108,"name":"Chernobyl","overview":"The true story of one of the worst man-made catastrophes in history — the 1986 nuclear disaster at Chernobyl.","first_air_date":"2019-05-06","seasons":[{"id":116058,"season_number":1,"name":"Miniseries","episode_count":5,"episodes":[{"id":1621894,"episode_number":1,"name":"1:23:45","runtime":60}]}],"episodes":[{"id":1621894,"episode_number":1,"season_number":1,"name":"1:23:45","runtime":60}],"aggregate_credits":{"cast":[],"crew":[]},"content_ratings":{"results":[{"iso_3166_1":"US","rating":"TV-MA"}]}}}}},"404":{"description":"No catalog entry exists for the requested TV ID.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TmdbNotFound"},"example":{"success":false,"status_code":34,"status_message":"The resource you requested could not be found."}}}}}}}},"externalDocs":{"description":"TMDB API reference","url":"https://developer.themoviedb.org/reference/getting-started"},"tags":[{"name":"Movies","description":"Complete movie documents (detail + all movie appends)."},{"name":"TV","description":"Complete TV documents (detail, seasons, episodes, and TV appends)."}],"components":{"schemas":{"MovieDocument":{"type":"object","description":"Complete TMDB movie document. Includes the standard movie detail payload plus all movie append responses merged into one object. Additional TMDB fields may appear beyond those listed here.","required":["id"],"properties":{"id":{"type":"integer","description":"TMDB movie ID.","example":550},"title":{"type":"string","description":"Localized title.","example":"Fight Club"},"original_title":{"type":"string"},"overview":{"type":"string"},"tagline":{"type":"string"},"release_date":{"type":"string","format":"date","example":"1999-10-15"},"runtime":{"type":"integer","description":"Runtime in minutes.","example":139},"status":{"type":"string","example":"Released"},"genres":{"type":"array","items":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"}}}},"belongs_to_collection":{"type":["object","null"],"description":"Collection reference from movie detail.","additionalProperties":true},"collection_details":{"type":["object","null"],"description":"Full collection document when the movie belongs to a collection.","additionalProperties":true},"alternative_titles":{"type":"object","description":"Merged TMDB append response for `alternative_titles`.","additionalProperties":true},"credits":{"type":"object","description":"Merged TMDB append response for `credits`.","additionalProperties":true},"external_ids":{"type":"object","description":"Merged TMDB append response for `external_ids`.","additionalProperties":true},"images":{"type":"object","description":"Merged TMDB append response for `images`.","additionalProperties":true},"keywords":{"type":"object","description":"Merged TMDB append response for `keywords`.","additionalProperties":true},"lists":{"type":"object","description":"Merged TMDB append response for `lists`.","additionalProperties":true},"recommendations":{"type":"object","description":"Merged TMDB append response for `recommendations`.","additionalProperties":true},"release_dates":{"type":"object","description":"Merged TMDB append response for `release_dates`.","additionalProperties":true},"reviews":{"type":"object","description":"Merged TMDB append response for `reviews`.","additionalProperties":true},"similar":{"type":"object","description":"Merged TMDB append response for `similar`.","additionalProperties":true},"translations":{"type":"object","description":"Merged TMDB append response for `translations`.","additionalProperties":true},"videos":{"type":"object","description":"Merged TMDB append response for `videos`.","additionalProperties":true},"watch/providers":{"type":"object","description":"Merged TMDB append response for `watch/providers`.","additionalProperties":true}},"additionalProperties":true},"SeriesDocument":{"type":"object","description":"Complete TMDB TV document. Includes series detail, fully hydrated seasons (with nested episode stubs or full episodes), a flattened `episodes` array when enabled, and all TV append responses. Additional TMDB fields may appear beyond those listed here.","required":["id","seasons","episodes"],"properties":{"id":{"type":"integer","description":"TMDB TV series ID.","example":87108},"name":{"type":"string","example":"Chernobyl"},"original_name":{"type":"string"},"overview":{"type":"string"},"first_air_date":{"type":"string","format":"date"},"last_air_date":{"type":"string","format":"date"},"number_of_seasons":{"type":"integer"},"number_of_episodes":{"type":"integer"},"status":{"type":"string","example":"Ended"},"seasons":{"type":"array","description":"Season documents fetched from `/3/tv/{id}/season/{n}` with season append responses merged in.","items":{"type":"object","additionalProperties":true,"properties":{"id":{"type":"integer"},"season_number":{"type":"integer"},"name":{"type":"string"},"episode_count":{"type":"integer"},"episodes":{"type":"array","description":"Episode stubs or full episode documents for the season.","items":{"type":"object","additionalProperties":true}}}}},"episodes":{"type":"array","description":"Flattened list of full episode documents across all seasons when episode hydration is enabled.","items":{"type":"object","additionalProperties":true}},"aggregate_credits":{"type":"object","description":"Merged TMDB append response for `aggregate_credits`.","additionalProperties":true},"content_ratings":{"type":"object","description":"Merged TMDB append response for `content_ratings`.","additionalProperties":true},"credits":{"type":"object","description":"Merged TMDB append response for `credits`.","additionalProperties":true},"episode_groups":{"type":"object","description":"Merged TMDB append response for `episode_groups`.","additionalProperties":true},"external_ids":{"type":"object","description":"Merged TMDB append response for `external_ids`.","additionalProperties":true},"images":{"type":"object","description":"Merged TMDB append response for `images`.","additionalProperties":true},"keywords":{"type":"object","description":"Merged TMDB append response for `keywords`.","additionalProperties":true},"lists":{"type":"object","description":"Merged TMDB append response for `lists`.","additionalProperties":true},"recommendations":{"type":"object","description":"Merged TMDB append response for `recommendations`.","additionalProperties":true},"reviews":{"type":"object","description":"Merged TMDB append response for `reviews`.","additionalProperties":true},"screened_theatrically":{"type":"object","description":"Merged TMDB append response for `screened_theatrically`.","additionalProperties":true},"similar":{"type":"object","description":"Merged TMDB append response for `similar`.","additionalProperties":true},"translations":{"type":"object","description":"Merged TMDB append response for `translations`.","additionalProperties":true},"videos":{"type":"object","description":"Merged TMDB append response for `videos`.","additionalProperties":true},"watch/providers":{"type":"object","description":"Merged TMDB append response for `watch/providers`.","additionalProperties":true}},"additionalProperties":true},"TmdbNotFound":{"type":"object","description":"TMDB-compatible error body returned when the catalog has no document for the requested ID.","required":["success","status_code","status_message"],"properties":{"success":{"type":"boolean","const":false},"status_code":{"type":"integer","example":34},"status_message":{"type":"string","example":"The resource you requested could not be found."}}}}}}