GET /api/v1/calendar
calendar
needs catalog:read
A projection rather than a schedule: an ongoing series has no per-episode timetable anywhere upstream, so the day of episode *n* is worked out from the start date and a seven-day cadence. Irregular shows are wrong by a few days and this says nothing about it, because a calendar that hid everything it was not certain of would be an empty page most weeks. `out` is the part that is not a projection — an episode a dub is already held for is playable now, whatever the arithmetic says.
The site's `?mine=1` is not offered. It narrows to the reader's own shelf, which is a second way of asking a question `/v1/lists` already answers, and a filter that means nothing at all for an application speaking for itself. The `viewer` argument below is therefore `None` — it exists to answer that filter and there is nothing else it decides.
18+ is the caller's own switch, like every other read here: a calendar is a shelf with dates on it, and it must not be the one page that names a title the reader asked not to see.
curl https://api.acyka.cc/api/v1/calendar?lang=en \
-H "Authorization: Bearer $ACYKA_TOKEN" Asking #
Narrowing it
| field | type | what it is |
|---|---|---|
lang may be absent | string | undefined | which of a title's three names leads: `en` (romaji), `ru`, `ja`, `uk`, `uz`. Defaults to `en`. |
Answering #
200 Page<Airing> a page: items, and total beside it
The shapes #
Airing #
One episode, on one day.
| field | type | what it is |
|---|---|---|
id | number | |
title | string | |
title_orig may be absent | string | undefined | |
poster may be absent | string | undefined | |
episode | number | which episode this is, projected: an ongoing series airs weekly, so episode *n* lands seven times *n − 1* days after the first |
on | string | `YYYY-MM-DD`, UTC. A date and not a timestamp: nothing here knows the hour an episode lands, and inventing one would be a lie with a clock on it. |
out | boolean | whether a dub for it is already playable here, or it is still projected |
When it says no #
A refusal is { "message": "errors.something" } — a phrase name and never a
sentence, because one screen can be read in five languages. Every library turns the name into a
type, so you catch the class you can do something about. Errors has
the list.