curl --request GET \
--url https://api.simkl.com/tv/episodes/{id} \
--header 'User-Agent: <user-agent>' \
--header 'simkl-api-key: <api-key>'Returns the full episode list for a Simkl TV show ID. Items include season, episode, title, description, aired (boolean), img, date (timezone-shifted), and ids.simkl_id. Specials appear with type: "special" after the regular episodes.
Responses are Cloudflare-cached by Simkl ID, so repeat lookups of popular shows are near-free. Parallel requests against this endpoint are explicitly allowed (see Rate limits → Parallel requests).
Cache invalidation is automatic. When Simkl updates the underlying episode list (new episode airs, airdate change, title edit, image swap, etc.), the corresponding Cloudflare cache entry is purged server-side. The next call returns the fresh data — there’s no TTL to wait out. Your own app-level cache, if any, still has to be invalidated by your client.
Use the parent show’s Simkl ID. If you only have an external ID, resolve it via GET /redirect first.
curl --request GET \
--url https://api.simkl.com/tv/episodes/{id} \
--header 'User-Agent: <user-agent>' \
--header 'simkl-api-key: <api-key>'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.
Optional alias for the client_id query parameter. Simkl accepts your client_id either as the simkl-api-key request header or as the ?client_id=… query parameter — pick one. The query-parameter form is preferred because it makes the request fully self-describing in URL form.
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).
Simkl ID of the TV show — the parent show's Simkl ID (not an individual episode ID). The endpoint returns the full episode list for that show. Use a Simkl ID directly when you have one — the response is Cloudflare-cached.
If you only have an external ID (IMDb, TMDB, TVDB), resolve it to a Simkl ID first via GET /redirect.
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.
Array of episode entries ordered by season then episode. Specials follow the regular episodes and carry type: "special" with no season/episode numbers. An empty array [] is returned for an unknown parent show ID (Type 3 null).
Episode title in the response language.
Episode classification. episode for regular numbered episodes, special for one-off content (specials, clip shows, behind-the-scenes, picture dramas, etc.). On TV episode lists specials follow the regular run; on anime listings specials and movies share this enum.
episode, special Synopsis. Type 4 null when no synopsis is on file.
Season number (1-based).
Episode number within the season (1-based).
true if the episode has aired, false if it's still upcoming.
Air date+time in the originating network's timezone (e.g. 2011-04-17T21:00:00-05:00). Type 4 null when the schedule isn't on file.
Was this page helpful?