UNPKG

@zennomi/mangadex-full-api

Version:

A MangaDex api based around the official API.

1,746 lines 119 kB
/** MangaRequest */ interface MangaRequestSchema { title: LocalizedStringSchema; altTitles: LocalizedStringSchema[]; description: LocalizedStringSchema; authors: string[]; artists: string[]; links: Record<string, string>; /** @pattern ^[a-z]{2}(-[a-z]{2})?$ */ originalLanguage: string; lastVolume: string | null; lastChapter: string | null; publicationDemographic: 'shounen' | 'shoujo' | 'josei' | 'seinen' | null; status: 'completed' | 'ongoing' | 'cancelled' | 'hiatus'; /** * Year of release * @min 1 * @max 9999 */ year: number | null; contentRating: 'safe' | 'suggestive' | 'erotica' | 'pornographic'; chapterNumbersResetOnNewVolume: boolean; tags: string[]; /** @format uuid */ primaryCover: string | null; /** @min 1 */ version: number; } /** LocalizedString */ type LocalizedStringSchema = Record<string, string>; /** MangaResponse */ interface MangaResponseSchema { result: 'ok' | 'error'; /** @default "entity" */ response: string; data: MangaSchema; } /** Relationship */ interface RelationshipSchema { /** @format uuid */ id: string; type: string; /** Related Manga type, only present if you are on a Manga entity and a Manga relationship */ related: 'monochrome' | 'main_story' | 'adapted_from' | 'based_on' | 'prequel' | 'side_story' | 'doujinshi' | 'same_franchise' | 'shared_universe' | 'sequel' | 'spin_off' | 'alternate_story' | 'alternate_version' | 'preserialization' | 'colored' | 'serialization'; /** If Reference Expansion is applied, contains objects attributes */ attributes: object | null; } /** Chapter */ interface ChapterSchema { /** @format uuid */ id: string; type: 'chapter'; attributes: ChapterAttributesSchema; relationships: RelationshipSchema[]; } /** Manga */ interface MangaSchema { /** @format uuid */ id: string; type: 'manga'; attributes: MangaAttributesSchema; relationships: RelationshipSchema[]; } /** ChapterAttributes */ interface ChapterAttributesSchema { /** @maxLength 255 */ title: string | null; volume: string | null; /** @maxLength 8 */ chapter: string | null; /** Count of readable images for this chapter */ pages: number; /** @pattern ^[a-z]{2}(-[a-z]{2})?$ */ translatedLanguage: string; /** @format uuid */ uploader: string; /** * Denotes a chapter that links to an external source. * @maxLength 512 * @pattern ^https?:// */ externalUrl: string | null; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; /** @format date-time */ publishAt: Date; /** @format date-time */ readableAt: Date; } /** MangaAttributes */ interface MangaAttributesSchema { title: LocalizedStringSchema; altTitles: LocalizedStringSchema[]; description: LocalizedStringSchema; isLocked: boolean; links: Record<string, string>; originalLanguage: string; lastVolume: string | null; lastChapter: string | null; publicationDemographic: 'shounen' | 'shoujo' | 'josei' | 'seinen' | null; status: 'completed' | 'ongoing' | 'cancelled' | 'hiatus'; /** Year of release */ year: number | null; contentRating: 'safe' | 'suggestive' | 'erotica' | 'pornographic'; chapterNumbersResetOnNewVolume: boolean; availableTranslatedLanguages: string[]; /** @format uuid */ latestUploadedChapter: string; tags: TagSchema[]; state: 'draft' | 'submitted' | 'published' | 'rejected'; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; } type MangaCreateSchema = MangaRequestSchema; type MangaEditSchema = MangaRequestSchema; type ChapterEditSchema = ChapterRequestSchema; /** Response */ interface ResponseSchema { result: 'ok' | 'error'; } /** ScanlationGroup */ interface ScanlationGroupSchema { /** @format uuid */ id: string; type: 'scanlation_group'; attributes: ScanlationGroupAttributesSchema; relationships: RelationshipSchema[]; } /** ScanlationGroupAttributes */ interface ScanlationGroupAttributesSchema { name: string; altNames: LocalizedStringSchema[]; website: string | null; ircServer: string | null; ircChannel: string | null; discord: string | null; contactEmail: string | null; description: string | null; /** * @format uri * @pattern ^https?:// */ twitter: string | null; /** * @format uri * @maxLength 128 * @pattern ^https:\/\/www\.mangaupdates\.com\/(group|publisher)(s\.html\?id=\d+|\/[\w-]+\/?([\w-]+)?(\/)?)$ */ mangaUpdates: string | null; focusedLanguage: string[] | null; locked: boolean; official: boolean; verified: boolean; inactive: boolean; exLicensed: boolean; /** * Should respected ISO 8601 duration specification: https://en.wikipedia.org/wiki/ISO_8601#Durations * @pattern ^(P([1-9]|[1-9][0-9])D)?(P?([1-9])W)?(P?T(([1-9]|1[0-9]|2[0-4])H)?(([1-9]|[1-5][0-9]|60)M)?(([1-9]|[1-5][0-9]|60)S)?)?$ * @example "P4D" */ publishDelay: string; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; } /** User */ interface UserSchema { /** @format uuid */ id: string; type: 'user'; attributes: UserAttributesSchema; relationships: RelationshipSchema[]; } /** UserAttributes */ interface UserAttributesSchema { username: string; roles: string[]; /** @min 1 */ version: number; } /** CreateScanlationGroup */ interface CreateScanlationGroupSchema { name: string; website?: string | null; ircServer?: string | null; ircChannel?: string | null; discord?: string | null; contactEmail?: string | null; description?: string | null; /** * @format uri * @pattern ^https?://twitter\.com */ twitter?: string | null; /** * @maxLength 128 * @pattern ^https:\/\/www\.mangaupdates\.com\/(group|publisher)(s\.html\?id=\d+|\/[\w-]+\/?([\w-]+)?(\/)?)$ */ mangaUpdates?: string | null; inactive?: boolean; /** @pattern ^P(([1-9]|[1-9][0-9])D)?(([1-9])W)?(T(([1-9]|1[0-9]|2[0-4])H)?(([1-9]|[1-5][0-9]|60)M)?(([1-9]|[1-5][0-9]|60)S)?)?$ */ publishDelay?: string | null; } /** CustomListCreate */ interface CustomListCreateSchema { name: string; visibility?: 'public' | 'private'; manga?: string[]; /** @min 1 */ version?: number; } /** CustomList */ interface CustomListSchema { /** @format uuid */ id: string; type: 'custom_list'; attributes: CustomListAttributesSchema; relationships: RelationshipSchema[]; } /** CustomListAttributes */ interface CustomListAttributesSchema { name: string; visibility: 'private' | 'public'; /** @min 1 */ version: number; } /** CoverResponse */ interface CoverResponseSchema { result: string; /** @default "entity" */ response: string; data: CoverSchema; } /** Cover */ interface CoverSchema { /** @format uuid */ id: string; type: 'cover_art'; attributes: CoverAttributesSchema; relationships: RelationshipSchema[]; } /** CoverAttributes */ interface CoverAttributesSchema { volume: string | null; fileName: string; description: string | null; locale: string | null; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; } /** CoverEdit */ interface CoverEditSchema { volume: CoverVolumeSchema; /** * @minLength 0 * @maxLength 512 */ description?: string | null; /** @pattern ^[a-z]{2}(-[a-z]{2})?$ */ locale?: string | null; /** @min 1 */ version: number; } /** * CoverVolume * @maxLength 8 * @pattern ^(0|[1-9]\d*)(\.\d+)?([a-z]+)?$ */ type CoverVolumeSchema = string | null; /** * ChapterVolume * @maxLength 8 * @pattern ^((0|[1-9]\d*)(\.\d+)?[a-z]?)?$ */ type ChapterVolumeSchema = string | null; /** Author */ interface AuthorSchema { /** @format uuid */ id: string; type: 'author'; attributes: AuthorAttributesSchema; relationships: RelationshipSchema[]; } /** AuthorAttributes */ interface AuthorAttributesSchema { name: string; imageUrl: string | null; biography: LocalizedStringSchema; /** * @format uri * @pattern ^https?://twitter\.com(/|$) */ twitter: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?pixiv\.net(/|$) */ pixiv: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?melonbooks\.co\.jp(/|$) */ melonBook: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?fanbox\.cc(/|$) */ fanBox: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?booth\.pm(/|$) */ booth: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?nicovideo\.jp(/|$) */ nicoVideo: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?skeb\.jp(/|$) */ skeb: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?fantia\.jp(/|$) */ fantia: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?tumblr\.com(/|$) */ tumblr: string | null; /** * @format uri * @pattern ^https?://www\.youtube\.com(/|$) */ youtube: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?weibo\.(cn|com)(/|$) */ weibo: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?naver\.com(/|$) */ naver: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?namicomi\.com(/|$) */ namicomi: string | null; /** * @format uri * @pattern ^https?:// */ website: string | null; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; } /** AuthorCreate */ interface AuthorCreateSchema { name: string; biography?: LocalizedStringSchema; /** * @format uri * @pattern ^https?://twitter\.com(/|$) */ twitter?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?pixiv\.net(/|$) */ pixiv?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?melonbooks\.co\.jp(/|$) */ melonBook?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?fanbox\.cc(/|$) */ fanBox?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?booth\.pm(/|$) */ booth?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?nicovideo\.jp(/|$) */ nicoVideo?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?skeb\.jp(/|$) */ skeb?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?fantia\.jp(/|$) */ fantia?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?tumblr\.com(/|$) */ tumblr?: string | null; /** * @format uri * @pattern ^https?://www\.youtube\.com(/|$) */ youtube?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?weibo\.(cn|com)(/|$) */ weibo?: string | null; /** * @format uri * @pattern ^https?://([\w-]+\.)?naver\.com(/|$) */ naver?: string | null; /** * @format uri * @pattern ^https?:// */ website?: string | null; } /** MappingIdBody */ interface MappingIdBodySchema { type: 'group' | 'manga' | 'chapter' | 'tag'; ids: number[]; } /** TagResponse */ interface TagResponseSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: TagSchema[]; limit: number; offset: number; total: number; } /** Tag */ interface TagSchema { /** @format uuid */ id: string; type: 'tag'; attributes: TagAttributesSchema; relationships: RelationshipSchema[]; } /** TagAttributes */ interface TagAttributesSchema { name: LocalizedStringSchema; description: LocalizedStringSchema; group: 'content' | 'format' | 'genre' | 'theme'; /** @min 1 */ version: number; } /** UserResponse */ interface UserResponseSchema { result: 'ok'; /** @default "entity" */ response: string; data: UserSchema; } /** UpdateMangaStatus */ interface UpdateMangaStatusSchema { status: 'reading' | 'on_hold' | 'plan_to_read' | 'dropped' | 're_reading' | 'completed' | null; } /** ChapterRequest */ interface ChapterRequestSchema { /** @maxLength 255 */ title: string | null; volume: ChapterVolumeSchema; chapter: ChapterVolumeSchema; /** @pattern ^[a-z]{2}(-[a-z]{2})?$ */ translatedLanguage: string; /** @maxItems 10 */ groups: string[]; /** @min 1 */ version: number; } /** CoverList */ interface CoverListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: CoverSchema[]; limit: number; offset: number; total: number; } /** ChapterList */ interface ChapterListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: ChapterSchema[]; limit: number; offset: number; total: number; } /** ScanlationGroupList */ interface ScanlationGroupListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: ScanlationGroupSchema[]; limit: number; offset: number; total: number; } type MangaRelationCreateSchema = MangaRelationRequestSchema; /** MangaRelationRequest */ interface MangaRelationRequestSchema { /** @format uuid */ targetManga: string; relation: 'monochrome' | 'main_story' | 'adapted_from' | 'based_on' | 'prequel' | 'side_story' | 'doujinshi' | 'same_franchise' | 'shared_universe' | 'sequel' | 'spin_off' | 'alternate_story' | 'alternate_version' | 'preserialization' | 'colored' | 'serialization'; } /** MangaRelationList */ interface MangaRelationListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: MangaRelationSchema[]; limit: number; offset: number; total: number; } /** MangaRelationResponse */ interface MangaRelationResponseSchema { result: 'ok' | 'error'; /** @default "entity" */ response: string; data: MangaRelationSchema; } /** MangaRelation */ interface MangaRelationSchema { /** @format uuid */ id: string; type: 'manga_relation'; attributes: MangaRelationAttributesSchema; relationships: RelationshipSchema[]; } /** MangaRelationAttributes */ interface MangaRelationAttributesSchema { relation: 'monochrome' | 'main_story' | 'adapted_from' | 'based_on' | 'prequel' | 'side_story' | 'doujinshi' | 'same_franchise' | 'shared_universe' | 'sequel' | 'spin_off' | 'alternate_story' | 'alternate_version' | 'preserialization' | 'colored' | 'serialization'; /** @min 1 */ version: number; } /** MangaList */ interface MangaListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: MangaSchema[]; limit: number; offset: number; total: number; } /** CustomListList */ interface CustomListListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: CustomListSchema[]; limit: number; offset: number; total: number; } /** UserList */ interface UserListSchema { /** @default "ok" */ result: string; /** @default "collection" */ response: string; data: UserSchema[]; limit: number; offset: number; total: number; } /** UploadSession */ interface UploadSessionSchema { /** @format uuid */ id: string; type: 'upload_session'; attributes: UploadSessionAttributesSchema; } /** UploadSessionAttributes */ interface UploadSessionAttributesSchema { isCommitted: boolean; isProcessed: boolean; isDeleted: boolean; /** @min 1 */ version: number; /** @format date-time */ createdAt: Date; /** @format date-time */ updatedAt: Date; } /** UploadSessionFile */ interface UploadSessionFileSchema { /** @format uuid */ id: string; type: 'upload_session_file'; attributes: UploadSessionFileAttributesSchema; } /** UploadSessionFileAttributes */ interface UploadSessionFileAttributesSchema { originalFileName: string; fileHash: string; fileSize: number; mimeType: string; source: 'local' | 'remote'; /** @min 1 */ version: number; } /** ChapterReadMarkersBatch */ type ChapterReadMarkerBatchSchema = { chapterIdsRead: string[]; chapterIdsUnread: string[]; }; interface ChapterDraftSchema { volume: ChapterVolumeSchema; chapter: ChapterVolumeSchema; /** @maxLength 255 */ title: string | null; /** @pattern ^[a-z]{2}(-[a-z]{2})?$ */ translatedLanguage: string; /** * @maxLength 512 * @pattern ^https?:// */ externalUrl?: string | null; /** * @format date-time * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ publishAt?: Date; } /** * ReferenceExpansionAuthor * Reference expansion options for author/artist entities or lists */ type ReferenceExpansionAuthorSchema = 'manga'[]; /** * ReferenceExpansionChapter * Reference expansion options for chapter entities or lists */ type ReferenceExpansionChapterSchema = ('manga' | 'scanlation_group' | 'user')[]; /** * ReferenceExpansionCoverArt * Reference expansion options for cover art entities or lists */ type ReferenceExpansionCoverArtSchema = ('manga' | 'user')[]; /** * ReferenceExpansionManga * Reference expansion options for manga entities or lists */ type ReferenceExpansionMangaSchema = ('manga' | 'cover_art' | 'author' | 'artist' | 'tag' | 'creator')[]; /** * ReferenceExpansionMangaRelation * Reference expansion options for manga relation entities or lists */ type ReferenceExpansionMangaRelationSchema = 'manga'[]; /** * ReferenceExpansionScanlationGroup * Reference expansion options for scanlation group entities or lists */ type ReferenceExpansionScanlationGroupSchema = ('leader' | 'member')[]; /** * StatisticsDetailsComments * Comments-related statistics of an entity. * If it is `null`, the entity doesn't have a backing comments thread, and therefore has no comments yet. */ type StatisticsDetailsCommentsSchema = { /** * The id of the thread backing the comments for that entity on the MangaDex Forums. * @min 1 */ threadId: number; /** * The number of replies on the MangaDex Forums thread backing this entity's comments. This excludes the initial comment that opens the thread, which is created by our systems. * @min 0 */ repliesCount: number; } | null; interface GetSearchMangaParamsSchema { /** * @min 0 * @max 100 * @default 10 * @pattern ^\d+$ */ limit: number; /** * @min 0 * @pattern ^\d+$ */ offset: number; title: string; /** @format uuid */ authorOrArtist: string; authors: string[]; artists: string[]; /** Year of release or none */ year: number | 'none'; includedTags: string[]; /** @default "AND" */ includedTagsMode: 'AND' | 'OR'; excludedTags: string[]; /** @default "OR" */ excludedTagsMode: 'AND' | 'OR'; status: ('ongoing' | 'completed' | 'hiatus' | 'cancelled')[]; originalLanguage: string[]; excludedOriginalLanguage: string[]; availableTranslatedLanguage: string[]; publicationDemographic: ('shounen' | 'shoujo' | 'josei' | 'seinen' | 'none')[]; /** Manga ids (limited to 100 per request) */ ids: string[]; /** @default ["safe","suggestive","erotica"] */ contentRating: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ createdAtSince: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ updatedAtSince: string; /** @default {"latestUploadedChapter":"desc"} */ order: { title?: 'asc' | 'desc'; year?: 'asc' | 'desc'; createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; latestUploadedChapter?: 'asc' | 'desc'; followedCount?: 'asc' | 'desc'; relevance?: 'asc' | 'desc'; rating?: 'asc' | 'desc'; }; /** Reference expansion options for manga entities or lists */ includes: ReferenceExpansionMangaSchema; hasAvailableChapters: boolean; /** @format uuid */ group: string; } interface GetSearchGroupParamsSchema { /** * @min 0 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; /** ScanlationGroup ids (limited to 100 per request) */ ids: string[]; name: string; focusedLanguage: string; /** Reference expansion options for scanlation group entities or lists */ includes: ReferenceExpansionScanlationGroupSchema; /** @default {"latestUploadedChapter":"desc"} */ order: { name?: 'asc' | 'desc'; createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; followedCount?: 'asc' | 'desc'; relevance?: 'asc' | 'desc'; }; } interface GetUserParamsSchema { /** * @min 0 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; /** User ids (limited to 100 per request) */ ids: string[]; username: string; order: { username?: 'asc' | 'desc'; }; } interface GetChapterParamsSchema { /** * @min 0 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; /** Chapter ids (limited to 100 per request) */ ids: string[]; title: string; groups: string[]; uploader: string | string[]; /** @format uuid */ manga: string; volume: string | string[]; chapter: string | string[]; translatedLanguage: string[]; originalLanguage: string[]; excludedOriginalLanguage: string[]; /** @default ["safe","suggestive","erotica"] */ contentRating: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; excludedGroups: string[]; excludedUploaders: string[]; /** @default "1" */ includeFutureUpdates: '0' | '1'; includeEmptyPages: 0 | 1; includeFuturePublishAt: 0 | 1; includeExternalUrl: 0 | 1; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ createdAtSince: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ updatedAtSince: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ publishAtSince: string; order: { createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; publishAt?: 'asc' | 'desc'; readableAt?: 'asc' | 'desc'; volume?: 'asc' | 'desc'; chapter?: 'asc' | 'desc'; }; includes: ('manga' | 'scanlation_group' | 'user')[]; } interface GetListIdFeedParamsSchema { /** * @min 1 * @max 500 * @default 100 */ limit: number; /** @min 0 */ offset: number; translatedLanguage: string[]; originalLanguage: string[]; excludedOriginalLanguage: string[]; /** @default ["safe","suggestive","erotica"] */ contentRating: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; excludedGroups: string[]; excludedUploaders: string[]; /** @default "1" */ includeFutureUpdates: '0' | '1'; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ createdAtSince: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ updatedAtSince: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ publishAtSince: string; order: { createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; publishAt?: 'asc' | 'desc'; readableAt?: 'asc' | 'desc'; volume?: 'asc' | 'desc'; chapter?: 'asc' | 'desc'; }; /** Reference expansion options for chapter entities or lists */ includes: ReferenceExpansionChapterSchema; includeEmptyPages: 0 | 1; includeFuturePublishAt: 0 | 1; includeExternalUrl: 0 | 1; /** @format uuid */ id: string; } interface GetCoverParamsSchema { /** * @min 0 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; /** Manga ids (limited to 100 per request) */ manga: string[]; /** Covers ids (limited to 100 per request) */ ids: string[]; /** User ids (limited to 100 per request) */ uploaders: string[]; /** Locales of cover art (limited to 100 per request) */ locales: string[]; order: { createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; volume?: 'asc' | 'desc'; }; /** Reference expansion options for cover art entities or lists */ includes: ReferenceExpansionCoverArtSchema; } interface GetAuthorParamsSchema { /** * @min 0 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; /** Author ids (limited to 100 per request) */ ids: string[]; name: string; order: { name?: 'asc' | 'desc'; }; /** Reference expansion options for author/artist entities or lists */ includes: ReferenceExpansionAuthorSchema; } interface GetMangaRandomParamsSchema { /** Reference expansion options for manga entities or lists */ includes: ReferenceExpansionMangaSchema; /** @default ["safe","suggestive","erotica"] */ contentRating: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; includedTags: string[]; /** @default "AND" */ includedTagsMode: 'AND' | 'OR'; excludedTags: string[]; /** @default "OR" */ excludedTagsMode: 'AND' | 'OR'; } interface GetMangaDraftsParamsSchema { /** * @min 1 * @max 100 * @default 10 */ limit: number; /** @min 0 */ offset: number; state: 'draft' | 'submitted' | 'rejected'; /** @default {"createdAt":"desc"} */ order: { title?: 'asc' | 'desc'; year?: 'asc' | 'desc'; createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; }; /** Reference expansion options for manga entities or lists */ includes: ReferenceExpansionMangaSchema; } declare namespace Manga$1 { /** * @description Search a list of Manga. * @tags Manga * @name GetSearchManga * @summary Manga list * @request GET:/manga */ namespace GetSearchManga { type RequestParams = {}; type RequestQuery = { /** * @min 0 * @max 100 * @default 10 * @pattern ^\d+$ */ limit?: number; /** * @min 0 * @pattern ^\d+$ */ offset?: number; title?: string; /** @format uuid */ authorOrArtist?: string; authors?: string[]; artists?: string[]; /** Year of release or none */ year?: number | 'none'; includedTags?: string[]; /** @default "AND" */ includedTagsMode?: 'AND' | 'OR'; excludedTags?: string[]; /** @default "OR" */ excludedTagsMode?: 'AND' | 'OR'; status?: ('ongoing' | 'completed' | 'hiatus' | 'cancelled')[]; originalLanguage?: string[]; excludedOriginalLanguage?: string[]; availableTranslatedLanguage?: string[]; publicationDemographic?: ('shounen' | 'shoujo' | 'josei' | 'seinen' | 'none')[]; /** Manga ids (limited to 100 per request) */ ids?: string[]; /** @default ["safe","suggestive","erotica"] */ contentRating?: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ createdAtSince?: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ updatedAtSince?: string; /** @default {"latestUploadedChapter":"desc"} */ order?: { title?: 'asc' | 'desc'; year?: 'asc' | 'desc'; createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; latestUploadedChapter?: 'asc' | 'desc'; followedCount?: 'asc' | 'desc'; relevance?: 'asc' | 'desc'; rating?: 'asc' | 'desc'; }; /** Reference expansion options for manga entities or lists */ includes?: ReferenceExpansionMangaSchema; hasAvailableChapters?: '0' | '1' | 'true' | 'false'; /** @format uuid */ group?: string; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaListSchema; } /** * @description Create a new Manga. * @tags Manga * @name PostManga * @summary Create Manga * @request POST:/manga * @secure */ namespace PostManga { type RequestParams = {}; type RequestQuery = {}; type RequestBody = MangaCreateSchema; type RequestHeaders = { /** @default "application/json" */ 'Content-Type': string; }; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name GetMangaAggregate * @summary Get Manga volumes & chapters * @request GET:/manga/{id}/aggregate */ namespace GetMangaAggregate { type RequestParams = { /** * Manga ID * @format uuid */ id: string; }; type RequestQuery = { translatedLanguage?: string[]; groups?: string[]; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = { /** @default "ok" */ result?: string; volumes?: Record<string, { volume?: string; count?: number; chapters?: Record<string, { chapter?: string; /** @format uuid */ id?: string; others?: string[]; count?: number; }>; }>; }; } /** * @description Get Manga. * @tags Manga * @name GetMangaId * @summary Get Manga * @request GET:/manga/{id} */ namespace GetMangaId { type RequestParams = { /** * Manga ID * @format uuid */ id: string; }; type RequestQuery = { /** Reference expansion options for manga entities or lists */ includes?: ReferenceExpansionMangaSchema; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name PutMangaId * @summary Update Manga * @request PUT:/manga/{id} * @secure */ namespace PutMangaId { type RequestParams = { /** * Manga ID * @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = MangaEditSchema & { artists?: string[]; authors?: string[]; }; type RequestHeaders = { /** @default "application/json" */ 'Content-Type': string; }; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name DeleteMangaId * @summary Delete Manga * @request DELETE:/manga/{id} * @secure */ namespace DeleteMangaId { type RequestParams = { /** * Manga ID * @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } /** * No description * @tags CustomList * @name PostMangaIdListListId * @summary Add Manga in CustomList * @request POST:/manga/{id}/list/{listId} * @secure */ namespace PostMangaIdListListId { type RequestParams = { /** * Manga ID * @format uuid */ id: string; /** * CustomList ID * @format uuid */ listId: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } /** * No description * @tags CustomList * @name DeleteMangaIdListListId * @summary Remove Manga in CustomList * @request DELETE:/manga/{id}/list/{listId} * @secure */ namespace DeleteMangaIdListListId { type RequestParams = { /** * Manga ID * @format uuid */ id: string; /** * CustomList ID * @format uuid */ listId: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } /** * No description * @tags Manga * @name DeleteMangaIdFollow * @summary Unfollow Manga * @request DELETE:/manga/{id}/follow * @secure */ namespace DeleteMangaIdFollow { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } /** * No description * @tags Manga * @name PostMangaIdFollow * @summary Follow Manga * @request POST:/manga/{id}/follow * @secure */ namespace PostMangaIdFollow { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } /** * No description * @tags Manga * @name GetMangaIdFeed * @summary Manga feed * @request GET:/manga/{id}/feed */ namespace GetMangaIdFeed { type RequestParams = { /** * Manga ID * @format uuid */ id: string; }; type RequestQuery = { /** * @min 1 * @max 500 * @default 100 */ limit?: number; /** @min 0 */ offset?: number; translatedLanguage?: string[]; originalLanguage?: string[]; excludedOriginalLanguage?: string[]; /** @default ["safe","suggestive","erotica"] */ contentRating?: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; excludedGroups?: string[]; excludedUploaders?: string[]; /** @default "1" */ includeFutureUpdates?: '0' | '1'; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ createdAtSince?: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ updatedAtSince?: string; /** * DateTime string with following format: YYYY-MM-DDTHH:MM:SS in timezone UTC+0 * @pattern ^\d{4}-[0-1]\d-([0-2]\d|3[0-1])T([0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$ */ publishAtSince?: string; order?: { createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; publishAt?: 'asc' | 'desc'; readableAt?: 'asc' | 'desc'; volume?: 'asc' | 'desc'; chapter?: 'asc' | 'desc'; }; /** Reference expansion options for chapter entities or lists */ includes?: ReferenceExpansionChapterSchema; includeEmptyPages?: 0 | 1; includeFuturePublishAt?: 0 | 1; includeExternalUrl?: 0 | 1; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ChapterListSchema; } /** * @description A list of chapter ids that are marked as read for the specified manga * @tags ReadMarker * @name GetMangaChapterReadmarkers * @summary Manga read markers * @request GET:/manga/{id}/read * @secure */ namespace GetMangaChapterReadmarkers { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = { result?: 'ok'; data?: string[]; }; } /** * @description Send a lot of chapter ids for one manga to mark as read and/or unread * @tags ReadMarker * @name PostMangaChapterReadmarkers * @summary Manga read markers batch * @request POST:/manga/{id}/read * @secure */ namespace PostMangaChapterReadmarkers { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = { /** Adding this will cause the chapter to be stored in the user's reading history */ updateHistory?: boolean; }; type RequestBody = ChapterReadMarkerBatchSchema; type RequestHeaders = {}; type ResponseBody = { result?: 'ok'; }; } /** * @description A list of chapter ids that are marked as read for the given manga ids * @tags ReadMarker * @name GetMangaChapterReadmarkers2 * @summary Manga read markers * @request GET:/manga/read * @secure */ namespace GetMangaChapterReadmarkers2 { type RequestParams = {}; type RequestQuery = { /** Manga ids */ ids: string[]; /** Group results by manga ids */ grouped?: boolean; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = { result?: 'ok'; data?: string[] | Record<string, string[]>; }; } /** * No description * @tags Manga * @name GetMangaRandom * @summary Get a random Manga * @request GET:/manga/random */ namespace GetMangaRandom { type RequestParams = {}; type RequestQuery = { /** Reference expansion options for manga entities or lists */ includes?: ReferenceExpansionMangaSchema; /** @default ["safe","suggestive","erotica"] */ contentRating?: ('safe' | 'suggestive' | 'erotica' | 'pornographic')[]; includedTags?: string[]; /** @default "AND" */ includedTagsMode?: 'AND' | 'OR'; excludedTags?: string[]; /** @default "OR" */ excludedTagsMode?: 'AND' | 'OR'; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name GetMangaTag * @summary Tag list * @request GET:/manga/tag */ namespace GetMangaTag { type RequestParams = {}; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = TagResponseSchema; } /** * No description * @tags Manga * @name GetMangaStatus * @summary Get all Manga reading status for logged User * @request GET:/manga/status * @secure */ namespace GetMangaStatus { type RequestParams = {}; type RequestQuery = { /** Used to filter the list by given status */ status?: 'reading' | 'on_hold' | 'plan_to_read' | 'dropped' | 're_reading' | 'completed'; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = { /** @default "ok" */ result?: string; statuses?: Record<string, 'reading' | 'on_hold' | 'plan_to_read' | 'dropped' | 're_reading' | 'completed'>; }; } /** * No description * @tags Manga * @name GetMangaIdStatus * @summary Get a Manga reading status * @request GET:/manga/{id}/status * @secure */ namespace GetMangaIdStatus { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = { /** @default "ok" */ result?: string; status?: 'reading' | 'on_hold' | 'plan_to_read' | 'dropped' | 're_reading' | 'completed'; }; } /** * No description * @tags Manga * @name PostMangaIdStatus * @summary Update Manga reading status * @request POST:/manga/{id}/status * @secure */ namespace PostMangaIdStatus { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = UpdateMangaStatusSchema; type RequestHeaders = { /** @default "application/json" */ 'Content-Type': string; }; type ResponseBody = ResponseSchema; } /** * No description * @tags Manga * @name GetMangaIdDraft * @summary Get a specific Manga Draft * @request GET:/manga/draft/{id} * @secure */ namespace GetMangaIdDraft { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = { /** Reference expansion options for manga entities or lists */ includes?: ReferenceExpansionMangaSchema; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name CommitMangaDraft * @summary Submit a Manga Draft * @request POST:/manga/draft/{id}/commit * @secure */ namespace CommitMangaDraft { type RequestParams = { /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = { /** @min 1 */ version?: number; }; type RequestHeaders = {}; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name GetMangaDrafts * @summary Get a list of Manga Drafts * @request GET:/manga/draft * @secure */ namespace GetMangaDrafts { type RequestParams = {}; type RequestQuery = { /** * @min 1 * @max 100 * @default 10 */ limit?: number; /** @min 0 */ offset?: number; state?: 'draft' | 'submitted' | 'rejected'; /** @default {"createdAt":"desc"} */ order?: { title?: 'asc' | 'desc'; year?: 'asc' | 'desc'; createdAt?: 'asc' | 'desc'; updatedAt?: 'asc' | 'desc'; }; /** Reference expansion options for manga entities or lists */ includes?: ReferenceExpansionMangaSchema; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaResponseSchema; } /** * No description * @tags Manga * @name GetMangaRelation * @summary Manga relation list * @request GET:/manga/{mangaId}/relation */ namespace GetMangaRelation { type RequestParams = { /** @format uuid */ mangaId: string; }; type RequestQuery = { /** Reference expansion options for manga relation entities or lists */ includes?: ReferenceExpansionMangaRelationSchema; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = MangaRelationListSchema; } /** * @description Create a new Manga relation. * @tags Manga * @name PostMangaRelation * @summary Create Manga relation * @request POST:/manga/{mangaId}/relation * @secure */ namespace PostMangaRelation { type RequestParams = { /** @format uuid */ mangaId: string; }; type RequestQuery = {}; type RequestBody = MangaRelationCreateSchema; type RequestHeaders = { /** @default "application/json" */ 'Content-Type': string; }; type ResponseBody = MangaRelationResponseSchema; } /** * No description * @tags Manga * @name DeleteMangaRelationId * @summary Delete Manga relation * @request DELETE:/manga/{mangaId}/relation/{id} * @secure */ namespace DeleteMangaRelationId { type RequestParams = { /** @format uuid */ mangaId: string; /** @format uuid */ id: string; }; type RequestQuery = {}; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = ResponseSchema; } } declare namespace User$1 { /** * @description This will list public and private CustomList * @tags CustomList * @name GetUserList * @summary Get logged User CustomList list * @request GET:/user/list * @secure */ namespace GetUserList { type RequestParams = {}; type RequestQuery = { /** * @min 0 * @max 100 * @default 10 */ limit?: number; /** @min 0 */ offset?: number; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = CustomListListSchema; } /** * @description This will list only public CustomList * @tags CustomList * @name GetUserIdList * @summary Get User's CustomList list * @request GET:/user/{id}/list */ namespace GetUserIdList { type RequestParams = { /** * User ID * @format uuid */ id: string; }; type RequestQuery = { /** * @min 0 * @max 100 * @default 10 */ limit?: number; /** @min 0 */ offset?: number; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = CustomListListSchema; } /** * No description * @tags User * @name GetUser * @summary User list * @request GET:/user * @secure */ namespace GetUser { type RequestParams = {}; type RequestQuery = { /** * @min 0 * @max 100 * @default 10 */ limit?: number; /** @min 0 */ offset?: number; /** User ids (limited to 100 per request) */ ids?: string[]; username?: string; order?: { username?: 'asc' | 'desc'; }; }; type RequestBody = never; type RequestHeaders = {}; type ResponseBody = Use