Endpoints

class AbuseRequestEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async AsOfftopic(comment_id: str | int) AbuseRequest | RequestError

Mark comment as offtopic Request will be sent to moderators.

Parameters:

comment_id – Must be a number.

async AsReview(topic_id: str | int = None, comment_id: str | int = None) None | RequestError

Convert comment to review.

Request will be sent to moderators.

Parameters:
  • topic_id – Must be a number.

  • comment_id – Must be a number.

async CreateViolation(topic_id: str | int = None, comment_id: str | int = None, reason: str = None) None | RequestError

Create abuse about violation of site rules.

Request will be sent to moderators.

Parameters:
  • comment_id – Must be a number.

  • topic_id – Must be a number.

  • reason – Must be a string.

async SpoilerInContent(topic_id: str | int = None, comment_id: str | int = None, reason: str = None) None | RequestError

Create abuse about spoiler in content Request will be sent to moderators.

Parameters:
  • comment_id – Must be a number.

  • topic_id – Must be a number.

  • reason – Must be a string.

class GraphQlEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async animes(fields: str, page: int = 1, limit: int = 1, order: OrderEnum = None, kind: str = None, status: str = None, season: str = None, score: int = None, duration: int = None, rating: str = None, genre: str = None, studio: str = None, franchise: str = None, censored=True, mylist: str = None, ids: str = None, excludeIds: str = None, search: str = None) dict | RequestError
Parameters:
  • fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

  • kind – List of values separated by comma. Add ! before value to apply negative filter. values: tv, movie, ova, ona, special, tv_special, music, pv, cm, tv_13, tv_24, tv_48

  • status – List of values separated by comma. Add ! before value to apply negative filter.

  • season – List of values separated by comma. Add ! before value to apply negative filter. Examples: summer_2017, 2016, 2014_2016, 199x

  • score – Minimal anime score

  • duration – List of values separated by comma. Add ! before value to apply negative filter. Examples: S - Less than 10 minutes, D - Less than 30 minutes, F - More than 30 minutes

  • rating – List of values separated by comma. Add ! before value to apply negative filter. Examples: none - No rating, g - G - All ages, pg - PG - Children, pg_13 - PG-13 - Teens 13 or older, r - R - 17+ recommended (violence & profanity), r_plus - R+ - Mild Nudity (may also contain violence & profanity), rx - Rx - Hentai (extreme sexual content/nudity)

  • genre – List of comma separated genre ids

  • studio – List of comma separated studio ids

  • franchise – List of comma separated franchises

  • censored – Set to false to allow hentai, yaoi and yuri

  • mylist – List of values separated by comma. Add ! before value to apply negative filter. Examples: planned - Planned to Watch, watching - Watching, rewatching - Rewatching, completed - Completed, on_hold - On Hold, dropped - Dropped

  • ids – List of comma separated ids

  • excludeIds – List of comma separated ids

  • search – must be a string

  • order – OrderEnum

  • page – must be a number

  • limit – Maximum 50

async characters(fields: str, page: int = 1, limit: int = 1, ids: str = None, search: str = None) dict | RequestError
Parameters:
async contests(fields: str, page: int = 1, limit: int = 1, ids: str = None) dict | RequestError
Parameters:
async currentUser(fields: str) dict | RequestError
Parameters:

fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

async genres(fields: str, entry: GenreEntryTypeEnum) dict | RequestError
Parameters:
async mangas(fields: str, page: int = 1, limit: int = 1, order: OrderEnum = None, kind: str = None, status: str = None, season: str = None, score: int = None, genre: str = None, publisher: str = None, franchise: str = None, censored=True, mylist: str = None, ids: str = None, excludeIds: str = None, search: str = None) dict | RequestError
Parameters:
  • fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

  • publisher – List of comma separated publisher ids

  • kind – List of values separated by comma. Add ! before value to apply negative filter. values: tv, movie, ova, ona, special, tv_special, music, pv, cm, tv_13, tv_24, tv_48

  • status – List of values separated by comma. Add ! before value to apply negative filter.

  • season – List of values separated by comma. Add ! before value to apply negative filter. Examples: summer_2017, 2016, 2014_2016, 199x

  • score – Minimal anime score

  • genre – List of comma separated genre ids

  • franchise – List of comma separated franchises

  • censored – Set to false to allow hentai, yaoi and yuri

  • mylist – List of values separated by comma. Add ! before value to apply negative filter. Examples: planned - Planned to Watch, watching - Watching, rewatching - Rewatching, completed - Completed, on_hold - On Hold, dropped - Dropped

  • ids – List of comma separated ids

  • excludeIds – List of comma separated ids

  • search – must be a string

  • order – OrderEnum

  • page – must be a number

  • limit – Maximum 50

async people(fields: str, page: int = 1, limit: int = 1, ids: str = None, search: str = None, isSeyu: bool = None, isProducer: bool = None, isMangaka: bool = None) dict | RequestError
Parameters:
  • fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

  • page – int

  • limit – Maximum 10

  • ids – List of values separated by comma.

  • search – str

  • isSeyu – bool

  • isProducer – bool

  • isMangaka – bool

async userRates(fields: str, userId: int = None, page: int = 1, limit: int = 1, targetType: UserRateTargetTypeEnum = None, status: UserRateStatusEnum = None, order: UserRateOrderInputType = None) dict | RequestError
Parameters:
  • fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

  • userId – ID of current user is used by default

  • page – int

  • limit – maximum - 50

  • targetType – UserRateTargetTypeEnum

  • status – UserRateStatusEnum

  • order – UserRateOrderInputType

async users(fields: str, page: int = 1, limit: int = 1, ids: str = None, search: str = None) dict | RequestError
Parameters:
  • fields – e.g. ‘{ anime { id name } }’ (check more in doc https://shikimori.one/api/doc/graphql )

  • page – int

  • limit – maximum - 50

  • ids – List of values separated by comma.

  • search – str

class AchievementsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(user_id: int) list[Achievement] | RequestError

List user achievements.

Parameters:

user_id – Must be a number.

class AnimeEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, order: str = None, kind: str = None, status: str = None, season: str = None, score: str = None, duration: str = None, rating: str = None, genre: str = None, studio: str = None, franchise: str = None, censored: str = None, mylist: str = None, ids: str = None, exclude_ids: str = None, search: str = None, genre_v2: str = None) list[Anime] | RequestError

List animes.

Parameters:
  • page – must be a number between 1 and 100000.

  • limit – Must be a number, 50 - maximum.

  • order – Must be one of: id, id_desc, ranked, kind, popularity, name, aired_on, episodes, status, random, ranked_random, ranked_shiki, created_at, created_at_desc.

  • kind – Must be one of: tv, movie, ova, ona, special, tv_special, music, pv, cm, tv_13, tv_24, tv_48.

  • status – Must be one of: anons, ongoing, released.

  • season – ex - summer_2017, 2016, 2014_2016, 199x.

  • score – Must be a number.

  • duration – Must be one of: S - less than 10, D - less than 30, F - more than 30.

  • rating – Must be one of: none, g, pg, pg_13, r, r_plus, rx.

  • genre – List of genre ids separated by comma.

  • studio – List of studio ids separated by comma.

  • franchise – List of franchises separated by comma.

  • censored – Must be one of: true, false.

  • mylist – Must be one of: planned, watching, rewatching, completed, on_hold, dropped.

  • ids – List of anime ids separated by comma.

  • exclude_ids – List of anime ids separated by comma.

  • search – Search phrase to filter animes by name.

  • genre_v2 – List of genre v2 ids separated by comma.

async ById(id: int) AnimeInfo | RequestError

Show an anime.

Parameters:

id – Must be a Number.

async roles(id: int) List[Role] | RequestError

List anime roles.

Parameters:

id – must be a number.

async similar(id: int) List[Anime] | RequestError

List similar animes.

Parameters:

id – must be a number.

async related(id: int) List[Relation] | RequestError

List related animes.

Parameters:

id – must be a number.

async screenshots(id: int) List[ScreenShot] | RequestError

List screenshots anime.

Parameters:

id – must be a number.

async franchise(id: int) Franchise | RequestError

Show the whole franchise.

Parameters:

id – must be a number.

Show the externalLinks of an anime.

Parameters:

id – must be a number.

async topics(id: int, page: int = None, limit: int = None, kind: str = None, episode: int = None) List[Topic] | RequestError

list of topics that relate to anime.

Parameters:
  • id – Must be a number.

  • page – Must be a number between 1 and 100000.

  • limit – 30 maximum.

  • kind – Must be one of: anons, ongoing, released, episode.

  • episode – Must be a number.

class AppearsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async read(ids: str = None) None | RequestError

Mark comments or topics as read.

Parameters:

ids – str like ‘comment-7,comment-8,topic-270101’.

class BanEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() List[Ban] | RequestError

List bans

class BaseEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
property headers: dict
class CalendarEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(censored: bool = None) List[Calendar] | RequestError

Show a calendar.

Parameters:

censored – Set to false to allow hentai, yaoi and yuri

class CharacterEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ById(id: int) Character | RequestError

Show a character.

Parameters:

id – must be a number.

async search(search: str) list[CharacterBrief] | RequestError

Search characters.

Parameters:

search – Must be a String.

class ClubEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, search: str = None) List[Club] | RequestError

List clubs.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 30 max.

  • search – string.

async ById(id: int) ClubInfo | RequestError

Show a club.

Parameters:

id – must be a number.

async update(id: int, name: str = None, description: str = None, display_images: bool | int = None, comment_policy: str = None, topic_policy: str = None, image_upload_policy: str = None) ClubInfo | RequestError

Update a club.

Requires clubs oauth scope.

Parameters:
  • id – number.

  • name – string.

  • description – string.

  • display_images – Must be one of: true, false, 1, 0.

  • comment_policy – Must be one of: free, members, admins.

  • topic_policy – Must be one of: members, admins.

  • image_upload_policy – Must be one of: members, admins.

async animes(id: int, limit: int = None, page: int = None) List[Anime] | RequestError

List of club animes.

Parameters:
  • id – must a number.

  • limit – 20 maximum.

  • page – Must be a number between 1 and 100000.

async mangas(id: int, page: int = None, limit: int = None) List[Manga] | RequestError

List of club mangas.

Parameters:
  • id – must a number.

  • limit – 20 maximum.

  • page – Must be a number between 1 and 100000.

async ranobes(id: int, limit: int = None, page: int = None) List[Ranobe] | RequestError

List of club Ranobes

Parameters:
  • id – must a number.

  • limit – 20 maximum.

  • page – Must be a number between 1 and 100000.

async characters(id: int, limit: int = None, page: int = None) List[CharacterBrief] | RequestError

List of club Characters.

Parameters:
  • id – must a number.

  • limit – 20 maximum.

  • page – Must be a number between 1 and 100000.

async collections(id: int, limit: int = None, page: int = None) List[Collection] | RequestError

List of club Collections.

Parameters:
  • id – must a number.

  • limit – 4 maximum.

  • page – Must be a number between 1 and 100000.

async clubs(id: int, limit: int = None, page: int = None) List[Club] | RequestError

List of club clubs.

Parameters:
  • id – must a number.

  • limit – 30 maximum.

  • page – Must be a number between 1 and 100000.

async members(id: int, limit: int = None, page: int = None) List[User] | RequestError

List of club members.

Parameters:
  • id – must a number.

  • limit – 100 maximum.

  • page – Must be a number between 1 and 100000.

async images(id: int, limit: int = None, page: int = None) List[ClubImage] | RequestError

List of club Images.

Parameters:
  • id – must a number.

  • limit – 100 maximum.

  • page – Must be a number between 1 and 100000.

async join(id: int) None | RequestError

Join a club.

Requires clubs oauth scope.

Parameters:

id – must be a number.

async leave(id: int) None | RequestError

Leave a club.

Requires clubs oauth scope.

Parameters:

id – must be a number.

class CommentEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(commentable_id: int = None, commentable_type: str = None, page: int = None, limit: int = None, desc: int = None) List[Comment] | RequestError

List comments.

Parameters:
  • commentable_id – must be a number.

  • commentable_type – Must be one of: Topic, User.

  • page – Must be a number between 1 and 100000.

  • limit – 30 maximum.

  • desc – Must be one of: 1, 0.

async ById(id: int) Comment | RequestError

Show a comment.

Parameters:

id – must be a number.

async create(broadcast: bool = None, body: str = None, commentable_id: int = None, commentable_type: str = None, is_offtopic: bool = None, frontend: bool = None)

Create a comment.

Requires comments oauth scope.

Parameters:
  • broadcast – Must be one of: true, false.

  • body – Must be a String.

  • commentable_id – Must be a number.

  • commentable_type – Must be one of: Topic, User, Anime, Manga, Character, Person, Article, Club, ClubPage, Collection, Critique, Review. # NOQA

  • is_offtopic – Must be one of: true, false.

  • frontend – Must be one of: true, false.

async update(id: int, body: str, frontend: bool = None) Comment | RequestError

Update a comment. Requires comments oauth scope.

Use abuse_requests to change is_offtopic field.

Parameters:
  • body – string.

  • frontend – string.

async delete(id: int) str | RequestError

Destroy a comment. Requires comments oauth scope.

Parameters:

id – must be a number

class ConstantsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async animes() AnimeConstant | RequestError
async mangas() MangaConstant | RequestError
async user_rates() UserRateConstant | RequestError
async clubs() ClubConstant | RequestError
async smileys() list[SmileConstant] | RequestError
class DialogsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() List[Dialog] | RequestError

List dialogs.

Requires messages oauth scope.

async ById(id: str) List[MessageInfo] | RequestError

Show a dialog. Requires messages oauth scope.

Parameters:

id – like user_{id}.

async delete(id: str) str | RequestError

Destroy a dialog. Requires messages oauth scope.

Parameters:

id – like user_{id}.

class EpisodeNotificationEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async notify(token: str, anime_id: int, episode: int, aired_at: str, is_fandub: bool = None, is_raw: bool = None, is_subtitles: bool = None, is_anime365: bool = None) EpisodeNotification | RequestError

Notify shikimori about anime episode release.

Parameters:
  • token – Private token required to access this api

  • anime_id – Must be a number.

  • episode – Must be a number.

  • aired_at – Must be a date in iso8601 YYYY-MM-DDThh:mm:ss±hh format

  • is_fandub – Must be one of: true, false, 1, 0.

  • is_raw – Must be one of: true, false, 1, 0.

  • is_subtitles – Must be one of: true, false, 1, 0.

  • is_anime365 – Must be one of: true, false, 1, 0.

class FavoritesEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async add(id: int, linked_type: str, kind: str = None) str | RequestError

Create a favorite.

Parameters:
  • id – must be a number

  • linked_type – Must be one of: Anime, Manga, Ranobe, Person, Character

  • kind – Must be one of: common, seyu, mangaka, producer, person

async delete(id: int, linked_type: str) str | RequestError

Destroy a favorite.

Parameters:
  • id – must be a number

  • linked_type – Must be one of: Anime, Manga, Ranobe, Person, Character

async reorder(id: int, new_index: int = None) None | RequestError

Assign a new position to a favorite.

Parameters:
  • id – must be a number.

  • new_index – must be a number.

class ForumEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() RequestError | list[Forum]

List of forums

class FriendEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async add(id: int) str | RequestError

Create a friend.

Requires friends oauth scope.

Parameters:

id – must be a number.

async delete(id: int) str | RequestError

Destroy a friend.

Requires friends oauth scope.

Parameters:

id – must be a number.

class GenreEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() list[Genre] | RequestError

List genres

class MangaEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, order: str = None, kind: str = None, status: str = None, season: str = None, score: int = None, genre: str = None, publisher: str = None, franchise: str = None, censored: bool = None, mylist: str = None, ids: str = None, exclude_ids: str = None, search: str = None, genre_v2: str = None)

Most of parameters can be grouped in lists of values separated by comma:

  • season=2016,2015 – mangas with season 2016 year or with season 2015 year.

  • kind=manga,one_shot – mangas with kind Manga or with kind One Shot.

Most of the parameters can be used in the subtraction mode:

  • season=!2016,!2015 – mangas without season 2016 year and without season 2015 year.

  • kind=!manga,!one_shot – mangas without kind Manga and without kind One Shot.

Most of the parameters can be used in the combined mode:

  • season=2016,!summer_2016 – mangas with season 2016 year and without season summer_2016.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 50 maximum.

  • order – Must be one of: id, id_desc, ranked, kind, popularity, name, aired_on, volumes, chapters, status, random, ranked_random, ranked_shiki, created_at, created_at_desc.

  • kind – Must be one of: manga, manhwa, manhua, light_novel, novel, one_shot, doujin.

  • status – Must be one of: anons, ongoing, released, paused, discontinued.

  • season – summer_2017 spring_2016,fall_2016.

  • score – must be a number.

  • genre – List of genre ids separated by comma.

  • publisher – List of publisher ids separated by comma.

  • franchise – List of franchises separated by comma.

  • censored – Set to false to allow hentai, yaoi and yuri.

  • mylist – Must be one of: planned, watching, rewatching, completed, on_hold, dropped.

  • ids – List of manga ids separated by comma

  • exclude_ids – List of manga ids separated by comma

  • search – Must be a String

  • genre_v2 – List of genre v2 ids separated by comma

async ById(id: int) MangaInfo | RequestError

Show a manga.

Parameters:

id – must be a number

async roles(id: int) List[Role] | RequestError

list roles.

Parameters:

id – must be a number

async similar(id: int) List[Manga] | RequestError

list similar.

Parameters:

id – must be a number

async related(id: int) List[Relation] | RequestError

list related.

Parameters:

id – must be a number

async franchise(id: int) Franchise | RequestError

list franchises.

Parameters:

id – must be a number

list ExternalLinks.

Parameters:

id – must be a number

async topics(id: int, page: int = None, limit: int = None) List[Topic] | RequestError

list topics.

Parameters:
  • id – must be a number

  • page – Must be a number between 1 and 100000.

  • limit – 30 maximum

class MessageEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ById(id: int) MessageInfo | RequestError

Show a message.

Requires messages oauth scope.

Parameters:

id – must be a number

async create(from_id: int, to_id: int, body: str, kind: str = 'Private') MessageInfo | RequestError

Create a message.

Requires messages oauth scope.

Parameters:
  • from_id – Must be a number.

  • to_id – Must be a number.

  • body – Must be a String.

  • kind – Must be one of: Private.

async update(id: int, body: str) MessageInfo | RequestError

Update a message.

Requires messages oauth scope.

Parameters:
  • id – must be a number

  • body – must be a string

async delete(id: int) None | RequestError

Destroy a message.

Requires messages oauth scope.

Parameters:

id – must be a number

async markRead(ids: str, is_read: bool) None | RequestError

mark as read or unread.

Requires messages oauth scope.

Parameters:
  • ids – string like ‘123, 34455, 283761846’

  • is_read – True - read, False - Unread

async readAll(type: str) None | RequestError

Requires messages oauth scope.

Parameters:

type – Must be one of: news, notifications.

async deleteAll(type: str) None | RequestError

Requires messages oauth scope.

Parameters:

type – Must be one of: news, notifications.

class PeopleEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ById(id: int) People | RequestError

Show a person.

Parameters:

id – must be a number

async search(id: int, type: str = None) list[CharacterBrief] | RequestError

Search people.

Parameters:
  • id – must be a number.

  • type – Must be one of: seyu, mangaka, producer.

class PublisherEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() List[Publisher] | RequestError

List publishers

class RanobeEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, order: str = None, status: str = None, season: str = None, score: int = None, genre: str = None, publisher: str = None, franchise: str = None, censored: bool = None, mylist: str = None, ids: str = None, exclude_ids: str = None, search: str = None) List[Ranobe] | RequestError

Most of parameters can be grouped in lists of values separated by comma:

  • season=2016,2015 – ranobe with season 2016 year or with season 2015 year

Most of the parameters can be used in the subtraction mode:

  • season=!2016,!2015 – ranobe without season 2016 year and without season 2015 year

Most of the parameters can be used in the combined mode:

  • season=2016,!summer_2016 – ranobe with season 2016 year and without season summer_2016.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 50 maximum.

  • order – Must be one of: id, id_desc, ranked, kind, popularity, name, aired_on, volumes, chapters, status, random, ranked_random, ranked_shiki, created_at, created_at_desc.

  • status – Must be one of: anons, ongoing, released, paused, discontinued.

  • season – summer_2017 spring_2016,fall_2016.

  • score – must be a number.

  • genre – List of genre ids separated by comma.

  • publisher – List of publisher ids separated by comma.

  • franchise – List of franchises separated by comma.

  • censored – Set to false to allow hentai, yaoi and yuri.

  • mylist – Must be one of: planned, watching, rewatching, completed, on_hold, dropped.

  • ids – List of ranobe ids separated by comma.

  • exclude_ids – List of ranobe ids separated by comma.

  • search – Must be a String.

async ById(id: int) RanobeInfo | RequestError

Show a ranobe.

Parameters:

id – must be a number

async roles(id: int) List[Role] | RequestError

list roles.

Parameters:

id – must be a number

async similar(id: int) List[Ranobe] | RequestError

list similar.

Parameters:

id – must be a number

async related(id: int) List[Relation] | RequestError

list related.

Parameters:

id – must be a number

async franchise(id: int) Franchise | RequestError

list franchise.

Parameters:

id – must be a number

list ExternalLinks.

Parameters:

id – must be a number

async topics(id: int, page: int = None, limit: int = None) List[Topic] | RequestError

list ExternalLinks.

Parameters:
  • limit – 30 maximum.

  • page – Must be a number between 1 and 100000.

  • id – must be a number

class ReviewEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async create(anime_id: int, body: str, opinion: str) Review | RequestError

Create a review.

Parameters:
  • anime_id – Must be a number.

  • body – Must be a String

  • opinion – Must be one of: positive, neutral, negative

async update(id: int, body: str, opinion: str) Review | RequestError

Update a review.

Parameters:
  • id – Must be a number.

  • body – Must be a String

  • opinion – Must be one of: positive, neutral, negative

async delete(id: int) Review | RequestError

Destroy a review.

Parameters:

id – Must be a number.

class StatsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() List[int] | RequestError

Users having at least 1 completed animes and active during last month

class StudiosEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list() List[Studio] | RequestError

List studios

class StylesEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ById(id: int) Style | RequestError

Show a style.

Parameters:

id – must be a number

async preview(css: str) Style | RequestError

Preview a style.

Parameters:

css – Must be a String

async create(css: str, name: str, owner_id: int, owner_type: str) Style | RequestError

Create a style.

Parameters:
  • css – Must be a String

  • name – Must be a String

  • owner_id – Must be a number.

  • owner_type – Must be one of: User, Club.

async update(id: int, css: str = None, name: str = None) Style | RequestError

Update a style.

Parameters:
  • id – Must be a number

  • css – Must be a String

  • name – Must be a String

class TopicIgnoreEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ignore(topic_id: str | int) Topic | RequestError

ignore topic.

Requires topics oauth scope.

Parameters:

topic_id – Must be a number

async unignore(topic_id: str | int) Topic | RequestError

unignore topic.

Requires topics oauth scope.

Parameters:

topic_id – must be a number

class TopicsEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, forum: str = None, linked_id: int = None, linked_type: str = None, type: str = None) List[Topic] | RequestError

List topics.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 30 maximum

  • forum – Must be one of: all, animanga, site, games, vn, contests, offtopic, clubs, my_clubs, critiques, news, collections, articles, cosplay.

  • linked_id – Used together with linked_type

  • linked_type – Used together with linked_id. Must be one of: Anime, Manga, Ranobe, Character, Person, Club, ClubPage, Critique, Review, Contest, CosplayGallery, Collection, Article.

  • type – Must be one of: Topic, Topics::ClubUserTopic, Topics::EntryTopic, Topics::EntryTopics::AnimeTopic, Topics::EntryTopics::ArticleTopic, Topics::EntryTopics::CharacterTopic, Topics::EntryTopics::ClubPageTopic, Topics::EntryTopics::ClubTopic, Topics::EntryTopics::CollectionTopic, Topics::EntryTopics::ContestTopic, Topics::EntryTopics::CosplayGalleryTopic, Topics::EntryTopics::MangaTopic, Topics::EntryTopics::PersonTopic, Topics::EntryTopics::RanobeTopic, Topics::EntryTopics::CritiqueTopic, Topics::EntryTopics::ReviewTopic, Topics::NewsTopic, Topics::NewsTopics::ContestStatusTopic.

async updates(page: int = None, limit: int = None) List[Status] | RequestError

NewsTopics about database updates.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 30 maximum

async hot(limit: int = None) List[Topic] | RequestError

Hot topics.

Parameters:

limit – 10 maximum

async ById(id: int) Topic | RequestError

Show a topic.

Parameters:

id – must be a number

async create(body: str, forum_id: int, title: str, user_id: int, type: str = 'Topic', linked_id: int = None, linked_type: str = None) Topic | RequestError

Create a topic.

Requires topics oauth scope.

Parameters:
  • body – Must be a String.

  • forum_id – Must be a number.

  • title – Must be a String.

  • user_id – Must be a number. .

  • type – Must be one of: Topic.

  • linked_id – Must be a number.

  • linked_type – Must be one of: Anime, Manga, Ranobe, Character, Person, Club, ClubPage, Critique, Review, Contest, CosplayGallery, Collection, Article.

async update(id: int, body: str = None, linked_id: int = None, linked_type: str = None, title: str = None) Topic | RequestError

Update a topic.

Requires topics oauth scope.

Parameters:
  • id – Must be a number.

  • body – Must be a String.

  • linked_id – Must be a number.

  • linked_type – Must be one of: Anime, Manga, Ranobe, Character, Person, Club, ClubPage, Critique, Review, Contest, CosplayGallery, Collection, Article.

  • title – Must be a String.

async delete(id: int) None | RequestError

Destroy a topic.

Requires topics oauth scope.

Parameters:

id – Must be a number

class UserIgnoreEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ignore(id: str | int) UserIgnore | RequestError

ignore user.

Requires ignores oauth scope.

Parameters:

id – must be a number

async unignore(id: str | int) UserIgnore | RequestError

unignore user.

Requires ignores oauth scope.

Parameters:

id – must be a number

class UserImageEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async upload(image: str, linked_type: str = None) UserImage | RequestError

Create a user image.

Requires comments oauth scope.

Parameters:
  • image – Must be a String

  • linked_type – Must be a String

class UserRatesEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async ById(id: int) UserRate | RequestError

Show a user rate.

Parameters:

id – must be a number

async list(user_id: int = None, target_id: int = None, target_type: str = None, status: str = None, page: int = None, limit: int = None) list[UserRate] | RequestError

List user rates.

Parameters:
  • user_id – must be a number

  • target_id – must be a number

  • target_type – Must be one of: Anime, Manga

  • status – must be one of: planned, watching, rewatching, completed, on_hold, dropped

  • page – must be a number

  • limit – must be a number (Maximum - 1000)

async create(user_id: int, target_id: int, target_type: str, status: str | None = None, score: int | None = None, chapters: int | None = None, episodes: int | None = None, volumes: int | None = None, rewatches: int | None = None, text: str | None = None) UserRate | RequestError

Create a user rate.

Requires user_rates oauth scope.

Parameters:
  • text – Must be a String

  • rewatches – Must be a number.

  • volumes – Must be a number.

  • episodes – Must be a number.

  • chapters – Must be a number.

  • score – Must be a number.

  • status – Must be one of: planned, watching, rewatching, completed, on_hold, dropped

  • target_type – Must be one of: Anime, Manga.

  • target_id – Must be a number.

  • user_id – Must be a number.

async update(user_rate_id: int, status: str | None = None, score: int | None = None, chapters: int | None = None, episodes: int | None = None, volumes: int | None = None, rewatches: int | None = None, text: str | None = None) UserRate | RequestError

Update a user rate.

Requires user_rates oauth scope.

Parameters:
  • user_rate_id – Must be a number.

  • status – Must be a number.

  • score – Must be a number.

  • chapters – Must be a number.

  • episodes – Must be a number.

  • volumes – Must be a number.

  • rewatches – Must be a number.

  • text – Must be a String

async increment(id: int) UserRate | RequestError

requires user_rates oauth scope.

Increment episodes/chapters by 1.

Parameters:

id – Must be a number.

async delete(id: int) None | RequestError

Destroy a user rate.

requires user_rates oauth scope.

Parameters:

id – must be a number.

async cleanup(type: str) dict | RequestError

Be careful to use.

Parameters:

type – Must be one of: anime, manga.

async reset(type: str) dict | RequestError

Be careful to use.

Reset all user scores to 0.

Parameters:

type – Must be one of: anime, manga.

class UserEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(page: int = None, limit: int = None, search: str = None) List[User] | RequestError

list users.

Parameters:
  • page – Must be a number between 1 and 100000.

  • limit – 100 maximum

  • search – Must be a String

async ById(query: int | str, is_nickname: str = None) UserInfo | RequestError

Show a user.

Parameters:
  • query – must be a number or string (nickname)

  • is_nickname – 1 if you want to get user by its nickname

async info(id: int) UserInfoInc | RequestError

Show user’s brief info.

Parameters:

id – must be a number

async whoami() UserInfoInc | RequestError

Show current user’s brief info

async signOut() None | RequestError

Sign out the user

async friends(id: int, page: int = None, limit: int = None) List[User] | RequestError

Show user’s friends.

Parameters:
  • id – User id.

  • limit – 100 maximum.

  • page – Must be a number between 1 and 100000.

async clubs(id: int) List[Club] | RequestError

Show user’s clubs.

Parameters:

id – must be a number

async animeRates(id: int, limit: int = None, page: int = None, status: str = None, censored: bool = None) List[Rate] | RequestError

Show user’s anime list.

Parameters:
  • id – must be a number

  • limit – Must be a number between 1 and 100000

  • page – 5000 maximum

  • status – Must be one of: planned, watching, rewatching, completed, on_hold, dropped.

  • censored – Must be one of: true, false.

async mangaRates(id: int, limit: int = None, page: int = None, censored: bool = None) List[Rate] | RequestError

Show user’s manga list.

Parameters:
  • id – must be a number

  • limit – Must be a number between 1 and 100000

  • page – 5000 maximum

  • censored – Must be one of: true, false.

async favourites(id: int) Favourites | RequestError

Show user’s favourites.

Parameters:

id – must be a number

async messages(id: int, page: int = None, limit: int = None, type: str = None) List[MessageInfo] | RequestError

Show current user’s messages.

Parameters:
  • id – must be a number.

  • page – Must be a number between 1 and 100000.

  • limit – 100 maximum

  • type – Must be one of: inbox, private, sent, news, notifications.

async unread(id: int) UnreadMessages | RequestError

Show current user’s unread messages counts.

Parameters:

id – must be a number.

async history(id: int, page: int = None, limit: int = None, target_type: str = None, target_id: int = None) List[HistoryObj] | RequestError

Show user history.

Parameters:
  • id – Must be a number.

  • page – Must be a number between 1 and 100000.

  • limit – 100 maximum

  • target_type – Must be one of: Anime, Manga.

  • target_id – Must be a number.

async bans(id: int) List[Ban] | RequestError

Show user’s bans.

Parameters:

id – Must be a number.

class VideosEndpoint(base_url: str, request: BaseLimiter, user_agent: str)
async list(id: int) List[Video] | RequestError

List videos.

Parameters:

id – must be a number

async create(id: int, kind: str, url: str, name: str) Video | RequestError

Create a video.

Requires content oauth scope.

Parameters:
  • id – must be a number

  • kind – Must be one of: pv, character_trailer, cm, op, ed, op_ed_clip, clip, other, episode_preview.

  • url – Supported hostings: YouTube,vk,ok,coub,rutube,vimeo,sibnet,yandex,streamable,smotret_anime,myvi,youmite,viuly,stormo,mediafile

  • name – must be a string.

async delete(anime_id: int, id: int) None | RequestError

Destroy a video.

Requires content oauth scope.

Parameters:
  • anime_id – must be a number

  • id – must be a number

class Auth(request: BaseLimiter, user_agent: str = None, options: AuthOptions | None = None, base_url: str = None)

Class for handling authentication with the Shikimori API.

This class provides methods for obtaining access tokens and refreshing tokens.

async get_access_token(auth_code: str) AccessTokenData | RequestError

Obtain an access token using an authorization code.

Parameters:

auth_code – Authorization code obtained during the OAuth authorization process.

async refresh(refresh_token: str) AccessTokenData | RequestError

Refresh an access token using a refresh token.

Parameters:

refresh_token – Refresh token obtained during the OAuth authorization process.

property auth_url: str

Generates a URL for obtaining an authorization code to authenticate requests.