@lightweight-clients/jikan-api-lightweight-client
Version:
Lightweight Jikan API client. Exports only minimal Fetch call. Fully compatible with AWS LLRT.
2,542 lines (2,541 loc) • 127 kB
TypeScript
/**
* User's anime list status filter options
*/
export type UserAnimeListStatusFilter = 'all' | 'watching' | 'completed' | 'onhold' | 'dropped' | 'plantowatch';
/**
* Available Anime order_by properties
*/
export type AnimeSearchQueryOrderby = 'mal_id' | 'title' | 'start_date' | 'end_date' | 'episodes' | 'score' | 'scored_by' | 'rank' | 'popularity' | 'members' | 'favorites';
/**
* Available Anime audience ratings<br><br><b>Ratings</b><br><ul><li>G - All Ages</li><li>PG - Children</li><li>PG-13 - Teens 13 or older</li><li>R - 17+ (violence & profanity)</li><li>R+ - Mild Nudity</li><li>Rx - Hentai</li></ul>
*/
export type AnimeSearchQueryRating = 'g' | 'pg' | 'pg13' | 'r17' | 'r' | 'rx';
/**
* Available Anime statuses
*/
export type AnimeSearchQueryStatus = 'airing' | 'complete' | 'upcoming';
/**
* Available Anime types
*/
export type AnimeSearchQueryType = 'tv' | 'movie' | 'ova' | 'special' | 'ona' | 'music' | 'cm' | 'pv' | 'tv_special';
/**
* Available Character order_by properties
*/
export type CharactersSearchQueryOrderby = 'mal_id' | 'name' | 'favorites';
/**
* Club Search Query Category
*/
export type ClubSearchQueryCategory = 'anime' | 'manga' | 'actors_and_artists' | 'characters' | 'cities_and_neighborhoods' | 'companies' | 'conventions' | 'games' | 'japan' | 'music' | 'other' | 'schools';
/**
* Club Search Query OrderBy
*/
export type ClubSearchQueryOrderby = 'mal_id' | 'name' | 'members_count' | 'created';
/**
* Club Search Query Type
*/
export type ClubSearchQueryType = 'public' | 'private' | 'secret';
/**
* Users Search Query Gender.
*/
export type UsersSearchQueryGender = 'any' | 'male' | 'female' | 'nonbinary';
/**
* Filter genres by type
*/
export type GenreQueryFilter = 'genres' | 'explicit_genres' | 'themes' | 'demographics';
/**
* Order by magazine data
*/
export type MagazinesQueryOrderby = 'mal_id' | 'name' | 'count';
/**
* User's anime list status filter options
*/
export type UserMangaListStatusFilter = 'all' | 'reading' | 'completed' | 'onhold' | 'dropped' | 'plantoread';
/**
* Available Manga order_by properties
*/
export type MangaSearchQueryOrderby = 'mal_id' | 'title' | 'start_date' | 'end_date' | 'chapters' | 'volumes' | 'score' | 'scored_by' | 'rank' | 'popularity' | 'members' | 'favorites';
/**
* Available Manga statuses
*/
export type MangaSearchQueryStatus = 'publishing' | 'complete' | 'hiatus' | 'discontinued' | 'upcoming';
/**
* Available Manga types
*/
export type MangaSearchQueryType = 'manga' | 'novel' | 'lightnovel' | 'oneshot' | 'doujin' | 'manhwa' | 'manhua';
/**
* Available People order_by properties
*/
export type PeopleSearchQueryOrderby = 'mal_id' | 'name' | 'birthday' | 'favorites';
/**
* Producers Search Query Order By
*/
export type ProducersQueryOrderby = 'mal_id' | 'count' | 'favorites' | 'established';
/**
* Search query sort direction
*/
export type SearchQuerySort = 'desc' | 'asc';
/**
* Top items filter types
*/
export type TopAnimeFilter = 'airing' | 'upcoming' | 'bypopularity' | 'favorite';
/**
* Top items filter types
*/
export type TopMangaFilter = 'publishing' | 'upcoming' | 'bypopularity' | 'favorite';
/**
* The type of reviews to filter by. Defaults to anime.
*/
export type TopReviewsTypeEnum = 'anime' | 'manga';
/**
* Anime Episodes Resource
*/
export type AnimeEpisodes = {
data?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL. This is the URL of the episode's video. If there is no video url, this will be null.
*/
url?: string | null;
/**
* Title
*/
title?: string;
/**
* Title Japanese
*/
title_japanese?: string | null;
/**
* title_romanji
*/
title_romanji?: string | null;
/**
* Aired Date ISO8601
*/
aired?: string | null;
/**
* Aggregated episode score (1.00 - 5.00) based on MyAnimeList user voting
*/
score?: unknown | null;
/**
* Filler episode
*/
filler?: boolean;
/**
* Recap episode
*/
recap?: boolean;
/**
* Episode discussion forum URL
*/
forum_url?: string | null;
}>;
} & Pagination;
/**
* Anime News Resource
*/
export type AnimeNews = Pagination & News;
/**
* Anime Videos Episodes Resource
*/
export type AnimeVideosEpisodes = {
data?: Array<{
/**
* MyAnimeList ID or Episode Number
*/
mal_id?: number;
/**
* Episode Title
*/
title?: string;
/**
* Episode Subtitle
*/
episode?: string;
/**
* Episode Page URL
*/
url?: string;
images?: CommonImages;
}>;
} & Pagination;
/**
* Character Pictures
*/
export type CharacterPictures = {
data?: Array<{
/**
* Default JPG Image Size URL
*/
image_url?: string | null;
/**
* Large JPG Image Size URL
*/
large_image_url?: string | null;
}>;
};
/**
* Club Member
*/
export type ClubMember = {
data?: Array<{
/**
* User's username
*/
username?: string;
/**
* User URL
*/
url?: string;
images?: UserImages;
}>;
};
/**
* Manga News Resource
*/
export type MangaNews = Pagination & News;
/**
* Manga Pictures
*/
export type MangaPictures = {
data?: Array<MangaImages>;
};
/**
* Character Pictures
*/
export type PersonPictures = {
data?: Array<PeopleImages>;
};
/**
* Random Resources
*/
export type Random = {
data?: Array<Anime | Manga | Character | Person>;
};
/**
* Anime resources currently airing
*/
export type Schedules = {
data?: Array<Anime>;
} & PaginationPlus;
/**
* User Results
*/
export type UsersSearch = {
data?: Array<{
/**
* MyAnimeList URL
*/
url?: string;
/**
* MyAnimeList Username
*/
username?: string;
images?: UserImages;
/**
* Last Online Date ISO8601
*/
last_online?: string;
}>;
} & Pagination;
/**
* List of available seasons
*/
export type Seasons = {
data?: Array<{
/**
* Year
*/
year?: number;
/**
* List of available seasons
*/
seasons?: Array<string>;
}>;
};
/**
* Anime & Manga Reviews Resource
*/
export type ReviewsCollection = {
data?: Array<AnimeReview | MangaReview>;
};
/**
* User Friends
*/
export type UserFriends = {
data?: Array<{
user?: UserMeta;
} & {
/**
* Last Online Date ISO8601 format
*/
last_online?: string;
/**
* Friends Since Date ISO8601 format
*/
friends_since?: string;
}>;
} & Pagination;
/**
* User Clubs
*/
export type UserClubs = {
data?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Club Name
*/
name?: string;
/**
* Club URL
*/
url?: string;
}>;
} & Pagination;
/**
* Watch Episodes
*/
export type WatchEpisodes = {
data?: Array<{
entry?: AnimeMeta;
/**
* Recent Episodes (max 2 listed)
*/
episodes?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: string;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Episode Title
*/
title?: string;
/**
* For MyAnimeList Premium Users
*/
premium?: boolean;
}>;
/**
* Region Locked Episode
*/
region_locked?: boolean;
}>;
} & Pagination;
/**
* Watch Promos
*/
export type WatchPromos = Pagination & {
data?: Array<{
/**
* Promo Title
*/
title?: string;
entry?: AnimeMeta;
trailer?: Trailer;
}>;
};
/**
* Anime Characters Resource
*/
export type AnimeCharacters = {
data?: Array<{
/**
* Character details
*/
character?: {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: CharacterImages;
/**
* Character Name
*/
name?: string;
};
/**
* Character's Role
*/
role?: string;
voice_actors?: Array<{
person?: {
mal_id?: number;
url?: string;
images?: PeopleImages;
name?: string;
};
language?: string;
}>;
}>;
};
/**
* Anime Collection Resource
*/
export type AnimeSearch = {
data?: Array<Anime>;
} & PaginationPlus;
/**
* Anime Episode Resource
*/
export type AnimeEpisode = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Title
*/
title?: string;
/**
* Title Japanese
*/
title_japanese?: string | null;
/**
* title_romanji
*/
title_romanji?: string | null;
/**
* Episode duration in seconds
*/
duration?: number | null;
/**
* Aired Date ISO8601
*/
aired?: string | null;
/**
* Filler episode
*/
filler?: boolean;
/**
* Recap episode
*/
recap?: boolean;
/**
* Episode Synopsis
*/
synopsis?: string | null;
};
/**
* Full anime Resource
*/
export type AnimeFull = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: AnimeImages;
trailer?: TrailerBase;
/**
* Whether the entry is pending approval on MAL or not
*/
approved?: boolean;
/**
* All titles
*/
titles?: Array<Title>;
/**
* Title
* @deprecated
*/
title?: string;
/**
* English Title
* @deprecated
*/
title_english?: string | null;
/**
* Japanese Title
* @deprecated
*/
title_japanese?: string | null;
/**
* Other Titles
* @deprecated
*/
title_synonyms?: Array<string>;
/**
* Anime Type
*/
type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music';
/**
* Original Material/Source adapted from
*/
source?: string | null;
/**
* Episode count
*/
episodes?: number | null;
/**
* Airing status
*/
status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired';
/**
* Airing boolean
*/
airing?: boolean;
aired?: Daterange;
/**
* Parsed raw duration
*/
duration?: string | null;
/**
* Anime audience rating
*/
rating?: 'G - All Ages' | 'PG - Children' | 'PG-13 - Teens 13 or older' | 'R - 17+ (violence & profanity)' | 'R+ - Mild Nudity' | 'Rx - Hentai';
/**
* Score
*/
score?: number | null;
/**
* Number of users
*/
scored_by?: number | null;
/**
* Ranking
*/
rank?: number | null;
/**
* Popularity
*/
popularity?: number | null;
/**
* Number of users who have added this entry to their list
*/
members?: number | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number | null;
/**
* Synopsis
*/
synopsis?: string | null;
/**
* Background
*/
background?: string | null;
/**
* Season
*/
season?: 'summer' | 'winter' | 'spring' | 'fall';
/**
* Year
*/
year?: number | null;
broadcast?: Broadcast;
producers?: Array<MalUrl>;
licensors?: Array<MalUrl>;
studios?: Array<MalUrl>;
genres?: Array<MalUrl>;
explicit_genres?: Array<MalUrl>;
themes?: Array<MalUrl>;
demographics?: Array<MalUrl>;
relations?: Array<{
/**
* Relation type
*/
relation?: string;
entry?: Array<MalUrl>;
}>;
theme?: {
openings?: Array<string>;
endings?: Array<string>;
};
external?: Array<{
name?: string;
url?: string;
}>;
streaming?: Array<{
name?: string;
url?: string;
}>;
};
/**
* Anime Relations
*/
export type AnimeRelations = {
data?: Array<{
/**
* Relation type
*/
relation?: string;
entry?: Array<MalUrl>;
}>;
};
/**
* Anime Resource
*/
export type Anime = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: AnimeImages;
trailer?: TrailerBase;
/**
* Whether the entry is pending approval on MAL or not
*/
approved?: boolean;
/**
* All titles
*/
titles?: Array<Title>;
/**
* Title
* @deprecated
*/
title?: string;
/**
* English Title
* @deprecated
*/
title_english?: string | null;
/**
* Japanese Title
* @deprecated
*/
title_japanese?: string | null;
/**
* Other Titles
* @deprecated
*/
title_synonyms?: Array<string>;
/**
* Anime Type
*/
type?: 'TV' | 'OVA' | 'Movie' | 'Special' | 'ONA' | 'Music';
/**
* Original Material/Source adapted from
*/
source?: string | null;
/**
* Episode count
*/
episodes?: number | null;
/**
* Airing status
*/
status?: 'Finished Airing' | 'Currently Airing' | 'Not yet aired';
/**
* Airing boolean
*/
airing?: boolean;
aired?: Daterange;
/**
* Parsed raw duration
*/
duration?: string | null;
/**
* Anime audience rating
*/
rating?: 'G - All Ages' | 'PG - Children' | 'PG-13 - Teens 13 or older' | 'R - 17+ (violence & profanity)' | 'R+ - Mild Nudity' | 'Rx - Hentai';
/**
* Score
*/
score?: number | null;
/**
* Number of users
*/
scored_by?: number | null;
/**
* Ranking
*/
rank?: number | null;
/**
* Popularity
*/
popularity?: number | null;
/**
* Number of users who have added this entry to their list
*/
members?: number | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number | null;
/**
* Synopsis
*/
synopsis?: string | null;
/**
* Background
*/
background?: string | null;
/**
* Season
*/
season?: 'summer' | 'winter' | 'spring' | 'fall';
/**
* Year
*/
year?: number | null;
broadcast?: Broadcast;
producers?: Array<MalUrl>;
licensors?: Array<MalUrl>;
studios?: Array<MalUrl>;
genres?: Array<MalUrl>;
explicit_genres?: Array<MalUrl>;
themes?: Array<MalUrl>;
demographics?: Array<MalUrl>;
};
/**
* Anime Staff Resource
*/
export type AnimeStaff = {
data?: Array<{
/**
* Person details
*/
person?: {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: PeopleImages;
/**
* Name
*/
name?: string;
};
/**
* Staff Positions
*/
positions?: Array<string>;
}>;
};
/**
* Anime Statistics Resource
*/
export type AnimeStatistics = {
data?: {
/**
* Number of users watching the resource
*/
watching?: number;
/**
* Number of users who have completed the resource
*/
completed?: number;
/**
* Number of users who have put the resource on hold
*/
on_hold?: number;
/**
* Number of users who have dropped the resource
*/
dropped?: number;
/**
* Number of users who have planned to watch the resource
*/
plan_to_watch?: number;
/**
* Total number of users who have the resource added to their lists
*/
total?: number;
scores?: Array<{
/**
* Scoring value
*/
score?: number;
/**
* Number of votes for this score
*/
votes?: number;
/**
* Percentage of votes for this score
*/
percentage?: number;
}>;
};
};
/**
* Anime Opening and Ending Themes
*/
export type AnimeThemes = {
data?: {
openings?: Array<string>;
endings?: Array<string>;
};
};
/**
* Anime Videos Resource
*/
export type AnimeVideos = {
data?: {
promo?: Array<{
/**
* Title
*/
title?: string;
trailer?: Trailer;
}>;
episodes?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Title
*/
title?: string;
/**
* Episode
*/
episode?: string;
images?: CommonImages;
}>;
music_videos?: Array<{
/**
* Title
*/
title?: string;
video?: Trailer;
meta?: {
title?: string | null;
author?: string | null;
};
}>;
};
};
/**
* Character casted in anime
*/
export type CharacterAnime = {
data?: Array<{
/**
* Character's Role
*/
role?: string;
anime?: AnimeMeta;
}>;
};
/**
* Characters Search Resource
*/
export type CharactersSearch = {
data?: Array<Character>;
} & PaginationPlus;
/**
* Character Resource
*/
export type CharacterFull = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: CharacterImages;
/**
* Name
*/
name?: string;
/**
* Name
*/
name_kanji?: string | null;
/**
* Other Names
*/
nicknames?: Array<string>;
/**
* Number of users who have favorited this entry
*/
favorites?: number;
/**
* Biography
*/
about?: string | null;
anime?: Array<{
/**
* Character's Role
*/
role?: string;
anime?: AnimeMeta;
}>;
manga?: Array<{
/**
* Character's Role
*/
role?: string;
manga?: MangaMeta;
}>;
voices?: Array<{
/**
* Character's Role
*/
language?: string;
person?: PersonMeta;
}>;
};
/**
* Character casted in manga
*/
export type CharacterManga = {
data?: Array<{
/**
* Character's Role
*/
role?: string;
manga?: MangaMeta;
}>;
};
/**
* Character Resource
*/
export type Character = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: CharacterImages;
/**
* Name
*/
name?: string;
/**
* Name
*/
name_kanji?: string | null;
/**
* Other Names
*/
nicknames?: Array<string>;
/**
* Number of users who have favorited this entry
*/
favorites?: number;
/**
* Biography
*/
about?: string | null;
};
/**
* Character voice actors
*/
export type CharacterVoiceActors = {
data?: Array<{
/**
* Character's Role
*/
language?: string;
person?: PersonMeta;
}>;
};
/**
* Clubs Search Resource
*/
export type ClubsSearch = {
data?: Array<Club>;
} & Pagination;
/**
* Club Relations
*/
export type ClubRelations = {
data?: {
anime?: Array<MalUrl>;
manga?: Array<MalUrl>;
characters?: Array<MalUrl>;
};
};
/**
* Club Resource
*/
export type Club = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Club name
*/
name?: string;
/**
* Club URL
*/
url?: string;
images?: CommonImages;
/**
* Number of club members
*/
members?: number;
/**
* Club Category
*/
category?: 'actors & artists' | 'anime' | 'characters' | 'cities & neighborhoods' | 'companies' | 'conventions' | 'games' | 'japan' | 'manga' | 'music' | 'others' | 'schools';
/**
* Date Created ISO8601
*/
created?: string;
/**
* Club access
*/
access?: 'public' | 'private' | 'secret';
};
/**
* Club Staff Resource
*/
export type ClubStaff = {
data?: Array<{
/**
* User URL
*/
url?: string;
/**
* User's username
*/
username?: string;
}>;
};
/**
* Youtube Details
*/
export type Trailer = TrailerBase & TrailerImages;
/**
* Youtube Details
*/
export type TrailerBase = {
/**
* YouTube ID
*/
youtube_id?: string | null;
/**
* YouTube URL
*/
url?: string | null;
/**
* Parsed Embed URL
*/
embed_url?: string | null;
};
/**
* Youtube Images
*/
export type TrailerImages = {
images?: {
/**
* Default Image Size URL (120x90)
*/
image_url?: string | null;
/**
* Small Image Size URL (640x480)
*/
small_image_url?: string | null;
/**
* Medium Image Size URL (320x180)
*/
medium_image_url?: string | null;
/**
* Large Image Size URL (480x360)
*/
large_image_url?: string | null;
/**
* Maximum Image Size URL (1280x720)
*/
maximum_image_url?: string | null;
};
};
/**
* Date range
*/
export type Daterange = {
/**
* Date ISO8601
*/
from?: string | null;
/**
* Date ISO8601
*/
to?: string | null;
/**
* Date Prop
*/
prop?: {
/**
* Date Prop From
*/
from?: {
/**
* Day
*/
day?: number | null;
/**
* Month
*/
month?: number | null;
/**
* Year
*/
year?: number | null;
};
/**
* Date Prop To
*/
to?: {
/**
* Day
*/
day?: number | null;
/**
* Month
*/
month?: number | null;
/**
* Year
*/
year?: number | null;
};
/**
* Raw parsed string
*/
string?: string | null;
};
};
/**
* Broadcast Details
*/
export type Broadcast = {
/**
* Day of the week
*/
day?: string | null;
/**
* Time in 24 hour format
*/
time?: string | null;
/**
* Timezone (Tz Database format https://en.wikipedia.org/wiki/List_of_tz_database_time_zones)
*/
timezone?: string | null;
/**
* Raw parsed broadcast string
*/
string?: string | null;
};
/**
* Parsed URL Data
*/
export type MalUrl = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Type of resource
*/
type?: string;
/**
* Resource Name/Title
*/
name?: string;
/**
* MyAnimeList URL
*/
url?: string;
};
/**
* Parsed URL Data
*/
export type MalUrl2 = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Type of resource
*/
type?: string;
/**
* Resource Name/Title
*/
title?: string;
/**
* MyAnimeList URL
*/
url?: string;
};
/**
* Entry Meta data
*/
export type EntryMeta = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Image URL
*/
image_url?: string;
/**
* Entry Name/Title
*/
name?: string;
};
/**
* Related resources
*/
export type Relation = {
/**
* Relation type
*/
relation?: string;
/**
* Related entries
*/
entry?: Array<MalUrl>;
};
export type Pagination = {
pagination?: {
last_visible_page?: number;
has_next_page?: boolean;
};
};
export type PaginationPlus = {
pagination?: {
last_visible_page?: number;
has_next_page?: boolean;
current_page?: number;
items?: {
count?: number;
total?: number;
per_page?: number;
};
};
};
export type UserMeta = {
/**
* MyAnimeList Username
*/
username?: string;
/**
* MyAnimeList Profile URL
*/
url?: string;
images?: UserImages;
};
/**
* User Meta By ID
*/
export type UserById = {
/**
* MyAnimeList URL
*/
url?: string;
/**
* MyAnimeList Username
*/
username?: string;
};
export type UserImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
};
/**
* Available images in WEBP
*/
webp?: {
/**
* Image URL WEBP
*/
image_url?: string | null;
};
};
export type AnimeMeta = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: AnimeImages;
/**
* Entry title
*/
title?: string;
};
export type MangaMeta = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: MangaImages;
/**
* Entry title
*/
title?: string;
};
export type CharacterMeta = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: CharacterImages;
/**
* Entry name
*/
name?: string;
};
export type PersonMeta = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: PeopleImages;
/**
* Entry name
*/
name?: string;
};
export type AnimeImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
/**
* Small Image URL JPG
*/
small_image_url?: string | null;
/**
* Image URL JPG
*/
large_image_url?: string | null;
};
/**
* Available images in WEBP
*/
webp?: {
/**
* Image URL WEBP
*/
image_url?: string | null;
/**
* Small Image URL WEBP
*/
small_image_url?: string | null;
/**
* Image URL WEBP
*/
large_image_url?: string | null;
};
};
export type MangaImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
/**
* Small Image URL JPG
*/
small_image_url?: string | null;
/**
* Image URL JPG
*/
large_image_url?: string | null;
};
/**
* Available images in WEBP
*/
webp?: {
/**
* Image URL WEBP
*/
image_url?: string | null;
/**
* Small Image URL WEBP
*/
small_image_url?: string | null;
/**
* Image URL WEBP
*/
large_image_url?: string | null;
};
};
export type CharacterImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
/**
* Small Image URL JPG
*/
small_image_url?: string | null;
};
/**
* Available images in WEBP
*/
webp?: {
/**
* Image URL WEBP
*/
image_url?: string | null;
/**
* Small Image URL WEBP
*/
small_image_url?: string | null;
};
};
export type PeopleImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
};
};
export type CommonImages = {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG
*/
image_url?: string | null;
};
};
export type Title = {
/**
* Title type
*/
type?: string;
/**
* Title value
*/
title?: string;
};
/**
* External links
*/
export type ExternalLinks = {
data?: Array<{
name?: string;
url?: string;
}>;
};
/**
* Forum Resource
*/
export type Forum = {
data?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Title
*/
title?: string;
/**
* Post Date ISO8601
*/
date?: string;
/**
* Author MyAnimeList Username
*/
author_username?: string;
/**
* Author Profile URL
*/
author_url?: string;
/**
* Comment count
*/
comments?: number;
/**
* Last comment details
*/
last_comment?: {
/**
* Last comment URL
*/
url?: string;
/**
* Author MyAnimeList Username
*/
author_username?: string;
/**
* Author Profile URL
*/
author_url?: string;
/**
* Last comment date posted ISO8601
*/
date?: string | null;
};
}>;
};
/**
* Genres Collection Resource
*/
export type Genres = {
data?: Array<Genre>;
};
/**
* Genre Resource
*/
export type Genre = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Genre Name
*/
name?: string;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Genre's entry count
*/
count?: number;
};
/**
* Magazine Collection Resource
*/
export type Magazines = {
data?: Array<Magazine>;
} & Pagination;
/**
* Magazine Resource
*/
export type Magazine = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* Magazine Name
*/
name?: string;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Magazine's manga count
*/
count?: number;
};
/**
* Manga Characters Resource
*/
export type MangaCharacters = {
data?: Array<{
character?: CharacterMeta;
/**
* Character's Role
*/
role?: string;
}>;
};
/**
* Manga Search Resource
*/
export type MangaSearch = {
data?: Array<Manga>;
} & PaginationPlus;
/**
* Manga Resource
*/
export type MangaFull = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: MangaImages;
/**
* Whether the entry is pending approval on MAL or not
*/
approved?: boolean;
/**
* All Titles
*/
titles?: Array<Title>;
/**
* Title
* @deprecated
*/
title?: string;
/**
* English Title
* @deprecated
*/
title_english?: string | null;
/**
* Japanese Title
* @deprecated
*/
title_japanese?: string | null;
/**
* Other Titles
* @deprecated
*/
title_synonyms?: Array<string>;
/**
* Manga Type
*/
type?: 'Manga' | 'Novel' | 'Light Novel' | 'One-shot' | 'Doujinshi' | 'Manhua' | 'Manhwa' | 'OEL';
/**
* Chapter count
*/
chapters?: number | null;
/**
* Volume count
*/
volumes?: number | null;
/**
* Publishing status
*/
status?: 'Finished' | 'Publishing' | 'On Hiatus' | 'Discontinued' | 'Not yet published';
/**
* Publishing boolean
*/
publishing?: boolean;
published?: Daterange;
/**
* Score
*/
score?: number | null;
/**
* Number of users
*/
scored_by?: number | null;
/**
* Ranking
*/
rank?: number | null;
/**
* Popularity
*/
popularity?: number | null;
/**
* Number of users who have added this entry to their list
*/
members?: number | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number | null;
/**
* Synopsis
*/
synopsis?: string | null;
/**
* Background
*/
background?: string | null;
authors?: Array<MalUrl>;
serializations?: Array<MalUrl>;
genres?: Array<MalUrl>;
explicit_genres?: Array<MalUrl>;
themes?: Array<MalUrl>;
demographics?: Array<MalUrl>;
relations?: Array<{
/**
* Relation type
*/
relation?: string;
entry?: Array<MalUrl>;
}>;
external?: Array<{
name?: string;
url?: string;
}>;
};
/**
* Manga Resource
*/
export type Manga = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
images?: MangaImages;
/**
* Whether the entry is pending approval on MAL or not
*/
approved?: boolean;
/**
* All Titles
*/
titles?: Array<Title>;
/**
* Title
* @deprecated
*/
title?: string;
/**
* English Title
* @deprecated
*/
title_english?: string | null;
/**
* Japanese Title
* @deprecated
*/
title_japanese?: string | null;
/**
* Manga Type
*/
type?: 'Manga' | 'Novel' | 'Light Novel' | 'One-shot' | 'Doujinshi' | 'Manhua' | 'Manhwa' | 'OEL';
/**
* Chapter count
*/
chapters?: number | null;
/**
* Volume count
*/
volumes?: number | null;
/**
* Publishing status
*/
status?: 'Finished' | 'Publishing' | 'On Hiatus' | 'Discontinued' | 'Not yet published';
/**
* Publishing boolean
*/
publishing?: boolean;
published?: Daterange;
/**
* Score
*/
score?: number | null;
/**
* Number of users
*/
scored_by?: number | null;
/**
* Ranking
*/
rank?: number | null;
/**
* Popularity
*/
popularity?: number | null;
/**
* Number of users who have added this entry to their list
*/
members?: number | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number | null;
/**
* Synopsis
*/
synopsis?: string | null;
/**
* Background
*/
background?: string | null;
authors?: Array<MalUrl>;
serializations?: Array<MalUrl>;
genres?: Array<MalUrl>;
explicit_genres?: Array<MalUrl>;
themes?: Array<MalUrl>;
demographics?: Array<MalUrl>;
};
/**
* Manga Statistics Resource
*/
export type MangaStatistics = {
data?: {
/**
* Number of users reading the resource
*/
reading?: number;
/**
* Number of users who have completed the resource
*/
completed?: number;
/**
* Number of users who have put the resource on hold
*/
on_hold?: number;
/**
* Number of users who have dropped the resource
*/
dropped?: number;
/**
* Number of users who have planned to read the resource
*/
plan_to_read?: number;
/**
* Total number of users who have the resource added to their lists
*/
total?: number;
scores?: Array<{
/**
* Scoring value
*/
score?: number;
/**
* Number of votes for this score
*/
votes?: number;
/**
* Percentage of votes for this score
*/
percentage?: number;
}>;
};
};
/**
* More Info Resource
*/
export type Moreinfo = {
data?: {
/**
* Additional information on the entry
*/
moreinfo?: string | null;
};
};
export type News = {
data?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Title
*/
title?: string;
/**
* Post Date ISO8601
*/
date?: string;
/**
* Author MyAnimeList Username
*/
author_username?: string;
/**
* Author Profile URL
*/
author_url?: string;
/**
* Forum topic URL
*/
forum_url?: string;
images?: CommonImages;
/**
* Comment count
*/
comments?: number;
/**
* Excerpt
*/
excerpt?: string;
}>;
};
/**
* Person anime staff positions
*/
export type PersonAnime = {
data?: Array<{
/**
* Person's position
*/
position?: string;
anime?: AnimeMeta;
}>;
};
/**
* People Search
*/
export type PeopleSearch = {
data?: Array<Person>;
} & PaginationPlus;
/**
* Person Resource
*/
export type PersonFull = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Person's website URL
*/
website_url?: string | null;
images?: PeopleImages;
/**
* Name
*/
name?: string;
/**
* Given Name
*/
given_name?: string | null;
/**
* Family Name
*/
family_name?: string | null;
/**
* Other Names
*/
alternate_names?: Array<string>;
/**
* Birthday Date ISO8601
*/
birthday?: string | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number;
/**
* Biography
*/
about?: string | null;
anime?: Array<{
/**
* Person's position
*/
position?: string;
anime?: AnimeMeta;
}>;
manga?: Array<{
/**
* Person's position
*/
position?: string;
manga?: MangaMeta;
}>;
voices?: Array<{
/**
* Person's Character's role in the anime
*/
role?: string;
anime?: AnimeMeta;
character?: CharacterMeta;
}>;
};
/**
* Person's mangaography
*/
export type PersonManga = {
data?: Array<{
/**
* Person's position
*/
position?: string;
manga?: MangaMeta;
}>;
};
/**
* Person Resource
*/
export type Person = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Person's website URL
*/
website_url?: string | null;
images?: PeopleImages;
/**
* Name
*/
name?: string;
/**
* Given Name
*/
given_name?: string | null;
/**
* Family Name
*/
family_name?: string | null;
/**
* Other Names
*/
alternate_names?: Array<string>;
/**
* Birthday Date ISO8601
*/
birthday?: string | null;
/**
* Number of users who have favorited this entry
*/
favorites?: number;
/**
* Biography
*/
about?: string | null;
};
/**
* Person's voice acting roles
*/
export type PersonVoiceActingRoles = {
data?: Array<{
/**
* Person's Character's role in the anime
*/
role?: string;
anime?: AnimeMeta;
character?: CharacterMeta;
}>;
};
/**
* Pictures Resource
*/
export type Pictures = {
data?: Array<{
images?: AnimeImages;
}>;
};
/**
* Pictures Resource
*/
export type PicturesVariants = {
data?: Array<{
images?: CommonImages;
}>;
};
/**
* Producers Collection Resource
*/
export type Producers = {
data?: Array<Producer>;
} & Pagination;
/**
* Producers Resource
*/
export type ProducerFull = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* All titles
*/
titles?: Array<Title>;
images?: CommonImages;
/**
* Producers's member favorites count
*/
favorites?: number;
/**
* Producers's anime count
*/
count?: number;
/**
* Established Date ISO8601
*/
established?: string | null;
/**
* About the Producer
*/
about?: string | null;
external?: Array<{
name?: string;
url?: string;
}>;
};
/**
* Producers Resource
*/
export type Producer = {
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList URL
*/
url?: string;
/**
* All titles
*/
titles?: Array<Title>;
images?: CommonImages;
/**
* Producers's member favorites count
*/
favorites?: number;
/**
* Producers's anime count
*/
count?: number;
/**
* Established Date ISO8601
*/
established?: string | null;
/**
* About the Producer
*/
about?: string | null;
};
export type UserAbout = {
data?: Array<{
/**
* User About. NOTE: About information is customizable by users through BBCode on MyAnimeList. This means users can add multimedia content, different text sizes, etc. Due to this freeform, Jikan returns parsed HTML. Validate on your end!
*/
about?: string | null;
}>;
};
export type UserFavorites = {
/**
* Favorite Anime
*/
anime?: Array<{
type?: string;
start_year?: number;
} & AnimeMeta>;
/**
* Favorite Manga
*/
manga?: Array<{
type?: string;
start_year?: number;
} & MangaMeta>;
/**
* Favorite Characters
*/
characters?: Array<CharacterMeta & MalUrl2>;
/**
* Favorite People
*/
people?: Array<CharacterMeta>;
};
/**
* Transform the resource into an array.
*/
export type UserProfileFull = {
/**
* MyAnimeList ID
*/
mal_id?: number | null;
/**
* MyAnimeList Username
*/
username?: string;
/**
* MyAnimeList URL
*/
url?: string;
images?: UserImages;
/**
* Last Online Date ISO8601
*/
last_online?: string | null;
/**
* User Gender
*/
gender?: string | null;
/**
* Birthday Date ISO8601
*/
birthday?: string | null;
/**
* Location
*/
location?: string | null;
/**
* Joined Date ISO8601
*/
joined?: string | null;
statistics?: {
/**
* Anime Statistics
*/
anime?: {
/**
* Number of days spent watching Anime
*/
days_watched?: number;
/**
* Mean Score
*/
mean_score?: number;
/**
* Anime Watching
*/
watching?: number;
/**
* Anime Completed
*/
completed?: number;
/**
* Anime On-Hold
*/
on_hold?: number;
/**
* Anime Dropped
*/
dropped?: number;
/**
* Anime Planned to Watch
*/
plan_to_watch?: number;
/**
* Total Anime entries on User list
*/
total_entries?: number;
/**
* Anime re-watched
*/
rewatched?: number;
/**
* Number of Anime Episodes Watched
*/
episodes_watched?: number;
};
/**
* Manga Statistics
*/
manga?: {
/**
* Number of days spent reading Manga
*/
days_read?: number;
/**
* Mean Score
*/
mean_score?: number;
/**
* Manga Reading
*/
reading?: number;
/**
* Manga Completed
*/
completed?: number;
/**
* Manga On-Hold
*/
on_hold?: number;
/**
* Manga Dropped
*/
dropped?: number;
/**
* Manga Planned to Read
*/
plan_to_read?: number;
/**
* Total Manga entries on User list
*/
total_entries?: number;
/**
* Manga re-read
*/
reread?: number;
/**
* Number of Manga Chapters Read
*/
chapters_read?: number;
/**
* Number of Manga Volumes Read
*/
volumes_read?: number;
};
};
external?: Array<{
name?: string;
url?: string;
}>;
};
export type UserHistory = {
data?: Array<History>;
};
/**
* Transform the resource into an array.
*/
export type History = {
entry?: MalUrl;
/**
* Number of episodes/chapters watched/read
*/
increment?: number;
/**
* Date ISO8601
*/
date?: string;
};
export type UserUpdates = {
data?: {
/**
* Last updated Anime
*/
anime?: Array<{
entry?: AnimeMeta;
} & {
score?: number | null;
status?: string;
episodes_seen?: number | null;
episodes_total?: number | null;
/**
* ISO8601 format
*/
date?: string;
}>;
/**
* Last updated Manga
*/
manga?: Array<{
entry?: MangaMeta;
} & {
score?: number | null;
status?: string;
chapters_read?: number | null;
chapters_total?: number | null;
volumes_read?: number | null;
volumes_total?: number | null;
/**
* ISO8601 format
*/
date?: string;
}>;
};
};
export type UserProfile = {
/**
* MyAnimeList ID
*/
mal_id?: number | null;
/**
* MyAnimeList Username
*/
username?: string;
/**
* MyAnimeList URL
*/
url?: string;
images?: UserImages;
/**
* Last Online Date ISO8601
*/
last_online?: string | null;
/**
* User Gender
*/
gender?: string | null;
/**
* Birthday Date ISO8601
*/
birthday?: string | null;
/**
* Location
*/
location?: string | null;
/**
* Joined Date ISO8601
*/
joined?: string | null;
};
/**
* Transform the resource into an array.
*/
export type UsersTemp = {
data?: Array<{
/**
* MyAnimeList ID
*/
mal_id?: number;
/**
* MyAnimeList Username
*/
username?: string;
/**
* MyAnimeList URL
*/
url?: string;
/**
* Images
*/
images?: {
/**
* Available images in JPG
*/
jpg?: {
/**
* Image URL JPG (225x335)
*/
image_url?: string;
};
/**
* Available images in WEBP
*/
webp?: {
/**
* Image URL WEBP (225x335)
*/
image_url?: string;
};
};
/**
* Last Online Date ISO8601
*/
last_online?: string;
/**
* User Gender
*/
gender?: string;
/**
* Birthday Date ISO8601
*/
birthday?: string;
/**
* Location
*/
location?: string;
/**
* Joined Date ISO8601
*/
joined?: string;
/**
* Anime Stats
*/
anime_stats?: {
/**
* Number of days spent watching Anime
*/
days_watched?: number;
/**
* Mean Score
*/
mean_score?: number;
/**
* Anime Watching
*/
watching?: number;
/**
* Anime Completed
*/
completed?: number;
/**
* Anime On-Hold
*/
on_hold?: number;
/**
* Anime Dropped
*/
dropped?: number;
/**
* Anime Planned to Watch
*/
plan_to_watch?: number;
/**
* Total Anime entries on User list
*/
total_entries?: number;
/**
* Anime re-watched
*/
rewatched?: number;
/**
* Number of Anime Episodes Watched
*/
episodes_watched?: number;
};
/**
* Manga Stats