Documenation

Last updated: June 26th, 2017

REST

The REST requests are GET based and you can process them without any authentication. It's simple and direct.

Rate Limiting

To maintain bandwidth, there's a rate-limiting of 2,000 requests per IP per day. Be sure to cache your data!

Documentation Is WIP

The documentation is still in works!

Base URL: http://jikan.me/api/

Base URL (SSL): https://jikan.me/api/

Usage

Anime

Anime information can be fetched through the following request

GET

GET anime/{id}

Parameters
Name Type Description
ID integer The Anime ID on MyAnimeList
Response

Example: GET anime/1


{  
   "link-canonical":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop",
   "synopsis":"In the year 2071, humanity has colonized several of the planets and moons of the solar system leaving the now uninhabitable surface of planet Earth behind. The Inter Solar System Police attempts to keep peace in the galaxy, aided in part by outlaw bounty hunters, referred to as "Cowboys." The ragtag team aboard the spaceship Bebop are two such individuals. Mellow and carefree Spike Spiegel is balanced by his boisterous, pragmatic partner Jet Black as the pair makes a living chasing bounties and collecting rewards. Thrown off course by the addition of new members that they meet in their travels\u2014Ein, a genetically engineered, highly intelligent Welsh Corgi; femme fatale Faye Valentine, an enigmatic trickster with memory loss; and the strange computer whiz kid Edward Wong\u2014the crew embarks on thrilling adventures that unravel each member's dark and mysterious past little by little. Well-balanced with high density action and light-hearted comedy, Cowboy Bebop is a space Western classic and an homage to the smooth and improvised music it is named after. [Written by MAL Rewrite]",
   "title":"Cowboy Bebop",
   "image":"https:\/\/myanimelist.cdn-dena.com\/images\/anime\/4\/19644.jpg",
   "title-english":"Cowboy Bebop",
   "japanese":"\u30ab\u30a6\u30dc\u30fc\u30a4\u30d3\u30d0\u30c3\u30d7",
   "type":"TV",
   "episodes":26,
   "status":"Finished Airing",
   "aired":"Apr 3, 1998 to Apr 24, 1999",
   "premiered":"Spring 1998",
   "broadcast":"Saturdays at 01:00 (JST)",
   "producer":[  
      "23\/Bandai_Visual",
      "Bandai Visual"
   ],
   "licensor":[  
      [  
         "102\/FUNimation_Entertainment",
         "FUNimation Entertainment"
      ],
      [  
         "233\/Bandai_Entertainment",
         "Bandai Entertainment"
      ]
   ],
   "studio":[  
      "14\/Sunrise",
      "Sunrise"
   ],
   "source":"Original",
   "genre":[  
      [  
         "1\/Action",
         "Action"
      ],
      [  
         "2\/Adventure",
         "Adventure"
      ],
      [  
         "4\/Comedy",
         "Comedy"
      ],
      [  
         "8\/Drama",
         "Drama"
      ],
      [  
         "24\/Sci-Fi",
         "Sci-Fi"
      ],
      [  
         "29\/Space",
         "Space"
      ]
   ],
   "duration":"24 min. per ep.",
   "rating":"R - 17+ (violence & profanity)",
   "score":[  
      8.8100000000000004973799150320701301097869873046875,
      297709
   ],
   "ranked":25,
   "popularity":33,
   "members":559015,
   "favorites":32801,
   "background":"When Cowboy Bebop first aired in spring of 1998 on TV Tokyo, only episodes 2, 3, 7-15, and 18 were broadcast, it was concluded with a recap special known as Yose Atsume Blues. This was due to anime censorship having increased following the big controversies over Evangelion, as a result most of the series was pulled from the air due to violent content. Satellite channel WOWOW picked up the series in the fall of that year and aired it in its entirety uncensored. Cowboy Bebop was not a ratings hit in Japan, but sold over 19,000 DVD units in the initial release run, and 81,000 overall. Protagonist Spike Spiegel won Best Male Character, and Megumi Hayashibara won Best Voice Actor for her role as Faye Valentine in the 1999 and 2000 Anime Grand Prix, respectively.

Cowboy Bebop's biggest influence has been in the United States, where it premiered on Adult Swim in 2001 with many reruns since. The show's heavy Western influence struck a chord with American viewers, where it became a "gateway drug" to anime aimed at adult audiences.", "related":{ "Adaptation":[ [ "Cowboy Bebop", "\/manga\/173\/Cowboy_Bebop" ], [ "Shooting Star Bebop: Cowboy Bebop<\/a>", "\/manga\/174\/Shooting_Star_Bebop__Cowboy_Bebop" ] ], "Side story":[ [ "Cowboy Bebop: Tengoku no Tobira", "\/anime\/5\/Cowboy_Bebop__Tengoku_no_Tobira" ], [ "Cowboy Bebop: Ein no Natsuyasumi<\/a>", "\/anime\/17205\/Cowboy_Bebop__Ein_no_Natsuyasumi" ] ], "Summary":[ "Cowboy Bebop: Yose Atsume Blues<\/a>", "\/anime\/4037\/Cowboy_Bebop__Yose_Atsume_Blues" ] }, "opening-theme":[ ""Tank!" by The Seatbelts (eps 1-25)" ], "ending-theme":[ "#1: "The Real Folk Blues" by The Seatbelts feat. Mai Yamane (eps 1-12, 14-25)", "#2: "Space Lion" by The Seatbelts (ep 13)", "#3: "Blue" by The Seatbelts feat. Mai Yamane (ep 26)" ] }

Manga

Manga information can be fetched through the following request

GET

GET manga/{id}

Parameters
Name Type Description
ID integer The Manga ID on MyAnimeList
Response

GET manga/1


{  
   "link-canonical":"https:\/\/myanimelist.net\/manga\/1\/Monster",
   "synopsis":"Dr. Kenzou Tenma is a renowned brain surgeon of Japanese descent working in Europe. Highly lauded by his peers as one of the great young minds that will revolutionize the field, he is blessed with a beautiful fianc\u00e9e and is on the cusp of a big promotion in the hospital he works at. But all of that is about to change with a grave dilemma that Kenzou faces one night\u2014whether to save the life of a small boy or that of the town's mayor. Despite being pressured by his superiors to perform surgery on the mayor, his morals force him to perform the surgery on the other critical patient, saving his life and forfeiting the mayor's. A doctor is taught to believe that all life is equal; however, when a series of murders occur in the surgeon's vicinity, all of the evidence pointing to the boy he saved, Kenzou's beliefs are shaken. Along his journey to unravel the true identity of his little patient, Kenzou discovers that the fate of the world may be intertwined with the mysterious child. [Written by MAL Rewrite]",
   "title":"Monster",
   "title-english":"Monster",
   "japanese":"MONSTER",
   "image":"https:\/\/myanimelist.cdn-dena.com\/images\/manga\/3\/54525.jpg",
   "type":"Manga",
   "volumes":18,
   "chapters":162,
   "status":"Finished",
   "published":"Dec  5, 1994 to Dec  20, 2001",
   "genre":[  
      [  
         "7\/Mystery",
         "Mystery"
      ],
      [  
         "8\/Drama",
         "Drama"
      ],
      [  
         "40\/Psychological",
         "Psychological"
      ],
      [  
         "41\/Seinen",
         "Seinen"
      ]
   ],
   "author":[  
      {  
         "name":"Urasawa, Naoki",
         "url":"\/people\/1867\/Naoki_Urasawa"
      }
   ],
   "serialization":[  
      "Big Comic Original",
      "\/manga\/magazine\/1\/Big_Comic_Original"
   ],
   "ranked":6,
   "score":[  
      9.0600000000000004973799150320701301097869873046875,
      22965
   ],
   "popularity":59,
   "members":52512,
   "favorites":5670,
   "background":"Monster won the Grand Prize at the 3rd annual Tezuka Osamu Cultural Prize in 1999, as well as the 46th Shogakukan Manga Award in the General category in 2000.

The series was published in English by VIZ Media under the VIZ Signature imprint from February 21, 2006 to December 16, 2008, and again in 2-in-1 omnibuses (subtitled The Perfect Edition) from July 15, 2014 to July 19, 2016. The manga was also published in Brazilian Portuguese by Panini Comics\/Planet Manga from June 2012 to April 2015 and in Polish by Hanami from March 2014 to February 2017.", "related":{ "Side story:":[ { "name":"Mou Hitotsu no Monster: The Investigative Report<\/a>", "url":"\/manga\/10968\/Mou_Hitotsu_no_Monster__The_Investigative_Report" } ], "Adaptation:":[ { "name":"Monster<\/a>", "url":"\/anime\/19\/Monster" } ] } }

Character

Character information can be fetched through the following request

GET

GET character/{id}

Parameters
Name Type Description
ID integer The Character ID on MyAnimeList
Response

GET character/1


{  
   "animeography":[  
      {  
         "name":"Cowboy Bebop",
         "link":"\/anime\/1\/Cowboy_Bebop",
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/anime\/4\/19644.jpg?s=8f2f27c5fab61dac8caf24fe37651c9a"
      },
      {  
         "name":"Cowboy Bebop: Tengoku no Tobira",
         "link":"\/anime\/5\/Cowboy_Bebop__Tengoku_no_Tobira",
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/anime\/6\/14331.jpg?s=1f1f288401369f02a729919dc37b017b"
      },
      {  
         "name":"Cowboy Bebop: Yose Atsume Blues",
         "link":"\/anime\/4037\/Cowboy_Bebop__Yose_Atsume_Blues",
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/anime\/10\/54341.jpg?s=ad2fb8157adfaa6c67008ef66200e004"
      }
   ],
   "mangaography":[  
      {  
         "name":"Cowboy Bebop",
         "link":"\/manga\/173\/Cowboy_Bebop",
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/manga\/5\/166652.jpg?s=84a3e1d5fff9652418f224a81ae8b042"
      },
      {  
         "name":"Shooting Star Bebop: Cowboy Bebop",
         "link":"\/manga\/174\/Shooting_Star_Bebop__Cowboy_Bebop",
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/manga\/3\/176770.jpg?s=27a6072c91cf6e34e2388734c4089f56"
      }
   ],
   "member-favorites":20615,
   "name":"Spike Spiegel",
   "name-japanese":"(\u30b9\u30d1\u30a4\u30af\u30fb\u30b9\u30d4\u30fc\u30b2\u30eb)",
   "about":"Birthdate: June 26, 2044\n Height: 185 cm (6' 1\")\n Weight: 70 kg (155 lbs)\n Blood type: O\n Planet of Origin: Mars\n \n Spike Spiegel is a tall and lean 27-year-old bounty hunter born on Mars. The inspiration for Spike is found in martial artist Bruce Lee who uses the martial arts style of Jeet Kune Do as depicted in Session 8, \"Waltz For Venus\". He has fluffy, dark green hair (which is inspired by Yusaku Matsuda's) and reddish brown eyes, one of which is artificial and lighter than the other. He is usually dressed in a blue leisure suit, with a yellow shirt and Lupin III inspired boots. A flashback in Session 6 revealed it was his fully functioning right eye which was surgically replaced by the cybernetic one (although Spike himself may not have conscious recollection of the procedure since he claims to have lost his natural eye in an \"accident\"). One theory is that his natural eye may have been lost during the pre-series massacre in which he supposedly \"died\". The purpose of this cybernetic eye is never explicitly stated, though it apparently gives him exceptional hand-eye coordination - particularly with firearms (Spike's gun of choice is a Jericho 941, as seen throughout the series). In the first episode, when facing a bounty-head using Red Eye, Spike mocks him, calling his moves \"too slow\". At first, this seems like posturing on Spike's part, but even with his senses and reflexes accelerated to superhuman levels by the drug, the bounty cannot even touch Spike. A recurring device throughout the entire show is a closeup on Spike's fully-natural left eye before dissolving to a flashback of his life as part of the syndicate. As said by Spike himself in the last episode, his right eye \"only sees the present\" and his left eye \"only sees the past.\" Spike often has a bent cigarette between his lips, sometimes despite rain or \"No Smoking\" signs.\n\n",
   "voice-actors":[  
      {  
         "name":"Yamadera, Kouichi",
         "link":"\/people\/11\/Kouichi_Yamadera",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/44674v.jpg",
         "language":"Japanese"
      },
      {  
         "name":"Blum, Steven",
         "link":"\/people\/12\/Steven_Blum",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/45741v.jpg",
         "language":"English"
      },
      {  
         "name":"De ambrosis, Massimo",
         "link":"\/people\/781\/Massimo_De_ambrosis",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/2\/834v.jpg",
         "language":"Italian"
      },
      {  
         "name":"Briggs, Guilherme",
         "link":"\/people\/1099\/Guilherme_Briggs",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/1\/40583v.jpg",
         "language":"Brazilian"
      },
      {  
         "name":"Neumann, Viktor",
         "link":"\/people\/1638\/Viktor_Neumann",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/1545v.jpg",
         "language":"German"
      },
      {  
         "name":"Juh\u00e1sz, Zolt\u00e1n",
         "link":"\/people\/7787\/Zolt\u00e1n_Juh\u00e1sz",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/2\/39244v.jpg",
         "language":"Hungarian"
      },
      {  
         "name":"Pichon, Yann",
         "link":"\/people\/9237\/Yann_Pichon",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/21161v.jpg",
         "language":"French"
      },
      {  
         "name":"Atala, Yamil",
         "link":"\/people\/10028\/Yamil_Atala",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/14505v.jpg",
         "language":"Spanish"
      },
      {  
         "name":"Gu, Ja hyeong",
         "link":"\/people\/14781\/Ja_hyeong_Gu",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/1\/18217v.jpg",
         "language":"Korean"
      },
      {  
         "name":"Halm, Martin",
         "link":"\/people\/23627\/Martin_Halm",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/2\/26401v.jpg",
         "language":"German"
      },
      {  
         "name":"Pera, Joan",
         "link":"\/people\/24991\/Joan_Pera",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/voiceactors\/3\/27593v.jpg",
         "language":"Spanish"
      },
      {  
         "name":"Mullenaerts, Bruno",
         "link":"\/people\/25903\/Bruno_Mullenaerts",
         "image":"https:\/\/myanimelist.cdn-dena.com\/images\/questionmark_23.gif",
         "language":"French"
      }
   ]
}
                                            

Person

Person information can be fetched through the following request

GET

GET person/{id}

Parameters
Name Type Description
ID integer The Person ID on MyAnimeList
Responses

GET person/1


{  
   "link-canonical":"https:\/\/myanimelist.net\/people\/1\/Tomokazu_Seki",
   "given-name":"\u667a\u4e00",
   "family-name":"\u95a2",
   "alternate-names":null,
   "birthday":"Sep  8, 1972",
   "website":"",
   "member-favorites":4009,
   "voice-acting-role":[  
      {  
         "anime":{  
            "name":"Ai Tenshi Densetsu Wedding Peach",
            "link":"\/anime\/1533\/Ai_Tenshi_Densetsu_Wedding_Peach",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/7\/20446.jpg?s=3294303e7b1b583aba7362a89a3d6f3e"
         },
         "character":{  
            "name":"Igneous",
            "link":"\/character\/12059\/Igneous",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/14\/108301.jpg?s=79ec761107ba7ecd7482032bbfc411c8",
            "role":"Supporting"
         }
      },
      {  
         "anime":{  
            "name":"Air Gear: Kuro no Hane to Nemuri no Mori - Break on the Sky",
            "link":"\/anime\/9201\/Air_Gear__Kuro_no_Hane_to_Nemuri_no_Mori_-_Break_on_the_Sky",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/8\/74158.jpg?s=15115e51c7d7b12399a662891d03683a"
         },
         "character":{  
            "name":"Spitfire",
            "link":"\/character\/6296\/Spitfire",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/3\/71644.jpg?s=78e104a9fb73bd27032484cfff9ab982",
            "role":"Supporting"
         }
      },

      ...

      {  
         "anime":{  
            "name":"Zoids Fuzors",
            "link":"\/anime\/1746\/Zoids_Fuzors",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/1\/1746.jpg?s=775d2ed45dc5057603f4e3043cb5e1b8"
         },
         "character":{  
            "name":"Richter, Alpha",
            "link":"\/character\/7993\/Alpha_Richter",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/8\/282887.jpg?s=e36ec4d5546b55e809a7f90b2983fea7",
            "role":"Supporting"
         }
      }
   ],
   "anime-staff-position":[  
      {  
         "anime":{  
            "name":"Anime Tenchou",
            "link":"\/anime\/3080\/Anime_Tenchou",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/9\/4635.jpg?s=ab27c149041a1777a2e66c838109971a"
         },
         "role":"Theme Song Performance"
      },
      {  
         "anime":{  
            "name":"Haiyore! Nyaruko-san W",
            "link":"\/anime\/15699\/Haiyore_Nyaruko-san_W",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/10\/47533.jpg?s=b4dacee35da91c046b397976a7c78dba"
         },
         "role":"Inserted Song Performance"
      },

      ...

      {  
         "anime":{  
            "name":"Wei\u00df Kreuz OVA",
            "link":"\/anime\/1024\/Wei\u00df_Kreuz_OVA",
            "image":"https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/anime\/5\/15408.jpg?s=488a046c33b697067115bf89f473d55e"
         },
         "role":"Theme Song Performance"
      }
   ],
   "published-manga":[  

   ]
}
                                            

Extended 1.1

Adding a few more parameters to your anime/manga/character/person requests to have them fetch more details from dedicated pages such as the Videos, Episodes, Reviews, Recommendations, Stats, Characters, Staff, Pictures and More Info pages!

WIP

Not all features have been implemented! Only the ones documented below have been.

Anime

Name Type Description
episodes string Returns episodes
characters_Staff string Returns characters & staff
all string Returns episodes + characters & staff
Episodes 1.1
GET

GET anime/{id}/episodes

Response

GET anime/1/episodes


// in addition to default anime response

{  

   ...

   "episode":[  
      {  
         "id":1,
         "title":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/1",
         "title-japanese":"Asteroid Blues",
         "title-romanji":"(\u30a2\u30b9\u30c6\u30ed\u30a4\u30c9\u30fb\u30d6\u30eb\u30fc\u30b9)",
         "aired":"Oct 24, 1998",
         "filler":false,
         "recap":false,
         "video_url":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/1",
         "forum_url":"https:\/\/myanimelist.net\/forum\/?topicid=29264"
      },
      {  
         "id":2,
         "title":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/2",
         "title-japanese":"Nora Inu no Strut",
         "title-romanji":"(\u91ce\u826f\u72ac\u306e\u30b9\u30c8\u30e9\u30c3\u30c8)",
         "aired":"Apr 3, 1998",
         "filler":false,
         "recap":false,
         "video_url":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/2",
         "forum_url":"https:\/\/myanimelist.net\/forum\/?topicid=29323"
      },

      ...

      {  
         "id":26,
         "title":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/26",
         "title-japanese":"The Real Folk Blues (Kouhen)",
         "title-romanji":"(\u30b6\u30fb\u30ea\u30a2\u30eb\u30fb\u30d5\u30a9\u30fc\u30af\u30d6\u30eb\u30fc\u30b9\uff08\u5f8c\u7de8\uff09)",
         "aired":"Apr 24, 1999",
         "filler":false,
         "recap":false,
         "video_url":"https:\/\/myanimelist.net\/anime\/1\/Cowboy_Bebop\/episode\/26",
         "forum_url":"https:\/\/myanimelist.net\/forum\/?topicid=24838"
      }
   ]
}
                                            
Characters & Staff 1.1
GET

GET anime/{id}/characters_staff

Response

GET anime/1/characters_staff


// in addition to default anime response

{  

   ...

   "character":[  
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/characters\/11\/253723.jpg?s=031dfa134e4ed23d58d6ebfd5350391a 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/11\/253723.jpg?s=386c14df16ffdd7d11e17bc53f26c97f 2x",
         "url":"https:\/\/myanimelist.net\/character\/3\/Jet_Black",
         "name":"Black, Jet",
         "role":"Main",
         "voice-actor":[  
            {  
               "name":"Ishizuka, Unshou",
               "url":"https:\/\/myanimelist.net\/people\/357\/Unshou_Ishizuka",
               "role":"Japanese",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/17135.jpg?s=1e4f2f416890bc60d338b2c67f54daf3 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/17135.jpg?s=69b969ff9c8a792f7f341adcfcd850f2 2x"
            },
            {  
               "name":"Billingslea, Beau",
               "url":"https:\/\/myanimelist.net\/people\/358\/Beau_Billingslea",
               "role":"English",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/43568.jpg?s=a189e76d992a72eeaeee423e925e330a 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/43568.jpg?s=97bb09aa98d1a18f436bbfd6fe0ec20f 2x"
            },
            {  
               "name":"Roullier, Philippe",
               "url":"https:\/\/myanimelist.net\/people\/9256\/Philippe_Roullier",
               "role":"French",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/1\/22061.jpg?s=0528ce3bfd55b31c9e647ee23e64273e 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/1\/22061.jpg?s=0361b8fe9d4eca4386e8c4c28cf2f67f 2x"
            },
            {  
               "name":"Ramirez, Alfonso",
               "url":"https:\/\/myanimelist.net\/people\/10030\/Alfonso_Ramirez",
               "role":"Spanish",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/22063.jpg?s=9d48e4400608eff14c102e9b27c66268 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/22063.jpg?s=819894a2fca14d3097f07c076f649d51 2x"
            },
            {  
               "name":"Kim, Gi hyeon",
               "url":"https:\/\/myanimelist.net\/people\/14779\/Gi_hyeon_Kim",
               "role":"Korean",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/15347.jpg?s=24553eae61f7dacd04d505d1c1743e9d 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/15347.jpg?s=061e0528fbfb7111aaac8b3964682298 2x"
            },
            {  
               "name":"Schulz, Karl",
               "url":"https:\/\/myanimelist.net\/people\/45265\/Karl_Schulz",
               "role":"German",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/48547.jpg?s=eb54b0f8fb60cd03ac1ec191869956c9 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/48547.jpg?s=551ecac558d2c5d62cd501e5a32946dc 2x"
            }
         ]
      },
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/characters\/4\/50197.jpg?s=4da7d495c2389f1b65a510602d2358ba 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/4\/50197.jpg?s=eafedd174191de3b2e55a35e482d45a4 2x",
         "url":"https:\/\/myanimelist.net\/character\/1\/Spike_Spiegel",
         "name":"Spiegel, Spike",
         "role":"Main",
         "voice-actor":[  
            {  
               "name":"Yamadera, Kouichi",
               "url":"https:\/\/myanimelist.net\/people\/11\/Kouichi_Yamadera",
               "role":"Japanese",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/44674.jpg?s=f2d5b848e2b1ee9241b6e5bdc3d875a3 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/44674.jpg?s=d5355e28a41efa524c9d45cb66552ee0 2x"
            },
            {  
               "name":"Blum, Steven",
               "url":"https:\/\/myanimelist.net\/people\/12\/Steven_Blum",
               "role":"English",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/45741.jpg?s=b0976ca761b7ff6a5bc24ed4c1f6ed0a 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/45741.jpg?s=b98c9174a476568539a1b047ce4a943d 2x"
            },
            {  
               "name":"De ambrosis, Massimo",
               "url":"https:\/\/myanimelist.net\/people\/781\/Massimo_De_ambrosis",
               "role":"Italian",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/834.jpg?s=d5236e4e1e5304f908fef14e36e2ed74 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/834.jpg?s=5b2f4a8406fa2ba532bfe7ceec437872 2x"
            },
            {  
               "name":"Neumann, Viktor",
               "url":"https:\/\/myanimelist.net\/people\/1638\/Viktor_Neumann",
               "role":"German",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/1545.jpg?s=d36494daab9c199f32742de5205a6dc6 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/1545.jpg?s=9635b93ac3a142d429d35c0f3d95057e 2x"
            },
            {  
               "name":"Juh\u00e1sz, Zolt\u00e1n",
               "url":"https:\/\/myanimelist.net\/people\/7787\/Zolt\u00e1n_Juh\u00e1sz",
               "role":"Hungarian",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/39244.jpg?s=53fa23cca78af9fd3661bd95a0b9ce29 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/39244.jpg?s=1f74a71c058853d7d8fcaa153b29efe9 2x"
            },
            {  
               "name":"Pichon, Yann",
               "url":"https:\/\/myanimelist.net\/people\/9237\/Yann_Pichon",
               "role":"French",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/21161.jpg?s=7e1e8a8cfa34f3cfba8d95d5856000a5 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/21161.jpg?s=1a704c44e094a5c91e6e7eb42cc805af 2x"
            },
            {  
               "name":"Gu, Ja hyeong",
               "url":"https:\/\/myanimelist.net\/people\/14781\/Ja_hyeong_Gu",
               "role":"Korean",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/1\/18217.jpg?s=a9e94f114651a8b7fb26c75af79042ea 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/1\/18217.jpg?s=9dbdf25d13a5f921883e777b268211c6 2x"
            },
            {  
               "name":"Pera, Joan",
               "url":"https:\/\/myanimelist.net\/people\/24991\/Joan_Pera",
               "role":"Spanish",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/27593.jpg?s=b2f86019d7b6ad3a9af6d67e8853da46 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/27593.jpg?s=9135a653c0d281c89662b7e178a96504 2x"
            }
         ]
      },

      ...

      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/characters\/5\/287170.jpg?s=deb0bd13fd3c087c8f20ddddc1e02b5f 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/5\/287170.jpg?s=4a8b43dbb949422758aea83f529a94d8 2x",
         "url":"https:\/\/myanimelist.net\/character\/131477\/Sally__Yung",
         "name":"Yung, Sally ",
         "role":"Supporting",
         "voice-actor":[  
            {  
               "name":"Tani, Ikuko",
               "url":"https:\/\/myanimelist.net\/people\/5907\/Ikuko_Tani",
               "role":"Japanese",
               "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/12837.jpg?s=e4325b5b42e3e83f544212750c376021 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/12837.jpg?s=3641b4c71cf82d2c8e821334a08fcee7 2x"
            }
         ]
      }
   ],
   "staff":[  
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/40216.jpg?s=12b0478620ef4f60243c8b4d9635bd26 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/40216.jpg?s=a6251763dc5f6694b091f1dff611373b 2x",
         "name":"Maseba, Yutaka",
         "url":"https:\/\/myanimelist.net\/people\/40009\/Yutaka_Maseba",
         "role":"Producer"
      },
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/2\/39506.jpg?s=e487d97dc7543ab9beecc14d156f1ff3 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/2\/39506.jpg?s=e4936bfe2efdc8e2c20ffa7630e4348b 2x",
         "name":"Minami, Masahiko",
         "url":"https:\/\/myanimelist.net\/people\/6519\/Masahiko_Minami",
         "role":"Producer"
      },

      ...

      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/voiceactors\/3\/39603.jpg?s=c694ce405fd9e4c30235f4c9830d0e54 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/voiceactors\/3\/39603.jpg?s=fad05c960f3a624f5b26a952625bd621 2x",
         "name":"Yoshida, Tooru",
         "url":"https:\/\/myanimelist.net\/people\/37439\/Tooru_Yoshida",
         "role":"Key Animation"
      }
   ]
}
                                            

Manga 1.1

Name Type Description
characters_Staff string Returns characters & staff
Characters & Staff 1.1
GET

GET manga/{id}/characters_staff

Response

GET manga/1/characters_staff


// in addition to default manga response

{  
 
   ...

   "character":[  
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/characters\/15\/70891.jpg?s=822aafca0e3dbd549d592fb6828ca2df 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/15\/70891.jpg?s=7f968643d9f37487802bd96c022d7de3 2x",
         "url":"https:\/\/myanimelist.net\/character\/6123\/Eva_Heinemann",
         "name":"Heinemann, Eva",
         "role":"Main"
      },
      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/characters\/11\/286916.jpg?s=78ef51279c2d5665422932f58c2f367c 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/characters\/11\/286916.jpg?s=b4cd658621076c8ee798a889ff5ac3d2 2x",
         "url":"https:\/\/myanimelist.net\/character\/720\/Anna_Liebert",
         "name":"Liebert, Anna",
         "role":"Main"
      },
   
   ...


      {  
         "image":"https:\/\/myanimelist.cdn-dena.com\/r\/23x32\/images\/questionmark_23.gif?s=f0d17be5a46f7de113f7dbbb23ae5e1a 1x, https:\/\/myanimelist.cdn-dena.com\/r\/46x64\/images\/questionmark_23.gif?s=368162569b0f2cedaed4ee70adb1f59e 2x",
         "url":"https:\/\/myanimelist.net\/character\/141030\/Viera__\u010cern_aacute_",
         "name":"\u010cern&aacute;, Viera ",
         "role":"Supporting"
      }
   ],
   "staff":[  

   ]
}
                                            

User List

Fetch a user's list in JSON format using the official API. It converts the XML format into a JSON one.

Response

The response is the same as the XML format, except it's in JSON.

GET

GET user_list/{username}/{type}

Parameters
Name Type Description
username string MyAnimeList Username
type string anime or manga

Required

A type is required!

Example
GET user_list/Nekomata1037/anime GET user_list/Nekomata1037/manga

Error

These are some common error responses

Could not access

This usually means that the page does not exist. For example, GET anime/2 will return this error since there's no anime on MyAnimeList with the ID 2.

Response

{"error":"Could not access \"https:\/\/myanimelist.net\/anime\/2\""}
                                        

Specify a MyAnimeList ... ID

You get this response when you don't issue an ID to the endpoint. Such as GET anime/.

Response

{"error":"Invalid Request: Specify a MyAnimeList Anime ID"}
                                        

Specify a MyAnimeList username

You get this response when you don't issue a username to the user_list endpoint. Such as GET user_list/.

Response

{"error":"Invalid Request: Specify an MyAnimeList username!"}
                                        

Specify a MyAnimeList username

You get this response when you don't issue the type of the user list to the user_list endpoint. Such as GET user_list/Nekomata1037.

Response

{"error":"Invalid Request: Specify type of user list (anime\/manga)"}
                                        

Download

Download the Jikan PHP Library and start using it with your PHP applications!

Download Source

Installation

Step 1

After you've finished downloading/cloning from GitHub, extract the zip and you'll see jikan.php. This is the main library/class and you can get started by including it in your project!

Add it to your project

require_once 'jikan.php';

Step Two

Create the object via the namespace


$jikan = new \Jikan\Get;
                                    

Step Three

Start using it!

Example

$anime = $jikan->anime(1)->data;
$manga = $jikan->manga(1)->reviews()->characters()->data;
                                    

Methods

When no matches are found

If you use these methods to fetch a non-existent ID or query that doesn't parse any data, then the return value is false

Anime

This method fetches anime data by ID from https://myanimelist.net/anime/

Parameter(s)
Name Type Description
ID integer The Anime ID on MyAnimeList
Usage

Considering you've initialized Jikan as $jikan

$jikan->anime(1);

This stores the parsed data in public $data. To access it: $jikan->data

Examples

$anime = $jikan->anime(1)->data;

Manga

This method fetches manga data by ID from https://myanimelist.net/manga/

Parameter(s)
Name Type Description
ID integer The Manga ID on MyAnimeList
Usage

Considering you've initialized Jikan as $jikan

$jikan->manga(1);

This stores the parsed data in public $data. To access it: $jikan->data

Examples

$anime = $jikan->manga(1)->data;

Character

This method fetches character data by ID from https://myanimelist.net/character/

Parameter(s)
Name Type Description
ID integer The Character ID on MyAnimeList
Usage

Considering you've initialized Jikan as $jikan

$jikan->character(1);

This stores the parsed data in public $data. To access it: $jikan->data

Examples

$anime = $jikan->character(1)->data;

Person

This method fetches person data by ID from https://myanimelist.net/people/

Parameter(s)
Name Type Description
ID integer The Person ID on MyAnimeList
Usage

Considering you've initialized Jikan as $jikan

$jikan->person(1);

This stores the parsed data in public $data. To access it: $jikan->data

Examples

$anime = $jikan->person(1)->data;

Search

Unavailable

This feature is not available yet. It's planned to be released by Jikan Source ver.1.0.0

This method fetches query data by ID from:

https://myanimelist.net/anime.php?q=

https://myanimelist.net/manga.php?q=

https://myanimelist.net/people.php?q=

https://myanimelist.net/character.php?q=

Parameter(s)
Name Type Description
type string anime, manga, character, person
query string The search string
page integer The page of the search result. Set to 1, by default. So you can omit this
Usage

Considering you've initialized Jikan as $jikan

$jikan->search('anime', 'Steins', 1);

This stores the parsed data in public $data. To access it: $jikan->data

Examples

$anime = $jikan->search('manga', 'Kimi No Nawa', 1)->data;

It'll automatically urlencode() the query!

Advanced

Unavailable

This feature is not available yet. It's planned to be completely released by Jikan Source ver.1.0.0

Chaining Methods

Chaining methods is the source alternative to extended search in the REST API. This is the backbone of it, basically.

These are extended data responses to the anime, manga, character and person methods.



Available Chains

Anime
Parent Method Chain Returns
anime videos Returns the videos parsed from an anime's video page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/video
anime episodes Returns the episodes parsed from an anime's episode page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/episode
anime recommendations Returns the recommendations parsed from an anime's user recommendation page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/userrecs
anime stats Returns the stats parsed from an anime's stats page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/stats
anime characters_staff Returns the chracters and staff parsed from an anime's character and staff page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/characters
anime pictures Returns the picture links parsed from an anime's pictures page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/pics
anime moreinfo Returns the more info data parsed from an anime's more info page. e.g https://myanimelist.net/anime/1/Cowboy_Bebop/moreinfo
Manga
Parent Method Chain Returns
manga recommendations Returns the recommendations parsed from an manga's user recommendation page. e.g https://myanimelist.net/manga/1/Monster/userrecs
manga stats Returns the stats parsed from an manga's stats page. e.g https://myanimelist.net/manga/1/Monster/stats
manga characters_staff Returns the chracters and staff parsed from an manga's character and staff page. e.g https://myanimelist.net/manga/1/Monster/characters
manga pictures Returns the picture links parsed from an manga's pictures page. e.g https://myanimelist.net/manga/1/Monster/pics
Character
Parent Method Chain Returns
character pictures Returns the picture links parsed from an character's pictures page. e.g https://myanimelist.net/character/1/Spike_Spiegel/pictures
Person
Parent Method Chain Returns
person pictures Returns the picture links parsed from an person's pictures page. e.g https://myanimelist.net/people/1/Tomokazu_Seki/pictures

Usage


$jikan = new \Jikan\Get;
$anime_and_stats = $jikan->anime(1)->stats()->data; // makes 2 requests
$anime_most = $jikan->anime(1)->videos()->episodes()->recommendations()->stats()->characters_staff()->pictures()->moreinfo()->data; // 8 requests!
// This scrapes 8 pages! It will be much slower!
// The data from these chained methods are stored in $jikan->data

// Improper usage
$character = $jikan->character(1)->episodes(); // won't work obviously. It will return false for the the data stored in $jikan->data['episodes']
                                    

API Development

Did you know that Jikan is modular enough to allow developers to integrate their own search functions within the source? If you're a PHP developer and have substancial knowledge in ReGex then you can easily get started.

How does Jikan work?

It fetches and stores the HTML document of the page as an array. Then it proceeds to loop line-by-line through the array. With this implementation, it checks for searches that are appointed to the current call (e.g anime method). Search

Where do I get started?

If you check the methods, you'll find that a similar lining of codes start after this line in each of the main methods.


if (!empty($this->data)) {
  unset($this->data);
  $this->data = array();
}
                                    

The similar lines of code I'm talking about would be something like this


$this->setSearch("link-canonical", "//", function(){
  return $this->matches[1];
});
                                    

And after all these patterns, the method ends like this


$this->data = array();

foreach ($this->link_arr as $lineNo => $line) {
  $this->line = $line;
  $this->lineNo = $lineNo;
  
  $this->find();
}

unset($this->matches);
$this->matches = array();

$this->data = (empty($this->data)) ? false : $this->data;

return $this;
                                    

The $this->setSearch allots something we're looking for to the search array. And Jikan finds looks line-by-line to find that. It does this using ReGex patterns. Once that pattern is found, it's considered as a 'found' item and the loop doesn't include it in the next search.

Setting the search

The method for this is $this->setSearch($index, $regex, $func, $args=null)

$index is a name you can give to the thing you're looking for. It needs to be unique. If this search is for the anime's title then I'd set $index as 'anime-title'. Be sure to use - or _ as replacement for spaces as it gets stored as the array key. This needs to be a string.

$regex is the pattern you want it to find within the document. This needs to be a valid ReGex string

$function is the function that is executed if the pattern is matched. This needs to be a function.

$args are the arguments you need to pass incase your function has any. This doesn't have much of use, I'll tell you why.

Usually, you would want to pass the current line's argument or something but that's not needed.

Internal Variables

These are internal variables you can access for returning functions of search matches.

$this->link_arr is the array full of the HTML document line by line.

$this->lineNo is the current line the loop is on.

So, if I wanted to get the next line on a certain match, I would do this

$nextLine = $this->link_arr[$this->lineNo+1]

And finally, the main part.

$this->matches contains all the (*) grouped searches the pattern consists. Everything is returned to this variable.

An example

Lets consider the line we're on is:

< blah id="someContainer">Some Data< /blah>


$this->setSearch('foo', '~id="someContainer">(.*)<~', function() {
  return $this->matches[1];
});
                                    

This search parameter would return Some Data to $this->data keyed as foo

You'd be able to access it via $this->data['foo']


echo $this->data['foo']; // "Some Data"
                                    

JSONify

You can JSONify the returned array through a built in method json


$jikan = new \Jikan\Get;
$jikan->anime(1);
$data = $jikan->data;
$data_json = $jikan->json(); // no parameters need to be passed as it jsonifys $this->data
                                    

Although, you can do the same thing through PHP via json_encode, which is the same procedure in the json method.

Caching

So, you've got a 2,000 daily request limit and this is needed to maintain bandwidth. You need to cache the data you request to have a faster application or perhaps you have a lot of users on your end. Therefore it's required to cache the data you request. Even the Jikan REST API does this.


I have made a small PHP class that does this. It caches PHP arrays into serialized JSON and stores them. You can download it and learn how to use it right from its repository.

Download






Happy Developing!