jikan-me / jikan
Jikan is an unofficial MyAnimeList API
Fund package maintenance!
Requires
- php: ^8.4.4
- ext-json: *
- symfony/browser-kit: ^8.0
- symfony/clock: ^7.4 || ^8.0
- symfony/css-selector: ^8.0
- symfony/dom-crawler: ^7.4 || ^8.0
- symfony/http-client: ^8.0
Requires (Dev)
- brianium/paratest: ^7.3
- friendsofphp/php-cs-fixer: ^3.8
- infection/infection: ^0.35.7
- jikan-me/jikan-fixtures: dev-master
- php-parallel-lint/php-parallel-lint: ^1.4
- phpro/grumphp: ^2
- phpstan/phpstan: ^2.3
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-master
- v5.0.0-rc.2
- v5.0.0-rc.1
- v5.0.0-beta.3
- v5.0.0-beta.2
- v5.0.0-beta
- v5.0.0-alpha.3
- v5.0.0-alpha.2
- v5.0.0-alpha.1
- v5.0.0-alpha
- v4.0.13
- v4.0.12
- v4.0.11
- v4.0.10
- v4.0.9
- 4.0.8.x-dev
- v4.0.8
- v4.0.7
- v4.0.6
- v4.0.5
- v4.0.4
- v4.0.3
- v4.0.2
- v4.0.1
- v4.0.0
- v3.3.2
- v3.3.1
- v3.3.0
- v3.2.0
- v3.1.0
- v3.0.3
- v3.0.2
- v3.0.1
- 3.0.0.x-dev
- v3.0.0
- v3.0.0-rc.6
- v3.0.0-rc.5
- v3.0.0-rc.4
- v3.0.0-rc.3
- v3.0.0-rc.2
- v3.0.0-rc.1
- v3.0.0-beta.11
- v3.0.0-beta.10
- v3.0.0-beta.9
- v3.0.0-beta.8
- v3.0.0-beta.7
- v3.0.0-beta.6
- v3.0.0-beta.5
- v3.0.0-beta.4
- v3.0.0-beta.3
- v3.0.0-beta.2
- v3.0.0-beta.1
- v3.0.0-beta
- v3.0.0-alpha.28
- v3.0.0-alpha.27
- v3.0.0-alpha.26
- v3.0.0-alpha.25
- v3.0.0-alpha.24
- v3.0.0-alpha.23
- v3.0.0-alpha.22
- v3.0.0-alpha.21
- v3.0.0-alpha.20
- v3.0.0-alpha.19
- v3.0.0-alpha.18
- v3.0.0-alpha.17
- v3.0.0-alpha.16
- v3.0.0-alpha.15
- v3.0.0-alpha.14
- v3.0.0-alpha.13
- v3.0.0-alpha.12
- v3.0.0-alpha.11
- v3.0.0-alpha.10
- v3.0.0-alpha.9
- v3.0.0-alpha.8
- v3.0.0-alpha.7
- v3.0.0-alpha.6
- v3.0.0-alpha.5
- v3.0.0-alpha.4
- v3.0.0-alpha.3
- v3.0.0-alpha.2
- v3.0.0-alpha.1
- v3.0.0-alpha
- 2.19.4.x-dev
- v2.19.4
- v2.19.3
- v2.19.2
- v2.19.1
- v2.19.0
- v2.18.14
- v2.18.13
- v2.18.12
- v2.18.11
- v2.18.10
- v2.18.9
- v2.18.8
- v2.18.7
- v2.18.6
- v2.18.5
- v2.18.4
- v2.18.3
- v2.18.2
- v2.18.1
- v2.18.0
- v2.17.0
- v2.16.28
- v2.16.27
- v2.16.26
- v2.16.25
- v2.16.24
- v2.16.23
- v2.16.22
- v2.16.21
- v2.16.20
- v2.16.19
- v2.16.18
- v2.16.17
- v2.16.16
- v2.16.15
- v2.16.14
- v2.16.13
- v2.16.12
- v2.16.11
- v2.16.10
- v2.16.9
- v2.16.8
- v2.16.7
- v2.16.6
- v2.16.5
- v2.16.4
- v2.16.3
- v2.16.2
- v2.16.1
- v2.16.0
- v2.15.0
- v2.9.0
- v2.8.6
- v2.8.2
- v2.8.1
- v2.8.0
- v2.7.0
- v2.6.2
- v2.6.1
- v2.6.0
- v2.3.0
- v2.1.2
- v2.1.1
- v2.1.0
- v2.0.0
- v2.0.0-rc.2
- v2.0.0-rc.1
- v1.16.4
- 1.16.3.x-dev
- v1.16.3
- v1.16.2
- v1.16.0
- v1.15.9
- v1.15.5
- v1.15.0
- v1.7.1
- v1.5.5
- v1.2.0
- 1.0.0
- dev-release/v5.0.0-rc.2
- dev-v5/recently-updated-dash-progress
- dev-release/v5.0.0-rc.1
- dev-v5/episode-aired-utc
- dev-docs/upgrading-v4-to-v5
- dev-v5/card-dates-utc
- dev-v5/helpful-count-reactions
- dev-release/v5.0.0-beta.3
- dev-v5/rc-sweep
- dev-v5/rc-blockers
- dev-release/v5.0.0-beta.2
- dev-v5/anime-card-hidden-fields
- dev-ci/remove-comment-run
- dev-ci/drift-action-versions
- dev-v5/search-type-constants
- dev-v5/followups
- dev-v5/mutation-threshold
- dev-v5/test-suite-phase-3
- dev-v5/test-suite-phase-2
- dev-v5/hardening-and-performance
- dev-docs/review-quality-in-readme
- dev-chore/declare-tools-dir
- dev-docs/na-series-note
- dev-ci/quality-gate
- dev-fix/malid-type-consistency
- dev-chore/toolchain-gate-endpoints
- dev-perf/ci-lint-speed
- dev-feat/composer-quality-dx
- dev-feat/generate-docs-pipeline
- dev-ci/fixtures-hermetic-link
- dev-feat/news-article-realignment-629
- dev-feat/parser-coverage-final-batch4
- dev-fix/image-placeholder-kaomoji
- dev-feat/parser-coverage-search-user-488
- dev-docs/master-line-readme
- dev-feat/parser-coverage-genre-watch-488
- dev-chore/beta-prep
- dev-fix/endpoints-check-commit-stamp
- dev-feat/parser-coverage-top-search-488
- dev-fix/date-precision
- dev-feat/endpoint-manifest
- dev-feat/llm-friendly-agents
- dev-fix/placeholder-images
- dev-docs/doc-review-fixes
- dev-fix/episode-title-nbsp
- dev-fix/theme-empties
- dev-fix/theme-songs-empty-node-guard
- dev-fix/manga-status-nullable
- dev-docs/review-fixes
- dev-docs/remaining-context-stubs
- dev-docs/changelog-contributing
- dev-feat/display-sentinel-constants
- dev-feat/backend-suite-context-docs
- dev-feat/backend-suite-hardening
- dev-chore/backend-suite-onboarding
- dev-chore/grumphp-blacklist-and-standard-signoff
- dev-feature/featured-articles
- dev-workflows/tests-resolve-set-output-deprecation
- dev-feature/industry-news
- dev-bugfix/manga-titles-synonym-duplication
- dev-enhancement/jikanrequest-supports-cookies
- dev-revert-426-feature/alternative-titles
- dev-update-readme-1
- dev-editorconfig1
- dev-timeprovider
This package is auto-updated.
Last update: 2026-10-15 19:53:10 UTC
README
Jikan - Unofficial MyAnimeList.net PHP API
Jikan is a PHP API for MyAnimeList.net. It scrapes the website to satisfy the need for API functionality that MyAnimeList.net lacks.
The raison d'être of Jikan is to assist developers easily get the data they need for their apps and projects without having to depend on the lackluster official API, unstable APIs, or sidetracking their projects to develop parsers.
The word Jikan literally translates to Time in Japanese (時間). And that's what this API saves you of. ;)
Notice: Jikan does not support authenticated requests. You can not update your lists.
Status: active development is on master — the v5 line, currently 5.0.0-rc.2. The v4 line
is end of life and no longer supported. Jikan is a PHP library, not a hosted service; a
self-hosted REST API exists as a separate project.
Getting Started
| Version | Support | PHP | Lumen/Laravel |
|---|---|---|---|
^5 (master · 5.0.0-rc.2) |
🚧 Release candidate · API frozen, bug fixes only | ^11,^12 |
|
^4 |
❌ End of life — no longer supported | ^9,^10 |
|
^3 |
❌ No longer maintained or supported | ^8, ^9 |
|
^2 |
❌ No longer maintained or supported | ^6 |
|
~1 |
❌ No longer maintained or supported | 5.5.* |
composer require jikan-me/jikan "^5.0@RC"- Coming from v4? Read the upgrade guide.
- Read the Repository docs below — this repo holds the canonical documentation.
Repository docs
- Contributing — the endpoint spine, hermetic-fixture workflow, pre-commit gates
- Changelog — what changed per version, written for consumers
- Upgrading from v4 — what to change in your code, checked against a side-by-side run of both versions
- Decision log — why things are the way they are
- Deprecations — the running deprecation ledger
- API standard — conventions every public entry point must follow
Usage
use Jikan\MyAnimeList\MalClient; use Jikan\Request\Anime\AnimeRequest; use Jikan\Request\Search\AnimeSearchRequest; $client = new MalClient(); // or new MalClient(HttpClientInterface $http) to inject the client $anime = $client->getAnime(new AnimeRequest(1)); // Cowboy Bebop $results = $client->getAnimeSearch(new AnimeSearchRequest())->getResults();
Every public endpoint is one MalClient method taking one Jikan\Request\* value object; the
method list, the class-per-endpoint surface, and the conventions each must follow are documented in
readme (conceptually), API-STANDARD.md (requirements) and CONTRIBUTING.md §3 (how to add one).
The full machine-readable catalog lives in llm.txt (and .backend-suite/endpoints.json) — derived,
regenerated with composer endpoints:write. On every change that touches the surface, run
composer endpoints:write and composer endpoints:check.
REST API (self-hosted)
The library powers a separate, self-hostable REST API project: jikan-me/jikan-rest.
No hosted/public instance of the REST API is provided.
Wrappers
| Language | Wrappers |
|---|---|
| JavaScript | JikanJS by Zuritor |
| Java | Jikan4java by Doomsdayrs reactive-jikan by Sandro Marques Jaikan by ShindouMihou |
| Python | JikanPy by Abhinav Kasamsetty |
| Deno | Jikan.js by RPDJF |
| Node.js | jikan-node by xy137 jikan-nodejs by ribeirogab |
| TypeScript | jikants by Julien Broyard jikan-client by Javier Blanco |
| PHP | jikan-php by Jan Vernieuwe |
| .NET | Jikan.net by Ervie |
| Go | jikan-go by Daren Liang jikan2go by nokusukun |
| Ruby | Jikan.rb by Zerocchi |
| Dart | jikan-dart by Rafal Wachol |
| Kotlin | JikanKt by Ganedra Afrasya |
Running Tests
composer quality # everything at once: php-cs-fixer dry-run + endpoint-manifest check + tests composer test # PHPUnit via paratest — hermetic against recorded fixtures
Quality gates run automatically on every commit (grumphp: php-cs-fixer, php-parallel-lint,
git blacklist, paratest; plus the backend-suite error_handling/test_network_coupling
audits). The same composer quality gate is enforced in CI. Full workflow:
CONTRIBUTING.md.
Backers
A huge thank you to all our Patrons! 🙏 This project wouldn't be running without your support.
If you'd like to support the project, you can become a Patron!
Sugoi (すごい) Patrons
Patrons
- Aaron Treinish
- Abdelhafid Achtaou
- Aika Fujiwara
- Bobby Williams
- Cesar Irad Mendoza
- CrafterSama
- Fro116
- Jason Weatherly
- Jesse
- Kundan Chintamaneni
- Kururin
- Purplepinapples
- Ryo Ando
- Sakamotodesu
- TeraNovaLP
Development
![]() |
Jikan's development is powered by JetBrain's Open Source License |
A shoutout to their amazing products and for supporting Jikan since early versions!
DISCLAIMER
- Jikan is not affiliated with MyAnimeList.net
- You are responsible for the usage of this API. Please be respectful towards MyAnimeList's Terms Of Service
