docs/index.md — Overview, quick start, features docs/endpoints.md — Full API reference (27 endpoints) docs/streaming.md — Streaming flow guide (3-step) docs/examples.md — cURL, JavaScript, Python, Node.js examples docs/architecture.md — Project structure, tech stack, design Also fixes streaming endpoints: - episodeList: Parse AJAX JSON, extract server_ids/timestamp/mal_id - streamInfo: Parse server list HTML into structured objects - streamInfo: Parse stream URL from JSON response
14 KiB
API Endpoints Reference
Complete documentation for all AniKotoAPI endpoints.
Base URL: https://anikototvapi.vercel.app/api
Table of Contents
- Home
- Search
- Search Suggestions
- Anime Info
- Episodes
- Episodes AJAX
- Watch Page
- Stream Info
- Server List
- Mapper Servers
- Schedule
- Spotlight
- Trending
- Top 10
- Most Popular
- New Release
- Newly Added
- Random
- Filter
- Suggestions
- Trending Sidebar
- Seasons
- Watch Order
- A-Z List
- Genre
- Type
- Status
Home
Get homepage data including spotlight, trending, popular, top-airing, genres, and more.
GET /api/
Parameters: None
Example:
curl https://anikototvapi.vercel.app/api
const res = await fetch("https://anikototvapi.vercel.app/api");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api")
data = r.json()
Response:
{
"success": true,
"results": {
"spotlight": [...],
"trending": [...],
"popular": [...],
"topAiring": [...],
"genres": [...]
}
}
Search
Search for anime by keyword with pagination.
GET /api/search
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keyword |
string | Yes | — | Search query |
page |
number | No | 1 | Page number |
Example:
curl "https://anikototvapi.vercel.app/api/search?keyword=naruto&page=1"
const res = await fetch("https://anikototvapi.vercel.app/api/search?keyword=naruto");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/search", params={"keyword": "naruto"})
data = r.json()
Response:
{
"success": true,
"results": {
"totalPages": 10,
"data": [
{
"title": "Naruto",
"id": "naruto-xxxxx",
"slug": "naruto-xxxxx/ep-1",
"image": "https://...",
"type": "TV",
"genres": ["Action", "Adventure"]
}
]
}
}
Search Suggestions
Get autocomplete suggestions for search queries.
GET /api/search/suggest
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
keyword |
string | Yes | Partial search query |
Example:
curl "https://anikototvapi.vercel.app/api/search/suggest?keyword=dea"
const res = await fetch("https://anikototvapi.vercel.app/api/search/suggest?keyword=dea");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/search/suggest", params={"keyword": "dea"})
data = r.json()
Response:
{
"success": true,
"results": [
{ "title": "Death Note", "slug": "death-note-xxxxx" },
{ "title": "Deadman Wonderland", "slug": "deadman-wonderland-xxxxx" }
]
}
Anime Info
Get detailed information about a specific anime.
GET /api/info
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Anime slug |
Example:
curl "https://anikototvapi.vercel.app/api/info?id=naruto-shippuden"
const res = await fetch("https://anikototvapi.vercel.app/api/info?id=naruto-shippuden");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/info", params={"id": "naruto-shippuden"})
data = r.json()
Response:
{
"success": true,
"results": {
"title": "Naruto: Shippuuden",
"japaneseTitle": "ナルト- 疾風伝",
"image": "https://...",
"synopsis": "...",
"type": "TV",
"status": "Finished Airing",
"totalEpisodes": 500,
"genres": ["Action", "Adventure"],
"malId": 1735,
"relations": [...],
"recommendations": [...]
}
}
Episodes
Get the episode list for an anime.
GET /api/episodes/:id
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Anime slug (path parameter) |
Example:
curl "https://anikototvapi.vercel.app/api/episodes/naruto-shippuden"
const res = await fetch("https://anikototvapi.vercel.app/api/episodes/naruto-shippuden");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/episodes/naruto-shippuden")
data = r.json()
Response:
{
"success": true,
"results": {
"animeId": 12345,
"slug": "naruto-shippuden",
"totalEpisodes": 500,
"episodes": [
{
"id": "110289",
"episode_no": 1,
"slug": "1",
"title": "",
"active": true,
"href": "#",
"server_ids": "SlNVT25...",
"timestamp": "1729249503",
"mal_id": "1735"
}
]
}
}
Episodes AJAX
Get the AJAX-loaded episode list (same data as episodes, but fetched via AJAX endpoint).
GET /api/episodes-ajax/:id
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Anime ID (numeric, from episodes response) |
Example:
curl "https://anikototvapi.vercel.app/api/episodes-ajax/12345"
Watch Page
Get watch page data for a specific episode.
GET /api/watch
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Anime slug |
ep |
number | No | Episode number |
Example:
curl "https://anikototvapi.vercel.app/api/watch?id=naruto-shippuden&ep=1"
Stream Info
Get the streaming URL and metadata for an episode server.
GET /api/stream
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
string | Yes | Server link ID (from servers response) |
Example:
curl "https://anikototvapi.vercel.app/api/stream?id=MTF1dkFtaW9..."
const res = await fetch("https://anikototvapi.vercel.app/api/stream?id=MTF1dkFtaW9...");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/stream", params={"id": "MTF1dkFtaW9..."})
data = r.json()
Response:
{
"success": true,
"results": {
"linkId": "MTF1dkFtaW9...",
"url": "https://megaplay.buzz/stream/s-5/94736/sub",
"skipData": {
"intro": [0, 0],
"outro": [0, 0]
}
}
}
Server List
Get available streaming servers for an episode.
GET /api/servers
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
ids |
string | Yes | Server IDs (from episodes response server_ids field) |
Example:
curl "https://anikototvapi.vercel.app/api/servers?ids=SlNVT25..."
const res = await fetch("https://anikototvapi.vercel.app/api/servers?ids=SlNVT25...");
const data = await res.json();
import requests
r = requests.get("https://anikototvapi.vercel.app/api/servers", params={"ids": "SlNVT25..."})
data = r.json()
Response:
{
"success": true,
"results": [
{
"type": "sub",
"ep_id": "110289",
"link_id": "MTF1dkFtaW9...",
"cmid": "animixplay-xxxxx",
"sv_id": "323",
"name": "HD-1"
},
{
"type": "sub",
"ep_id": "110289",
"link_id": "MTF1dkFtaW9...",
"cmid": "animixplay-xxxxx",
"sv_id": "e54",
"name": "Vidstream-2"
}
]
}
Mapper Servers
Get alternative streaming servers from the nekostream mapper API.
GET /api/mapper-servers
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
malId |
number | Yes | MyAnimeList ID |
slug |
string | Yes | Anime slug |
timestamp |
string | Yes | Episode timestamp |
Example:
curl "https://anikototvapi.vercel.app/api/mapper-servers?malId=1735&slug=naruto-shippuden×tamp=1729249503"
Response:
{
"success": true,
"results": [
{
"provider": "vidstreaming",
"type": "sub",
"url": "https://...",
"download": "https://..."
}
]
}
Schedule
Get anime airing schedule.
GET /api/schedule
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
date |
string | No | Today | Date in YYYY-MM-DD format |
Example:
curl "https://anikototvapi.vercel.app/api/schedule"
curl "https://anikototvapi.vercel.app/api/schedule?date=2026-06-08"
Spotlight
Get spotlight/featured anime carousel.
GET /api/spotlight
Parameters: None
Example:
curl "https://anikototvapi.vercel.app/api/spotlight"
Trending
Get currently trending anime.
GET /api/trending
Parameters: None
Example:
curl "https://anikototvapi.vercel.app/api/trending"
Top 10
Get top 10 ranked anime (today, week, month).
GET /api/top-ten
Parameters: None
Example:
curl "https://anikototvapi.vercel.app/api/top-ten"
Most Popular
Get most popular anime list.
GET /api/most-popular
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page |
number | No | 1 | Page number |
Example:
curl "https://anikototvapi.vercel.app/api/most-popular?page=1"
New Release
Get recently released episodes.
GET /api/new-release
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page |
number | No | 1 | Page number |
Example:
curl "https://anikototvapi.vercel.app/api/new-release"
Newly Added
Get newly added anime series.
GET /api/newly-added
Parameters:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
page |
number | No | 1 | Page number |
Example:
curl "https://anikototvapi.vercel.app/api/newly-added"
Random
Get random anime information.
GET /api/random
Parameters: None
Example:
curl "https://anikototvapi.vercel.app/api/random"
Filter
Filter anime by genre, type, status, season, and more.
GET /api/filter
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
keyword |
string | Yes | Search keyword (can be empty) |
genre[] |
number | No | Genre IDs (multiple supported) |
type[] |
number | No | Type IDs (multiple supported) |
status[] |
number | No | Status IDs (multiple supported) |
sort |
string | No | Sort order |
season |
string | No | Season |
page |
number | No | Page number |
Example:
curl "https://anikototvapi.vercel.app/api/filter?keyword=&genre[]=1&genre[]=4"
Suggestions
Get anime suggestions by keyword.
GET /api/suggestions
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
keyword |
string | Yes | Search keyword |
Example:
curl "https://anikototvapi.vercel.app/api/suggestions?keyword=naruto"
Trending Sidebar
Get trending sidebar widget data.
GET /api/trending-sidebar
Parameters: None
Example:
curl "https://anikototvapi.vercel.app/api/trending-sidebar"
Seasons
Get season information for an anime.
GET /api/seasons/:id
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
number | Yes | Anime ID (path parameter) |
Example:
curl "https://anikototvapi.vercel.app/api/seasons/12345"
Watch Order
Get recommended watch order for an anime.
GET /api/watch-order/:id
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
id |
number | Yes | Anime ID (path parameter) |
Example:
curl "https://anikototvapi.vercel.app/api/watch-order/12345"
A-Z List
Get anime listing alphabetically.
GET /api/az-list/:letter
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
letter |
string | Yes | Letter or "other" for non-alpha titles |
Example:
curl "https://anikototvapi.vercel.app/api/az-list/a"
curl "https://anikototvapi.vercel.app/api/az-list/other"
Genre
Get anime by genre.
GET /api/genre/:name
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Genre slug |
Available Genres:
action, adventure, cars, comedy, dementia, demons, drama, ecchi, fantasy, game, harem, historical, horror, isekai, josei, kids, magic, mahou-shoujo, martial-arts, mecha, military, music, mystery, parody, police, psychological, romance, samurai, school, sci-fi, seinen, shoujo, shoujo-ai, shounen, shounen-ai, slice-of-life, space, sports, super-power, supernatural, thriller, unknown, vampire
Example:
curl "https://anikototvapi.vercel.app/api/genre/action"
Type
Get anime by type.
GET /api/type/:name
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Type slug |
Available Types: movie, music, ona, ova, special, tv
Example:
curl "https://anikototvapi.vercel.app/api/type/tv"
Status
Get anime by airing status.
GET /api/status/:name
Parameters:
| Parameter | Type | Required | Description |
|---|---|---|---|
name |
string | Yes | Status slug |
Available Statuses: currently-airing, finished-airing, not-yet-aired
Example:
curl "https://anikototvapi.vercel.app/api/status/currently-airing"