TurboVault API Documentation
RESTful API for accessing and managing your video game collection programmatically.
Quick Start
- Generate an API token in your settings
- Include the token in the
Authorizationheader - Make requests to
https://yourdomain.com/api/v1/...
Table of Contents
Authentication
All API requests require authentication using a bearer token.
Authorization: Bearer YOUR_API_TOKEN_HERE
Generate a token in your settings page.
Security: Keep your API tokens secure. Do not share them or commit them to version control.
Games
List Games
/api/v1/games
Returns a paginated list of your games.
Query Parameters:
| page | Page number (default: 1) |
| per_page | Items per page (default: 50, max: 100) |
| format | Filter by format: physical or digital |
| platform_id | Filter by platform ID |
| genre_id | Filter by genre ID |
Example Request:
curl -X GET "https://yourdomain.com/api/v1/games?page=1&per_page=10" \
-H "Authorization: Bearer YOUR_TOKEN"
Example Response:
{
"games": [
{
"id": 1,
"title": "The Legend of Zelda: Ocarina of Time",
"platform": "Nintendo 64",
"format": "physical",
"date_added": "2024-01-15",
"completion_status": "completed",
"user_rating": 5,
"igdb_id": 1234,
"condition": "very_good",
"price_paid": "45.99",
"location": "Bedroom Shelf A",
"genres": ["Action", "Adventure"],
"collections": ["Favorites", "N64 Collection"]
}
],
"pagination": {
"current_page": 1,
"per_page": 10,
"total_pages": 3,
"total_count": 25
}
}
Get a Game
/api/v1/games/:id
Returns details for a specific game.
Example Request:
curl -X GET "https://yourdomain.com/api/v1/games/1" \
-H "Authorization: Bearer YOUR_TOKEN"
Create a Game
/api/v1/games
Add a new game to your collection.
Request Body:
{
"game": {
"title": "Super Mario 64",
"platform_id": 4,
"format": "physical",
"date_added": "2024-03-28",
"completion_status": "backlog",
"user_rating": null,
"condition": "good",
"price_paid": "35.00",
"location": "Living Room Shelf",
"genre_ids": [1, 3],
"collection_ids": [2]
}
}
Update a Game
/api/v1/games/:id
Update an existing game's information.
Delete a Game
/api/v1/games/:id
Permanently delete a game from your collection.
Collections
List Collections
/api/v1/collections
Get a Collection
/api/v1/collections/:id
Includes all games in the collection.
Create a Collection
/api/v1/collections
Update a Collection
/api/v1/collections/:id
Delete a Collection
/api/v1/collections/:id
Games in the collection will not be deleted.
Platforms
List Platforms
/api/v1/platforms
Returns all available gaming platforms.
Get a Platform
/api/v1/platforms/:id
Genres
List Genres
/api/v1/genres
Returns all available game genres.
Get a Genre
/api/v1/genres/:id
Error Handling
The API uses standard HTTP response codes:
| Code | Meaning |
|---|---|
| 200 | Success |
| 201 | Created |
| 400 | Bad Request - Invalid parameters |
| 401 | Unauthorized - Invalid or missing token |
| 404 | Not Found |
| 422 | Unprocessable Entity - Validation errors |
| 429 | Too Many Requests - Rate limit exceeded |
| 500 | Internal Server Error |
Error Response Format:
{
"error": "Validation failed",
"details": {
"title": ["can't be blank"],
"platform_id": ["must exist"]
}
}
Rate Limits
API requests are currently not rate-limited, but this may change in the future. Please be respectful and avoid excessive requests.
Best Practice: Cache responses when possible and implement exponential backoff for failed requests.
Need Help?
If you have questions or encounter issues with the API:
- Check the API tokens page for troubleshooting
- Review this documentation for endpoint details
- Contact support if you need assistance