mirror of
https://github.com/Shineii86/AniKotoAPI.git
synced 2026-10-22 10:55:10 +00:00
Code fixes: - seasons/watchOrder: Remove dead ternary (both branches identical) - mirror.helper: Remove redundant ternary (both branches identical) - topAnimeRankings: Fix JSDoc (day/week/month, not top/newest) - apiRoutes: Fix proxy domain validation (exact match, not includes) - apiRoutes: Fix proxy .m3u8 check (pathname, not hostname) - pagination: Fix totalItems calculation (was overestimating) - server.js: Remove dead has404File variable - server.js: Remove duplicate /api/cache/stats route - server.js: Remove unused getCacheStats import Unused imports removed: - animeInfo: URLS from dataUrl.js - episodeList: headers from header.config.js - episodeListAjax: axios - trending: URLS from dataUrl.js - trendingSidebar: URLS from dataUrl.js - upcomingAnime: parseListItems - watchPage: URLS, BASE_URL from dataUrl.js Docs fixes: - README: 33->38 endpoints, 24->28 controllers, 26->28 extractors - README: Cache TTL 5min->per-endpoint, Timeout 15s->30s - docs/index.md: 33->38 endpoints - architecture.md: LRU cache strategy, remove stale cookie-parser - agents: compression version, extractor/controller counts - agents: domain typo, stale CORS dep, version badge
104 lines
3.2 KiB
Markdown
104 lines
3.2 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=naruto-eybxz"
|
|
```
|
|
|
|
**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
|
|
|
|
- **38 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
|
|
- **Pagination Metadata** — All list endpoints include `pagination` object with `currentPage`, `totalPages`, `hasNext`, `hasPrev`
|
|
- **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
|
|
- [Testing](testing.md) — Integration test suite, auto-detection, and benchmarks
|
|
|
|
## 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.
|