Files
AniKotoAPI/docs
Shinei Nouzen 8f423bf39c docs: Complete documentation overhaul with live API data + bug fixes
Documentation (5800+ lines total):
- endpoints.md: All 43 endpoints documented with real response examples,
  param tables, response patterns, common workflows, error formats
- streaming.md: Complete streaming workflow guide with HLS.js/Plyr/Video.js
  integration, M3U8 proxy explanation, error handling
- examples.md: Working code examples in cURL, JS fetch, Python requests,
  Node.js axios, HTML/JS player integration (2240 lines)
- architecture.md: Full project structure, request flow diagrams, caching
  strategy, mirror failover, security, deployment notes
- index.md: Overview with quick start, feature highlights, endpoint tables

Bug fixes:
- episodeList.extractor: Parse JSON response before Cheerio (was passing
  raw JSON string as HTML, causing escaped quotes in IDs)
- episodeListAjax.extractor: Same JSON parsing fix
- topAnimeRankings.controller: Fix JSDoc and default sort from top to day
  (actual values are day/week/month, not top/newest)
- apiRoutes.js: Fix OpenAPI spec sort description for top-rankings

Tests: 35/35 passing
2026-07-30 08:28:51 +05:30
..

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. It's built with Node.js, Express, and Cheerio, and deployed on Vercel.

Base URL: https://anikototvapi.vercel.app/api

Quick Start

# 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:

{
  "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

Response Format

All endpoints return JSON in this format:

{
  "success": true,
  "results": { ... }
}

Error responses:

{
  "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.