Sun, Jun 28, 26

Developers

Integrate Verbatims quotes into your applications with the public API.

Overview

The Verbatims API provides programmatic access to our curated collection of quotes, authors, and references. All responses are in JSON format and follow a consistent structure.

Base URL: https://verbatims.cc

Authentication

All API requests require an API key sent via the Authorization header. You can manage your keys from your developer dashboard.

# Replace with your actual key

curl https://verbatims.cc/api/v1/me \
  -H "Authorization: Bearer vbt_your_api_key_here"

Rate Limiting

Rate limits depend on your API key's tier. Response headers include your remaining quota:

X-RateLimit-Remaining: 987

X-RateLimit-Reset: 1696000000

free1,000 requests per hour
pro10,000 requests per hour
enterpriseCustom rate limits

Response Format

All responses follow a consistent JSON structure:

{
  "success": true,
  "data": [
    {
      "id": 1,
      "content": "The only way to do great work is to love what you do.",
      "language": "en",
      "stats": {
        "views": 15234,
        "likes": 892,
        "shares": 431
      },
      "featured": true,
      "author": {
        "id": 42,
        "name": "Steve Jobs",
        "fictional": false,
        "image_url": null
      },
      "reference": {
        "id": 7,
        "name": "Stanford Commencement Speech",
        "type": "speech"
      },
      "tags": [
        {
          "name": "inspiration",
          "color": "#3B82F6"
        }
      ],
      "created_at": 1700000000000,
      "updated_at": 1700000000000
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "total": 1,
    "totalPages": 1,
    "hasMore": false
  }
}

Endpoints

GET/api/v1/quotes

List approved quotes with pagination, filtering, and search.

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Items per page (max 100)
languagestringFilter by language (e.g. en, fr)
author_idintegerFilter by author ID
reference_idintegerFilter by reference ID
tagstringFilter by tag name
searchstringSearch in quote content
sort_bystringcreated_atcreated_at, updated_at, views_count, likes_count
sort_orderstringdescasc or desc
GET/api/v1/quotes/{id}

Get a single approved quote by ID with full details.

ParameterTypeDefaultDescription
id*integerQuote ID
GET/api/v1/random

Get one or more random quotes.

ParameterTypeDefaultDescription
limitinteger1Number of random quotes (max 10)
GET/api/v1/authors

List authors sorted by popularity.

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Items per page (max 100)
searchstringSearch by name
GET/api/v1/authors/{id}

Get a single author by ID.

ParameterTypeDefaultDescription
id*integerAuthor ID
GET/api/v1/references

List references (sources) sorted by popularity.

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger20Items per page (max 100)
searchstringSearch by name
typestringFilter by type (film, book, tv_series, ...)
GET/api/v1/references/{id}

Get a single reference by ID.

ParameterTypeDefaultDescription
id*integerReference ID
GET/api/v1/tags

List tags sorted by quote count.

ParameterTypeDefaultDescription
pageinteger1Page number
limitinteger50Items per page (max 100)
GET/api/v1/search

Search across quotes, authors, or references.

ParameterTypeDefaultDescription
q*stringSearch query (min 2 characters)
typestringquotesScope: quotes, authors, or references
pageinteger1Page number
limitinteger20Items per page (max 100)
GET/api/v1/me

Get information about the current API key.

Example

Fetch the 5 most recent quotes in French:

curl -H "Authorization: Bearer vbt_your_key_here" \
  "https://verbatims.cc/api/v1/quotes?language=fr&limit=5&sort_by=created_at&sort_order=desc" \
  | python3 -m json.tool

Error Codes

401Missing, invalid, or inactive API key
429Rate limit exceeded. Check X-RateLimit-Reset header
404Resource not found
400Invalid request parameters
500Internal server error