Api

Overview

Overview of the Quote Gallery API v1 — base URL, authentication, and available endpoints.

API v1 Overview

The Quote Gallery API v1 is a RESTful API that provides read access to the Quote Gallery catalog. All endpoints return JSON responses and follow consistent conventions for pagination, filtering, and error handling.

Base URL

All v1 API requests should be made to:

https://quotegallery.nl/api/v1
The API is also accessible directly via the Convex deployment URL at https://your-deployment.convex.site/api/v1. The Quote Gallery application server proxies requests to Convex under the hood.

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 details on obtaining and managing API keys.

Available Endpoints

The v1 API is organized into four resource groups:

Quotes

MethodEndpointDescription
GET/api/v1/quotesRetrieve a paginated list of approved quotes
GET/api/v1/quotes/randomGet a random quote
GET/api/v1/quotes/:idGet a single quote by ID

Authors

MethodEndpointDescription
GET/api/v1/authorsRetrieve a paginated list of authors
GET/api/v1/authors/:idGet a single author by ID

Playlists

MethodEndpointDescription
GET/api/v1/playlistsRetrieve a paginated list of public playlists
GET/api/v1/playlists/:idGet a single playlist by ID

Categories

MethodEndpointDescription
GET/api/v1/categoriesGet all available categories with quote counts

Common Conventions

Response Format

All successful responses follow a consistent structure:

{
  "data": { ... }
}

List endpoints include pagination metadata:

{
  "data": [ ... ],
  "pagination": {
    "total": 150,
    "limit": 20,
    "offset": 0,
    "hasMore": true
  }
}

Pagination

All list endpoints accept the following query parameters for pagination:

ParameterTypeDefaultDescription
limitnumber20Number of results per page (max 100)
offsetnumber0Number of results to skip

Filtering

Most list endpoints support filtering via query parameters. Common filters include:

ParameterTypeDescription
languagestringFilter by language code (e.g., en, nl, tr)
categoriesstringComma-separated list of category slugs

Error Responses

Errors return a JSON object with an error field and an appropriate HTTP status code:

{
  "error": "Invalid API key",
  "status": 401
}

See the Error Handling guide for a complete list of error codes.

Rate Limits

Your rate limit depends on your API tier:

TierRequests / Hour
Free100
Hobby500
Premium2,000

When you exceed your rate limit, the API returns a 429 Too Many Requests response. See Rate Limits & Pricing for more details.

Versioning Policy

The v1 API is stable. We will not introduce breaking changes to v1. New features and non-breaking additions (such as new optional fields in responses) may be added at any time.

When breaking changes are necessary, they will be released under a new version (e.g., /api/v2). Previous versions will continue to be supported with a deprecation timeline communicated well in advance.

What's Next?

Quotes

Retrieve, search, and filter quotes.

Authors

Browse and search authors.

Playlists

Access curated quote collections.

Categories

Get all available categories.
Copyright © 2026