GET /api/v2/anime/browse/

Browse

List a channel (movies, series or animation) sorted by latest, most popular or top rated, optionally by genre and country.

Overview

The building block for catalog pages and "latest" rows. channelId: 1 = movies, 2 = series, 1006 = animation. sort: Latest, Hottest or Rating. genre narrows it, e.g. Anime. Examples: newest anime channelId=2&genre=Anime&sort=Latest; anime movies channelId=1&genre=Anime; most popular movies channelId=1&sort=Hottest; top rated anime channelId=2&genre=Anime&sort=Rating; Bollywood channelId=1&country=India; Nollywood channelId=1&country=Nigeria; K-drama channelId=2&country=Korea.

GET https://api.animedoc.cloud/api/v2/anime/browse/
X-API-Key: <your key>

Parameters

NameInTypeRequiredDefaultDescription
channelIdqueryintegerno21 = movies, 2 = series, 1006 = animation.
sortquerystringnoLatestLatest, Hottest or Rating.
genrequerystringno—Optional genre filter, e.g. Anime, Action, Comedy, Horror.
countryquerystringno—Optional country filter: India (Bollywood), Nigeria (Nollywood), United States (Hollywood), Korea (K-drama)...
pagequeryintegerno1Page number, starting at 1.
perPagequeryintegerno24Items per page (max 48).

Example request

cURL
curl "https://api.animedoc.cloud/api/v2/anime/browse/?channelId=2&sort=Latest&genre=Anime&page=1&perPage=24" \
  -H "X-API-Key: $ANIMEDOC_API_KEY"
JavaScript (Node 18+)
const params = new URLSearchParams({"channelId":"2","sort":"Latest","genre":"Anime","page":"1","perPage":"24"});
const res = await fetch("https://api.animedoc.cloud/api/v2/anime/browse/?" + params, {
  headers: { "X-API-Key": process.env.ANIMEDOC_API_KEY },
});
const { data } = await res.json();
console.log(data);
Python
import os
import requests

res = requests.get(
    "https://api.animedoc.cloud/api/v2/anime/browse/",
    params={"channelId":2,"sort":"Latest","genre":"Anime","page":1,"perPage":24},
    headers={"X-API-Key": os.environ["ANIMEDOC_API_KEY"]},
    timeout=15,
)
res.raise_for_status()
print(res.json()["data"])

Example response

{
  "code": 0,
  "message": "ok",
  "data": {
    "pager": { "page": 1, "hasMore": true },
    "items": [
      {
        "subjectId": "3325889774849773352",
        "subjectType": 2,
        "title": "Naruto",
        "detailPath": "naruto-2D7JgAQBGX3",
        "cover": "https://pbcdnw.aoneroom.com/image/.../naruto.jpg?x-oss-process=image/resize,w_360",
        "genre": "Anime,Action,Adventure",
        "releaseDate": "2005-09-10",
        "rating": "8.4",
        "country": "Japan"
      }
    ]
  }
}

Error codes

StatusBodyWhat it means
400{"error": "Missing detailPath query parameter"}A required parameter is missing or invalid.
401{"detail": "An API key is required. Send it as the X-API-Key header. ..."}No X-API-Key header, or the key doesn't exist (Invalid API key). Every catalog endpoint needs a key; get a free one at /docs/pricing.
403{"detail": "Playback through the API needs a paid plan ..."}Your plan doesn't include this endpoint. The stream proxy needs a paid plan.
404{"error": "No playable source is available ..."}The title or episode doesn't exist, or has no playable source right now.
429{"error": "rate_limit_exceeded"} or {"error": "daily_quota_exceeded"}Over your plan's requests per minute or per day. Wait Retry-After seconds, or upgrade.
502{"error": "...", "details": "..."}The content provider didn't answer in time. Safe to retry with backoff.

When you go over a limit you get 429 Too Many Requests with a Retry-After header (seconds):

HTTP/1.1 429 Too Many Requests
Retry-After: 34
Content-Type: application/json

{
  "error": "rate_limit_exceeded",
  "detail": "Your free plan allows 10 requests per minute. Slow down and retry in 34s.",
  "limit": 10,
  "window": "minute",
  "retry_after_seconds": 34,
  "upgrade_url": "https://animedoc.cloud/pricing"
}

Rate limits per plan

PlanRequests / dayRequests / minuteStream proxyPrice
Free2010No$0
Starter3,00060Yes$12/month or $60/6 months
Pro20,000300Yes$22/month or $110/6 months
Business500,000+CustomYesFrom $100/month
3-Day Pass2,00060Yes$1 for 3 days

Every call made with your API key counts as one request. Daily quotas reset at 00:00 UTC. See rate limits for headers and retry advice, or pricing to raise your limits.