GET /api/v2/anime/trending/
Trending
What most people are watching right now, across anime, movies and series.
Overview
Pages start at 0. Use it for a "Most watched" or "Trending now" row. Same item shape as Search and Browse.
GET https://api.animedoc.cloud/api/v2/anime/trending/
X-API-Key: <your key>Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
| page | query | integer | no | 0 | Page number, starting at 0. |
| perPage | query | integer | no | 24 | Items per page (max 48). |
Example request
curl "https://api.animedoc.cloud/api/v2/anime/trending/?page=0&perPage=24" \
-H "X-API-Key: $ANIMEDOC_API_KEY"const params = new URLSearchParams({"page":"0","perPage":"24"});
const res = await fetch("https://api.animedoc.cloud/api/v2/anime/trending/?" + params, {
headers: { "X-API-Key": process.env.ANIMEDOC_API_KEY },
});
const { data } = await res.json();
console.log(data);import os
import requests
res = requests.get(
"https://api.animedoc.cloud/api/v2/anime/trending/",
params={"page":0,"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": 0, "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
| Status | Body | What 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
| 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 |
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.