Search anime/manga
search_mediaSearch AniList for anime or manga by title, genre, format, status, season/year, or browse by ranking. Returns AniList IDs for use with other tools.
Instructions
Search AniList for anime or manga by title and/or filters (genre, format, status, season/year), or browse term-less by ranking (top-rated, most popular, trending — see the sort parameter) when you don't have a title to search for. Adult (NSFW) results are included unless you set sfw: true — see the sfw parameter. Returns AniList IDs to use with get_media and other ID-based tools.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| sfw | No | Set true to exclude adult (isAdult) entries. Adult results are NOT filtered by default. | |
| page | No | Page number for pagination. AniList's paginated connections (search results, a title's characters/staff/reviews, activity feeds, forum comments) reject a page whose page × perPage exceeds ~5000 entries with an upstream error, so paging that deep fails rather than returning more results. | |
| sort | No | Sort order, most-significant key first (e.g. ["SCORE_DESC"] for highest-rated first, ["POPULARITY_DESC"] for most popular, ["TRENDING_DESC"] for what's hot right now). Defaults to relevance-ranked SEARCH_MATCH when a `term` is given; with no term and no explicit sort, results come back in AniList's own default order. Set an explicit sort for a term-less ranking/browse query (e.g. top-rated or most-popular). | |
| term | No | Free-text search term (matches title). Omit to only filter. | |
| type | Yes | Whether to search anime or manga. | |
| genres | No | Restrict to entries matching ALL of these genre names (see get_genres for valid names) — an unrecognized genre name doesn't error, it just filters out all results, same silent-mismatch behavior as `format_in`/`tag_in` below. | |
| onList | No | [Requires login] Restrict to (true) or exclude (false) entries already on the authenticated user's own list. Omit to ignore list status entirely. Confirmed live: silently no-ops (identical results for true/false/omitted) if not logged in, since there's no list to check against — same behavior as get_recommendations_for_media's `excludeInList`. | |
| season | No | Restrict to this airing season. Works alone — matches every year's occurrence of that season, NOT just the current year (unlike anilist.co's own season filter UI, which implicitly assumes the current year when you don't also pick one). Combine with `seasonYear` for one specific season+year. | |
| tag_in | No | Restrict to entries matching ALL of these exact tag names (see get_media_tags for valid names — unlike `genres`, tag names are case-sensitive and more specific, e.g. "Time Loop" or "Tragedy"). An unrecognized tag name doesn't error, it just silently matches nothing (same behavior as `genres`/`format_in` above, confirmed live). | |
| perPage | No | Results per page (max 25). | |
| format_in | No | Restrict to these formats. Only formats valid for the `type` you're searching match anything — e.g. NOVEL/ONE_SHOT with type: ANIME, or TV/OVA/ONA with type: MANGA, will just filter out all results, not error. | |
| source_in | No | Restrict to entries adapted from these source material types. | |
| status_in | No | Restrict to these release statuses. | |
| seasonYear | No | Restrict to this airing/release year (matches any season within it). Works alone or combined with `season` for one specific season+year — neither requires the other. | |
| endDate_lesser | No | Restrict to entries whose end date is on or before this date. | |
| endDate_greater | No | Restrict to entries whose end date is on or after this date. | |
| episodes_lesser | No | Restrict to entries with fewer episodes/chapters than this. | |
| episodes_greater | No | Restrict to entries with more episodes/chapters than this. | |
| startDate_lesser | No | Restrict to entries whose start date is on or before this date. | |
| popularity_lesser | No | Restrict to entries with fewer list-adds than this. | |
| startDate_greater | No | Restrict to entries whose start date is on or after this date. | |
| includeDescription | No | Also fetch each result's full synopsis (`description`). Kept off by default — with up to 25 results per call, always including it would burn tokens on text you may not need; use get_media for a single title's full synopsis instead. | |
| popularity_greater | No | Restrict to entries with more list-adds than this. | |
| averageScore_lesser | No | Restrict to entries with an average score strictly less than this (0-100). | |
| averageScore_greater | No | Restrict to entries with an average score strictly greater than this (0-100). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| results | Yes |