-
This
api
does not store any files , it only link to the media which is hosted on 3rd party services. -
This
api
is explicitly made for educational purposes only and not for commercial usage. This repo will not be responsible for any misuse of it.
RestFul API made with Node.js
(Checkout this anime streaming website Zenime powered by this API)
Make sure you have node installed on your device
Run the following code to clone the repository and install all required dependencies
$ git clone https://github.com/itzzzme/anime-api.git
$ cd anime-api
$ npm install
Start the server
$ npm start #or npm run devStart
Host your own instance of anime-api on vercel
Host your own instance of anime-api on Render.
GET /api/
/api/
import axios from "axios";
const resp = await axios.get("/api/");
console.log(resp.data);
{
"success": true,
"results": {
"spotlights": [
{
"id":string,
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"description": string,
"tvInfo": {
"showType": string,
"duration": string,
"releaseDate": string,
"quality": string,
"episodeInfo": [object]
}
},
{...}
],
"trending": [
{
"id":string,
"data_id": number,
"number": number,
"poster": string,
"title": string,
"japanese_title": string,
}
{...}
],
"today":[
"schedule":[
{
"id":string,
"data_id":number,
"title":string,
"japanese_title":string,
"releaseDate":string,
"time":string,
"episode_no":number,
},{...}
]
],
"topAiring":[
{
"id":string,
"data_id":number,
"poster":string,
"title":string,
"japanese_title":string,
"description":string,
tvInfo:[object]
}
],
"mostPopular":[
{
"id":string,
"data_id":number,
"poster":string,
"title":string,
"japanese_title":string,
"description":string,
tvInfo:[object]
},
"mostFavorite":[
{
"id":string,
"data_id":number,
"poster":string,
"title":string,
"japanese_title":string,
"description":string,
tvInfo:[object]
}
],
"latestCompleted":[
{
"id":string,
"data_id":number,
"poster":string,
"title":string,
"japanese_title":string,
"description":string,
tvInfo:[object]
}
],
"latestEpisode":[
{
"id":string,
"data_id":number,
"poster":string,
"title":string,
"japanese_title":string,
"description":string,
tvInfo:[object]
}
],
"genres":[
string,
string,
string,
...
]
}
}
GET /api/top-ten
/api/top-ten
import axios from "axios";
const resp = await axios.get("/api/top-ten");
console.log(resp.data);
{
"success": true,
"results": [
"topTen":[
"today":[
{
"id":string,
"data_id": number,
"number": number,
"name": string,
"poster": string,
"tvInfo": [Object]
},
{...}
],
"week":[
{
"id":string,
"data_id": number,
"number": number,
"name": string,
"poster": string,
"tvInfo": [Object]
},
{...}
],
"month":[
{
"id":string,
"data_id": number,
"number": number,
"name": string,
"poster": string,
"tvInfo": [Object]
},
{...}
],
]
]
}
GET /api/info
/api/info?id={string}
Parameter | Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
id |
query |
string | anime-id | Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get("/api/info?id=yami-shibai-9-17879");
console.log(resp.data);
{
"success": true,
"results": {
"data": {
"adultContent":boolean,
"id":string,
"data_id": number,
"title": string,
"japanese_title": string,
"poster": string,
"showType":string,
"animeInfo": {
"Overview": string,
"Japanese": string,
"Synonyms": string,
"Aired": string,
"Premiered": string,
"Duration": string,
"Status": string,
"MAL Score": string,
"Genres": [Object],
"Studios": string,
"Producers": [Object]
}
},
"seasons": [
{
"id":string,
"data_number": number,
"data_id": number,
"season": string,
"title": string,
"japanese_title": string,
"season_poster": string
},
{...}
],
}
}
GET /api/random
/api/random
import axios from "axios";
const resp = await axios.get("/api/random");
console.log(resp.data);
{
"success": true,
"results": {
"data": {
"adultContent":boolean,
"id":string,
"data_id": number,
"title": string,
"japanese_title": string,
"poster": string,
"showType":string,
"animeInfo": {
"Overview": string,
"Japanese": string,
"Synonyms": string,
"Aired": string,
"Premiered": string,
"Duration": string,
"Status": string,
"MAL Score": string,
"Genres": [Object],
"Studios": string,
"Producers": [Object]
}
},
"related_data":[
[
{
"duration": "string",
"data_id": "number",
"id": "string",
"title": "string",
"japanese_title": "string",
"poster": "string",
"tvInfo": {
"dub": "number",
"sub": "number",
"showType": "string",
"eps": "number"
}
},{...}
]
],
"recommended_data":[
[
{
"duration": "string",
"data_id": "number",
"id": "string",
"title": "string",
"japanese_title": "string",
"poster": "string",
"tvInfo": {
"dub": "number",
"sub": "number",
"showType": "string",
"eps": "number"
}
},{...}
]
],
"seasons": [
{
"id":string,
"data_number": number,
"data_id": number,
"season": string,
"title": string,
"japanese_title": string,
"season_poster": string
},
{...}
],
}
}
GET /api/<category>
/api/{string}?page={number}
#or
/api/{string}
Parameter | Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
category |
path |
string |
Category |
Yes ✔️ | -- |
page |
query |
number |
Page-no. |
No ❌ | 1 |
- top-airing
- most-popular
- most-favorite
- completed
- recently-updated
- recently-added
- top-upcoming
- subbed-anime
- dubbed-anime
- top-upcoming
- genre/action
- genre/adventure
- genre/cars
- genre/comedy
- genre/dementia
- genre/demons
- genre/drama
- genre/ecchi
- genre/fantasy
- genre/game
- genre/harem
- genre/historical
- genre/horror
- genre/isekai
- genre/josei
- genre/kids
- genre/magic
- genre/martial-arts
- genre/mecha
- genre/military
- genre/music
- genre/mystery
- genre/parody
- genre/police
- genre/psychological
- genre/romance
- genre/samurai
- genre/school
- genre/sci-fi
- genre/seinen
- genre/shoujo
- genre/shoujo-ai
- genre/shounen
- genre/shounen-ai
- genre/slice-of-life
- genre/space
- genre/sports
- genre/super-power
- genre/supernatural
- genre/thriller
- genre/vampire
- az-list
- az-list/other
- az-list/0-9
- az-list/a
- az-list/b
- az-list/c
- az-list/d
- az-list/e
- az-list/f
- az-list/g
- az-list/h
- az-list/i
- az-list/j
- az-list/k
- az-list/l
- az-list/m
- az-list/n
- az-list/o
- az-list/p
- az-list/q
- az-list/r
- az-list/s
- az-list/t
- az-list/u
- az-list/v
- az-list/w
- az-list/x
- az-list/y
- az-list/z
- movie
- special
- ova
- ona
- tv
import axios from "axios";
const resp = await axios.get("/api/most-popular?page=1");
console.log(resp.data);
{
"success": true,
"results": {
"totalPages": number,
"data": [
{
"id":string,
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"description": string,
"tvInfo": {
"showType": string,
"duration": string,
"sub": number,
"dub": number
},
"adultContent":boolean,
},
{
"id":string,
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"description": string,
"tvInfo": {
"showType": sting,
"duration": string,
"sub": number,
"dub": number,
"eps": number
},
"adultContent":boolean,
},
{...}
],
"totalPages":number
}
}
GET /api/search
/api/search?keyword={string}
Parameter | Parameter-Type | Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
keyword |
query |
string |
keyword |
Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get("/api/search?keyword=one%20punch%20man");
console.log(resp.data);
{
"success": true,
"results": [
{
"id":string,
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"tvInfo": [Object]
},
{
"id":string,
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"tvInfo": [Object]
},
{...}
]
}
GET /api/search/suggest
/api/search/suggest?keyword={string}
Parameter | Parameter-Type | Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
keyword |
query |
string |
keyword |
Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get("/api/search/suggest?keyword=demon");
console.log(resp.data);
{
"success": true,
"results": [
{
"id":"string",
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"releaseDate": string,
"showType": string,
"duration": string,
},
{
"id":"string",
"data_id": number,
"poster": string,
"title": string,
"japanese_title": string,
"releaseDate": string,
"showType": string,
"duration": string,
},
{...}
]
}
GET /api/episodes/
/api/episodes/{param}
Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|
param |
string | anime-id | Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get("/api/episodes/one-piece-100");
console.log(resp.data);
{
"success": true,
"results": [
"totalEpisodes":number,
"episodes":[
{ "episode_no": number,
"id": string,
"data_id": number,
"jname": string,
"title": string,
"japanese_title": string
},
{...}
]
]
}
GET /api/schedule
/api/schedule?date={string}
Parameter | Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
date |
query | string | anime-id | Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get("/api/schedule?date=2024-09-23");
console.log(resp.data);
{
"success": true,
"results": [
{
"id":string,
"data_id":number,
"title":string,
"japanese_title":string,
"releaseDate":string,
"time":string,
"episode_no":number
},
{...}
]
}
GET /api/qtip/
/api/qtip/{id}
Parameter | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|
param |
number |
id | Yes ✔️ | Yes ✔️ |
import axios from "axios";
const resp = await axios.get("/api/qtip/3365");
console.log(resp.data);
{
"success": true,
"results": {
"title": string,
"rating": double,
"quality": string,
"subCount": number,
"dubCount": number,
"episodeCount": number,
"type": string,
"description": string,
"japaneseTitle": string,
"Synonyms": string,
"airedDate": string,
"status": string,
"genres": [Object],
"watchLink": string
}
}
GET /api/character/list/
/api/character/list/{id}
Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|
param |
string |
anime-id | Yes ✔️ | Yes ✔️ |
import axios from "axios";
const resp = await axios.get("/api/character/list/one-piece-100");
console.log(resp.data);
{
"success": true,
"results": {
"currentPage": number,
"totalPages": number,
"data": [
{
"character": {
"id": string,
"poster": string,
"name": string,
"cast": string
},
"voiceActors": [
{
"id": string,
"poster": string,
"name": string
},
{
"id": string,
"poster": string,
"name": string
},
{...}
]
},{...}
]
}
}
GET /api/stream
/api/stream?id={string}
Parameter | Parameter-Type | Type | Description | Mandatory ? | Default |
---|---|---|---|---|---|
id |
query |
string |
keyword |
Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get(
"/api/stream?id=frieren-beyond-journeys-end-18542?ep=107257"
);
console.log(resp.data);
{
"success": true,
"results": {
"streamingLink": [
{
"id":number,
"type": "dub",
"link": {
"file":string,
"type":string,
},
"tracks": [
{
"file": string,
"label": string,
"kind": string,
"default": boolean
},{...}
],
"intro": [Object],
"outro": [Object],
"server":string
}
{...},
{
"id":number,
"type": "sub",
"link": {
"file":string,
"type":string,
},
"tracks": [
{
"file": string,
"label": string,
"kind": string,
"default": boolean
},{...}
],
"intro": [Object],
"outro": [Object],
"server":string
},
{...}
],
"servers": [
{
"type":string,
"data_id": number,
"server_id": number,
"server_name": string
},
{...}
]
}
}
GET /api/servers/
/api/servers/{id}
Parameter-Type | Data-Type | Description | Mandatory ? | Default |
---|---|---|---|---|
params |
string |
keyword |
Yes ✔️ | -- |
import axios from "axios";
const resp = await axios.get(
"/api/servers/demon-slayer-kimetsu-no-yaiba-hashira-training-arc-19107?ep=124260"
);
console.log(resp.data);
{
"success": true,
"results": [
{
"type": string,
"data_id": number,
"server_id": number,
"serverName": string
},
{...},
]
}
- Pull requests are welcomed that address bug fixes, improvements, or new features.
- Fork the repository and create a new branch for your changes.
- Ensure your code follows our coding standards.
- Include tests if applicable.
- Describe your changes clearly in the pull request, explaining the problem and solution.
If you discover any issues or have suggestions for improvement, please open an issue. Provide a clear and concise description of the problem, steps to reproduce it, and any relevant information about your environment.
If you like the project feel free to drop a star ✨. Your appreciation means a lot.
Made by itzzzme 🫰