Skip to main content
Simkl returns different amounts of data depending on the endpoint. Most lookups now return the rich record by default — you only need the extended parameter on a small set of endpoints, and the accepted values vary per endpoint.

At a glance

Endpoint familyDefault responseextended parameter?
GET /movies/:id, GET /tv/:id, GET /anime/:idFull record — title, year, ids, overview, genres, ratings, poster, fanart, trailers, recommendationsNot needed.
GET /tv/episodes/:id, GET /anime/episodes/:idFull episode list with metadataNot needed.
GET /sync/all-items/:type/:statusRich summarylast_watched, last_watched_at, watched_episodes_count, total_episodes_count, next_to_watch, plus a show/movie/anime block with title, poster, runtime, ids.Single value: full, full_anime_seasons, ids_only, or simkl_ids_only (see below).
GET /search/:type (text search)title, year, poster, ids (simkl_id, slug, tmdb), plus title_en / title_romaji / type for anime.extended=full adds all_titles, url, rank, status, ratings, and ep_count (non-movies).
GET /search/id, POST /search/fileMatch metadataextended is not used.

Summary endpoints — no extended needed

Calling a summary endpoint returns the full media object out of the box:
curl "https://api.simkl.com/tv/17465?client_id=YOUR_CLIENT_ID&app-name=my-app-name&app-version=1.0" \
  -H "User-Agent: my-app-name/1.0"
You’ll get back overview, ratings, genres, trailers, recommendations — everything that used to require ?extended=full. The parameter is still accepted for backward compatibility, but it’s a no-op on /movies/:id, /tv/:id, /anime/:id, /tv/episodes/:id, and /anime/episodes/:id.

GET /sync/all-items/:type/:status — multiple modes

This is the only endpoint where extended takes one of several distinct mode values (not a comma-separated list). The default response is already richextended modes either reduce it to a slimmer ID-only payload (for fast deletion-reconciliation diffs) or enhance it with episode-level data and full metadata.
ValueWhat you get
(omitted)Default rich summary per item: last_watched, last_watched_at, watched_episodes_count, total_episodes_count, not_aired_episodes_count, next_to_watch, added_to_watchlist_at, user_rating, user_rated_at, status, plus a show / movie / anime block with title, poster, year, runtime, and ids.
extended=simkl_ids_onlyReduces to just ids.simkl per item — smallest possible delta payload, ideal for diffing against a local cache.
extended=ids_onlyReduces to the full ids block (Simkl + every external catalog ID) without other metadata.
extended=fullEnhances the default with genres, ratings, full metadata, and a seasons[].episodes[] block for items in watching / plantowatch / hold statuses. Episode entries contain number only — per-episode watched_at requires the separate episode_watched_at=yes parameter.
extended=full_anime_seasonsSame as extended=full, plus anime entries gain a show-level mapped_tvdb_seasons: [n, …] array (each Simkl/AniDB season’s matching TVDB season number) and a per-episode tvdb: { season, episode } block. Not applied to anime movies.
Two query parameters interact with extended on /sync/all-items but are separate flags:
  • include_all_episodes=yes (or =original) — by default, extended=full doesn’t load seasons[].episodes[] for items in completed or dropped buckets. Set include_all_episodes=yes to load episodes on those buckets too (synthesizes virtual episode rows for items without per-episode data). Use =original to load only real per-episode rows, skipping virtual synthesis.
  • episode_watched_at=yes — adds per-episode watched_at timestamps to whatever episodes are loaded. Modifier only — episodes must already be present via extended=full or include_all_episodes=yes. Without this flag, episode entries carry only number.
See the /sync/all-items reference for the full response shape per mode, and the Sync guide for the two-phase model that puts these together. For rewatch-session reads, see the Rewatches guide.

Search — only /search/:type uses extended

/search/:type (free-text search) accepts only extended=full (no comma-separated values, no other modes). Default match shape (without extended): title, year, poster, endpoint_type, plus ids (simkl_id, slug, and tmdb when available). Anime entries also include title_en, title_romaji, and type (tv / movie / ova / ona / special / music video). With extended=full the response adds:
  • all_titles — alternate titles / aliases (only when more than one is known for the item)
  • url — canonical simkl.com URL
  • rank — Simkl rank for the type
  • status — running / ended / cancelled / etc.
  • ratings — Simkl + IMDb + MAL aggregate ratings (each present when available)
  • ep_count — episode count, non-movies only (TV and anime)
/search/id and /search/file don’t honour extended — they always return their default match shape. See those endpoints’ pages for the actual response fields.
For /search/id specifically, use the per-catalog ID query parameter that matches what you have (imdb, tmdb, tvdb, mal, etc.). The response shape is fixed; there’s no opt-in extension.