mirror of
https://github.com/Shineii86/AniKotoAPI.git
synced 2026-10-22 02:45:10 +00:00
docs: add disclaimer, Render deploy, JS code examples for all endpoints
This commit is contained in:
@@ -5,6 +5,13 @@ All notable changes to this project will be documented in this file.
|
|||||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
|
## [1.5.2] - 2026-06-08
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- Disclaimer section (educational purposes, 3rd party media, no affiliation)
|
||||||
|
- Render deploy button alongside Vercel
|
||||||
|
- JavaScript `import axios` code examples for all 25 API endpoints
|
||||||
|
|
||||||
## [1.5.1] - 2026-06-08
|
## [1.5.1] - 2026-06-08
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|||||||
@@ -41,6 +41,14 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
> ## ⚠️ Disclaimer
|
||||||
|
>
|
||||||
|
> 1. This `API` does not store any files — it only links to media hosted on 3rd party services.
|
||||||
|
> 2. 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.
|
||||||
|
> 3. All anime data, images, and content belong to their respective owners. This project is not affiliated with anikototv.to.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## 📖 Table of Contents
|
## 📖 Table of Contents
|
||||||
|
|
||||||
- [Overview](#-overview)
|
- [Overview](#-overview)
|
||||||
@@ -418,6 +426,12 @@ Home page data — spotlight carousel, trending anime, top airing, and genre lis
|
|||||||
curl "https://anikato.vercel.app/api/"
|
curl "https://anikato.vercel.app/api/"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -486,6 +500,14 @@ Search anime by keyword with pagination.
|
|||||||
curl "https://anikato.vercel.app/api/search?keyword=one+piece"
|
curl "https://anikato.vercel.app/api/search?keyword=one+piece"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/search", {
|
||||||
|
params: { keyword: "one piece", page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -541,6 +563,14 @@ Search suggestions for autocomplete (returns max 10 results).
|
|||||||
curl "https://anikato.vercel.app/api/search/suggest?keyword=one+piece"
|
curl "https://anikato.vercel.app/api/search/suggest?keyword=one+piece"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/search/suggest", {
|
||||||
|
params: { keyword: "one piece" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -574,6 +604,14 @@ Detailed anime information including synopsis, genres, studios, and more.
|
|||||||
curl "https://anikato.vercel.app/api/info?id=one-piece-odmau"
|
curl "https://anikato.vercel.app/api/info?id=one-piece-odmau"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/info", {
|
||||||
|
params: { id: "one-piece-odmau" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -621,6 +659,14 @@ Complete watch page data — anime info, episode list, servers, trending, and re
|
|||||||
curl "https://anikato.vercel.app/api/watch?slug=one-piece-odmau&ep=1165"
|
curl "https://anikato.vercel.app/api/watch?slug=one-piece-odmau&ep=1165"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/watch", {
|
||||||
|
params: { slug: "one-piece-odmau", ep: 1165 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -678,6 +724,12 @@ Episode list for an anime (loaded via AJAX for accuracy).
|
|||||||
curl "https://anikato.vercel.app/api/episodes/one-piece-odmau"
|
curl "https://anikato.vercel.app/api/episodes/one-piece-odmau"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/episodes/one-piece-odmau");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -708,6 +760,12 @@ Raw AJAX episode list response from the source site. Returns HTML that contains
|
|||||||
curl "https://anikato.vercel.app/api/episodes-ajax/1642"
|
curl "https://anikato.vercel.app/api/episodes-ajax/1642"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/episodes-ajax/1642");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -735,6 +793,14 @@ Streaming server info — extracts video embed URL and skip data via AJAX. Requi
|
|||||||
curl "https://anikato.vercel.app/api/stream?id={linkId}"
|
curl "https://anikato.vercel.app/api/stream?id={linkId}"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/stream", {
|
||||||
|
params: { id: "yourLinkId" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -769,6 +835,14 @@ Server list for an episode — returns available streaming servers with their na
|
|||||||
curl "https://anikato.vercel.app/api/servers?ids={episodeIds}"
|
curl "https://anikato.vercel.app/api/servers?ids={episodeIds}"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/servers", {
|
||||||
|
params: { ids: "yourEpisodeIds" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -804,6 +878,14 @@ Mapper API — fetches additional streaming servers from gogoanime/anivibe via t
|
|||||||
curl "https://anikato.vercel.app/api/mapper-servers?malId=21&slug=one-piece×tamp=1717900000"
|
curl "https://anikato.vercel.app/api/mapper-servers?malId=21&slug=one-piece×tamp=1717900000"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/mapper-servers", {
|
||||||
|
params: { malId: 21, slug: "one-piece", timestamp: 1717900000 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -838,6 +920,12 @@ Top 10 anime rankings for day, week, and month.
|
|||||||
curl "https://anikato.vercel.app/api/top-ten"
|
curl "https://anikato.vercel.app/api/top-ten"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/top-ten");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -875,6 +963,12 @@ Spotlight carousel data — featured anime with posters, descriptions, and ratin
|
|||||||
curl "https://anikato.vercel.app/api/spotlight"
|
curl "https://anikato.vercel.app/api/spotlight"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/spotlight");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -917,6 +1011,12 @@ Trending anime — recently updated episodes with sub/dub counts.
|
|||||||
curl "https://anikato.vercel.app/api/trending"
|
curl "https://anikato.vercel.app/api/trending"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/trending");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -958,6 +1058,12 @@ Random anime — follows redirect to a random anime page and returns full info.
|
|||||||
curl "https://anikato.vercel.app/api/random"
|
curl "https://anikato.vercel.app/api/random"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/random");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -994,6 +1100,14 @@ Most popular anime with pagination — sorted by view count.
|
|||||||
curl "https://anikato.vercel.app/api/most-popular?page=1"
|
curl "https://anikato.vercel.app/api/most-popular?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/most-popular", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1045,6 +1159,14 @@ Newly released anime with pagination.
|
|||||||
curl "https://anikato.vercel.app/api/new-release?page=1"
|
curl "https://anikato.vercel.app/api/new-release?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/new-release", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1086,6 +1208,12 @@ Sidebar data — trending (day/week/month) + latest episodes for widget display.
|
|||||||
curl "https://anikato.vercel.app/api/trending-sidebar"
|
curl "https://anikato.vercel.app/api/trending-sidebar"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/trending-sidebar");
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1126,6 +1254,14 @@ Recently added anime with pagination.
|
|||||||
curl "https://anikato.vercel.app/api/newly-added?page=1"
|
curl "https://anikato.vercel.app/api/newly-added?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/newly-added", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1170,6 +1306,14 @@ Anime schedule for a specific date. Returns an array of anime airing on that dat
|
|||||||
curl "https://anikato.vercel.app/api/schedule?date=2026-06-08"
|
curl "https://anikato.vercel.app/api/schedule?date=2026-06-08"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/schedule", {
|
||||||
|
params: { date: "2026-06-08" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1224,6 +1368,14 @@ Advanced filtering with multiple criteria. Requires `keyword` parameter (use emp
|
|||||||
curl "https://anikato.vercel.app/api/filter?genre=action&type=tv&page=1"
|
curl "https://anikato.vercel.app/api/filter?genre=action&type=tv&page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/filter", {
|
||||||
|
params: { genre: "action", type: "tv", page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1262,6 +1414,14 @@ Browse anime by genre.
|
|||||||
curl "https://anikato.vercel.app/api/genre/action?page=1"
|
curl "https://anikato.vercel.app/api/genre/action?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/genre/action", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1307,6 +1467,14 @@ Browse anime by type.
|
|||||||
curl "https://anikato.vercel.app/api/type/movie?page=1"
|
curl "https://anikato.vercel.app/api/type/movie?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/type/movie", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1353,6 +1521,14 @@ Browse anime by airing status.
|
|||||||
curl "https://anikato.vercel.app/api/status/currently-airing?page=1"
|
curl "https://anikato.vercel.app/api/status/currently-airing?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/status/currently-airing", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1398,6 +1574,14 @@ Browse anime alphabetically.
|
|||||||
curl "https://anikato.vercel.app/api/az-list/a?page=1"
|
curl "https://anikato.vercel.app/api/az-list/a?page=1"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/az-list/a", {
|
||||||
|
params: { page: 1 }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1443,6 +1627,14 @@ Search suggestions for autocomplete (returns max 10 results).
|
|||||||
curl "https://anikato.vercel.app/api/suggestions?keyword=naruto"
|
curl "https://anikato.vercel.app/api/suggestions?keyword=naruto"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
```javascript
|
||||||
|
import axios from "axios";
|
||||||
|
const resp = await axios.get("https://anikato.vercel.app/api/suggestions", {
|
||||||
|
params: { keyword: "naruto" }
|
||||||
|
});
|
||||||
|
console.log(resp.data);
|
||||||
|
```
|
||||||
|
|
||||||
<details>
|
<details>
|
||||||
<summary>📄 Example Response</summary>
|
<summary>📄 Example Response</summary>
|
||||||
|
|
||||||
@@ -1550,6 +1742,12 @@ curl "https://anikato.vercel.app/api/suggestions?keyword=naruto"
|
|||||||
npx vercel --prod
|
npx vercel --prod
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### 🖥️ Render
|
||||||
|
|
||||||
|
Host your own instance of AniKatoAPI on Render.
|
||||||
|
|
||||||
|
[](https://render.com/deploy?repo=https://github.com/Shineii86/AniKatoAPI)
|
||||||
|
|
||||||
### 🖥️ Standalone Server
|
### 🖥️ Standalone Server
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|||||||
Reference in New Issue
Block a user