> ## Documentation Index
> Fetch the complete documentation index at: https://api.simkl.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Extended info

> Which endpoints return rich data by default and which ones still take an `extended` query parameter.

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 family                                                                                                                                            | Default response                                                                                                                                                                               | `extended` parameter?                                                                                                                    |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| [`GET /movies/:id`](/api-reference/simkl/get-movie), [`GET /tv/:id`](/api-reference/simkl/get-tv-show), [`GET /anime/:id`](/api-reference/simkl/get-anime) | **Full record** — title, year, ids, overview, genres, ratings, poster, fanart, trailers, recommendations                                                                                       | Not needed.                                                                                                                              |
| [`GET /tv/episodes/:id`](/api-reference/simkl/get-tv-episodes), [`GET /anime/episodes/:id`](/api-reference/simkl/get-anime-episodes)                       | **Full episode list** with metadata                                                                                                                                                            | Not needed.                                                                                                                              |
| [`GET /sync/all-items/:type/:status`](/api-reference/simkl/get-all-items)                                                                                  | **Rich summary** — `last_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-syncall-itemstypestatus--multiple-modes)). |
| [`GET /search/:type`](/api-reference/simkl/search-by-text) (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`](/api-reference/simkl/search-by-id), [`POST /search/file`](/api-reference/simkl/search-by-file)                                          | Match metadata                                                                                                                                                                                 | `extended` is not used.                                                                                                                  |

## Summary endpoints — no extended needed

Calling a summary endpoint returns the full media object out of the box:

```bash theme={"theme":{"light":"github-light","dark":"vesper"}}
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`](/api-reference/simkl/get-movie), [`/tv/:id`](/api-reference/simkl/get-tv-show), [`/anime/:id`](/api-reference/simkl/get-anime), [`/tv/episodes/:id`](/api-reference/simkl/get-tv-episodes), and [`/anime/episodes/:id`](/api-reference/simkl/get-anime-episodes).

## [`GET /sync/all-items/:type/:status`](/api-reference/simkl/get-all-items) — 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 **rich** — `extended` 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.

| Value                         | What 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_only`     | **Reduces** to just `ids.simkl` per item — smallest possible delta payload, ideal for diffing against a local cache.                                                                                                                                                                                                        |
| `extended=ids_only`           | **Reduces** to the full `ids` block (Simkl + every external catalog ID) without other metadata.                                                                                                                                                                                                                             |
| `extended=full`               | **Enhances** 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_seasons` | Same 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.                                                                                 |

### Related modifiers

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](/api-reference/simkl/get-all-items) for the full response shape per mode, and the [Sync guide](/guides/sync) for the two-phase model that puts these together. For rewatch-session reads, see the [Rewatches guide](/guides/rewatches).

## Search — only [`/search/:type`](/api-reference/simkl/search-by-text) uses `extended`

[`/search/:type`](/api-reference/simkl/search-by-text) (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`](/api-reference/simkl/search-by-id) and [`/search/file`](/api-reference/simkl/search-by-file) don't honour `extended` — they always return their default match shape. See those endpoints' pages for the actual response fields.

<Note>
  For [`/search/id`](/api-reference/simkl/search-by-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.
</Note>
