Reviews
Endpoint
Section titled “Endpoint”GET /api/public/:username/reviews?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 rows to return |
Response
Section titled “Response”Returns a time-descending array.
[ { "id": "review-id", "content": "A sharp and tense watch.", "containsSpoilers": false, "createdAt": "2026-01-10T12:00:00.000Z", "updatedAt": "2026-01-10T12:00:00.000Z", "tmdbId": 550, "title": "Fight Club", "posterPath": "/a.jpg", "releaseYear": 1999, "ratingOutOfFive": 4, "mediaType": "movie" }]- Includes both
movieandtvrows. ratingOutOfFivecan benull.- Results are fetched, then sliced to
limit.
Empty state behavior
Section titled “Empty state behavior”Returns [] when no reviews 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/reviews?limit=12');if (!res.ok) throw new Error(`Reviews failed: ${res.status}`);
const reviews = await res.json();console.log(reviews.map((review) => review.title));curl "https://api.interis.gorkemkaryol.dev/api/public/your_username/reviews?limit=12"Practical: spoiler-safe subset
Section titled “Practical: spoiler-safe subset”const spoilerSafe = reviews.filter((review) => !review.containsSpoilers);Next: Lists endpoint