REST API v1

Quote Gallery API

Access thousands of curated quotes, authors, and playlists programmatically. Build apps, integrations, and experiences with our simple REST API.

Authentication

All API requests require authentication via an API key. Include your key in the request header:

X-API-Key: qg_your_api_key_here

You can also use the Authorization: Bearer header.

Rate Limits

Rate limits are based on your subscription tier and apply per hour.

TierRate LimitPrice
Free100/hour€0
Hobby500/hour€7.99/mo
Premium2,000/hour€19.99/mo

Rate limit info is included in response headers: X-RateLimit-Limit

Error Handling

The API uses standard HTTP status codes. Error responses include a JSON body:

{
  "error": "Rate limit exceeded",
  "code": "RATE_LIMIT_EXCEEDED",
  "status": 429
}
CodeNameDescription
400Bad RequestInvalid request parameters
401UnauthorizedMissing or invalid API key
404Not FoundResource not found
429Rate Limit ExceededToo many requests, please slow down
500Internal ErrorServer error, please try again later

Quotes

GET
/api/v1/quotes

Retrieve a paginated list of approved public quotes

ParameterTypeDescription
language stringFilter by language code (e.g., "en", "nl", "tr")
categories stringComma-separated list of categories to filter by
author_id stringFilter quotes by author ID
limit numberNumber of results per page (max 100, default 20)
offset numberPagination offset (default 0)
GET
/api/v1/quotes/random

Get a random quote, optionally filtered by language or categories

ParameterTypeDescription
language stringFilter by language code
categories stringComma-separated list of categories
GET
/api/v1/quotes/:id

Get a single quote by its ID, including all translations

ParameterTypeDescription
language stringPreferred language for the quote text

Authors

GET
/api/v1/authors

Retrieve a paginated list of approved authors

ParameterTypeDescription
search stringSearch authors by name
categories stringComma-separated list of categories
limit numberNumber of results per page (max 100, default 20)
offset numberPagination offset (default 0)
GET
/api/v1/authors/:id

Get a single author by ID, optionally including their quotes

ParameterTypeDescription
include_quotes booleanInclude author's quotes in response
language stringPreferred language for quote texts

Playlists

GET
/api/v1/playlists

Retrieve a paginated list of public playlists

ParameterTypeDescription
search stringSearch playlists by name
categories stringComma-separated list of categories
limit numberNumber of results per page (max 100, default 20)
offset numberPagination offset (default 0)
GET
/api/v1/playlists/:id

Get a single playlist by ID, optionally including its quotes

ParameterTypeDescription
include_quotes booleanInclude playlist's quotes in response
language stringPreferred language for quote texts

Categories

GET
/api/v1/categories

Get all available categories with quote counts

No parameters