Games API
The Games API provides endpoints for browsing and querying the game catalog. These endpoints are used by the frontend and are available to authenticated users.
List Games
Retrieve a paginated list of games available to the current user.
GET /api/games
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
page | number | 1 | Page number for pagination |
limit | number | 20 | Number of games per page (max 50) |
search | string | — | Search term to filter by title or developer |
tag | string | — | Filter by tag (e.g., Romance, Mystery) |
sort | string | title | Sort field: title, createdAt, popular |
order | string | asc | Sort order: asc or desc |
Response
{
"games": [
{
"id": "clx1234...",
"slug": "garden-of-forking-paths",
"title": "The Garden of Forking Paths",
"developer": "Starlight Studio",
"description": "A branching narrative adventure...",
"tags": ["Visual Novel", "Romance", "Mystery"],
"thumbnail": "https://storage.example.com/cover.jpg",
"releaseDate": "2024-06-15",
"isFavorite": true
}
],
"pagination": {
"page": 1,
"limit": 20,
"total": 42,
"totalPages": 3
}
}Example Requests
# List all games, page 1
curl https://play.ren.bd/api/games \
-H "Cookie: next-auth.session-token=..."
# Search for games with "garden" in the title
curl "https://play.ren.bd/api/games?search=garden"
# Filter by tag
curl "https://play.ren.bd/api/games?tag=Romance&sort=createdAt&order=desc"Get Game Details
Retrieve full details for a specific game.
GET /api/games/{slug}
Response
{
"id": "clx1234...",
"slug": "garden-of-forking-paths",
"title": "The Garden of Forking Paths",
"developer": "Starlight Studio",
"description": "A branching narrative adventure set in a mysterious garden...",
"tags": ["Visual Novel", "Romance", "Mystery"],
"thumbnail": "https://storage.example.com/cover.jpg",
"screenshots": [
"https://storage.example.com/screen1.jpg",
"https://storage.example.com/screen2.jpg"
],
"releaseDate": "2024-06-15",
"contentRating": "Teen",
"languages": ["English", "Japanese"],
"website": "https://starlightstudio.com/garden",
"isFavorite": false,
"saveSlots": [
{
"id": "cls001...",
"slotNumber": 1,
"label": "Chapter 3 - Romance Route",
"lastPlayedAt": "2025-03-08T14:30:00Z"
},
{
"id": null,
"slotNumber": 2,
"label": null,
"lastPlayedAt": null
},
{
"id": null,
"slotNumber": 3,
"label": null,
"lastPlayedAt": null
}
]
}The saveSlots array always contains exactly 3 entries (one per slot). Slots with id: null are empty and available for new playthroughs.
Toggle Favorite
Add or remove a game from your favorites.
POST /api/favorites
Content-Type: application/json
Request body:
{
"gameId": "clx1234..."
}Response (added):
{
"status": "added",
"gameId": "clx1234..."
}Response (removed):
{
"status": "removed",
"gameId": "clx1234..."
}The endpoint toggles the favorite state. If the game is not favorited, it gets added. If it's already favorited, it gets removed.
Authentication
All Games API endpoints require authentication. Include a valid session cookie with your request. Unauthenticated requests receive a 401 Unauthorized response.
Error Responses
| Status | Description |
|---|---|
| 401 | Not authenticated |
| 404 | Game not found |
| 429 | Rate limit exceeded |
See Error Codes for the full list.
Next Steps
- Sessions API — Launch, manage, and stop game sessions.
- Authentication — How to authenticate.