animelove.dev

API reference

Base URL https://animelove.dev/v1. Everything is GET, everything returns JSON.

Authentication

Pass your key in the X-API-Key header. Query-string keys are accepted but logged, so prefer the header.

curl -s https://animelove.dev/v1/title/alv_8f2c91 \
  -H "X-API-Key: alv_live_..."

Endpoints

PathPurpose
/season/{year}/{season}All titles airing in a season. season is one of winter spring summer fall.
/title/{id}Full record for one title, including staff and related works.
/searchFuzzy title lookup. See parameters below.
/studio/{id}Studio record with a paginated production history.
/changesRecords modified since a cursor. Use this instead of polling seasons.

Search parameters

NameTypeNotes
qstringRequired. Matched against romaji, english, native and known abbreviations.
yearintRestrict to a broadcast year.
formatenumtv, ova, ona, movie, special.
limitint1–100, default 20.

Delta polling

GET /v1/changes?since=alv_cur_92f10b&limit=200

The response carries a next cursor. Store it and pass it back on the following call. Cursors stay valid for 30 days; an expired one returns 410 and you should do a full re-sync.

Errors

CodeMeaning
401Missing or unknown key.
404No such id. Ids are opaque — do not construct them.
410Cursor expired.
429Rate limited. Honour Retry-After.

Rate limits

60 requests/minute during beta, burst of 20. Limits are per key, not per IP. If you need more for something specific, ask — the ceiling is soft.

Caching

Season responses carry an ETag and a 15-minute max-age. Conditional requests with If-None-Match do not count against your rate limit, so use them freely.