MyAnimeList manga operations
This page lists public MyAnimeList manga operations by response domain.
Manga
mal.manga.get
MyAnimeListMangaApi.get gets one manga by its MyAnimeList ID through MalMangaOperation.get. It is the public facade for the GET /manga/{id} endpoint; use MalRequestOptions.fields to select the response shape and MalRequestOptions transport settings to override per call.
Signature
get(params: MalMangaGetParams, options?: MalRequestOptions): Promise<MalManga>Auth: Not required for public manga data; pass an access token for list-related fields.
| Name | Type | Required | Description |
|---|---|---|---|
params | MalMangaGetParams | yes | The manga lookup inputs; a MalMangaGetParams carrying the MyAnimeList manga ID. |
id | number | no | The MyAnimeList manga ID. |
options | MalRequestOptions | no | Optional field selection and transport settings; a MalRequestOptions merged over the instance defaults. |
fields | string | readonly string[] | no | A comma-separated field selector, or the same selector as an array. |
timeout | number | no | Milliseconds before a request is aborted. `0` disables the Axios timeout. Defaults to DEFAULT_REQUEST_TIMEOUT; timeout errors carry the effective duration as `AniLinkNetworkError.timeoutMs`. |
signal | AbortSignal | no | Signal used to cancel in-flight requests. |
| Field | Type | Description |
|---|---|---|
id | number | The MyAnimeList numeric identifier. |
title | string | The canonical MyAnimeList title. |
main_picture | MalPicture | Optional image variants requested through the `fields` query parameter. |
synopsis | string | The synopsis, when requested via the `fields` query parameter. |
status | string | The publication status, when requested (one of MAL's status values such as `finished`). |
mean | number | The average score out of 10, when requested via the `fields` query parameter. |
num_chapters | number | The total number of chapters, when requested via the `fields` query parameter. |
num_volumes | number | The total number of volumes, when requested via the `fields` query parameter. |
media_type | string | The media type, when requested (for example `manga`, `novel`, or `one_shot`). |
start_date | string | The first publication date in ISO 8601 format, when requested via the `fields` query parameter. |
end_date | string | The end publication date in ISO 8601 format, when requested via the `fields` query parameter. |
AniLinkRestError:for a non-success MyAnimeList responseAniLinkNetworkError:for timeout, cancellation, or other transport failures
Example
const api = new AniLink({ mal: { accessToken: "mal-token" } }).mal;
const manga = await api.manga.get({ id: 1 }, { fields: ["id", "title", "main_picture"] });mal.manga.search
MyAnimeListMangaApi.search searches MyAnimeList manga by keyword through MalMangaOperation.search. It is the public facade for GET /manga; use MalRequestOptions.fields to select the response shape and MalRequestOptions transport settings to override per call.
Signature
search(params: MalMangaSearchParams, options?: MalRequestOptions): Promise<MalMangaSearchResponse>Auth: Not required: a public read.
| Name | Type | Required | Description |
|---|---|---|---|
params | MalMangaSearchParams | yes | The search inputs; a MalMangaSearchParams carrying the keyword plus the optional paging filters. |
q | string | no | The search keyword. |
limit | number | no | The number of entries per page; defaults to 100, capped at 100 by MyAnimeList. |
offset | number | no | The offset of the first entry; defaults to 0. |
options | MalRequestOptions | no | Optional field selection and transport settings; a MalRequestOptions merged over the instance defaults. |
fields | string | readonly string[] | no | A comma-separated field selector, or the same selector as an array. |
timeout | number | no | Milliseconds before a request is aborted. `0` disables the Axios timeout. Defaults to DEFAULT_REQUEST_TIMEOUT; timeout errors carry the effective duration as `AniLinkNetworkError.timeoutMs`. |
signal | AbortSignal | no | Signal used to cancel in-flight requests. |
| Field | Type | Description |
|---|---|---|
data | MalMangaSearchEntry[] | The search-result entries on this page. |
paging | MalPaging | The paging node with the next-page URL, when the list continues. |
AniLinkValidationError:when `q` is empty or only whitespaceAniLinkRestError:for a non-success MyAnimeList responseAniLinkNetworkError:for timeout, cancellation, or other transport failures
Example
const api = new AniLink({ mal: { accessToken: "mal-token" } }).mal;
const results = await api.manga.search(
{ q: "berserk" },
{ fields: ["id", "title", "main_picture"] }
);
console.log(results.data[0]?.node.title);mal.manga.ranking
MyAnimeListMangaApi.ranking gets one of MyAnimeList's manga ranking lists through MalMangaOperation.ranking. It is the public facade for GET /manga/ranking; use MalRequestOptions.fields to select the response shape and MalRequestOptions transport settings to override per call.
Signature
ranking(params: MalMangaRankingParams, options?: MalRequestOptions): Promise<MalMangaRankingResponse>Auth: Not required: a public read.
| Name | Type | Required | Description |
|---|---|---|---|
params | MalMangaRankingParams | yes | The ranking read inputs; a MalMangaRankingParams carrying the ranking list to fetch. |
rankingType | MalMangaRankingType | no | The ranking list to fetch; one of MalMangaRankingType. |
options | MalRequestOptions | no | Optional field selection and transport settings; a MalRequestOptions merged over the instance defaults. |
fields | string | readonly string[] | no | A comma-separated field selector, or the same selector as an array. |
timeout | number | no | Milliseconds before a request is aborted. `0` disables the Axios timeout. Defaults to DEFAULT_REQUEST_TIMEOUT; timeout errors carry the effective duration as `AniLinkNetworkError.timeoutMs`. |
signal | AbortSignal | no | Signal used to cancel in-flight requests. |
| Field | Type | Description |
|---|---|---|
data | MalMangaRankingEntry[] | The ranking entries on this page. |
paging | MalPaging | The paging node with the next-page URL, when the list continues. |
AniLinkRestError:for a non-success MyAnimeList responseAniLinkNetworkError:for timeout, cancellation, or other transport failures
Example
const api = new AniLink({ mal: { accessToken: "mal-token" } }).mal;
const top = await api.manga.ranking(
{ rankingType: "manga" },
{ fields: ["id", "title", "mean"] }
);
console.log(top.data[0]?.node.title, top.data[0]?.ranking.rank);mal.manga.updateMyListStatus
MyAnimeListMangaApi.updateMyListStatus updates the authenticated user's manga list status through MalMangaOperation.updateMyListStatus. It is the public facade for PATCH /manga/{id}/my_list_status and requires a MAL access token from MalCredentials.accessToken via buildMyAnimeListApi; send only the MalMangaListStatusUpdate fields you want to change, form-encoded as MAL requires.
Signature
updateMyListStatus(params: MalMangaListStatusUpdateParams, options?: MalRequestOptions): Promise<MalMangaListStatus>Auth: Required: MAL OAuth2 access token (`mal.accessToken` credential slot).
| Name | Type | Required | Description |
|---|---|---|---|
params | MalMangaListStatusUpdateParams | yes | The list-status write inputs; a MalMangaListStatusUpdateParams carrying the manga ID plus only the fields to change. |
id | number | no | The MyAnimeList manga ID. |
status | MalMangaListStatusValue | no | The reading status to set; one of MalMangaListStatusValue. |
num_chapters_read | number | no | The number of chapters the user has read. |
num_volumes_read | number | no | The number of volumes the user has read. |
score | number | no | The user's score out of 10. |
comments | string | no | Free-form notes the user attached to the entry. |
is_rereading | boolean | no | Whether the user is currently rereading the manga. |
num_times_reread | number | no | The number of times the user has reread the manga. |
reread_value | number | no | The reread value rating (0-5). |
priority | number | no | The priority rating (0-2). |
tags | readonly string[] | no | User-defined tags attached to the entry; sent as a comma-separated string. |
options | MalRequestOptions | no | Optional field selection and transport settings; a MalRequestOptions merged over the instance defaults. |
fields | string | readonly string[] | no | A comma-separated field selector, or the same selector as an array. |
timeout | number | no | Milliseconds before a request is aborted. `0` disables the Axios timeout. Defaults to DEFAULT_REQUEST_TIMEOUT; timeout errors carry the effective duration as `AniLinkNetworkError.timeoutMs`. |
signal | AbortSignal | no | Signal used to cancel in-flight requests. |
| Field | Type | Description |
|---|---|---|
status | MalMangaListStatusValue | The current reading status; one of MalMangaListStatusValue. |
num_chapters_read | number | The number of chapters the user has read. |
num_volumes_read | number | The number of volumes the user has read. |
score | number | The user's score out of 10. |
start_date | string | The date the user started reading, in ISO 8601 form; may be a partial date (`YYYY-MM` or `YYYY`). |
finish_date | string | The date the user finished reading, in ISO 8601 form; may be a partial date (`YYYY-MM` or `YYYY`). |
comments | string | Free-form notes the user attached to the entry. |
is_rereading | boolean | Whether the user is currently rereading the manga. |
num_times_reread | number | The number of times the user has reread the manga. |
reread_value | number | The reread value rating (0-5). |
priority | number | The priority rating (0-2). |
tags | string[] | User-defined tags attached to the entry, as an array of strings. |
updated_at | string | The server-managed timestamp of the last update, in ISO 8601 form. |
AniLinkAuthError:when no MAL access token is configuredAniLinkValidationError:when params carries no known list-status field to changeAniLinkRestError:for a non-success MyAnimeList responseAniLinkNetworkError:for timeout, cancellation, or other transport failures
Example
const api = new AniLink({ mal: { accessToken: "mal-token" } }).mal;
const status = await api.manga.updateMyListStatus({
id: 1,
status: "reading",
num_chapters_read: 10,
score: 9,
});mal.manga.deleteFromList
MyAnimeListMangaApi.deleteFromList removes a manga from the authenticated user's list through MalMangaOperation.deleteFromList. It is the public facade for DELETE /manga/{id}/my_list_status and requires a MAL access token from MalCredentials.accessToken via buildMyAnimeListApi.
Signature
deleteFromList(params: MalMangaDeleteParams, options?: MalRequestOptions): Promise<void>Auth: Required: MAL OAuth2 access token (`mal.accessToken` credential slot).
| Name | Type | Required | Description |
|---|---|---|---|
params | MalMangaDeleteParams | yes | The delete inputs; a MalMangaDeleteParams carrying the MyAnimeList manga ID. |
id | number | no | The MyAnimeList manga ID. |
options | MalRequestOptions | no | Optional transport settings; a MalRequestOptions merged over the instance defaults. |
timeout | number | no | Milliseconds before a request is aborted. `0` disables the Axios timeout. Defaults to DEFAULT_REQUEST_TIMEOUT; timeout errors carry the effective duration as `AniLinkNetworkError.timeoutMs`. |
signal | AbortSignal | no | Signal used to cancel in-flight requests. |
See the TypeDoc page for the full void shape.
AniLinkAuthError:when no MAL access token is configuredAniLinkRestError:for a non-success MyAnimeList responseAniLinkNetworkError:for timeout, cancellation, or other transport failures
Example
const api = new AniLink({ mal: { accessToken: "mal-token" } }).mal;
await api.manga.deleteFromList({ id: 1 });Related guides
- MAL operations explains operation parameters and responses.
- MAL pagination covers paging through manga results.