Likes
Endpoint
Section titled “Endpoint”GET /api/public/:username/likes?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 liked rows to return |
Response
Section titled “Response”[ { "tmdbId": 550, "title": "Fight Club", "posterPath": "/a.jpg", "releaseYear": 1999, "runtime": 139, "genres": [ { "id": 18, "name": "Drama" } ], "mediaType": "movie", "lastInteractionAt": "2026-01-10T12:00:00.000Z" }]- Includes both
movieandtvrows. - Sorted by
lastInteractionAtdescending. genresmay benullor omitted depending on source row state.
Empty state behavior
Section titled “Empty state behavior”Returns [] when no likes exist.
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/likes?limit=20');if (!res.ok) throw new Error(`Likes failed: ${res.status}`);
const likes = await res.json();curl "https://api.interis.gorkemkaryol.dev/api/public/your_username/likes?limit=20"Practical: split movie vs TV
Section titled “Practical: split movie vs TV”const likedMovies = likes.filter((item) => item.mediaType === 'movie');const likedSeries = likes.filter((item) => item.mediaType === 'tv');Next: Watchlist endpoint