Bulk-rate your MyAnimeList backlog — fast. Connect your MAL account and MAL Rater shows every anime you've completed but never scored, one at a time, with its cover and synopsis. Press 1–10 and the rating saves straight to MyAnimeList and jumps to the next. Clear a backlog of hundreds in minutes.
Live: https://mal-rater.danmat.workers.dev
- ⌨️ Keyboard-first —
1–9to score,0for 10,Sto skip. Auto-advances. - 🔒 Official MAL OAuth — you log in on MyAnimeList; it never sees your password and writes only to your own list.
- 🖼️ Cover, English + original title, synopsis, genres — straight from the MAL API.
- 💾 Progress persists (and every rating is already saved to MAL).
- 🆓 Free, no tracking. Runs on a single Cloudflare Worker (+ KV for sessions).
A Cloudflare Worker serves the UI and handles MyAnimeList OAuth2 (PKCE). It reads your
completed-but-unrated list from the official MAL API, and PATCHes each score back. Card
art/synopsis come from the MAL API too (Jikan is a fallback). Session tokens live in KV.
pnpm install
npx wrangler kv namespace create TOKENS # put the id in wrangler.toml- Register a MAL API app at myanimelist.net/apiconfig
(App type web, Redirect URL
https://<your-worker>/oauth/callback). - Set the secrets:
npx wrangler secret put MAL_CLIENT_ID npx wrangler secret put MAL_CLIENT_SECRET
npx wrangler deploy
MAL Rater stores only an OAuth session token (in Cloudflare KV, keyed by a cookie) so it can save your ratings. It never sees your password and writes only to your own list.