mirror of
https://github.com/Shineii86/AniKotoAPI.git
synced 2026-10-22 02:45:10 +00:00
v1.7.0: Rebrand AniKatoAPI → AniKotoAPI
BREAKING: Complete project rebrand across 66 files - AniKatoAPI → AniKotoAPI (project name) - AniKato → AniKoto (brand references) - anikato.vercel.app → anikoto.vercel.app (URLs) - anikototv.to preserved (source website domain) - Updated: README, package.json, server.js, all controllers, extractors, configs, routes, public pages, legal docs
This commit is contained in:
@@ -5,6 +5,16 @@ 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/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [1.7.0] - 2026-06-08
|
||||
|
||||
### Changed
|
||||
- **BREAKING**: Rebranded entire project from `AniKatoAPI` to `AniKotoAPI`
|
||||
- Renamed all references across 50+ source files (controllers, extractors, configs, routes)
|
||||
- Updated README.md, package.json, server.js, all public pages
|
||||
- Updated GitHub repository URLs from `AniKatoAPI` to `AniKotoAPI`
|
||||
- Updated Vercel URLs from `anikato.vercel.app` to `anikoto.vercel.app`
|
||||
- Preserved `anikototv.to` domain references (source website, not project name)
|
||||
|
||||
## [1.6.0] - 2026-06-08
|
||||
|
||||
### Added
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
<div align="center">
|
||||
|
||||
<img src="https://capsule-render.vercel.app/api?type=waving&height=300&color=gradient&text=AniKatoAPI&fontAlignY=30&fontSize=90&desc=Real-Time%20Anime%20Streaming%20Data%20API&descSize=30" />
|
||||
<img src="https://capsule-render.vercel.app/api?type=waving&height=300&color=gradient&text=AniKotoAPI&fontAlignY=30&fontSize=90&desc=Real-Time%20Anime%20Streaming%20Data%20API&descSize=30" />
|
||||
|
||||
</div>
|
||||
|
||||
<p align="center">
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/stargazers"><img src="https://img.shields.io/github/stars/Shineii86/AniKatoAPI?style=for-the-badge&logo=github&color=f43f8e&logoColor=white" alt="Stars"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/network/members"><img src="https://img.shields.io/github/forks/Shineii86/AniKatoAPI?style=for-the-badge&logo=github&color=a855f7&logoColor=white" alt="Forks"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/issues"><img src="https://img.shields.io/github/issues/Shineii86/AniKatoAPI?style=for-the-badge&logo=github&color=7c3aed&logoColor=white" alt="Issues"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/pulls"><img src="https://img.shields.io/github/issues-pr/Shineii86/AniKatoAPI?style=for-the-badge&logo=github&color=ec4899&logoColor=white" alt="Pull Requests"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/commits"><img src="https://img.shields.io/github/last-commit/Shineii86/AniKatoAPI?style=for-the-badge&logo=github&color=6366f1&logoColor=white" alt="Last Commit"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Shineii86/AniKatoAPI?style=for-the-badge&logo=mit&color=22c55e&logoColor=white" alt="License"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/stargazers"><img src="https://img.shields.io/github/stars/Shineii86/AniKotoAPI?style=for-the-badge&logo=github&color=f43f8e&logoColor=white" alt="Stars"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/network/members"><img src="https://img.shields.io/github/forks/Shineii86/AniKotoAPI?style=for-the-badge&logo=github&color=a855f7&logoColor=white" alt="Forks"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/issues"><img src="https://img.shields.io/github/issues/Shineii86/AniKotoAPI?style=for-the-badge&logo=github&color=7c3aed&logoColor=white" alt="Issues"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/pulls"><img src="https://img.shields.io/github/issues-pr/Shineii86/AniKotoAPI?style=for-the-badge&logo=github&color=ec4899&logoColor=white" alt="Pull Requests"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/commits"><img src="https://img.shields.io/github/last-commit/Shineii86/AniKotoAPI?style=for-the-badge&logo=github&color=6366f1&logoColor=white" alt="Last Commit"/></a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Shineii86/AniKotoAPI?style=for-the-badge&logo=mit&color=22c55e&logoColor=white" alt="License"/></a>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -78,11 +78,11 @@
|
||||
|
||||
## 🌸 Overview
|
||||
|
||||
**AniKatoAPI** is a serverless anime data API that scrapes and serves real-time information from **anikototv.to** — including anime details, episode lists, streaming servers, search, filtering, rankings, and more — all through a clean REST API with zero database setup.
|
||||
**AniKotoAPI** is a serverless anime data API that scrapes and serves real-time information from **anikototv.to** — including anime details, episode lists, streaming servers, search, filtering, rankings, and more — all through a clean REST API with zero database setup.
|
||||
|
||||
> 💡 No database, no auth, no complex setup. Just deploy to Vercel and you have a production API.
|
||||
|
||||
### Why AniKatoAPI?
|
||||
### Why AniKotoAPI?
|
||||
|
||||
- 🎬 **24 Endpoints** — Complete coverage of anikototv.to data
|
||||
- 🔍 **Full-Text Search** — Search anime by keyword with suggestions
|
||||
@@ -202,11 +202,11 @@ flowchart TD
|
||||
|
||||
| Source | Domain | Status | Data |
|
||||
|:---|:---|:---|:---|
|
||||
| **AniKato** | `anikototv.to` | ✅ Active | Primary source |
|
||||
| **AniKato** | `anikoto.cz` | ✅ Active | Mirror domain |
|
||||
| **AniKato** | `anikoto.me` | ✅ Active | Mirror domain |
|
||||
| **AniKato** | `anikoto.net` | ✅ Active | Mirror domain |
|
||||
| **AniKato** | `anikoto.se` | ✅ Active | Mirror domain |
|
||||
| **AniKoto** | `anikototv.to` | ✅ Active | Primary source |
|
||||
| **AniKoto** | `anikoto.cz` | ✅ Active | Mirror domain |
|
||||
| **AniKoto** | `anikoto.me` | ✅ Active | Mirror domain |
|
||||
| **AniKoto** | `anikoto.net` | ✅ Active | Mirror domain |
|
||||
| **AniKoto** | `anikoto.se` | ✅ Active | Mirror domain |
|
||||
|
||||
### Data Available
|
||||
|
||||
@@ -288,7 +288,7 @@ flowchart TD
|
||||
## 📁 Project Structure
|
||||
|
||||
```
|
||||
AniKatoAPI/
|
||||
AniKotoAPI/
|
||||
├── 📂 public/ # 🌐 Static files
|
||||
│ ├── 📄 index.html # 📖 API documentation page
|
||||
│ └── 📄 404.html # ❌ Custom 404 error page
|
||||
@@ -354,8 +354,8 @@ AniKatoAPI/
|
||||
|
||||
```bash
|
||||
# 1️⃣ Clone the repository
|
||||
git clone https://github.com/Shineii86/AniKatoAPI.git
|
||||
cd AniKatoAPI
|
||||
git clone https://github.com/Shineii86/AniKotoAPI.git
|
||||
cd AniKotoAPI
|
||||
|
||||
# 2️⃣ Install dependencies
|
||||
npm install
|
||||
@@ -413,7 +413,7 @@ The `vercel.json` file handles:
|
||||
|
||||
### Base URL
|
||||
```
|
||||
https://anikato.vercel.app/api
|
||||
https://anikoto.vercel.app/api
|
||||
```
|
||||
|
||||
---
|
||||
@@ -433,12 +433,12 @@ https://anikato.vercel.app/api
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/"
|
||||
curl "https://anikoto.vercel.app/api/"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -485,12 +485,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/top-ten"
|
||||
curl "https://anikoto.vercel.app/api/top-ten"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/top-ten");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/top-ten");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -539,12 +539,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/search?keyword=one+piece"
|
||||
curl "https://anikoto.vercel.app/api/search?keyword=one+piece"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/search", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/search", {
|
||||
params: { keyword: "one piece", page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -585,12 +585,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/info?id=one-piece-odmau"
|
||||
curl "https://anikoto.vercel.app/api/info?id=one-piece-odmau"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/info", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/info", {
|
||||
params: { id: "one-piece-odmau" }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -643,12 +643,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/random"
|
||||
curl "https://anikoto.vercel.app/api/random"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/random");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/random");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -691,12 +691,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/schedule?date=2026-06-08"
|
||||
curl "https://anikoto.vercel.app/api/schedule?date=2026-06-08"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/schedule", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/schedule", {
|
||||
params: { date: "2026-06-08" }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -740,12 +740,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/episodes/one-piece-odmau"
|
||||
curl "https://anikoto.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");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/episodes/one-piece-odmau");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -783,12 +783,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/watch?slug=one-piece-odmau&ep=1165"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/watch", {
|
||||
params: { slug: "one-piece-odmau", ep: 1165 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -853,12 +853,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/servers?ids={episodeIds}"
|
||||
curl "https://anikoto.vercel.app/api/servers?ids={episodeIds}"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/servers", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/servers", {
|
||||
params: { ids: "yourEpisodeIds" }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -902,12 +902,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/mapper-servers?malId=21&slug=one-piece×tamp=1717900000"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/mapper-servers", {
|
||||
params: { malId: 21, slug: "one-piece", timestamp: 1717900000 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -946,12 +946,12 @@ Server list for an episode — returns available streaming servers with their na
|
||||
| `ids` | `string` | **required** | Episode IDs |
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/servers?ids={episodeIds}"
|
||||
curl "https://anikoto.vercel.app/api/servers?ids={episodeIds}"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/servers", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/servers", {
|
||||
params: { ids: "yourEpisodeIds" }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -989,12 +989,12 @@ Mapper API — fetches additional streaming servers from gogoanime/anivibe via t
|
||||
| `timestamp` | `number` | **required** | Current timestamp |
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/mapper-servers?malId=21&slug=one-piece×tamp=1717900000"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/mapper-servers", {
|
||||
params: { malId: 21, slug: "one-piece", timestamp: 1717900000 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1031,12 +1031,12 @@ console.log(resp.data);
|
||||
Top 10 anime rankings for day, week, and month.
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/top-ten"
|
||||
curl "https://anikoto.vercel.app/api/top-ten"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/top-ten");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/top-ten");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -1084,12 +1084,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/spotlight"
|
||||
curl "https://anikoto.vercel.app/api/spotlight"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/spotlight");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/spotlight");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -1150,12 +1150,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/trending"
|
||||
curl "https://anikoto.vercel.app/api/trending"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/trending");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/trending");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -1218,12 +1218,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/most-popular?page=1"
|
||||
curl "https://anikoto.vercel.app/api/most-popular?page=1"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/most-popular", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/most-popular", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1297,12 +1297,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/new-release?page=1"
|
||||
curl "https://anikoto.vercel.app/api/new-release?page=1"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/new-release", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/new-release", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1343,12 +1343,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/newly-added?page=1"
|
||||
curl "https://anikoto.vercel.app/api/newly-added?page=1"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/newly-added", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/newly-added", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1387,12 +1387,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/trending-sidebar"
|
||||
curl "https://anikoto.vercel.app/api/trending-sidebar"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/trending-sidebar");
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/trending-sidebar");
|
||||
console.log(resp.data);
|
||||
```
|
||||
|
||||
@@ -1446,12 +1446,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/genre/action?page=1"
|
||||
curl "https://anikoto.vercel.app/api/genre/action?page=1"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/genre/action", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/genre/action", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1491,12 +1491,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/type/movie?page=1"
|
||||
curl "https://anikoto.vercel.app/api/type/movie?page=1"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/type/movie", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/type/movie", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1549,12 +1549,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/status/currently-airing?page=1"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/status/currently-airing", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1606,12 +1606,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/az-list/a?page=1"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/az-list/a", {
|
||||
params: { page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1668,12 +1668,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/filter?genre=action&type=tv&page=1"
|
||||
curl "https://anikoto.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", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/filter", {
|
||||
params: { genre: "action", type: "tv", page: 1 }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1714,12 +1714,12 @@ console.log(resp.data);
|
||||
#### Example of request
|
||||
|
||||
```bash
|
||||
curl "https://anikato.vercel.app/api/suggestions?keyword=naruto"
|
||||
curl "https://anikoto.vercel.app/api/suggestions?keyword=naruto"
|
||||
```
|
||||
|
||||
```javascript
|
||||
import axios from "axios";
|
||||
const resp = await axios.get("https://anikato.vercel.app/api/suggestions", {
|
||||
const resp = await axios.get("https://anikoto.vercel.app/api/suggestions", {
|
||||
params: { keyword: "naruto" }
|
||||
});
|
||||
console.log(resp.data);
|
||||
@@ -1806,7 +1806,7 @@ console.log(resp.data);
|
||||
|
||||
### ▲ Vercel (Recommended)
|
||||
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/Shineii86/AniKatoAPI)
|
||||
[](https://vercel.com/new/clone?repository-url=https://github.com/Shineii86/AniKotoAPI)
|
||||
|
||||
1. Click the button above (or import manually on vercel.com)
|
||||
2. Vercel auto-detects the project — **no config needed**
|
||||
@@ -1819,16 +1819,16 @@ npx vercel --prod
|
||||
|
||||
### 🖥️ Render
|
||||
|
||||
Host your own instance of AniKatoAPI on Render.
|
||||
Host your own instance of AniKotoAPI on Render.
|
||||
|
||||
[](https://render.com/deploy?repo=https://github.com/Shineii86/AniKatoAPI)
|
||||
[](https://render.com/deploy?repo=https://github.com/Shineii86/AniKotoAPI)
|
||||
|
||||
### 🖥️ Standalone Server
|
||||
|
||||
```bash
|
||||
# Clone and install
|
||||
git clone https://github.com/Shineii86/AniKatoAPI.git
|
||||
cd AniKatoAPI && npm install
|
||||
git clone https://github.com/Shineii86/AniKotoAPI.git
|
||||
cd AniKotoAPI && npm install
|
||||
|
||||
# Start production server
|
||||
npm start
|
||||
@@ -1946,7 +1946,7 @@ Use <code>/api/filter</code> with query params. The <code>keyword</code> param i
|
||||
<details>
|
||||
<summary><b>📡 Can I use this in my frontend app?</b></summary>
|
||||
<br/>
|
||||
Yes! CORS is enabled for all origins (<code>*</code>). Just make fetch requests to the API endpoints. No API key needed. Example: <code>fetch('https://anikato.vercel.app/api/search?keyword=naruto')</code>
|
||||
Yes! CORS is enabled for all origins (<code>*</code>). Just make fetch requests to the API endpoints. No API key needed. Example: <code>fetch('https://anikoto.vercel.app/api/search?keyword=naruto')</code>
|
||||
</details>
|
||||
|
||||
<details>
|
||||
@@ -2018,7 +2018,7 @@ The API can access 10,000+ anime titles from anikototv.to. The most-popular endp
|
||||
### 🐛 Report Bugs
|
||||
Found something broken?
|
||||
|
||||
[Open an Issue](https://github.com/Shineii86/AniKatoAPI/issues)
|
||||
[Open an Issue](https://github.com/Shineii86/AniKotoAPI/issues)
|
||||
|
||||
</td>
|
||||
<td width="25%" align="center">
|
||||
@@ -2026,7 +2026,7 @@ Found something broken?
|
||||
### 💡 Suggest Features
|
||||
Have an idea?
|
||||
|
||||
[Start a Discussion](https://github.com/Shineii86/AniKatoAPI/issues)
|
||||
[Start a Discussion](https://github.com/Shineii86/AniKotoAPI/issues)
|
||||
|
||||
</td>
|
||||
<td width="25%" align="center">
|
||||
@@ -2034,7 +2034,7 @@ Have an idea?
|
||||
### 🔀 Submit PRs
|
||||
Ready to contribute code?
|
||||
|
||||
[Fork & Submit](https://github.com/Shineii86/AniKatoAPI/fork)
|
||||
[Fork & Submit](https://github.com/Shineii86/AniKotoAPI/fork)
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -2047,8 +2047,8 @@ Ready to contribute code?
|
||||
# Click the "Fork" button on GitHub
|
||||
|
||||
# 2️⃣ Clone your fork
|
||||
git clone https://github.com/YOUR_USERNAME/AniKatoAPI.git
|
||||
cd AniKatoAPI
|
||||
git clone https://github.com/YOUR_USERNAME/AniKotoAPI.git
|
||||
cd AniKotoAPI
|
||||
|
||||
# 3️⃣ Create a feature branch
|
||||
git checkout -b feature/amazing-feature
|
||||
@@ -2084,11 +2084,11 @@ git push origin feature/amazing-feature
|
||||
|
||||
| Source | About |
|
||||
|:---|:---|
|
||||
| [AniKato](https://anikototv.to) | Anime streaming site — primary data source |
|
||||
| [AniKato CZ](https://anikoto.cz) | Mirror domain |
|
||||
| [AniKato ME](https://anikoto.me) | Mirror domain |
|
||||
| [AniKato NET](https://anikoto.net) | Mirror domain |
|
||||
| [AniKato SE](https://anikoto.se) | Mirror domain |
|
||||
| [AniKoto](https://anikototv.to) | Anime streaming site — primary data source |
|
||||
| [AniKoto CZ](https://anikoto.cz) | Mirror domain |
|
||||
| [AniKoto ME](https://anikoto.me) | Mirror domain |
|
||||
| [AniKoto NET](https://anikoto.net) | Mirror domain |
|
||||
| [AniKoto SE](https://anikoto.se) | Mirror domain |
|
||||
|
||||
### 🛠️ Technologies
|
||||
|
||||
@@ -2123,7 +2123,7 @@ Free to use, modify, and distribute — see the [LICENSE](LICENSE) file for deta
|
||||
|
||||
<div align="center">
|
||||
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI">
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI">
|
||||
<img src="https://github.com/AniWaifuBot/Waifus/blob/main/Source/Banner.png" alt="Banner" width="100%" />
|
||||
</a>
|
||||
|
||||
@@ -2145,8 +2145,8 @@ Free to use, modify, and distribute — see the [LICENSE](LICENSE) file for deta
|
||||
## ⭐ Star History
|
||||
|
||||
<p align="center">
|
||||
<a href="https://star-history.com/#Shineii86/AniKatoAPI&Date">
|
||||
<img src="https://api.star-history.com/svg?repos=Shineii86/AniKatoAPI&type=Date" alt="Star History Chart" width="100%"/>
|
||||
<a href="https://star-history.com/#Shineii86/AniKotoAPI&Date">
|
||||
<img src="https://api.star-history.com/svg?repos=Shineii86/AniKotoAPI&type=Date" alt="Star History Chart" width="100%"/>
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "AniKatoAPI",
|
||||
"name": "AniKotoAPI",
|
||||
"version": "1.0.0",
|
||||
"description": "A restful API to provide all information about anime from anikototv.to",
|
||||
"main": "./server.js",
|
||||
@@ -24,6 +24,6 @@
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Shineii86/AniKatoAPI.git"
|
||||
"url": "https://github.com/Shineii86/AniKotoAPI.git"
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>404 — AniKatoAPI</title>
|
||||
<title>404 — AniKotoAPI</title>
|
||||
<meta name="theme-color" content="#0A0A12" />
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>⛩</text></svg>" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
@@ -48,7 +48,7 @@
|
||||
<div class="container">
|
||||
<div class="code"><span class="glitch" data-text="404">404</span></div>
|
||||
<div class="title">Endpoint Not Found</div>
|
||||
<div class="desc">The path you requested doesn't exist in the AniKatoAPI.<br/>Check the documentation or try a valid endpoint.</div>
|
||||
<div class="desc">The path you requested doesn't exist in the AniKotoAPI.<br/>Check the documentation or try a valid endpoint.</div>
|
||||
<div class="actions">
|
||||
<a href="/" class="btn btn-primary">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>
|
||||
@@ -58,7 +58,7 @@
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/></svg>
|
||||
API Status
|
||||
</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI#readme" target="_blank" class="btn btn-ghost">
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI#readme" target="_blank" class="btn btn-ghost">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||||
Docs
|
||||
</a>
|
||||
|
||||
+36
-36
@@ -3,10 +3,10 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>AniKatoAPI — Free Anime Data API</title>
|
||||
<title>AniKotoAPI — Free Anime Data API</title>
|
||||
<meta name="description" content="Free REST API for anime data. Browse, search, stream episodes. No API key required. Built with Node.js, Express, Cheerio." />
|
||||
<meta name="keywords" content="anime api, free api, rest api, anime data, streaming, episode servers, nodejs, express" />
|
||||
<meta property="og:title" content="AniKatoAPI — Free Anime Data API" />
|
||||
<meta property="og:title" content="AniKotoAPI — Free Anime Data API" />
|
||||
<meta property="og:description" content="Free REST API for anime data. Browse, search, stream episodes. No API key required." />
|
||||
<meta property="og:image" content="/og-image.svg" />
|
||||
<meta property="og:type" content="website" />
|
||||
@@ -254,14 +254,14 @@
|
||||
<div class="header-inner">
|
||||
<a href="/" class="logo">
|
||||
<svg viewBox="0 0 32 32" fill="none"><circle cx="16" cy="16" r="14" stroke="url(#g1)" stroke-width="2"/><path d="M10 20c0-4 3-7 6-7s6 3 6 7" stroke="url(#g1)" stroke-width="2" stroke-linecap="round"/><circle cx="12" cy="12" r="2" fill="var(--purple)"/><circle cx="20" cy="12" r="2" fill="var(--pink)"/><defs><linearGradient id="g1" x1="0" y1="0" x2="32" y2="32"><stop stop-color="var(--purple)"/><stop offset="1" stop-color="var(--pink)"/></linearGradient></defs></svg>
|
||||
<span class="logo-text"><span>AniKato</span>API</span>
|
||||
<span class="logo-text"><span>AniKoto</span>API</span>
|
||||
</a>
|
||||
<nav>
|
||||
<a href="#features">Features</a>
|
||||
<a href="#endpoints">Endpoints</a>
|
||||
<a href="#playground">Playground</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI" target="_blank">GitHub</a>
|
||||
<a href="https://anikato.vercel.app/api" target="_blank" class="nav-cta">Open API</a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI" target="_blank">GitHub</a>
|
||||
<a href="https://anikoto.vercel.app/api" target="_blank" class="nav-cta">Open API</a>
|
||||
</nav>
|
||||
</div>
|
||||
</header>
|
||||
@@ -270,13 +270,13 @@
|
||||
<section class="hero container">
|
||||
<div class="hero-badge"><span class="dot"></span> Free · No API key · Open source</div>
|
||||
<h1>The <span class="grad">Anime Data</span> API<br/>for Your Next Project</h1>
|
||||
<p class="hero-sub">Browse, search, and stream anime data from AniKato. Real-time scraping with 24+ endpoints, in-memory caching, and zero configuration.</p>
|
||||
<p class="hero-sub">Browse, search, and stream anime data from AniKoto. Real-time scraping with 24+ endpoints, in-memory caching, and zero configuration.</p>
|
||||
<div class="hero-actions">
|
||||
<a href="#playground" class="btn btn-primary">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polygon points="5 3 19 12 5 21 5 3"/></svg>
|
||||
Try It Live
|
||||
</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI" target="_blank" class="btn btn-ghost">
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI" target="_blank" class="btn btn-ghost">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||||
Star on GitHub
|
||||
</a>
|
||||
@@ -286,11 +286,11 @@
|
||||
<div class="console" id="heroConsole">
|
||||
<div class="console-bar">
|
||||
<span class="console-dot"></span><span class="console-dot"></span><span class="console-dot"></span>
|
||||
<span class="console-title">anikato.vercel.app — API Console</span>
|
||||
<span class="console-title">anikoto.vercel.app — API Console</span>
|
||||
</div>
|
||||
<div class="console-body">
|
||||
<textarea class="console-input" id="consoleInput" rows="6" spellcheck="false">// Fetch trending anime
|
||||
fetch("https://anikato.vercel.app/api")
|
||||
fetch("https://anikoto.vercel.app/api")
|
||||
.then(r => r.json())
|
||||
.then(data => {
|
||||
console.log(data.trending);
|
||||
@@ -408,7 +408,7 @@ fetch("https://anikato.vercel.app/api")
|
||||
API Reference
|
||||
</div>
|
||||
<h2 class="section-title">Endpoints</h2>
|
||||
<p class="section-desc">All endpoints return JSON. Base URL: <code style="color:var(--pink);background:rgba(236,72,153,.1);padding:2px 8px;border-radius:4px">https://anikato.vercel.app/api</code></p>
|
||||
<p class="section-desc">All endpoints return JSON. Base URL: <code style="color:var(--pink);background:rgba(236,72,153,.1);padding:2px 8px;border-radius:4px">https://anikoto.vercel.app/api</code></p>
|
||||
</div>
|
||||
|
||||
<div class="explorer reveal" id="explorer">
|
||||
@@ -494,14 +494,14 @@ fetch("https://anikato.vercel.app/api")
|
||||
<section class="cta">
|
||||
<div class="container">
|
||||
<div class="cta-box reveal">
|
||||
<h2 class="cta-title">Start building with AniKatoAPI</h2>
|
||||
<h2 class="cta-title">Start building with AniKotoAPI</h2>
|
||||
<p class="cta-desc">Free, open source, no API key required. Deploy your own instance or use ours.</p>
|
||||
<div class="cta-actions">
|
||||
<a href="https://anikato.vercel.app/api" target="_blank" class="btn btn-primary">
|
||||
<a href="https://anikoto.vercel.app/api" target="_blank" class="btn btn-primary">
|
||||
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" style="width:16px;height:16px"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>
|
||||
View API
|
||||
</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI" target="_blank" class="btn btn-ghost">
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI" target="_blank" class="btn btn-ghost">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor" style="width:16px;height:16px"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||||
Source Code
|
||||
</a>
|
||||
@@ -517,9 +517,9 @@ fetch("https://anikato.vercel.app/api")
|
||||
<div class="footer-brand">
|
||||
<a href="/" class="logo">
|
||||
<svg viewBox="0 0 32 32" fill="none" width="24" height="24"><circle cx="16" cy="16" r="14" stroke="url(#g2)" stroke-width="2"/><path d="M10 20c0-4 3-7 6-7s6 3 6 7" stroke="url(#g2)" stroke-width="2" stroke-linecap="round"/><circle cx="12" cy="12" r="2" fill="var(--purple)"/><circle cx="20" cy="12" r="2" fill="var(--pink)"/><defs><linearGradient id="g2" x1="0" y1="0" x2="32" y2="32"><stop stop-color="var(--purple)"/><stop offset="1" stop-color="var(--pink)"/></linearGradient></defs></svg>
|
||||
<span class="logo-text"><span>AniKato</span>API</span>
|
||||
<span class="logo-text"><span>AniKoto</span>API</span>
|
||||
</a>
|
||||
<p>Free REST API for anime data. Browse, search, and stream from AniKato. Built with Node.js and deployed on Vercel.</p>
|
||||
<p>Free REST API for anime data. Browse, search, and stream from AniKoto. Built with Node.js and deployed on Vercel.</p>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h4>API</h4>
|
||||
@@ -531,9 +531,9 @@ fetch("https://anikato.vercel.app/api")
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
<h4>Resources</h4>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI" target="_blank">GitHub</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI#readme" target="_blank">Documentation</a>
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI/blob/main/CHANGELOG.md" target="_blank">Changelog</a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI" target="_blank">GitHub</a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI#readme" target="_blank">Documentation</a>
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI/blob/main/CHANGELOG.md" target="_blank">Changelog</a>
|
||||
<a href="/api" target="_blank">API Status</a>
|
||||
</div>
|
||||
<div class="footer-col">
|
||||
@@ -543,9 +543,9 @@ fetch("https://anikato.vercel.app/api")
|
||||
</div>
|
||||
</div>
|
||||
<div class="footer-bottom">
|
||||
<span>© 2026 AniKatoAPI. Educational use only.</span>
|
||||
<span>© 2026 AniKotoAPI. Educational use only.</span>
|
||||
<div class="footer-social">
|
||||
<a href="https://github.com/Shineii86/AniKatoAPI" target="_blank" aria-label="GitHub">
|
||||
<a href="https://github.com/Shineii86/AniKotoAPI" target="_blank" aria-label="GitHub">
|
||||
<svg viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"/></svg>
|
||||
</a>
|
||||
</div>
|
||||
@@ -624,7 +624,7 @@ fetch("https://anikato.vercel.app/api")
|
||||
});
|
||||
|
||||
/* ── Console ── */
|
||||
const BASE = 'https://anikato.vercel.app/api';
|
||||
const BASE = 'https://anikoto.vercel.app/api';
|
||||
const endpoints = {
|
||||
home: { url: '/api', label: 'Home' },
|
||||
search: { url: '/api/search?keyword=naruto', label: 'Search' },
|
||||
@@ -663,21 +663,21 @@ fetch("https://anikato.vercel.app/api")
|
||||
|
||||
/* ── Explorer ── */
|
||||
const explorerData = [
|
||||
{ id: 'home', title: 'Home Info', desc: 'Spotlight, trending, popular, top-airing, genres, and more.', path: '/api', params: [], code: { curl: 'curl https://anikato.vercel.app/api', js: 'const res = await fetch("https://anikato.vercel.app/api");\nconst data = await res.json();\nconsole.log(data.trending);', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api")\nprint(r.json()["trending"])' } },
|
||||
{ id: 'search', title: 'Search', desc: 'Search anime by keyword with pagination.', path: '/api/search?keyword={q}&page={n}', params: [{ name: 'keyword', type: 'string', desc: 'Search query' }, { name: 'page', type: 'number', desc: 'Page (default 1)' }], code: { curl: 'curl "https://anikato.vercel.app/api/search?keyword=naruto"', js: 'const res = await fetch("https://anikato.vercel.app/api/search?keyword=naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/search", params={"keyword": "naruto"})\nprint(r.json())' } },
|
||||
{ id: 'suggest', title: 'Search Suggest', desc: 'Autocomplete suggestions for search.', path: '/api/search/suggest?keyword={q}', params: [{ name: 'keyword', type: 'string', desc: 'Partial query' }], code: { curl: 'curl "https://anikato.vercel.app/api/search/suggest?keyword=dea"', js: 'const res = await fetch("https://anikato.vercel.app/api/search/suggest?keyword=dea");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/search/suggest", params={"keyword": "dea"})\nprint(r.json())' } },
|
||||
{ id: 'info', title: 'Anime Info', desc: 'Detailed info: synopsis, genres, relations, recommendations.', path: '/api/info?id={slug}', params: [{ name: 'id', type: 'string', desc: 'Anime slug' }], code: { curl: 'curl "https://anikato.vercel.app/api/info?id=naruto"', js: 'const res = await fetch("https://anikato.vercel.app/api/info?id=naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/info", params={"id": "naruto"})\nprint(r.json())' } },
|
||||
{ id: 'episodes', title: 'Episodes', desc: 'Episode list loaded via AJAX.', path: '/api/episodes/{slug}', params: [{ name: 'slug', type: 'string', desc: 'Anime slug' }], code: { curl: 'curl "https://anikato.vercel.app/api/episodes/naruto"', js: 'const res = await fetch("https://anikato.vercel.app/api/episodes/naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/episodes/naruto")\nprint(r.json())' } },
|
||||
{ id: 'stream', title: 'Stream Servers', desc: 'Streaming servers for an episode.', path: '/api/stream?id={episodeId}', params: [{ name: 'id', type: 'string', desc: 'Episode ID' }], code: { curl: 'curl "https://anikato.vercel.app/api/stream?id=naruto-ep-1"', js: 'const res = await fetch("https://anikato.vercel.app/api/stream?id=naruto-ep-1");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/stream", params={"id": "naruto-ep-1"})\nprint(r.json())' } },
|
||||
{ id: 'servers', title: 'Servers', desc: 'Resolve streaming server links.', path: '/api/servers?ids={ids}', params: [{ name: 'ids', type: 'string', desc: 'Comma-separated link IDs' }], code: { curl: 'curl "https://anikato.vercel.app/api/servers?ids=123,456"', js: 'const res = await fetch("https://anikato.vercel.app/api/servers?ids=123,456");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/servers", params={"ids": "123,456"})\nprint(r.json())' } },
|
||||
{ id: 'schedule', title: 'Schedule', desc: 'Anime schedule for a specific date.', path: '/api/schedule?date={YYYY-MM-DD}', params: [{ name: 'date', type: 'string', desc: 'Date (default today)' }], code: { curl: 'curl "https://anikato.vercel.app/api/schedule"', js: 'const res = await fetch("https://anikato.vercel.app/api/schedule");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/schedule")\nprint(r.json())' } },
|
||||
{ id: 'topten', title: 'Top 10', desc: 'Top 10 anime (today, week, month).', path: '/api/top-ten', params: [], code: { curl: 'curl "https://anikato.vercel.app/api/top-ten"', js: 'const res = await fetch("https://anikato.vercel.app/api/top-ten");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/top-ten")\nprint(r.json())' } },
|
||||
{ id: 'random', title: 'Random', desc: 'Random anime info.', path: '/api/random', params: [], code: { curl: 'curl "https://anikato.vercel.app/api/random"', js: 'const res = await fetch("https://anikato.vercel.app/api/random");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/random")\nprint(r.json())' } },
|
||||
{ id: 'filter', title: 'Filter', desc: 'Filter by genre, type, status, season.', path: '/api/filter?keyword={q}&genre[]={g}', params: [{ name: 'keyword', type: 'string', desc: 'Search keyword (required)' }, { name: 'genre[]', type: 'number', desc: 'Genre IDs' }, { name: 'type[]', type: 'number', desc: 'Type IDs' }], code: { curl: 'curl "https://anikato.vercel.app/api/filter?keyword=&genre[]=1&genre[]=4"', js: 'const res = await fetch("https://anikato.vercel.app/api/filter?keyword=&genre[]=1");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/filter", params={"keyword": "", "genre[]": 1})\nprint(r.json())' } },
|
||||
{ id: 'popular', title: 'Most Popular', desc: 'Most popular anime list.', path: '/api/most-popular?page={n}', params: [{ name: 'page', type: 'number', desc: 'Page (default 1)' }], code: { curl: 'curl "https://anikato.vercel.app/api/most-popular"', js: 'const res = await fetch("https://anikato.vercel.app/api/most-popular");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/most-popular")\nprint(r.json())' } },
|
||||
{ id: 'genre', title: 'Genre', desc: 'Anime by genre.', path: '/api/genre/{name}', params: [{ name: 'name', type: 'string', desc: 'Genre slug (action, comedy, etc.)' }], code: { curl: 'curl "https://anikato.vercel.app/api/genre/action"', js: 'const res = await fetch("https://anikato.vercel.app/api/genre/action");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/genre/action")\nprint(r.json())' } },
|
||||
{ id: 'type', title: 'Type', desc: 'Anime by type.', path: '/api/type/{name}', params: [{ name: 'name', type: 'string', desc: 'Type (tv, movie, ova, etc.)' }], code: { curl: 'curl "https://anikato.vercel.app/api/type/tv"', js: 'const res = await fetch("https://anikato.vercel.app/api/type/tv");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/type/tv")\nprint(r.json())' } },
|
||||
{ id: 'status', title: 'Status', desc: 'Anime by status.', path: '/api/status/{name}', params: [{ name: 'name', type: 'string', desc: 'Status (currently-airing, finished-airing)' }], code: { curl: 'curl "https://anikato.vercel.app/api/status/currently-airing"', js: 'const res = await fetch("https://anikato.vercel.app/api/status/currently-airing");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikato.vercel.app/api/status/currently-airing")\nprint(r.json())' } },
|
||||
{ id: 'home', title: 'Home Info', desc: 'Spotlight, trending, popular, top-airing, genres, and more.', path: '/api', params: [], code: { curl: 'curl https://anikoto.vercel.app/api', js: 'const res = await fetch("https://anikoto.vercel.app/api");\nconst data = await res.json();\nconsole.log(data.trending);', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api")\nprint(r.json()["trending"])' } },
|
||||
{ id: 'search', title: 'Search', desc: 'Search anime by keyword with pagination.', path: '/api/search?keyword={q}&page={n}', params: [{ name: 'keyword', type: 'string', desc: 'Search query' }, { name: 'page', type: 'number', desc: 'Page (default 1)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/search?keyword=naruto"', js: 'const res = await fetch("https://anikoto.vercel.app/api/search?keyword=naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/search", params={"keyword": "naruto"})\nprint(r.json())' } },
|
||||
{ id: 'suggest', title: 'Search Suggest', desc: 'Autocomplete suggestions for search.', path: '/api/search/suggest?keyword={q}', params: [{ name: 'keyword', type: 'string', desc: 'Partial query' }], code: { curl: 'curl "https://anikoto.vercel.app/api/search/suggest?keyword=dea"', js: 'const res = await fetch("https://anikoto.vercel.app/api/search/suggest?keyword=dea");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/search/suggest", params={"keyword": "dea"})\nprint(r.json())' } },
|
||||
{ id: 'info', title: 'Anime Info', desc: 'Detailed info: synopsis, genres, relations, recommendations.', path: '/api/info?id={slug}', params: [{ name: 'id', type: 'string', desc: 'Anime slug' }], code: { curl: 'curl "https://anikoto.vercel.app/api/info?id=naruto"', js: 'const res = await fetch("https://anikoto.vercel.app/api/info?id=naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/info", params={"id": "naruto"})\nprint(r.json())' } },
|
||||
{ id: 'episodes', title: 'Episodes', desc: 'Episode list loaded via AJAX.', path: '/api/episodes/{slug}', params: [{ name: 'slug', type: 'string', desc: 'Anime slug' }], code: { curl: 'curl "https://anikoto.vercel.app/api/episodes/naruto"', js: 'const res = await fetch("https://anikoto.vercel.app/api/episodes/naruto");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/episodes/naruto")\nprint(r.json())' } },
|
||||
{ id: 'stream', title: 'Stream Servers', desc: 'Streaming servers for an episode.', path: '/api/stream?id={episodeId}', params: [{ name: 'id', type: 'string', desc: 'Episode ID' }], code: { curl: 'curl "https://anikoto.vercel.app/api/stream?id=naruto-ep-1"', js: 'const res = await fetch("https://anikoto.vercel.app/api/stream?id=naruto-ep-1");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/stream", params={"id": "naruto-ep-1"})\nprint(r.json())' } },
|
||||
{ id: 'servers', title: 'Servers', desc: 'Resolve streaming server links.', path: '/api/servers?ids={ids}', params: [{ name: 'ids', type: 'string', desc: 'Comma-separated link IDs' }], code: { curl: 'curl "https://anikoto.vercel.app/api/servers?ids=123,456"', js: 'const res = await fetch("https://anikoto.vercel.app/api/servers?ids=123,456");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/servers", params={"ids": "123,456"})\nprint(r.json())' } },
|
||||
{ id: 'schedule', title: 'Schedule', desc: 'Anime schedule for a specific date.', path: '/api/schedule?date={YYYY-MM-DD}', params: [{ name: 'date', type: 'string', desc: 'Date (default today)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/schedule"', js: 'const res = await fetch("https://anikoto.vercel.app/api/schedule");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/schedule")\nprint(r.json())' } },
|
||||
{ id: 'topten', title: 'Top 10', desc: 'Top 10 anime (today, week, month).', path: '/api/top-ten', params: [], code: { curl: 'curl "https://anikoto.vercel.app/api/top-ten"', js: 'const res = await fetch("https://anikoto.vercel.app/api/top-ten");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/top-ten")\nprint(r.json())' } },
|
||||
{ id: 'random', title: 'Random', desc: 'Random anime info.', path: '/api/random', params: [], code: { curl: 'curl "https://anikoto.vercel.app/api/random"', js: 'const res = await fetch("https://anikoto.vercel.app/api/random");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/random")\nprint(r.json())' } },
|
||||
{ id: 'filter', title: 'Filter', desc: 'Filter by genre, type, status, season.', path: '/api/filter?keyword={q}&genre[]={g}', params: [{ name: 'keyword', type: 'string', desc: 'Search keyword (required)' }, { name: 'genre[]', type: 'number', desc: 'Genre IDs' }, { name: 'type[]', type: 'number', desc: 'Type IDs' }], code: { curl: 'curl "https://anikoto.vercel.app/api/filter?keyword=&genre[]=1&genre[]=4"', js: 'const res = await fetch("https://anikoto.vercel.app/api/filter?keyword=&genre[]=1");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/filter", params={"keyword": "", "genre[]": 1})\nprint(r.json())' } },
|
||||
{ id: 'popular', title: 'Most Popular', desc: 'Most popular anime list.', path: '/api/most-popular?page={n}', params: [{ name: 'page', type: 'number', desc: 'Page (default 1)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/most-popular"', js: 'const res = await fetch("https://anikoto.vercel.app/api/most-popular");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/most-popular")\nprint(r.json())' } },
|
||||
{ id: 'genre', title: 'Genre', desc: 'Anime by genre.', path: '/api/genre/{name}', params: [{ name: 'name', type: 'string', desc: 'Genre slug (action, comedy, etc.)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/genre/action"', js: 'const res = await fetch("https://anikoto.vercel.app/api/genre/action");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/genre/action")\nprint(r.json())' } },
|
||||
{ id: 'type', title: 'Type', desc: 'Anime by type.', path: '/api/type/{name}', params: [{ name: 'name', type: 'string', desc: 'Type (tv, movie, ova, etc.)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/type/tv"', js: 'const res = await fetch("https://anikoto.vercel.app/api/type/tv");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/type/tv")\nprint(r.json())' } },
|
||||
{ id: 'status', title: 'Status', desc: 'Anime by status.', path: '/api/status/{name}', params: [{ name: 'name', type: 'string', desc: 'Status (currently-airing, finished-airing)' }], code: { curl: 'curl "https://anikoto.vercel.app/api/status/currently-airing"', js: 'const res = await fetch("https://anikoto.vercel.app/api/status/currently-airing");\nconst data = await res.json();', python: 'import requests\nr = requests.get("https://anikoto.vercel.app/api/status/currently-airing")\nprint(r.json())' } },
|
||||
];
|
||||
const navEl = document.getElementById('explorerNav');
|
||||
const panelEl = document.getElementById('explorerPanel');
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "AniKatoAPI",
|
||||
"short_name": "AniKatoAPI",
|
||||
"name": "AniKotoAPI",
|
||||
"short_name": "AniKotoAPI",
|
||||
"description": "Free REST API for anime data. Browse, search, stream episodes. No API key required.",
|
||||
"start_url": "/",
|
||||
"display": "standalone",
|
||||
|
||||
+2
-2
@@ -22,9 +22,9 @@
|
||||
<circle cx="950" cy="420" r="220" fill="url(#orb2)"/>
|
||||
<circle cx="600" cy="315" r="160" stroke="url(#grad)" stroke-width="3" fill="none" opacity="0.3"/>
|
||||
<circle cx="600" cy="315" r="120" stroke="url(#grad)" stroke-width="2" fill="none" opacity="0.15"/>
|
||||
<text x="600" y="280" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="900" font-size="72" fill="url(#grad)">AniKatoAPI</text>
|
||||
<text x="600" y="280" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="900" font-size="72" fill="url(#grad)">AniKotoAPI</text>
|
||||
<text x="600" y="340" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="500" font-size="24" fill="#94A3B8">Free Anime Data REST API</text>
|
||||
<text x="600" y="380" text-anchor="middle" font-family="monospace" font-weight="400" font-size="16" fill="#64748B">anikato.vercel.app/api</text>
|
||||
<text x="600" y="380" text-anchor="middle" font-family="monospace" font-weight="400" font-size="16" fill="#64748B">anikoto.vercel.app/api</text>
|
||||
<rect x="480" y="410" width="240" height="40" rx="20" fill="url(#grad)" opacity="0.9"/>
|
||||
<text x="600" y="436" text-anchor="middle" font-family="system-ui,sans-serif" font-weight="600" font-size="14" fill="#fff">No API Key Required</text>
|
||||
<circle cx="120" cy="540" r="4" fill="#A855F7" opacity="0.4"/>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.3 KiB |
+6
-6
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Privacy Policy — AniKatoAPI</title>
|
||||
<title>Privacy Policy — AniKotoAPI</title>
|
||||
<meta name="theme-color" content="#0A0A12" />
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>⛩</text></svg>" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
@@ -37,13 +37,13 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="ambient"><div class="orb orb-1"></div><div class="orb orb-2"></div></div>
|
||||
<header><div class="header-inner"><a href="/" class="logo">⛩ <span>AniKato</span>API</a></div></header>
|
||||
<header><div class="header-inner"><a href="/" class="logo">⛩ <span>AniKoto</span>API</a></div></header>
|
||||
<div class="content">
|
||||
<h1>Privacy Policy</h1>
|
||||
<div class="updated">Last updated: 2026-06-08</div>
|
||||
|
||||
<h2>1. Overview</h2>
|
||||
<p>AniKatoAPI ("the Service") is a free, open-source REST API that provides anime data by scraping publicly available information from anikototv.to and related domains. This Privacy Policy explains how we handle data when you use the Service.</p>
|
||||
<p>AniKotoAPI ("the Service") is a free, open-source REST API that provides anime data by scraping publicly available information from anikototv.to and related domains. This Privacy Policy explains how we handle data when you use the Service.</p>
|
||||
|
||||
<h2>2. Data We Collect</h2>
|
||||
<p>The Service is designed to be <strong>stateless and privacy-preserving</strong>. We do not collect, store, or process any personal data from API consumers.</p>
|
||||
@@ -56,7 +56,7 @@
|
||||
|
||||
<h2>3. Third-Party Data Sources</h2>
|
||||
<p>The Service scrapes data from <code>anikototv.to</code> and related domains. This data (anime titles, descriptions, images, episode information) belongs to the respective content owners. We do not claim ownership of this data.</p>
|
||||
<p>If you are a content owner and wish to have your data removed from this API, please open an issue on our <a href="https://github.com/Shineii86/AniKatoAPI" target="_blank">GitHub repository</a>.</p>
|
||||
<p>If you are a content owner and wish to have your data removed from this API, please open an issue on our <a href="https://github.com/Shineii86/AniKotoAPI" target="_blank">GitHub repository</a>.</p>
|
||||
|
||||
<h2>4. Data Storage</h2>
|
||||
<p>The Service uses a simple in-memory cache (5-minute TTL) to reduce repeated scraping. This cache is:</p>
|
||||
@@ -76,8 +76,8 @@
|
||||
<p>We may update this Privacy Policy from time to time. Changes will be posted on this page with an updated "Last updated" date.</p>
|
||||
|
||||
<h2>8. Contact</h2>
|
||||
<p>For questions about this Privacy Policy, open an issue at <a href="https://github.com/Shineii86/AniKatoAPI/issues" target="_blank">github.com/Shineii86/AniKatoAPI/issues</a>.</p>
|
||||
<p>For questions about this Privacy Policy, open an issue at <a href="https://github.com/Shineii86/AniKotoAPI/issues" target="_blank">github.com/Shineii86/AniKotoAPI/issues</a>.</p>
|
||||
</div>
|
||||
<footer>© 2026 AniKatoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/tos.html" style="color:var(--purple)">Terms</a></footer>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/tos.html" style="color:var(--purple)">Terms</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
# AniKatoAPI — https://anikato.vercel.app
|
||||
# AniKotoAPI — https://anikoto.vercel.app
|
||||
User-agent: *
|
||||
Allow: /
|
||||
Allow: /api
|
||||
|
||||
Sitemap: https://anikato.vercel.app/sitemap.xml
|
||||
Sitemap: https://anikoto.vercel.app/sitemap.xml
|
||||
+4
-4
@@ -1,25 +1,25 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<url>
|
||||
<loc>https://anikato.vercel.app/</loc>
|
||||
<loc>https://anikoto.vercel.app/</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://anikato.vercel.app/api</loc>
|
||||
<loc>https://anikoto.vercel.app/api</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://anikato.vercel.app/privacy.html</loc>
|
||||
<loc>https://anikoto.vercel.app/privacy.html</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>https://anikato.vercel.app/tos.html</loc>
|
||||
<loc>https://anikoto.vercel.app/tos.html</loc>
|
||||
<lastmod>2026-06-08</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
|
||||
+10
-10
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Terms of Service — AniKatoAPI</title>
|
||||
<title>Terms of Service — AniKotoAPI</title>
|
||||
<meta name="theme-color" content="#0A0A12" />
|
||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>⛩</text></svg>" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
@@ -38,22 +38,22 @@
|
||||
</head>
|
||||
<body>
|
||||
<div class="ambient"><div class="orb orb-1"></div><div class="orb orb-2"></div></div>
|
||||
<header><div class="header-inner"><a href="/" class="logo">⛩ <span>AniKato</span>API</a></div></header>
|
||||
<header><div class="header-inner"><a href="/" class="logo">⛩ <span>AniKoto</span>API</a></div></header>
|
||||
<div class="content">
|
||||
<h1>Terms of Service</h1>
|
||||
<div class="updated">Last updated: 2026-06-08</div>
|
||||
|
||||
<h2>1. Acceptance of Terms</h2>
|
||||
<p>By accessing or using AniKatoAPI ("the Service"), you agree to be bound by these Terms of Service. If you do not agree, do not use the Service.</p>
|
||||
<p>By accessing or using AniKotoAPI ("the Service"), you agree to be bound by these Terms of Service. If you do not agree, do not use the Service.</p>
|
||||
|
||||
<h2>2. Description of Service</h2>
|
||||
<p>AniKatoAPI is a free, open-source REST API that aggregates anime data from publicly available sources. The Service is provided "as is" without warranties of any kind.</p>
|
||||
<p>AniKotoAPI is a free, open-source REST API that aggregates anime data from publicly available sources. The Service is provided "as is" without warranties of any kind.</p>
|
||||
|
||||
<h2>3. Educational Purpose</h2>
|
||||
<p>The Service is built and maintained for <strong>educational and learning purposes only</strong>. It demonstrates web scraping, API design, and serverless deployment techniques.</p>
|
||||
|
||||
<h2>4. No Affiliation</h2>
|
||||
<p>The Service is <strong>not affiliated with, endorsed by, or connected to</strong> anikototv.to, AniKato, or any of its subsidiaries or affiliates. All trademarks and content belong to their respective owners.</p>
|
||||
<p>The Service is <strong>not affiliated with, endorsed by, or connected to</strong> anikototv.to, AniKoto, or any of its subsidiaries or affiliates. All trademarks and content belong to their respective owners.</p>
|
||||
|
||||
<h2>5. Third-Party Content</h2>
|
||||
<p>All anime data, images, descriptions, and other content displayed through the API belong to their respective copyright holders. The Service does not host, store, or distribute any copyrighted media.</p>
|
||||
@@ -75,20 +75,20 @@
|
||||
<p>The Service is hosted on Vercel's free tier and may experience downtime. We do not guarantee 100% availability. The Service may be modified, updated, or discontinued at any time without notice.</p>
|
||||
|
||||
<h2>9. Limitation of Liability</h2>
|
||||
<p>In no event shall the creators of AniKatoAPI be liable for any indirect, incidental, special, consequential, or punitive damages arising from your use of the Service.</p>
|
||||
<p>In no event shall the creators of AniKotoAPI be liable for any indirect, incidental, special, consequential, or punitive damages arising from your use of the Service.</p>
|
||||
|
||||
<h2>10. Intellectual Property</h2>
|
||||
<p>The source code of AniKatoAPI is open source and available on <a href="https://github.com/Shineii86/AniKatoAPI" target="_blank">GitHub</a> under the repository's license terms.</p>
|
||||
<p>The source code of AniKotoAPI is open source and available on <a href="https://github.com/Shineii86/AniKotoAPI" target="_blank">GitHub</a> under the repository's license terms.</p>
|
||||
|
||||
<h2>11. DMCA / Takedowns</h2>
|
||||
<p>If you believe your copyrighted content is being displayed through this API without authorization, please open an issue at <a href="https://github.com/Shineii86/AniKatoAPI/issues" target="_blank">github.com/Shineii86/AniKatoAPI/issues</a> and we will promptly remove it.</p>
|
||||
<p>If you believe your copyrighted content is being displayed through this API without authorization, please open an issue at <a href="https://github.com/Shineii86/AniKotoAPI/issues" target="_blank">github.com/Shineii86/AniKotoAPI/issues</a> and we will promptly remove it.</p>
|
||||
|
||||
<h2>12. Changes to Terms</h2>
|
||||
<p>We reserve the right to modify these Terms at any time. Changes will be posted on this page with an updated "Last updated" date.</p>
|
||||
|
||||
<h2>13. Contact</h2>
|
||||
<p>For questions about these Terms, open an issue at <a href="https://github.com/Shineii86/AniKatoAPI/issues" target="_blank">github.com/Shineii86/AniKatoAPI/issues</a>.</p>
|
||||
<p>For questions about these Terms, open an issue at <a href="https://github.com/Shineii86/AniKotoAPI/issues" target="_blank">github.com/Shineii86/AniKotoAPI/issues</a>.</p>
|
||||
</div>
|
||||
<footer>© 2026 AniKatoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/privacy.html" style="color:var(--purple)">Privacy</a></footer>
|
||||
<footer>© 2026 AniKotoAPI · <a href="/" style="color:var(--purple)">Home</a> · <a href="/privacy.html" style="color:var(--purple)">Privacy</a></footer>
|
||||
</body>
|
||||
</html>
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
services:
|
||||
- type: web
|
||||
name: AniKatoAPI
|
||||
name: AniKotoAPI
|
||||
env: node
|
||||
buildCommand: npm install
|
||||
startCommand: npm start
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — server.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — server.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Main entry point for the AniKatoAPI Express server.
|
||||
* Main entry point for the AniKotoAPI Express server.
|
||||
* Configures CORS, middleware, static files, API routes,
|
||||
* and 404 handling. Starts the server on the configured port.
|
||||
*
|
||||
@@ -125,7 +125,7 @@ app.use((req, res) => {
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
|
||||
app.listen(PORT, () => {
|
||||
console.info(`AniKatoAPI listening at ${PORT}`);
|
||||
console.info(`AniKotoAPI listening at ${PORT}`);
|
||||
});
|
||||
|
||||
// ══════════════════════════════════════════════════════════════ END: server.js
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — dataUrl.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — dataUrl.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Central configuration file defining all URL patterns for the AniKato
|
||||
* Central configuration file defining all URL patterns for the AniKoto
|
||||
* anime streaming site. Provides both base domain and alternative
|
||||
* mirror domains for resilience and fallback purposes.
|
||||
*
|
||||
@@ -20,9 +20,9 @@
|
||||
// BASE DOMAIN CONFIGURATION
|
||||
// ══════════════════════════════════════════════════════════════
|
||||
|
||||
// ---- FEATURE: Primary base URL for the AniKato streaming service ----
|
||||
// ---- FEATURE: Primary base URL for the AniKoto streaming service ----
|
||||
/**
|
||||
* The primary base URL used for all API requests to AniKato.
|
||||
* The primary base URL used for all API requests to AniKoto.
|
||||
* This serves as the canonical domain for the site.
|
||||
*
|
||||
* @type {string}
|
||||
@@ -32,7 +32,7 @@ const BASE_URL = "https://anikototv.to";
|
||||
|
||||
// ---- FEATURE: Alternative mirror domains for fallback and redundancy ----
|
||||
/**
|
||||
* Array of alternative domain mirrors for the AniKato site.
|
||||
* Array of alternative domain mirrors for the AniKoto site.
|
||||
* Used when the primary domain is unavailable or blocked.
|
||||
* Each domain points to the same content but may have different
|
||||
* availability depending on region or network conditions.
|
||||
@@ -56,7 +56,7 @@ const ALT_DOMAINS = [
|
||||
|
||||
// ---- FEATURE: Complete URL routing map for all site endpoints ----
|
||||
/**
|
||||
* Object containing all URL patterns for the AniKato site.
|
||||
* Object containing all URL patterns for the AniKoto site.
|
||||
* Functions return dynamically constructed URLs based on parameters.
|
||||
* Static URLs are provided as string properties.
|
||||
*
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — header.config.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — header.config.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* HTTP request header configuration for making API calls to the
|
||||
* AniKato streaming site. Includes browser-like headers to
|
||||
* AniKoto streaming site. Includes browser-like headers to
|
||||
* mimic legitimate web traffic and avoid detection.
|
||||
*
|
||||
* @exports
|
||||
@@ -24,7 +24,7 @@
|
||||
/**
|
||||
* Standard HTTP headers that mimic a real browser request.
|
||||
* Used with axios/fetch to make requests appear as legitimate
|
||||
* browser traffic to the AniKato streaming site.
|
||||
* browser traffic to the AniKoto streaming site.
|
||||
*
|
||||
* @type {Object}
|
||||
* @property {string} User-Agent - Browser identification string
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — ids.config.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — ids.config.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Mapping configuration for anime metadata IDs used by the AniKato
|
||||
* Mapping configuration for anime metadata IDs used by the AniKoto
|
||||
* site's filtering system. Contains human-readable slugs mapped
|
||||
* to numeric IDs for genres, types, statuses, ratings, and sort options.
|
||||
*
|
||||
@@ -23,7 +23,7 @@
|
||||
// ---- FEATURE: Genre slug to numeric ID mapping ----
|
||||
/**
|
||||
* Maps human-readable genre slugs to their corresponding numeric IDs
|
||||
* used in AniKato's filtering system. Contains 43 different anime genres
|
||||
* used in AniKoto's filtering system. Contains 43 different anime genres
|
||||
* from action to vampire.
|
||||
*
|
||||
* @type {Object}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — animeInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — animeInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for anime detail information. Extracts full anime
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — azList.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — azList.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for alphabetical anime listing. Returns anime
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — category.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — category.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for category-based anime filtering. Handles genre,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — episodeList.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — episodeList.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for fetching the episode list of a specific anime.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — episodeListAjax.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — episodeListAjax.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for AJAX-loaded episode list data. Provides additional
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — filter.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — filter.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for advanced anime filtering. Accepts multiple query
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — homeInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — homeInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for the homepage data endpoint. Extracts featured
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — newRelease.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — newRelease.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for new release and newly added anime. Provides
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — popular.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — popular.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for most popular anime list. Returns paginated list
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — random.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — random.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for random anime recommendation. Returns a single
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — schedule.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — schedule.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for anime airing schedule. Returns anime episodes
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — search.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — search.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for search functionality. Provides both full search
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — seasons.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — seasons.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for anime season information. Returns season data
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — spotlight.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — spotlight.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for spotlight/featured anime carousel data.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — status.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — status.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for anime filtering by airing status. Returns anime
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — streamInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — streamInfo.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for streaming information. Provides stream URLs,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — suggestion.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — suggestion.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for anime suggestions/autocomplete. Returns a list
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — topten.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — topten.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for top 10 ranked anime. Returns the current top 10
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — trending.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — trending.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for currently trending anime data. Returns a list
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — trendingSidebar.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — trendingSidebar.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for trending sidebar widget data. Returns trending
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — watchOrder.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — watchOrder.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for recommended watch order. Returns the optimal
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — watchPage.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — watchPage.controller.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Controller for the watch page endpoint. Returns episode
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — animeInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — animeInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts detailed anime information from anikototv.to including title,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — azList.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — azList.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts anime from A-Z listing pages with pagination.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — category.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — category.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts anime filtered by category (genre, type, status, etc.).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — episodeList.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — episodeList.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts the full episode list for a given anime from anikototv.to.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — episodeListAjax.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — episodeListAjax.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Low-level AJAX extractor for fetching raw episode list HTML from
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — filter.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — filter.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Provides advanced anime filtering on anikototv.to — supports filtering
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — homeInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — homeInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts homepage data from anikototv.to including spotlight carousel,
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — newRelease.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — newRelease.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts newly released and newly added anime with pagination.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — popular.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — popular.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts most viewed/popular anime with pagination support.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — random.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — random.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Fetches a random anime from anikototv.to by following the redirect
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — schedule.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — schedule.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts anime schedule for a specific date.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — search.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — search.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Provides search functionality for anikototv.to — supports paginated
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — seasons.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — seasons.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts season information for a specific anime via API.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — spotlight.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — spotlight.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts spotlight/featured anime items from the homepage.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — status.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — status.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts anime filtered by status (ongoing, completed, etc.).
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — streamInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — streamInfo.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Handles server/stream resolution for episodes — fetches individual
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — suggestion.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — suggestion.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts search suggestions/autocomplete results for a keyword.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — topten.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — topten.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts top 10 anime rankings from the homepage.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — trending.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — trending.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts trending and recently updated anime from the homepage.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — trendingSidebar.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — trendingSidebar.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts trending sidebar data including top anime rankings
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — watchOrder.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — watchOrder.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts watch order information for a specific anime via API.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — watchPage.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — watchPage.extractor.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Extracts the full watch/episode page data from anikototv.to including
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — cache.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — cache.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* In-memory caching utility for storing and retrieving API responses.
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — countPages.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — countPages.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Utility function to extract total page count from paginated
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — extractPages.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — extractPages.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* HTTP client utility for fetching and parsing HTML content from
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — formatTitle.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — formatTitle.helper.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* String utility function for normalizing anime titles into
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — apiRoutes.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — apiRoutes.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Central API router that maps all Express GET endpoints to their
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* ======= • ======= • ======= • ======= • =======• =======
|
||||
* AniKatoAPI — category.route.js
|
||||
* Repository: https://github.com/Shineii86/AniKatoAPI
|
||||
* AniKotoAPI — category.route.js
|
||||
* Repository: https://github.com/Shineii86/AniKotoAPI
|
||||
*
|
||||
* @description
|
||||
* Defines category-based API routes for genre, type, and status
|
||||
|
||||
Reference in New Issue
Block a user