Full-text search over the Simkl catalog. Pick a type (movie, tv, or anime) and pass a search term like john wick or john wick 2014.
Heads up: movie becomes "movies" in the response.
You call /search/movie (no s) but each item in the response has endpoint_type: "movies" (with an s). TV and anime don’t change.
| You call | Each item’s endpoint_type is |
|---|---|
/search/movie | "movies" ← note the extra s |
/search/tv | "tv" |
/search/anime | "anime" |
Every item in a single response has the same endpoint_type — you never get a mixed list back.
| Param | Values |
|---|---|
type | movie, tv, anime |
| Param | Default | Notes |
|---|---|---|
q | — | Required. Text query (matches title and all_titles[]). For external-ID lookups (IMDb / TMDB / TVDB / etc.), use /redirect or /search/id instead. |
page | 1 | Hard-capped server-side at 20. Higher values silently clamp. |
limit | 10 | Hard-capped server-side at 50. Higher values silently clamp. |
extended | simple | full adds all_titles[], url, ep_count (TV/anime), rank (nullable), status (TV/anime), and a ratings block. |
Returns paginated results with X-Pagination-* headers — see Pagination for the standard paginator pattern.
| Field | simple | extended=full | Notes |
|---|---|---|---|
title | ✓ | ✓ | Display title in the user’s locale. |
title_en | — | — | Anime only, optional even on anime — only when an English-localized title is on file. |
title_romaji | anime only | anime only | Anime only, always present on anime items. Currently mirrors title for the romaji slot. |
year | ✓ | ✓ | Premiere year. |
endpoint_type | ✓ | ✓ | "movies" / "tv" / "anime". Same value on every item in one response. |
type | anime only | anime only | Anime only: tv, movie, ova, ona, special, music. |
poster | ✓ | ✓ | Image path fragment — see Image conventions for the full URL pattern (https://simkl.in/posters/{poster}_m.webp). |
ids | ✓ | ✓ | { simkl_id, slug, tmdb? }. tmdb only present when a TMDB link is on file. |
all_titles | — | movies/anime | Aliases / localized variants. Anime sees the most entries. TV items typically don’t carry this even on extended=full. |
url | — | ✓ | Relative simkl.com URL (with slug). |
ep_count | — | TV/anime | Total episode count when known. |
rank | — | ✓ | Simkl popularity rank. Nullable — see below. |
status | — | TV/anime | Closed enum: tba, ended, airing. |
ratings.simkl | — | ✓ | { rating, votes } — only present when votes > 0. |
ratings.imdb | — | ✓ | { rating, votes } — only present when an IMDb rating record exists. |
ratings.mal | — | anime only | { rating, votes, rank } — anime only, only when a MAL record exists. |
| Field | When null | Type |
|---|---|---|
rank | Item not yet ranked, or rank value ≥ 999999 sentinel | Type 4 |
ep_count | TV/anime item with no episode count on file yet | Type 4 |
poster | No poster image on file | Type 4 |
| Status | When |
|---|---|
412 client_id_failed | Missing or invalid client_id |
500 | Server error |
No 400 — invalid page / limit silently clamp to the server caps. No 404 — empty result is [] with status 200.
Which IDs can I send/expect? All accepted input identifiers and the keys you’ll see echoed back in responses are listed at Standard media objects → Supported ID keys. Send every ID you have on writes — Simkl picks the first that resolves and ignores the rest. Reminder: slug is response-only (never send it on a request).
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.
Preferred form: your client_id as a URL query parameter on every request. Self-describing in logs and curl commands. See Headers and required parameters.
Descriptive identifier for your app, ideally name/version. Examples: PlexMediaServer/1.43.1.10540, kodi-simkl/0.9.2, MyApp/2.4.1 (https://myapp.com).
Search type.
tv, anime, movie Required. The search term — matches title and all_titles[] across the chosen catalog (movies / TV / anime).
Examples: john wick, john wick 2014, breaking bad, cowboy bebop.
Page number for paginated endpoints (1-based).
1 <= x <= 20Items per page. Capped at 50.
1 <= x <= 50full adds overview, ratings, and genres to each match.
simple, full Your client_id from your Simkl developer settings. Required on every request.
Short, lowercase identifier for your app (e.g. plex-scrobbler, kodi-bridge). Helps Simkl identify which apps are using the API.
Your app's current version (e.g. 1.0, 2.4.1). Helps Simkl debug issues you report.
OK
One movie search result. endpoint_type is the constant "movies" (plural even though the path is /search/movie). Extended fields (all_titles, url, rank, ratings) only appear when the call includes extended=full.
Constant for movie search results.
movies Image path fragment. Combine with the prefixes in Image conventions — for example https://simkl.in/posters/{poster}_m.webp. Type 4 null — null when no poster image is on file. See Null and missing values.
ID block returned on every search result item. simkl_id and slug are always present; tmdb is only present when a TMDB link record exists for the title.
Hide child attributes
Canonical Simkl ID for the title.
URL slug parsed from the simkl.com canonical URL (everything after the last /). Response-only — never send on requests.
TMDB ID, when a link record exists. For TV/anime this is the TMDB TV ID; for movies it's the TMDB movie ID.
Aliases / localized variants. Extended mode only, and only when the catalog has more than one title.
Relative simkl.com URL. Extended mode only.
Simkl popularity rank. Type 4 null — null when the item is not yet ranked or the catalog sentinel value (≥ 999999) is present. See Null and missing values.
External-source ratings block. Each sub-key is present only when the corresponding rating record exists.
Hide child attributes
Was this page helpful?