Anime API endpoint
Ranks anime by `sort` (default `TRENDING_DESC`, or `POPULARITY_DESC`, `SCORE_DESC`, `FAVOURITES_DESC`, `START_DATE_DESC`, `UPDATED_AT_DESC`). Filter by `season`, `season_year` (1940 to 2100), `format`, `genre` and `status`. Paged with `page` and `per_page` (default 20, max 50); results carry titles, scores, popularity, episodes, studios and tags.
/anime/rankingsReturns a filterable, sorted anime ranking. AniList data (anilist.co).
Query parameters:
sort (optional, default TRENDING_DESC) — one of TRENDING_DESC, POPULARITY_DESC, SCORE_DESC, FAVOURITES_DESC, START_DATE_DESC, UPDATED_AT_DESC.season (optional) — one of WINTER, SPRING, SUMMER, FALL.season_year (optional) — airing year, 1940–2100.format (optional) — one of TV, TV_SHORT, MOVIE, SPECIAL, OVA, ONA, MUSIC.genre (optional) — e.g. Fantasy.status (optional) — one of FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED, HIATUS.page (optional, default 1); per_page (optional, default 20, max 50).Response includes the echoed filters, total, has_next_page, and results[] (same shape as anime search).
| Field | Filled in, of 20 checked | Values in the sample |
|---|---|---|
| id | 20 | |
| id_mal | 20 | |
| type | 20 | ANIME in all 20 |
| title | 20 | |
| format | 20 | TV (18), MOVIE (2) |
| status | 20 | FINISHED (19), RELEASING (1) |
| description | 20 | median 514 characters |
| season | 20 | FALL (7), SPRING (6), SUMMER (5) and 1 more |
| season_year | 20 | 1,999 to 2,022, median 2,016 |
| start_date | 20 | |
| end_date | 19 | |
| episodes | 19 | 1 to 220, median 16 |
| duration | 20 | 23 to 130, median 24 |
| average_score | 20 | 70 to 90, median 84 |
| mean_score | 20 | 70 to 90, median 84 |
| popularity | 20 | 638,125 to 1,065,490, median 736,156 |
| favourites | 20 | 11,821 to 109,944, median 36,315 |
| trending | 20 | 6 to 219, median 18 |
| genres | 20 | median 4 entries |
| tags | 20 | median 28 entries |
| studios | 20 | median 6 entries |
| country_of_origin | 20 | JP in all 20 |
| cover_image | 20 | s4.anilist.co |
| banner_image | 20 | s4.anilist.co |
| site_url | 20 | anilist.co |
| next_airing_episode | 1 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| sort | string | No | Order: TRENDING_DESC, POPULARITY_DESC, SCORE_DESC, FAVOURITES_DESC, START_DATE_DESC, UPDATED_AT_DESC. Default TRENDING_DESC. Allowed values: TRENDING_DESC, POPULARITY_DESC, SCORE_DESC, FAVOURITES_DESC, START_DATE_DESC, UPDATED_AT_DESC. | ||
| season | string | No | Airing season filter: WINTER, SPRING, SUMMER, FALL. Allowed values: WINTER, SPRING, SUMMER, FALL. | ||
| season_year | integer | No | Airing year filter, 1940-2100. | ||
| format | string | No | Format filter: TV, TV_SHORT, MOVIE, SPECIAL, OVA, ONA, MUSIC. Allowed values: TV, TV_SHORT, MOVIE, SPECIAL, OVA, ONA, MUSIC. | ||
| genre | string | No | Genre filter, e.g. Fantasy. | ||
| status | string | No | Status filter: FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED, HIATUS. Allowed values: FINISHED, RELEASING, NOT_YET_RELEASED, CANCELLED, HIATUS. | ||
| page | integer | No | 1-based page number, default 1 | ||
| per_page | integer | No | Results per page, default 20, max 50 | ||
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/anime/rankings?sort=TRENDING_DESC&season=WINTER&format=TV&status=FINISHED&page=1" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"sort": "POPULARITY_DESC",
"genre": "Fantasy",
"format": "TV",
"status": "FINISHED",
"page": 1,
"per_page": 20,
"total": 5000,
"has_next_page": true,
"results": [
{
"id": 16498,
"title": {
"romaji": "Shingeki no Kyojin"
},
"format": "TV",
"average_score": 85,
"popularity": 900000
}
]
}
}Request schema
No body schema
Response schema
#/definitions/anime.rankingsResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | anime.RankingsResponse | No | ||||
| data.format | string | No | TV | |||
| data.genre | string | No | Fantasy | |||
| data.has_next_page | boolean | No | true | |||
| data.page | integer | No | 1 | |||
| data.per_page | integer | No | 20 | |||
| data.results | array | No | 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 Anime Detail API. | |||
| data.season | string | No | FALL | |||
| data.season_year | integer | No | 2023 | |||
| data.sort | string | No | TRENDING_DESC | |||
| data.status | string | No | FINISHED | |||
| data.total | integer | No | 5000 | |||
| 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/anime/rankings?sort=TRENDING_DESC&season=WINTER&format=TV&status=FINISHED&page=1" \
-H "x-api-key: $CRAWLORA_API_KEY"