Manga API endpoint
Searches manga by free-text query. Returns entries: titles, scores, popularity, format, status, chapters, volumes, genres, and tags.
/manga/searchQuery parameters:
query (required) — search text, e.g. Berserk.sort (optional, default SEARCH_MATCH) — one of SEARCH_MATCH, POPULARITY_DESC, SCORE_DESC, TRENDING_DESC, FAVOURITES_DESC, START_DATE_DESC.page (optional, default 1); per_page (optional, default 10, max 50).Response includes total, has_next_page, and results[]: id, id_mal, type, title, format, status, average_score, popularity, chapters, volumes, genres, tags[], cover_image, site_url.
| Field | Filled in, of 12 checked | Values in the sample |
|---|---|---|
| id | 12 | |
| id_mal | 9 | |
| type | 12 | MANGA in all 12 |
| title | 12 | |
| format | 12 | MANGA (6), NOVEL (4), ONE_SHOT (2) |
| status | 12 | FINISHED (8), RELEASING (4) |
| description | 10 | median 241 characters |
| start_date | 12 | |
| average_score | 7 | 61 to 92, median 68 |
| mean_score | 11 | 38 to 92, median 68 |
| popularity | 12 | 9 to 246,987, median 1,017 |
| favourites | 10 | 1 to 40,893, median 63 |
| trending | 2 | 1 to 8, median 1 |
| genres | 11 | median 3 entries |
| tags | 9 | median 5 entries |
| country_of_origin | 12 | JP (10), CN (1), KR (1) |
| cover_image | 12 | s4.anilist.co |
| banner_image | 6 | s4.anilist.co |
| site_url | 12 | anilist.co |
| end_date | 8 | |
| chapters | 7 | 1 to 239, median 12 |
| volumes | 5 | 1 to 8, median 2 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| query | string | Yes | Search text | Berserk | |
| sort | string | No | Ordering: SEARCH_MATCH, POPULARITY_DESC, SCORE_DESC, TRENDING_DESC, FAVOURITES_DESC, START_DATE_DESC. Default SEARCH_MATCH. Allowed values: SEARCH_MATCH, POPULARITY_DESC, SCORE_DESC, TRENDING_DESC, FAVOURITES_DESC, START_DATE_DESC. | ||
| page | integer | No | 1-based page number, default 1 | ||
| per_page | integer | No | Results per page, default 10, max 50 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/manga/search?query=Berserk&sort=SEARCH_MATCH&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"query": "Berserk",
"page": 1,
"per_page": 10,
"total": 50,
"has_next_page": true,
"results": [
{
"id": 30002,
"id_mal": 2,
"type": "MANGA",
"title": {
"romaji": "Berserk"
},
"format": "MANGA",
"status": "RELEASING",
"average_score": 92,
"genres": [
"Action",
"Adventure",
"Fantasy",
"Horror"
],
"site_url": "https://anilist.co/manga/30002"
}
]
}
}Request schema
No body schema
Response schema
#/definitions/anime.searchResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | anime.SearchResponse | No | ||||
| data.has_next_page | boolean | No | false | True when more pages of results are available. | ||
| data.page | integer | No | 1 | Page number returned. | ||
| data.per_page | integer | No | 10 | Number of results per page. | ||
| data.query | string | No | Frieren | Search text that was run. | ||
| data.results | array | No | Matching titles on this page. Media record, 50 fields: average_score, banner_image, chapters, country_of_origin, cover_image, description, duration, end_date, episodes, favourites, format, genres and 18 more. Described under Manga Detail API. | |||
| data.total | integer | No | 1 | Total number of matching titles. | ||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 500 | Internal Server Error | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/manga/search?query=Berserk&sort=SEARCH_MATCH&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"