Anime streaming API
AnimeDoc is an anime and movie streaming API with search, details and playback endpoints, plus a free site to watch anime online.
What the AnimeDoc API does
AnimeDoc gives your app one REST API for anime and movies: search the catalog, show title details and episode lists, and play episodes. You don't scrape anything or keep up with changing sites; you call documented endpoints with an API key.
- Search anime, animation, movies and series, with autocomplete suggestions.
- Details for a title: synopsis, cover art, genres, rating, dubs, seasons and episode counts.
- Media sources for an episode or movie: video files in several resolutions, plus subtitle tracks.
- Stream proxy that serves those videos with byte-range support, so
<video>and mobile players can seek.
Endpoints
| Endpoint | Method | Use it for |
|---|---|---|
| Home Feed | GET | Everything a streaming front page needs in one call: banners and ready-made catalog rows. |
| Section | GET | A ready-made page for one section (anime, movies, series, asian, bollywood, nollywood), or that section's filtered list. |
| Trending | GET | What most people are watching right now, across anime, movies and series. |
| Browse | GET | List a channel (movies, series or animation) sorted by latest, most popular or top rated, optionally by genre and country. |
| Search Suggestions | POST | Autocomplete: turn a partial keyword into likely search terms. |
| Search | POST | Full-text catalog search across anime, animation, movies and series, with pagination. |
| Details | GET | Full metadata for one title, plus its seasons and episode counts. |
| Media Sources | GET | Playable video URLs (several resolutions) and subtitle tracks for one episode or movie. |
| Stream Proxy | GET | Streams a Media Sources URL back through AnimeDoc, with byte-range support, so players can seek. |
Base URL: https://api.animedoc.cloud. Authentication: X-API-Key header. Full reference in the docs and the OpenAPI spec.
Code examples
JavaScript
const API = "https://api.animedoc.cloud/api/v2";
const headers = { "X-API-Key": process.env.ANIMEDOC_API_KEY, "Content-Type": "application/json" };
// 1. Search
const search = await fetch(`${API}/anime/search/`, {
method: "POST", headers,
body: JSON.stringify({ keyword: "jujutsu kaisen", page: 1, perPage: 5 }),
}).then((r) => r.json());
const title = search.data.items[0];
// 2. Seasons and episode counts
const detail = await fetch(`${API}/anime/detail/?detailPath=${title.detailPath}`, { headers }).then((r) => r.json());
console.log(detail.data.resource.seasons); // [{ se: 1, maxEp: 24 }, ...]
// 3. Playable sources for season 1, episode 1
const qs = new URLSearchParams({ subjectId: title.subjectId, detailPath: title.detailPath, se: 1, ep: 1 });
const media = await fetch(`${API}/anime/media-sources/?${qs}`, { headers }).then((r) => r.json());
const source = media.data.downloads.find((d) => d.url && !d.vipLocked);
console.log(source.resolution, source.url);Python
import os
import requests
API = "https://api.animedoc.cloud/api/v2"
s = requests.Session()
s.headers["X-API-Key"] = os.environ["ANIMEDOC_API_KEY"]
items = s.post(f"{API}/anime/search/", json={"keyword": "frieren", "perPage": 5}).json()["data"]["items"]
title = items[0]
detail = s.get(f"{API}/anime/detail/", params={"detailPath": title["detailPath"]}).json()["data"]
print(title["title"], detail["resource"]["seasons"])cURL
curl -X POST "https://api.animedoc.cloud/api/v2/anime/search/" \
-H "X-API-Key: $ANIMEDOC_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword": "demon slayer", "page": 1, "perPage": 5}'Who it's for
- Web apps: an anime streaming site or watchlist in React, Next.js or Vue. See the React tutorial.
- Mobile apps: React Native or Flutter players. See the React Native tutorial.
- Bots: search and episode lookups in Discord or Telegram.
- Movie apps: the same catalog covers movies and series, so it doubles as an anime movie API.
Plans and limits
| Plan | Requests / day | Requests / minute | Stream proxy | Price |
|---|---|---|---|---|
| Free | 20 | 10 | No | $0 |
| Starter | 3,000 | 60 | Yes | $12/month or $60/6 months |
| Pro | 20,000 | 300 | Yes | $22/month or $110/6 months |
| Business | 500,000+ | Custom | Yes | From $100/month |
| 3-Day Pass | 2,000 | 60 | Yes | $1 for 3 days |
Start free with no credit card: 20 requests a day is enough to build and test. Paid plans add the stream proxy, more requests and commercial use. See pricing.