Skip to content

Latest commit

 

History

History
136 lines (107 loc) · 2.54 KB

File metadata and controls

136 lines (107 loc) · 2.54 KB

Search — tmdb.search

Access via tmdb.search (instance of SearchEndpoint).

All search methods require at least { query: string } in their options.

Results are paginated: { page, results, total_pages, total_results }.

Methods

movies

tmdb.search.movies(
  options: {
    query: string;
    include_adult?: boolean;
    language?: string;
    primary_release_year?: number;
    page?: number;
    region?: string;
    year?: number;
  },
  request?: RequestConfig,
): Promise<Search<Movie>>
const results = await tmdb.search.movies({ query: 'Inception' });
results.results; // Movie[]

tv

tmdb.search.tv(
  options: {
    query: string;
    include_adult?: boolean;
    language?: string;
    first_air_date_year?: number;
    page?: number;
  },
  request?: RequestConfig,
): Promise<Search<TV>>
const results = await tmdb.search.tv({ query: 'Breaking Bad' });

people

tmdb.search.people(
  options: {
    query: string;
    include_adult?: boolean;
    language?: string;
    page?: number;
  },
  request?: RequestConfig,
): Promise<Search<Person>>

multi

Search across movies, TV shows, and people in a single request.

tmdb.search.multi(
  options: {
    query: string;
    include_adult?: boolean;
    language?: string;
    page?: number;
  },
  request?: RequestConfig,
): Promise<Search<MultiSearchResult>>

MultiSearchResult is MovieWithMediaType | TVWithMediaType | PersonWithMediaType. Each result includes a media_type discriminant ("movie", "tv", or "person").

const results = await tmdb.search.multi({ query: 'Marvel' });
for (const item of results.results) {
  if (item.media_type === 'movie') { /* item is MovieWithMediaType */ }
  if (item.media_type === 'tv')    { /* item is TVWithMediaType */ }
  if (item.media_type === 'person') { /* item is PersonWithMediaType */ }
}

companies

tmdb.search.companies(
  options: { query: string; page?: number },
  request?: RequestConfig,
): Promise<Search<Company>>

collections

tmdb.search.collections(
  options: {
    query: string;
    include_adult?: boolean;
    language?: string;
    page?: number;
    region?: string;
  },
  request?: RequestConfig,
): Promise<Search<Collection>>

keywords

tmdb.search.keywords(
  options: { query: string; page?: number },
  request?: RequestConfig,
): Promise<Search<{ id: string; name: string }>>