Skip to content

Endpoints

All endpoints live under https://orionmedia.app and require your API token. POST bodies are JSON. Responses are JSON; write endpoints return {"ok": true} on success or {"error": "..."} with an appropriate status code.

The consolidated feed — one request returns everything a dashboard or integration needs:

{
"generatedAt": "2026-07-04T12:00:00.000Z",
"counts": { "upNext": 7, "airingToday": 2, "airingWeek": 9, "unwatchedEpisodes": 41 },
"next": { "show": "Severance", "episode": "S02E05", "air_date": "2025-02-14", ... },
"upNext": [ /* one item per followed show with an unwatched aired episode */ ],
"today": [ /* episodes airing today */ ],
"week": [ /* episodes airing in the next 7 days */ ],
"releasing": [ /* followed episodes/movies/games releasing today or tomorrow */ ]
}

New integrations should use this endpoint — the endpoints below are narrower feeds that predate it and remain for compatibility.

Followed, not-yet-watched items releasing today or tomorrow: { "items": [...] }. This is what drives the Android app’s release notifications.

Airing-soon feed: { "counts": { "today", "week" }, "next", "today", "week" }.

The Android widget’s feed (watch list + coming this week).

Your releases as an iCalendar feed — see Calendar subscription. Token goes in the query string (?token=...), since calendar apps can’t send headers.

Mark an episode, movie, or game watched or unwatched:

{ "kind": "episode", "id": 1234, "watched": true }

kind is "episode", "movie", or "game".

Follow/unfollow, or archive a show:

{ "kind": "show", "id": 42, "followed": true, "archived": false }

kind is "show", "movie", or "game" (archived applies to shows).

Trigger an immediate catalog refresh and notification check for your account — the same work the scheduled background sync does. Useful behind a dashboard “Refresh now” button.

Terminal window
# What's next?
curl -s -H "Authorization: Bearer $TOKEN" \
https://orionmedia.app/api/machine/summary | jq .next
# Mark it watched
curl -s -X POST -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"kind":"episode","id":1234,"watched":true}' \
https://orionmedia.app/api/machine/watched