animedex.backends.anilist

High-level AniList Python API.

Each public function corresponds to a subcommand of animedex anilist. The function takes typed arguments, calls animedex.api.anilist.call() to issue the GraphQL request, parses the body, and returns a typed dataclass from animedex.backends.anilist.models.

Token-required Query roots (Viewer, Notification, Markdown, AniChartUser) are exposed as functions that unconditionally raise ApiError(reason="auth-required") until the OAuth flow lands; the corresponding CLI subcommands surface that as a clean error.

show

animedex.backends.anilist.show(id: int, *, config: Config | None = None, **kw) AnilistAnime[source]

Fetch a single AniList Media (anime/manga) by id.

Parameters:
  • id (int) – AniList Media id.

  • config (Config or None) – Optional Config overrides.

Returns:

Rich AniList record.

Return type:

AnilistAnime

Raises:

ApiErrorreason='not-found' when the id is unknown.

character

animedex.backends.anilist.character(id: int, *, config: Config | None = None, **kw) AnilistCharacter[source]

Fetch a single AniList Character by id.

staff

animedex.backends.anilist.staff(id: int, *, config: Config | None = None, **kw) AnilistStaff[source]

Fetch a single AniList Staff by id.

studio

animedex.backends.anilist.studio(id: int, *, config: Config | None = None, **kw) AnilistStudio[source]

Fetch a single AniList Studio by id.

schedule

animedex.backends.anilist.schedule(year: int, season: str, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistAnime][source]

List anime airing in the given season.

Parameters:
  • year (int) – Calendar year.

  • season (str) – One of "WINTER", "SPRING", "SUMMER", "FALL" (case-insensitive).

user

animedex.backends.anilist.user(name: str, *, config: Config | None = None, **kw) AnilistUser[source]

Fetch an AniList user profile by name (public endpoint).

genre_collection

animedex.backends.anilist.genre_collection(*, config: Config | None = None, **kw) AnilistGenreCollection[source]

The full AniList genre vocabulary.

media_tag_collection

animedex.backends.anilist.media_tag_collection(*, config: Config | None = None, **kw) List[AnilistMediaTag][source]

The full AniList tag taxonomy with categories + spoiler flags.

site_statistics

animedex.backends.anilist.site_statistics(*, config: Config | None = None, **kw) AnilistSiteStatistics[source]

AniList-wide entity counts (latest snapshot row per category).

airing_schedule

animedex.backends.anilist.airing_schedule(*, media_id: int | None = None, not_yet_aired: bool | None = None, airing_at_greater: int | None = None, airing_at_lesser: int | None = None, per_page: int = 10, config: Config | None = None, **kw) List[AnilistAiringSchedule][source]

Upcoming-episode schedule, optionally filtered.

media_trend

animedex.backends.anilist.media_trend(media_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistMediaTrend][source]

Daily score / popularity trend rows for one Media.

review

animedex.backends.anilist.review(media_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistReview][source]

User reviews for a given Media id.

recommendation

animedex.backends.anilist.recommendation(media_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistRecommendation][source]

Media-to-media recommendations rooted at media_id.

thread

animedex.backends.anilist.thread(q: str, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistThread][source]

Search forum threads.

thread_comment

animedex.backends.anilist.thread_comment(thread_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistThreadComment][source]

Comments on a single forum thread.

activity

animedex.backends.anilist.activity(*, per_page: int = 10, config: Config | None = None, **kw) List[AnilistActivity][source]

Recent global activity (text + list).

activity_reply

animedex.backends.anilist.activity_reply(activity_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistActivityReply][source]

Replies to a public activity item.

following

animedex.backends.anilist.following(user_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistFollowEntry][source]

Users a given user follows.

follower

animedex.backends.anilist.follower(user_id: int, *, per_page: int = 10, config: Config | None = None, **kw) List[AnilistFollowEntry][source]

Users following a given user.

media_list_public

animedex.backends.anilist.media_list_public(user_name: str, *, type: str = 'ANIME', per_page: int = 10, config: Config | None = None, **kw) List[AnilistMediaListEntry][source]

A public user’s MediaList rows (read-only).

Parameters:
  • user_name – AniList username.

  • type"ANIME" or "MANGA".

media_list_collection_public

animedex.backends.anilist.media_list_collection_public(user_name: str, *, type: str = 'ANIME', config: Config | None = None, **kw) AnilistMediaListCollection[source]

A public user’s full list grouped by status.

viewer

animedex.backends.anilist.viewer(*, config: Config | None = None, **kw)[source]

Current user profile. Requires authentication.

Raises:

ApiError – Always, until the OAuth flow lands.

notification

animedex.backends.anilist.notification(*, config: Config | None = None, **kw)[source]

Notifications. Token-required.

markdown

animedex.backends.anilist.markdown(text: str, *, config: Config | None = None, **kw)[source]

AniList-markdown to HTML. Token-required.

ani_chart_user

animedex.backends.anilist.ani_chart_user(*, config: Config | None = None, **kw)[source]

AniChart user state. Token-required.

selftest

animedex.backends.anilist.selftest() bool[source]

Smoke-test the AniList Python API.

Without hitting the network: confirms every public callable exists and the auth-required stubs raise correctly.