MangaLib APImangalib.org ↗
Access MangaLib's manga catalog, chapter pages, search, comments, and cover images via a structured API. 9 endpoints returning paginated, filterable manga data.
What is the MangaLib API?
The MangaLib API exposes 9 endpoints covering the full manga browsing and reading workflow on mangalib.org. You can search titles by keyword with search_titles, pull paginated catalog results filtered by genre, type, and sort order via get_catalog, retrieve per-chapter page image URLs including width and height, fetch user comments with pagination, and get cover and banner image URLs for any title.
curl -X GET 'https://api.parse.bot/scraper/046de2fd-2491-48f4-8b74-ed3e7b16ba31/get_catalog?name=Naruto&page=1&types=1&genres=34&sort_by=rate_avg&sort_type=asc' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace mangalib-org-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""MangaLib SDK — browse catalog, drill into chapters, read comments."""
from parse_apis.mangalib_api import MangaLib, SortField, SortDirection, MangaNotFound
client = MangaLib()
# Browse top-rated manga from the catalog
for manga in client.mangas.list(sort_by=SortField.RATE_AVG, sort_type=SortDirection.DESC, limit=3):
print(manga.name, manga.slug_url)
# Search for a specific title and drill into its chapters
result = client.mangas.search(query="Naruto", limit=1).first()
if result:
for chapter in result.chapters.list(limit=3):
print(chapter.volume, chapter.number, chapter.name)
# Fetch full details for a known manga
try:
detail = client.mangas.get(slug_url="195--naruto")
print(detail.name, detail.rating.average, detail.status.label)
except MangaNotFound as exc:
print(f"Not found: {exc.slug_url}")
# Get cover images
cover = client.coverimages.get(slug_url="195--naruto")
print(cover.cover_image_url, cover.thumbnail_url)
# Get homepage trending content
home = client.homepages.get()
for item in home.popular[:2]:
print(item.name, item.slug_url)
print("exercised: mangas.list / mangas.search / mangas.get / chapters.list / coverimages.get / homepages.get")
Retrieve the manga catalog with optional filtering by genres, types, name, and sorting. Returns paginated results (60 items per page). Supports sorting by average rating, name, creation date, last chapter date, views, or chapter count. Genre and type IDs correspond to the platform's internal classification system.
| Param | Type | Description |
|---|---|---|
| name | string | Filter by name (partial match). |
| page | integer | Page number for pagination. |
| types | string | Comma-separated type IDs to filter by (e.g. '1,5,6'). Type 1=Manga, 4=OEL-manga, 5=Manhwa, 6=Manhua, 8=Rumanga. |
| genres | string | Comma-separated genre IDs to filter by (e.g. '34,35,43'). |
| sort_by | string | Sort field for catalog results. |
| sort_type | string | Sort direction. |
{
"type": "object",
"fields": {
"data": "array of manga summary objects",
"meta": "object with pagination info including current_page, per_page, has_next_page"
},
"sample": {
"data": {
"data": [
{
"id": 266040,
"name": "Homura and Kyoko Early Days",
"type": {
"id": 1,
"label": "Манга"
},
"cover": {
"default": "https://cover.cdnlibs.org/uploads/cover/homura-and-kyoko-early-days/cover/4fcb4823-d448-483d-8b39-0f7e5b2817ad.jpg",
"thumbnail": "https://cover.cdnlibs.org/uploads/cover/homura-and-kyoko-early-days/cover/4fcb4823-d448-483d-8b39-0f7e5b2817ad_thumb.jpg"
},
"rating": {
"votes": 2,
"average": "10",
"averageFormated": "10"
},
"status": {
"id": 2,
"label": "Завершён"
},
"eng_name": "Homura and Kyoko Early Days",
"rus_name": "Хомура и Кёко: ранние годы",
"slug_url": "266040--homura-and-kyoko-early-days"
}
],
"meta": {
"per_page": 60,
"current_page": 1,
"has_next_page": true
}
},
"status": "success"
}
}About the MangaLib API
Catalog and Search
The get_catalog endpoint returns paginated manga objects — each with id, name, rus_name, eng_name, slug_url, cover, type, rating, and status — and accepts filters for genres (comma-separated genre IDs), types (comma-separated type IDs), and six sort_by options including rate_avg, views, chap_count, and last_chapter_at. The search_titles endpoint accepts a single query string and returns the same shape for quick keyword lookups. Both endpoints produce slug_url values used as input to every other endpoint.
Manga Details and Chapters
get_manga_details returns a full metadata object for a single title: summary, genres, tags, authors, rating, status, and chap_count. get_manga_chapters returns the ordered chapter list with volume, number, name, branches_count, and branches per entry. To retrieve readable page images, pass the matching slug_url, volume, and chapter number to get_chapter_pages, which returns a pages array where each item includes slug, url, width, and height.
Discovery and Community Data
get_currently_reading requires no inputs and returns a snapshot of MangaLib's homepage data: popular, newest, latest_updates, collections, reviews, currently_views, weekly_top_users, and news. get_manga_comments accepts a numeric manga_id and an optional page parameter, returning separate root and replies arrays alongside pagination meta. get_random_title returns one randomly selected manga object with the same basic metadata fields as catalog results. get_manga_cover_image returns three distinct image URLs — thumbnail_url, cover_image_url, and banner_image_url — for a given slug_url.
The MangaLib API is a managed, monitored endpoint for mangalib.org — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when mangalib.org changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official mangalib.org API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a manga discovery app that filters the catalog by genre IDs and sorts by
rate_avgto surface top-rated titles. - Generate a reading progress tracker by listing all chapters via
get_manga_chaptersand fetching pages withget_chapter_pages. - Display author, tag, and summary data from
get_manga_detailson a title information page. - Create a trending dashboard using the
popular,latest_updates, andweekly_top_usersfields fromget_currently_reading. - Build a comment feed or moderation tool using paginated comment data from
get_manga_comments. - Populate manga cards with cover and banner art using the three image URLs returned by
get_manga_cover_image. - Implement a random manga recommendation button backed by
get_random_title.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does MangaLib have an official developer API?+
How do genres and types filtering work in get_catalog?+
genres and types accept comma-separated numeric ID strings (e.g. genres=1,2,3). You can combine them with any sort_by value — rate_avg, name, created_at, last_chapter_at, views, or chap_count — and a sort_type of asc or desc. Note that the name filter may return upstream errors depending on backend availability at the time of the request.Does get_chapter_pages return the actual image files?+
url string along with width and height dimensions. Your client fetches the images from those URLs directly.