Watchlist
Endpoint
Section titled “Endpoint”GET /api/public/:username/watchlist?limit=50Path params
Section titled “Path params”| Param | Type | Required | Description |
|---|---|---|---|
username | string | yes | Interis username to resolve |
Query params
Section titled “Query params”| Param | Type | Default | Max | Description |
|---|---|---|---|---|
limit | number | 50 | 200 | Number of watchlist rows to return |
Response
Section titled “Response”Response shape matches Likes:
[ { "tmdbId": 1399, "title": "Game of Thrones", "posterPath": "/got.jpg", "releaseYear": 2011, "runtime": 60, "genres": [ { "id": 10765, "name": "Sci-Fi & Fantasy" } ], "mediaType": "tv", "lastInteractionAt": "2026-01-10T12:00:00.000Z" }]- Includes both
movieandtvrows. - Sorted by
lastInteractionAtdescending.
Empty state behavior
Section titled “Empty state behavior”Returns [] when watchlist is empty.
Error behavior
Section titled “Error behavior”404when username does not exist.429when the public rate limit is exceeded.500for unexpected server errors.
Examples
Section titled “Examples”const res = await fetch('https://api.interis.gorkemkaryol.dev/api/public/your_username/watchlist?limit=25');if (!res.ok) throw new Error(`Watchlist failed: ${res.status}`);
const watchlist = await res.json();curl "https://api.interis.gorkemkaryol.dev/api/public/your_username/watchlist?limit=25"Practical: build an “Up Next” rail
Section titled “Practical: build an “Up Next” rail”const upNext = watchlist.slice(0, 6);Next: Diary endpoint