Overview
The Quote Gallery API v1 is a REST API that provides read access to the catalog. All endpoints return JSON and follow consistent conventions for pagination, filtering, and error handling.
Base URL
https://quotegallery.nl/api/v1
Authentication
Every request must include a valid API key in the X-API-Key header:
curl -H "X-API-Key: your_api_key_here" \
https://quotegallery.nl/api/v1/quotes
See the Authentication guide for how to get and manage your key.
Endpoints
Quotes
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/quotes | Paginated list of approved quotes |
GET | /api/v1/quotes/random | A single random quote |
GET | /api/v1/quotes/:id | A specific quote by ID |
Authors
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/authors | Paginated list of authors |
GET | /api/v1/authors/:id | A specific author by ID |
Playlists
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/playlists | Paginated list of public playlists |
GET | /api/v1/playlists/:id | A specific playlist by ID |
Categories
| Method | Endpoint | Description |
|---|---|---|
GET | /api/v1/categories | All categories with quote counts |
Response format
Successful responses wrap the result in a data field:
{ "data": { ... } }
List endpoints include a pagination object:
{
"data": [ ... ],
"pagination": {
"total": 150,
"limit": 20,
"offset": 0,
"hasMore": true
}
}
Pagination
All list endpoints accept limit (default 20, max 100) and offset (default 0).
Filtering
Most list endpoints support these common filters:
| Parameter | Type | Description |
|---|---|---|
language | string | Filter by language code (en, nl, tr, …) |
categories | string | Comma-separated category slugs. Matches any (OR logic) |
Errors
Errors return a JSON body with an error string and a status number that mirrors the HTTP status code:
{
"error": "Invalid API key",
"status": 401
}
See the Error Handling guide for the full list of codes and retry patterns.
Rate limits
Every response includes these headers:
| Header | Description |
|---|---|
X-RateLimit-Limit | Your tier's hourly request cap |
X-RateLimit-Remaining | Requests left in the current window |
X-RateLimit-Reset | Unix timestamp (seconds) when the window resets |
Versioning
The v1 API is stable. Breaking changes are not introduced to existing versions — they're released under a new version prefix (e.g. /api/v2).