# MyAnimeList API

> MyAnimeList returns anime and manga details, seasonal anime, and rankings as a workflow and API.

MyAnimeList (MAL) looks up anime by English or Japanese name or MyAnimeList link, returning titles, scores, genres, schedules, and streaming listings. Get manga finds manga, manhwa, or light novels by title or MyAnimeList link, with details such as authors, scores, chapters, and publication dates. List seasonal anime and List top anime return ranked or seasonal titles; choose a season or ranking and optionally set the result count.

- Page: https://fous.com/workflows/myanimelist
- Handle: `@myanimelist`
- Category: [Entertainment](https://fous.com/workflows/category/entertainment)
- Source website: https://myanimelist.net
- Last verified: Sep 29, 2026
- Fous is not affiliated with MyAnimeList.

## Methods

### Get anime

Operation `get_anime`, version 1. 1 credit per call.

Look up an anime by its English or Japanese name or MyAnimeList link. For ambiguous names, returns the most popular matching title; streaming availability reflects MyAnimeList listings.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `anime` | string | yes | `"https://myanimelist.net/anime/52991/Sousou_no_Frieren"` | Anime name in English or Japanese, or a MyAnimeList anime link, for example Frieren or https://myanimelist.net/anime/52991/Sousou_no_Frieren. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "anime"
  ],
  "properties": {
    "anime": {
      "type": "string",
      "description": "Anime name in English or Japanese, or a MyAnimeList anime link, for example Frieren or https://myanimelist.net/anime/52991/Sousou_no_Frieren.",
      "examples": [
        "https://myanimelist.net/anime/52991/Sousou_no_Frieren",
        "Frieren",
        "Cowboy Bebop"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "anime": "https://myanimelist.net/anime/52991/Sousou_no_Frieren"
    },
    {
      "anime": "Frieren"
    },
    {
      "anime": "Cowboy Bebop"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `rank` | integer or null | `1` |  |
| `type` | string or null | `"TV"` |  |
| `score` | number or null | `9.25` | Weighted anime score out of 10. |
| `title` | string or null | `"Sousou no Frieren"` |  |
| `genres` | array |  |  |
| `season` | string or null | `"Fall 2023"` |  |
| `status` | string or null | `"Finished Airing"` |  |
| `themes` | array |  |  |
| `members` | integer or null | `1521371` |  |
| `studios` | array |  |  |
| `aired_to` | string or null | `"2024-03-22"` | Date in YYYY-MM-DD format, when known. |
| `episodes` | integer or null | `28` |  |
| `synopsis` | string or null |  |  |
| `age_rating` | string or null | `"PG-13 - Teens 13 or older"` |  |
| `aired_from` | string or null | `"2023-09-29"` | Date in YYYY-MM-DD format, when known. |
| `english_title` | string or null | `"Frieren: Beyond Journey's End"` |  |
| `episode_length` | string or null | `"24 min. per ep."` |  |
| `japanese_title` | string or null | `"葬送のフリーレン"` |  |
| `myanimelist_id` | integer or null | `52991` |  |
| `popularity_rank` | integer or null | `97` |  |
| `source_material` | string or null | `"Manga"` |  |
| `cover_image_link` | string or null | `"https://cdn.myanimelist.net/images/anime/1015/138006.jpg"` |  |
| `myanimelist_link` | string or null | `"https://myanimelist.net/anime/52991/Sousou_no_Frieren"` |  |
| `number_of_scorers` | integer or null | `939074` |  |
| `streaming_platforms` | array |  |  |
| `broadcast_day_and_time` | string or null | `"Fridays at 23:00 (JST)"` | Broadcast day and time in Japan time (JST), when available. |

**Example input**

```json
{
  "anime": "https://myanimelist.net/anime/52991/Sousou_no_Frieren"
}
```

**Example output**

```json
{
  "rank": 1,
  "type": "TV",
  "score": 9.25,
  "title": "Sousou no Frieren",
  "genres": [
    "Adventure",
    "Award Winning",
    "Drama"
  ],
  "season": "Fall 2023",
  "status": "Finished Airing",
  "themes": [],
  "members": 1521371,
  "studios": [
    "Madhouse"
  ],
  "aired_to": "2024-03-22",
  "episodes": 28,
  "synopsis": "During their decade-long quest to defeat the Demon King, the members of the hero's party—Himmel himself, the priest Heiter, the dwarf warrior Eisen, and the elven mage Frieren—forge bonds through adve…",
  "age_rating": "PG-13 - Teens 13 or older",
  "aired_from": "2023-09-29",
  "english_title": "Frieren: Beyond Journey's End",
  "episode_length": "24 min. per ep.",
  "japanese_title": "葬送のフリーレン",
  "myanimelist_id": 52991,
  "popularity_rank": 97,
  "source_material": "Manga",
  "cover_image_link": "https://cdn.myanimelist.net/images/anime/1015/138006.jpg",
  "myanimelist_link": "https://myanimelist.net/anime/52991/Sousou_no_Frieren",
  "number_of_scorers": 939074,
  "streaming_platforms": [
    "Crunchyroll"
  ],
  "broadcast_day_and_time": "Fridays at 23:00 (JST)"
}
```

### Get manga

Operation `get_manga`, version 1. 1 credit per call.

Get a manga, manhwa, or light novel by title or MyAnimeList link. When titles match, returns the most popular; unavailable details are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `manga` | string | yes | `"https://myanimelist.net/manga/13/One_Piece"` | Manga title in English or Japanese, or a MyAnimeList manga link, for example Solo Leveling or https://myanimelist.net/manga/13/One_Piece. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "manga"
  ],
  "properties": {
    "manga": {
      "type": "string",
      "description": "Manga title in English or Japanese, or a MyAnimeList manga link, for example Solo Leveling or https://myanimelist.net/manga/13/One_Piece.",
      "examples": [
        "https://myanimelist.net/manga/13/One_Piece",
        "Solo Leveling",
        "進撃の巨人"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "manga": "https://myanimelist.net/manga/13/One_Piece"
    },
    {
      "manga": "Solo Leveling"
    },
    {
      "manga": "進撃の巨人"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `rank` | integer or null | `4` | Rank. |
| `type` | string or null | `"Manga"` | Type. |
| `score` | number or null | `9.21` | Weighted score out of 10. |
| `title` | string or null | `"One Piece"` | Title. |
| `genres` | array |  | Genres. |
| `status` | string or null | `"Publishing"` | Status. |
| `themes` | array |  | Themes. |
| `authors` | array |  | Authors. |
| `members` | integer or null | `708112` | Members. |
| `volumes` | integer or null | `15` | Volumes. |
| `chapters` | integer or null | `201` | Chapters. |
| `synopsis` | string or null |  | Synopsis. |
| `published_to` | string or null | `"2023-05-31"` | Published to. |
| `english_title` | string or null | `"One Piece"` | English title. |
| `serialization` | array |  | Serialization. |
| `japanese_title` | string or null | `"ONE PIECE"` | Japanese title. |
| `myanimelist_id` | integer or null | `13` | Myanimelist id. |
| `published_from` | string or null | `"1997-07-22"` | Published from. |
| `popularity_rank` | integer or null | `3` | Popularity rank. |
| `cover_image_link` | string or null | `"https://cdn.myanimelist.net/images/manga/2/253146.jpg"` | Cover image link. |
| `myanimelist_link` | string or null | `"https://myanimelist.net/manga/13/One_Piece"` | Myanimelist link. |
| `number_of_scorers` | integer or null | `426482` | Number of scorers. |

**Example input**

```json
{
  "manga": "https://myanimelist.net/manga/13/One_Piece"
}
```

**Example output**

```json
{
  "rank": 4,
  "type": "Manga",
  "score": 9.21,
  "title": "One Piece",
  "genres": [
    "Action",
    "Adventure",
    "Fantasy"
  ],
  "status": "Publishing",
  "themes": [],
  "authors": [
    "Oda, Eiichiro"
  ],
  "members": 708112,
  "volumes": null,
  "chapters": null,
  "synopsis": "Gol D. Roger, a man referred to as the King of the Pirates, is set to be executed by the World Government. But just before his demise, he confirms the existence of a great treasure, One Piece, located…",
  "published_to": null,
  "english_title": "One Piece",
  "serialization": [
    "Shounen Jump (Weekly)"
  ],
  "japanese_title": "ONE PIECE",
  "myanimelist_id": 13,
  "published_from": "1997-07-22",
  "popularity_rank": 3,
  "cover_image_link": "https://cdn.myanimelist.net/images/manga/2/253146.jpg",
  "myanimelist_link": "https://myanimelist.net/manga/13/One_Piece",
  "number_of_scorers": 426482
}
```

### List seasonal anime

Operation `list_seasonal_anime`, version 1. 1 credit per call.

List anime in a MyAnimeList season, sorted by members. Includes TV, movies, ONA, OVA and specials; continuing TV series are optional. Unannounced dates, scores and episode counts may be missing.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `year` | integer | no | `2026` | Season year, such as 2026. Defaults to the year featured on MyAnimeList. |
| `season` | string | no | `"fall"` | Season to list, such as summer. Defaults to the season featured on MyAnimeList. |
| `max_results` | integer | no | `5` | Maximum titles to return, such as 50; at most 200. |
| `include_continuing` | boolean | no | `true` | Also include TV shows carried over from earlier seasons, such as One Piece; defaults to false. |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "year": {
      "type": "integer",
      "maximum": 2100,
      "minimum": 1900,
      "description": "Season year, such as 2026. Defaults to the year featured on MyAnimeList.",
      "examples": [
        2026
      ]
    },
    "season": {
      "enum": [
        "winter",
        "spring",
        "summer",
        "fall"
      ],
      "type": "string",
      "description": "Season to list, such as summer. Defaults to the season featured on MyAnimeList.",
      "examples": [
        "fall",
        "summer"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "Maximum titles to return, such as 50; at most 200.",
      "x-fous-developer": true,
      "examples": [
        5,
        10
      ]
    },
    "include_continuing": {
      "type": "boolean",
      "default": false,
      "description": "Also include TV shows carried over from earlier seasons, such as One Piece; defaults to false.",
      "examples": [
        true
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "year": 2026,
      "season": "fall",
      "max_results": 5
    },
    {
      "year": 2026,
      "season": "summer",
      "max_results": 10,
      "include_continuing": true
    },
    {}
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `anime` | array |  |  |
| `anime[].score` | number or null | `8.72` | Community score out of 10, if available. |
| `anime[].title` | string | `"Kusuriya no Hitorigoto 3rd Season"` |  |
| `anime[].genres` | array |  |  |
| `anime[].studio` | string or null | `"OLM"` |  |
| `anime[].members` | integer | `157779` |  |
| `anime[].episodes` | integer or null | `10` |  |
| `anime[].start_date` | string or null | `"2026-10-02"` |  |
| `anime[].english_title` | string or null | `"The Apothecary Diaries Season 3"` |  |
| `anime[].source_material` | string or null | `"Light novel"` |  |
| `anime[].cover_image_link` | string or null | `"https://cdn.myanimelist.net/images/anime/1028/160277.webp"` |  |
| `anime[].myanimelist_link` | string | `"https://myanimelist.net/anime/61987/Kusuriya_no_Hitorigoto_3rd_Season"` |  |

**Example input**

```json
{
  "year": 2026,
  "season": "fall",
  "max_results": 5
}
```

**Example output**

```json
{
  "anime": [
    {
      "score": null,
      "title": "Kusuriya no Hitorigoto 3rd Season",
      "genres": [
        "Drama",
        "Mystery"
      ],
      "studio": "OLM",
      "members": 157779,
      "episodes": null,
      "start_date": "2026-10-02",
      "english_title": "The Apothecary Diaries Season 3",
      "source_material": "Light novel",
      "cover_image_link": "https://cdn.myanimelist.net/images/anime/1028/160277.webp",
      "myanimelist_link": "https://myanimelist.net/anime/61987/Kusuriya_no_Hitorigoto_3rd_Season"
    },
    {
      "score": null,
      "title": "Cyberpunk: Edgerunners 2",
      "genres": [
        "Action",
        "Sci-Fi"
      ],
      "studio": "Trigger",
      "members": 123380,
      "episodes": 10,
      "start_date": "2026-10-20",
      "english_title": null,
      "source_material": "Game",
      "cover_image_link": "https://cdn.myanimelist.net/images/anime/1880/158764.webp",
      "myanimelist_link": "https://myanimelist.net/anime/61990/Cyberpunk__Edgerunners_2"
    },
    {
      "score": null,
      "title": "Black Clover 2nd Season",
      "genres": [
        "Action",
        "Fantasy"
      ],
      "studio": "Studio Pierrot",
      "members": 116657,
      "episodes": null,
      "start_date": "2026-10-03",
      "english_title": "Black Clover Season 2",
      "source_material": "Manga",
      "cover_image_link": "https://cdn.myanimelist.net/images/anime/1857/160133.webp",
      "myanimelist_link": "https://myanimelist.net/anime/61967/Black_Clover_2nd_Season"
    }
  ]
}
```

### List top anime

Operation `list_top_anime`, version 1. 1 credit per call.

List MyAnimeList’s top anime in rank order for a selected ranking. English titles and other unavailable details are null.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `list` | string | no | `"upcoming"` | Ranking to list, for example movies. |
| `max_results` | integer | no | `55` | Number of anime to return, for example 50 (up to 200). |

**Input schema**

```json
{
  "type": "object",
  "properties": {
    "list": {
      "enum": [
        "all",
        "airing",
        "upcoming",
        "tv",
        "movies",
        "most_popular"
      ],
      "type": "string",
      "default": "all",
      "description": "Ranking to list, for example movies.",
      "examples": [
        "upcoming",
        "most_popular",
        "tv"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 50,
      "maximum": 200,
      "minimum": 1,
      "description": "Number of anime to return, for example 50 (up to 200).",
      "x-fous-developer": true,
      "examples": [
        55,
        5
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "list": "upcoming",
      "max_results": 55
    },
    {
      "list": "most_popular",
      "max_results": 5
    },
    {
      "list": "tv",
      "max_results": 5
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `anime` | array |  | Anime in ranking order. |
| `anime[].link` | string | `"https://myanimelist.net/anime/16498/Shingeki_no_Kyojin"` |  |
| `anime[].rank` | integer | `1` |  |
| `anime[].type` | string or null | `"TV"` |  |
| `anime[].score` | number or null | `8.58` | Score out of 10. |
| `anime[].title` | string | `"Shingeki no Kyojin"` |  |
| `anime[].members` | integer or null | `4432277` |  |
| `anime[].episodes` | integer or null | `25` |  |
| `anime[].aired_dates` | string or null | `"Apr 2013 - Sep 2013"` | Airing dates as displayed by MyAnimeList. |
| `anime[].english_title` | string or null | `"Attack on Titan"` |  |

**Example input**

```json
{
  "list": "most_popular",
  "max_results": 5
}
```

**Example output**

```json
{
  "anime": [
    {
      "link": "https://myanimelist.net/anime/16498/Shingeki_no_Kyojin",
      "rank": 1,
      "type": "TV",
      "score": 8.58,
      "title": "Shingeki no Kyojin",
      "members": 4432277,
      "episodes": 25,
      "aired_dates": "Apr 2013 - Sep 2013",
      "english_title": "Attack on Titan"
    },
    {
      "link": "https://myanimelist.net/anime/1535/Death_Note",
      "rank": 2,
      "type": "TV",
      "score": 8.62,
      "title": "Death Note",
      "members": 4370302,
      "episodes": 37,
      "aired_dates": "Oct 2006 - Jun 2007",
      "english_title": null
    },
    {
      "link": "https://myanimelist.net/anime/5114/Fullmetal_Alchemist__Brotherhood",
      "rank": 3,
      "type": "TV",
      "score": 9.11,
      "title": "Fullmetal Alchemist: Brotherhood",
      "members": 3740170,
      "episodes": 64,
      "aired_dates": "Apr 2009 - Jul 2010",
      "english_title": null
    }
  ]
}
```

## Quick start

Call the API with a Fous API key (`FOUS_API_KEY`). To create one, turn on Developer mode in Fous Studio, then open Keys & connections → API keys (https://app.fous.com/keys).

```bash
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
: "${FOUS_API_KEY:?Set FOUS_API_KEY before running this example}"

curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 120 \
  -H "Authorization: Bearer $FOUS_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@myanimelist",
  "visibility": "public",
  "operation": "get_anime",
  "version": 1,
  "input": {
    "anime": "https://myanimelist.net/anime/52991/Sousou_no_Frieren"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
# First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
import json
import os
import urllib.error
import urllib.request

api_key = os.environ.get("FOUS_API_KEY")
if not api_key:
    raise RuntimeError("Set FOUS_API_KEY before running this example")

body = json.loads("{\n  \"api\": \"@myanimelist\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_anime\",\n  \"version\": 1,\n  \"input\": {\n    \"anime\": \"https://myanimelist.net/anime/52991/Sousou_no_Frieren\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=120) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
// First set your key: export FOUS_API_KEY='YOUR_FOUS_API_KEY'
const apiKey = process.env.FOUS_API_KEY;
if (!apiKey) throw new Error("Set FOUS_API_KEY before running this example");

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(120_000),
  body: JSON.stringify({
  "api": "@myanimelist",
  "visibility": "public",
  "operation": "get_anime",
  "version": 1,
  "input": {
    "anime": "https://myanimelist.net/anime/52991/Sousou_no_Frieren"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

Or describe the data in plain language: send `{"api":"@myanimelist","prompt":"Describe the data you need, with every detail"}` to the same URL. Fous fills in the input, runs the method that fits and returns only the fields you asked for; `data.route.calls[].request` is the exact call it made. Routing is free; the run costs the same.

## Use cases

- Compare anime scores, genres, and studios
- Check listed streaming platforms for an anime
- Track manga authors, chapters, and publication dates
- Review anime planned for a season
- Compare titles across anime rankings

## FAQ

### Is Fous affiliated with MyAnimeList?

No. Fous is not affiliated with MyAnimeList. This workflow reads the public myanimelist.net website and returns its data.

### How much does it cost?

Each run costs 1 credit. With pay-as-you-go, a credit costs 1¢; monthly plans cost less per credit.

### Do I need a MyAnimeList account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from myanimelist.net when you run it; repeating the same request within a day may return the saved result. Fous checks this workflow automatically; it last passed a check on Sep 29, 2026.

### What is an anime's score and rank?

Get anime returns an anime's weighted score out of 10 and its rank.

### Which anime are listed for a season?

List seasonal anime returns titles for a selected season and year, sorted by members.

### Who wrote a manga, and how many chapters does it have?

Get manga returns authors and chapter counts for a manga, manhwa, or light novel.

## Related

- [AniList API](https://fous.com/workflows/anilist.md): AniList helps users discover anime and track upcoming episodes, with local air times and streaming links when available; episode counts and schedules may be unavailable.
- [Crunchyroll API](https://fous.com/workflows/crunchyroll.md): Crunchyroll provides anime streaming and release schedules, showing scheduled episodes for a selected week when available, plus public series details by name or link.
- [WEBTOON API](https://fous.com/workflows/webtoon.md): WEBTOON helps readers find comics and discover popular or trending series, with public series details and newest publicly listed episodes; app-only episodes and numeric series ratings aren’t shown.
- [Bilibili API](https://fous.com/workflows/bilibili.md): Bilibili provides public video details and statistics, plus current overall or category rankings; movie rankings omit some video details.
- [TVmaze API](https://fous.com/workflows/tvmaze.md): TVmaze provides TV schedules, broadcast and streaming releases, and show status, ratings, and episode details; streaming times may be unavailable or shown in UTC.
- [Netflix API](https://fous.com/workflows/netflix.md): Netflix offers weekly global and country Top 10 rankings, all-time popularity rankings based on titles’ first 91 days, and title details with country availability that may lag.
- [IMDb API](https://fous.com/workflows/imdb.md): IMDb returns movie, TV, person, episode, chart and Parents Guide details, including available weekly rank changes; missing details are null, and unaired or unrated episodes lack ratings.
- [TMDB API](https://fous.com/workflows/tmdb.md): TMDB returns movie and TV details, cast, trailers, releases, viewing services, scheduled upcoming movies, and up to 20 homepage trending titles; future episode details depend on published schedules.
- [All Entertainment workflows](https://fous.com/workflows/category/entertainment)
