唯一能写用户列表:以登录用户身份读写状态、评分、列表条目,这是 Jikan 永远做不到的
OAuth2 摩擦大:要注册应用、实现授权码流程、处理 redirect URI、存储和刷新 token——只展示公开数据时这全是白费功夫
在 https://myanimelist.net/apiconfig 注册一个应用,拿到 Client ID。读公开数据时带 HTTP 头 X-MAL-CLIENT-ID: YOUR_CLIENT_ID,例如 GET https://api.myanimelist.net/v2/anime?q=frieren&limit=5。要读写某个用户自己的列表,实现 OAuth2 授权码流程:用户登录授权后你拿到 access token,再带 Authorization: Bearer USER_ACCESS_TOKEN 调用 /users/@me/animelist 等端点。限流没有官方文档,保守按约 1 req/秒。如果你的功能只展示公开数据、不碰用户账号,考虑改用零认证的 Jikan 省掉整套 OAuth2。
可用率 · 30 天窗口
关于这个 API
MyAnimeList 官方 API v2 是 MyAnimeList 自家提供的接口,基址 https://api.myanimelist.net/v2。它和非官方的 Jikan 有两处关键不同。第一,即便读公开数据也要标明应用身份:你在 https://myanimelist.net/apiconfig 注册一个应用拿到 Client ID,并把它作为 X-MAL-CLIENT-ID 头发送;少了这个头,公开读取会以未授权错误失败。第二,任何涉及具体用户的操作——读他的列表(含私有条目)、更新追番状态(在看/看完/搁置/抛弃/想看)、设置或修改评分、增删列表条目——都需要完整的 OAuth2 授权码流程:用户登录并授权你的应用,你拿到一个绑定该用户的 access token。这条 OAuth2 路径正是官方 API 对大多数开发者存在的全部理由,也是它相对 Jikan 不可替代的地方:只有它能以用户身份认证并写入用户列表。代价是实打实的摩擦——从「发个 GET」变成注册应用、实现 OAuth2、处理 redirect URI、存储和刷新 token、管理每用户的 scope。如果你的功能根本不碰用户账号,这就是白费的工作。限流方面官方没有公布明确数字,社区共识是保守按约 1 req/秒以避免被限。现实中很多 MyAnimeList 集成两个 API 一起用:公开目录(搜索、详情、季度、排行)用零认证、覆盖面广的 Jikan,只在登录用户读写自己列表那一薄片上用官方 API 的 OAuth2——公开的大头享受 Jikan 的零摩擦,只为真正需要的小部分付 OAuth2 的代价。
你可以做什么
- 1追番应用的写入路径:让用户用 MyAnimeList 账号登录,读/写其追番状态、评分、增删列表条目——只有官方 API 能做
- 2账号同步与备份:通过 OAuth2 读取用户完整的动画/漫画列表(含私有条目)做导出或跨端同步
- 3需要实时准确的展示:直连官方拿最新公开数据,避免 Jikan 缓存延迟
优劣对比
优点
- 唯一能写用户列表:以登录用户身份读写状态、评分、列表条目,这是 Jikan 永远做不到的
- 数据实时:直连官方源,没有缓存延迟
- 官方且免费:MyAnimeList 自家维护,无付费档,稳定性有官方背书
注意事项
- OAuth2 摩擦大:要注册应用、实现授权码流程、处理 redirect URI、存储和刷新 token——只展示公开数据时这全是白费功夫
- 连公开读取也要 Client ID:少了 X-MAL-CLIENT-ID 头公开读取就以未授权失败,不像 Jikan 完全零认证
- 限流未公布:没有明确的速率文档,只能保守按约 1 req/秒来用
官方快速开始
在官方文档查看快速开始:myanimelist.net
快速开始
在 https://myanimelist.net/apiconfig 注册一个应用,拿到 Client ID。读公开数据时带 HTTP 头 X-MAL-CLIENT-ID: YOUR_CLIENT_ID,例如 GET https://api.myanimelist.net/v2/anime?q=frieren&limit=5。要读写某个用户自己的列表,实现 OAuth2 授权码流程:用户登录授权后你拿到 access token,再带 Authorization: Bearer USER_ACCESS_TOKEN 调用 /users/@me/animelist 等端点。限流没有官方文档,保守按约 1 req/秒。如果你的功能只展示公开数据、不碰用户账号,考虑改用零认证的 Jikan 省掉整套 OAuth2。
常见问题
官方 MyAnimeList API 和 Jikan 怎么选?+
看你的功能碰不碰某个具体用户的账号。只展示公开数据(搜索、详情、季度、排行)用零认证的 Jikan;要读写登录用户自己的列表、状态、评分,只能用官方 API v2 的 OAuth2。很多应用两个都用。
官方 MyAnimeList API 读公开数据也要认证吗?+
要。即便只读公开数据,也得在 https://myanimelist.net/apiconfig 注册应用拿 Client ID,并带 X-MAL-CLIENT-ID 头;少了它公开读取会失败。完整 OAuth2 只在涉及用户自己列表时才需要。
官方 MyAnimeList API 的限流是多少?+
官方没有公布明确速率上限。社区共识是保守按约 1 req/秒使用以避免被限流。
官方 MyAnimeList API 收费吗?+
免费。它没有付费档,真正的「成本」是 OAuth2 集成的工作量,而不是钱。
技术细节
- 认证方式
- oauth
- 计费
- free
- 速率限制
- Rate limits are not officially published. The community consensus is to stay at roughly 1 request/second to avoid throttling. Public reads require the X-MAL-CLIENT-ID header (your registered Client ID); user-scoped reads/writes require an OAuth2 access token.
- 免费额度
- Free to use. You must register an application at https://myanimelist.net/apiconfig to obtain a Client ID. No paid tiers; the cost is the OAuth2 integration work, not money.
- 协议
- REST
- SDK
- JavaScript, Python, Go