MyAnimeList integration for swamp — anime metadata search and seasonal catalog lookup via the Jikan API
  • TypeScript 100%
Find a file
keeb 1032b9a6d1 Switch from the discontinued public Jikan API to Tenrai
api.jikan.moe was shut down on 2026-10-01 (jikan-rest #613) and now
times out. Tenrai (api.tenrai.org/v1) is a Jikan v4-compatible
replacement, so search and research only change base URL and error
text. Model 2026.10.23.2; the 2026.10.23.1 upgrade entry records a
short-lived myanimelist.net page fallback that was removed before
release. Manifest 2026.10.23.1.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-24 21:52:20 -07:00
extensions/models Switch from the discontinued public Jikan API to Tenrai 2026-10-24 21:52:20 -07:00
tests/property Add property-based schema tests (fast-check via @traversable/zod-test) 2026-07-18 09:19:17 -07:00
.gitignore Initial release: MyAnimeList integration 2026-05-06 15:47:14 -07:00
.swamp.yaml Initial release: MyAnimeList integration 2026-05-06 15:47:14 -07:00
CLAUDE.md Initial release: MyAnimeList integration 2026-05-06 15:47:14 -07:00
LICENSE.txt Initial release: MyAnimeList integration 2026-05-06 15:47:14 -07:00
manifest.yaml Switch from the discontinued public Jikan API to Tenrai 2026-10-24 21:52:20 -07:00
README.md Switch from the discontinued public Jikan API to Tenrai 2026-10-24 21:52:20 -07:00

@keeb/mal

MyAnimeList integration for swamp. Wraps Tenrai, a Jikan v4-compatible API (the public Jikan API was discontinued on 2026-10-01), behind structured swamp methods for anime metadata search and seasonal catalog research. One resource per show.

Installation

swamp extension install @keeb/mal

Models

@keeb/mal/lookup

Search MAL and pull seasonal catalogs. No credentials required — Tenrai is a public MAL proxy; the model paces requests at ~1 req/s.

models:
  - name: mal
    type: "@keeb/mal/lookup"

Methods

Method Args Description
search query, limit? (default 5) Search MAL by title, write top N results as anime resources
research year, season (winter/spring/summer/fall) Pull every show for a given season, one anime resource per unique show
swamp model method run mal search --query "frieren"
swamp model method run mal research --year 2026 --season spring

Resource: anime

Identity: slugified title. Attributes include malId, title, titleEnglish, titleJapanese, type, episodes, status, score, scoredBy, rank, synopsis, genres, themes, demographics, season, year, studios, and url.

Resources have infinite lifetime with a garbage-collection retention of 50 versions per identity.

Rate limits

Requests are paced at roughly one per second (Jikan's old limit). The research method paginates through full seasonal catalogs and sleeps 1s between pages to stay under the limit. Expect a few seconds of runtime for a typical season fetch.