mirror of
https://github.com/Shineii86/AniKotoAPI.git
synced 2026-10-22 19:05:11 +00:00
- Add multi-mirror fallback system with 5 mirror domains - Add LRU cache with configurable TTL per endpoint - Add response compression (gzip) - Add Seasons endpoint (/api/seasons/:id) - Add Watch Order endpoint (/api/watch-order/:id) - Add Latest Updated endpoint (/api/latest-updated) - Add Download endpoint (/api/download) - Add cache stats endpoint (/api/cache/stats) - Add mirror status/reset endpoints (/api/mirrors, /api/mirrors/reset) - Add configurable rate limiting with X-RateLimit headers - Add request timeouts and entity too large handling - Update documentation with all new endpoints - Update CHANGELOG.md with v2.0.0 entry - Update package.json version to 2.0.0 - Add 6 AI agent prompts for development
102 lines
3.0 KiB
Markdown
102 lines
3.0 KiB
Markdown
# AniKotoAPI Documentation
|
|
|
|
> Free REST API for anime data. Browse, search, stream — no API key required.
|
|
|
|
## Overview
|
|
|
|
AniKotoAPI is a free, open-source REST API that provides anime data scraped from [anikototv.to](https://anikototv.to). It's built with Node.js, Express, and Cheerio, and deployed on Vercel.
|
|
|
|
**Base URL:** `https://anikototvapi.vercel.app/api`
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Get homepage data (spotlight, trending, top-airing, genres)
|
|
curl https://anikototvapi.vercel.app/api
|
|
|
|
# Search for anime
|
|
curl "https://anikototvapi.vercel.app/api/search?keyword=naruto"
|
|
|
|
# Get anime info
|
|
curl "https://anikototvapi.vercel.app/api/info?id=road-of-naruto-ggjw8"
|
|
```
|
|
|
|
**Live Response — Homepage:**
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"results": {
|
|
"spotlights": [
|
|
{
|
|
"slug": "wistoria-wand-and-sword-season-2-dua04",
|
|
"poster": "https://cdn.anipixcdn.co/background/101f58336250ee0d_1779363645.webp",
|
|
"title": "Wistoria: Wand and Sword Season 2",
|
|
"japaneseTitle": "Tsue to Tsurugi no Wistoria Season 2",
|
|
"rating": "PG-13",
|
|
"quality": "HD"
|
|
}
|
|
],
|
|
"trending": [
|
|
{
|
|
"slug": "witch-hat-atelier-ikmut/ep-11",
|
|
"poster": "https://cdn.anipixcdn.co/thumbnail/0412057393e8a45b3ba8b16874b6034d.jpg",
|
|
"title": "Witch Hat Atelier",
|
|
"japaneseTitle": "Tongari Boushi no Atelier",
|
|
"sub": 11,
|
|
"dub": 11,
|
|
"total": 13,
|
|
"type": "TV"
|
|
}
|
|
],
|
|
"topAiring": [...],
|
|
"genres": ["Action", "Adventure", "Cars", "Comedy", ...]
|
|
}
|
|
}
|
|
```
|
|
|
|
## Features
|
|
|
|
- **33 Endpoints** — Home, search, info, episodes, streaming, schedule, seasons, watch order, download, and more
|
|
- **No API Key** — Just make requests, no registration needed
|
|
- **LRU Cache** — Configurable TTL per endpoint type (3min to 60min)
|
|
- **Multi-Mirror Fallback** — Automatic failover across 5 mirror domains
|
|
- **Response Compression** — Gzip compression for faster responses
|
|
- **CORS Enabled** — Access from any domain
|
|
- **JSON Responses** — Standardized `{success, results}` format
|
|
|
|
## Documentation
|
|
|
|
- [API Endpoints Reference](endpoints.md) — Complete endpoint documentation with real responses
|
|
- [Streaming Flow Guide](streaming.md) — How to get stream URLs step by step
|
|
- [Code Examples](examples.md) — cURL, JavaScript, Python (all tested and working)
|
|
- [Architecture](architecture.md) — Project structure and design decisions
|
|
|
|
## Response Format
|
|
|
|
All endpoints return JSON in this format:
|
|
|
|
```json
|
|
{
|
|
"success": true,
|
|
"results": { ... }
|
|
}
|
|
```
|
|
|
|
Error responses:
|
|
|
|
```json
|
|
{
|
|
"success": false,
|
|
"message": "Error description"
|
|
}
|
|
```
|
|
|
|
## Rate Limiting
|
|
|
|
Rate limiting is configurable via environment variables (`RATE_LIMIT`, `RATE_WINDOW`). Default is 100 requests per 60 seconds per IP. Includes `X-RateLimit-Limit` and `X-RateLimit-Remaining` headers.
|
|
|
|
## Disclaimer
|
|
|
|
This API is for **educational purposes only**. It scrapes publicly available data from anikototv.to. We are not affiliated with or endorsed by AniKoto. All content belongs to its respective owners.
|