REST API
Shinigami API Documentation
Manga data API powered by Shinigami scraper. All endpoints return JSON. No authentication required.
Response Envelope
Every endpoint wraps its payload in a consistent envelope.
Success
{
"success": true,
"data": { ... }
}
Error
{
"success": false,
"error": "Error message"
}
Error Codes
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Bad request — missing or invalid parameter |
| 500 | Server error — upstream scraper failed |
GET
/api/manga/popular
Returns a paginated list of popular manga sorted by popularity.
Query Parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | No | 1 | Page number |
Response Schema
{
"success": true,
"data": {
"mangas": [
{
"title": "string",
"thumbnail": "string (URL)",
"url": "string (mangaId)",
"mangaUrl": "string"
}
],
"hasNextPage": "boolean"
}
}
Try it
GET
/api/manga/latest
Returns a paginated list of recently updated manga.
Query Parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
page | integer | No | 1 | Page number |
Response Schema
{
"success": true,
"data": {
"mangas": [ { "title": "string", "thumbnail": "string", "url": "string", "mangaUrl": "string" } ],
"hasNextPage": "boolean"
}
}
Try it
GET
/api/manga/search
Search manga by title or genre keyword.
Query Parameters
| Param | Type | Required | Default | Description |
|---|---|---|---|---|
q | string | Yes | — | Search query |
page | integer | No | 1 | Page number |
Response Schema
{
"success": true,
"data": {
"mangas": [ { "title": "string", "thumbnail": "string", "url": "string", "mangaUrl": "string" } ],
"hasNextPage": "boolean"
}
}
Try it
GET
/api/manga/:mangaId
Get detailed info for a single manga by its ID.
Path Parameters
| Param | Type | Required | Description |
|---|---|---|---|
mangaId | string | Yes | Manga ID from list endpoints (url field) |
Response Schema
{
"success": true,
"data": {
"title": "string",
"author": "string",
"artist": "string",
"status": "Ongoing | Completed | Unknown",
"description": "string",
"genre": "string (comma-separated)",
"thumbnail": "string (URL)"
}
}
Try it
GET
/api/manga/:mangaId/chapters
Get the full chapter list for a manga.
Path Parameters
| Param | Type | Required | Description |
|---|---|---|---|
mangaId | string | Yes | Manga ID |
Response Schema
{
"success": true,
"data": [
{
"name": "string (e.g. Chapter 1)",
"dateUpload": "number (Unix ms timestamp)",
"url": "string (chapterId)",
"chapterUrl": "string"
}
]
}
Try it
GET
/api/manga/chapter/:chapterId/pages
Get the page image list for a chapter. Images must be fetched via the /api/manga/image proxy endpoint.
Path Parameters
| Param | Type | Required | Description |
|---|---|---|---|
chapterId | string | Yes | Chapter ID from chapters list (url field) |
Response Schema
{
"success": true,
"data": [
{
"index": "number",
"imageUrl": "string (proxied via /api/manga/image)"
}
]
}
Try it
GET
/api/manga/image
Image proxy — fetches manga images with the correct referer headers. Use this to display images that would otherwise be blocked by hotlink protection.
Query Parameters
| Param | Type | Required | Description |
|---|---|---|---|
url | string (URL-encoded) | Yes | Original image URL to proxy |
Response
Content-Type: image/jpeg Body: raw image binary
Try it