Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/mohameodo/nano/llms.txt

Use this file to discover all available pages before exploring further.

/api/details retrieves full metadata for a movie, TV show, or specific TV season from the TMDB API. nano uses this endpoint to populate title pages, episode selectors, and the scrape pipeline’s adult-content check. The raw TMDB response is passed through directly, giving you access to the complete set of fields TMDB provides.

Request

Method: GET
Path: /api/details
id
string
required
The TMDB ID of the movie or TV show to fetch.
type
string
default:"movie"
Media type. Must be "movie" or "tv". Determines which TMDB endpoint is called (/movie/{id} vs. /tv/{id}).
season
string
Season number for TV shows. When provided, the endpoint calls /tv/{id}/season/{season} instead of /tv/{id}, returning season-level details including the episode list. Only applicable when type=tv.

Response

Content-Type: application/json The response body is the raw JSON returned by TMDB. The exact shape depends on the type and whether season is specified. Common fields include:
id
number
TMDB ID.
title
string
Movie title (movies only).
name
string
TV show or season name (TV only).
overview
string
Plot summary.
poster_path
string
Poster image path. Prefix with https://image.tmdb.org/t/p/w500 to get the full URL.
backdrop_path
string
Backdrop/hero image path.
genres
array
Array of { id, name } genre objects.
vote_average
number
TMDB community rating (0–10).
runtime
number
Runtime in minutes (movies only).
seasons
array
Array of season summary objects (TV show top-level only, not present on season requests).
episodes
array
Array of episode objects (only present when season is specified).
adult
boolean
TMDB adult content flag. If true, the endpoint returns HTTP 403 instead of the data (see below).

Adult Content Blocking

If TMDB marks the requested title with adult: true, /api/details blocks the response and returns HTTP 403 with the following body:
{
  "error": "Adult content blocked",
  "title": "Content Blocked",
  "overview": "This content has been blocked due to adult content restrictions.",
  "blocked": true
}

Examples

# Fetch movie details for Inception (TMDB ID 27205)
curl "http://localhost:3000/api/details?id=27205&type=movie"

# Fetch TV show details for Breaking Bad (TMDB ID 1396)
curl "http://localhost:3000/api/details?id=1396&type=tv"

# Fetch season 1 episode list for Breaking Bad
curl "http://localhost:3000/api/details?id=1396&type=tv&season=1"

Error Responses

StatusBodyCause
400{ "error": "Missing ID" }The id parameter was not provided.
403{ "error": "Adult content blocked", "blocked": true, ... }TMDB flagged the title as adult content.
500{ "error": "Failed to fetch TMDB" }TMDB returned a non-OK status or the request failed.

Build docs developers (and LLMs) love