Developer API

Quotes API

Trusted by many fortune brands around the world! Integrate over a million famous quotes into your app — Quote of the Day, random quotes, author details, quote images, and more via a simple REST API.

Home / Quotes API

They Said So® Famous Quotes API

At They Said So® we have one of the largest collections of famous quotes on the internet — over a million quotes across 500+ categories. Our easy-to-use REST API gives you a simple, predictable way to access that data from any language or platform.

Whether you're building a productivity app, a smart mirror display, a daily inspiration widget, or a large-scale content platform, the Quotes API has you covered. Subscribe for higher rate limits, bulk retrieval, quote image generation, and more.

For full interactive documentation and live API testing, visit quotes.rest.

Subscription Plans

Most Popular

Premium

$ 9 .99

/month

  • 2,500 API calls / day
  • JSON, XML, JSONP
  • No contracts
  • Cancel anytime

Ultra

$ 24 .99

/month

  • 8,000 API calls / day
  • JSON, XML, JSONP
  • No contracts
  • Cancel anytime

Enterprise

$ 74 .99

/month

  • Unlimited API calls / day
  • JSON, XML, JSONP
  • No contracts
  • Cancel anytime

Compare Plans

Feature Most Popular Premium $9.99/mo Ultra $24.99/mo Enterprise $74.99/mo
Pricing
Monthly price $9.99 $24.99 $74.99
Rate limit 2,500/day 8,000/day Unlimited
Quote of the Day
API access
Bulk retrieval
Custom-defined Quote of the Day
Total custom QOD definitions 0 5 25
Random Quotes & Search
API access
Bulk retrieval limit 3 5 15
Author Details
Popular author list
Search author names
Enhanced details (birthday, occupation…)
Private Quotes
API access
QShows (Quote Collections)
API access
Quotes per collection 25 50 50
Number of QShows 25 50 250
Quote Image Generation
API access
Custom fonts & background images
Remove They Said So® branding
Get Premium Get Ultra Get Enterprise

Million+ Quotes

Famous quotes across 500+ categories

Quote of the Day

Daily fresh quote in any category

JSON, XML & JSONP

Multiple response formats supported

Quote Images

Generate beautiful quote images via API

What Can You Do with the Quotes API?

  • Access Quote of the Day in 500+ categories
  • Create and host your own Quote of the Day service with custom categories
  • Search and retrieve quotes by author, tags, or length
  • Store and retrieve your own private quotes on the They Said So platform
  • Create curated quote collections with QShows
  • Generate beautiful quote images, or use your own fonts and backgrounds

API Endpoint

The base endpoint for all API calls when you subscribe directly from us:

https://quotes.rest/

Authentication

Some endpoints are public and can be accessed without authentication (rate-limited to 10 calls/hour). For private endpoints and higher rate limits, set a request header:

Authorization: Bearer <your_api_key>

Alternatively, pass api_key=<key> as a query parameter — though this is discouraged as it exposes your key in server logs and browser history.

Response Formats

Choose your response format by appending the appropriate extension to the URL:

JSON

GET https://quotes.rest/qod.json

XML

GET https://quotes.rest/qod.xml

JSONP

GET https://quotes.rest/qod.js

Rate Limits

The public API is rate-limited to 10 calls per hour. Subscribing to a paid plan increases your limit significantly:

Plan Calls / Day Bulk Limit
Premium 2,500 3 quotes
Ultra 8,000 5 quotes
Enterprise Unlimited 15 quotes

Quote of the Day public rate limited

Get the Quote of the Day via REST API — inspiring, management, life, funny, and many more categories available. The same quote is returned for the full calendar day.

GET https://quotes.rest/qod?category=inspire

A successful response looks like:

{
  "success": { "total": 1 },
  "contents": {
    "quotes": [
      {
        "quote": "The only way to do great work is to love what you do.",
        "author": "Steve Jobs",
        "length": "52",
        "language": "en",
        "tags": ["inspire","work"],
        "id": "rkWseAMW3C9NlW-IHHZ1igeF",
        "category": "inspire",
        "date": "2026-08-04"
      }
    ]
  },
  "copyright": {
    "url": "https://theysaidso.com",
    "year": "2026"
  }
}

Code Samples

<?php

$apiKey = 'YOUR_API_KEY';
$url    = 'https://quotes.rest/qod.json?category=inspire';

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => [
        'Content-Type: application/json',
        "X-TheySaidSo-Api-Secret: {$apiKey}",
    ],
]);
$response = curl_exec($ch);
curl_close($ch);

$data  = json_decode($response, true);
$quote = $data['contents']['quotes'][0];
echo $quote['quote'] . ' — ' . $quote['author'];

QOD Categories

To list all available QOD categories:

GET https://quotes.rest/qod/categories

Random Quotes

Retrieve a random quote from the database. Filter by author, tag, or length. Use the limit parameter to get multiple quotes per call (up to your plan's bulk limit).

GET https://quotes.rest/quote/random.json?limit=1

A successful response looks like:

{
  "success": { "total": 1 },
  "contents": {
    "quotes": [
      {
        "quote": "In the middle of every difficulty lies opportunity.",
        "author": "Albert Einstein",
        "length": "50",
        "language": "en",
        "tags": ["difficulty","opportunity"],
        "id": "e4x7MLKW3C9NlW-IHZ1igeF"
      }
    ]
  },
  "copyright": {
    "url": "https://theysaidso.com",
    "year": "2026"
  }
}

Code Samples

<?php

$apiKey = 'YOUR_API_KEY';
$url    = 'https://quotes.rest/quote/random.json?limit=1';

$ch = curl_init($url);
curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER     => ["X-TheySaidSo-Api-Secret: {$apiKey}"],
]);
$response = curl_exec($ch);
curl_close($ch);

$data  = json_decode($response, true);
$quote = $data['contents']['quotes'][0];
echo $quote['quote'] . ' — ' . $quote['author'];

CORS

The API sends Access-Control-Allow-Origin: * for all requests, allowing browser-side JavaScript to call the API directly. However, this exposes your API key in client-side code. We strongly recommend a server-side proxy for any public-facing application.

Frequently Asked Questions

How do I authenticate with the Quotes API?
Set a request header X-TheySaidSo-Api-Secret: <your_api_key> on every request. You can also pass api_key=<key> as a query parameter, but this is discouraged because the key appears in server logs and browser history. Get your API key after subscribing to a plan.
What response formats does the API support?
JSON, XML, and JSONP. Append .json, .xml, or .js to the endpoint URL, or send a matching Accept header.
What are the rate limits?
Paid plans: Premium 2,500/day · Ultra 8,000/day · Enterprise unlimited. Rate limits reset at midnight UTC.
Can I retrieve multiple quotes in one call?
Yes. Add the limit parameter to /quote/random or /quote/search. The maximum depends on your plan: Premium 3 · Ultra 5 · Enterprise 15.
Is CORS enabled so I can call the API from a browser?
Yes, Access-Control-Allow-Origin: * is set on every response. However, calling the API directly from browser JavaScript exposes your secret key. Use a server-side proxy to keep your key private in production.

Ready to get started?

Subscribe to a plan and get your API key instantly. No contracts, cancel anytime.

View Plans