Manga API Guide
The client.manga service provides access to MyAnimeList manga metadata, rankings, and user reading list management.
API Reference
These methods interact with the official MyAnimeList Manga Endpoints.
Searching Manga
Search for manga by title or keyword using getMangaList:
val searchResult = client.manga.getMangaList(
query = "Berserk",
limit = 10,
offset = 0
)
searchResult.data.forEach { manga ->
println("${manga.id}: ${manga.title}")
}
- API Endpoint:
GET /manga
Fetching Manga Details
Fetch complete information for a specific manga by its ID:
import io.github.rribeiro5.koani.manga.MangaField
val manga = client.manga.getMangaDetails(
mangaId = 2,
fields = listOf(
MangaField.SYNOPSIS,
MangaField.MEAN,
MangaField.GENRES,
MangaField.NUM_CHAPTERS,
MangaField.NUM_VOLUMES
)
)
println("Title: ${manga.title}")
println("Score: ${manga.mean}")
println("Chapters: ${manga.numChapters}")
- API Endpoint:
GET /manga/{manga_id}
Manga Rankings
Query top-ranked manga by category using MangaRankingType:
import io.github.rribeiro5.koani.manga.MangaRankingType
val topManga = client.manga.getMangaRanking(
rankingType = MangaRankingType.ALL,
limit = 5
)
topManga.data.forEach { ranked ->
println("#${ranked.ranking.rank}: ${ranked.node.title}")
}
- Available Ranking Types:
ALL,MANGA,NOVELS,ONESHOTS,DOUJIN,MANHWA,MANHUA,BY_POPULARITY,FAVORITE. - API Endpoint:
GET /manga/ranking
User Manga List Management
Authentication Required
Updating or reading user reading lists requires an authenticated session.
Get User Manga List
Fetch a user's manga reading list:
import io.github.rribeiro5.koani.manga.UserMangaListStatusType
val userMangaList = client.manga.getUserMangaList(
userName = "@me", // or specific username
status = UserMangaListStatusType.READING,
limit = 20
)
userMangaList.data.forEach { item ->
println("${item.node.title} - Chapters Read: ${item.listStatus?.numChaptersRead}")
}
- API Endpoint:
GET /users/{user_name}/mangalist
Update Manga List Item
Add or update a manga entry's status, chapters read, or score:
import io.github.rribeiro5.koani.manga.UserMangaListStatus
val updatedStatus = client.manga.updateUserMangaListStatus(
mangaId = 2,
status = UserMangaListStatus.READING,
score = 10,
numChaptersRead = 150,
numVolumesRead = 18
)
println("Updated status: ${updatedStatus.status}, Chapters Read: ${updatedStatus.numChaptersRead}")
- API Endpoint:
PUT /manga/{manga_id}/my_list_status
Delete Manga List Item
Remove an entry from the user's manga reading list:
client.manga.deleteUserMangaListItem(mangaId = 2)
- API Endpoint:
DELETE /manga/{manga_id}/my_list_status