GET /api/v2/anime/detail/

Details

Full metadata for one title, plus its seasons and episode counts.

Overview

Look up a title by the detailPath from a search result. resource.seasons lists each season (se) and how many episodes it has (maxEp). A movie shows up as a single season with se: 0 and maxEp: 0.

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

Parameters

NameInTypeRequiredDefaultDescription
detailPathquerystringyes—The detailPath from a search result.

Example request

cURL
curl "https://api.animedoc.cloud/api/v2/anime/detail/?detailPath=naruto-2D7JgAQBGX3" \
  -H "X-API-Key: $ANIMEDOC_API_KEY"
JavaScript (Node 18+)
const params = new URLSearchParams({"detailPath":"naruto-2D7JgAQBGX3"});
const res = await fetch("https://api.animedoc.cloud/api/v2/anime/detail/?" + 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/detail/",
    params={"detailPath":"naruto-2D7JgAQBGX3"},
    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": {
    "subject": {
      "subjectId": "3325889774849773352",
      "subjectType": 2,
      "title": "Naruto",
      "description": "Naruto Uzumaki, a young ninja, seeks recognition...",
      "releaseDate": "2002-10-03",
      "genre": "Animation,Action,Adventure",
      "cover": { "url": "https://.../naruto.jpg" },
      "countryName": "Japan",
      "imdbRatingValue": "8.4",
      "detailPath": "naruto-2D7JgAQBGX3",
      "dubs": [{ "lanName": "English", "lanCode": "en", "original": false, "detailPath": "naruto-english-..." }]
    },
    "stars": [{ "name": "Junko Takeuchi", "character": "Naruto Uzumaki" }],
    "resource": { "seasons": [{ "se": 1, "maxEp": 220 }] }
  }
}

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.