BYTETOOLS

ZenQuotes API

Free quotes API with no key: random, daily and bulk inspirational quotes with author attribution and pre-formatted HTML. Tested curl example and live JSON.

No API key requiredHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-19

What is the ZenQuotes API?

ZenQuotes is a free, key-free API serving inspirational quotes with author attribution, offering random quotes, a quote of the day, and bulk requests of up to 50 quotes at a time.

With Quotable's public instance now offline, ZenQuotes has become the most reliable free quotes API. It returns the quote text, the author, and a pre-rendered HTML blockquote if you want it.

The field names are unusually terse — `q` for quote, `a` for author, `h` for HTML — which keeps responses small but makes code less readable. Map them to meaningful names at your boundary rather than scattering `item.q` through a codebase.

Quick facts

Base URL
https://zenquotes.io/api
Authentication
No API key for the public endpoints. A paid key removes attribution requirements and raises limits.
Rate limit
About 5 requests per 30 seconds per IP on the free tier.
Pricing
Free with attribution required; paid plans remove the attribution requirement.
CORS
Not enabled — call it from your server
Official docs
Read the docs

How to use the ZenQuotes API

Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.

1. Fetch a random quote

GET https://zenquotes.io/api/random

curl
curl 'https://zenquotes.io/api/random'
JavaScript (fetch)
const res = await fetch("https://zenquotes.io/api/random");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://zenquotes.io/api/random", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200
[
  {
    "q": "You don't get in life what you want; you get in life what you are.",
    "a": "Les Brown",
    "h": "<blockquote>&ldquo;You don&#039;t get in life what you want; you get in life what you are.&rdquo; &mdash; <footer>Les Brown</footer></blockquote>"
  }
]

Parameters

ParameterTypeRequiredDescription
randompathOptionalOne random quote. random
todaypathOptionalThe quote of the day. today
quotespathOptionalA batch of up to 50 quotes. quotes
author/<name>pathOptionalQuotes by a specific author. author/einstein

Response fields

qstring
The quote text.
astring
Author name.
hstring
Pre-formatted HTML blockquote.
cstring
Character count of the quote.

What you can build with the ZenQuotes API

  • Show a quote of the day on a homepage or dashboard
  • Add an inspirational quote to a daily email or Slack post
  • Build a quotes widget for a wellbeing or productivity app
  • Practise fetch with a small, friendly JSON payload

Common errors and how to fix them

Rate limit message in the response body

More than about 5 requests per 30 seconds.

Fix: Cache the daily quote; there is no reason to fetch it more than once per day.

Confusing field names

Fields are single letters: q, a, h, c.

Fix: Map them to readable names immediately rather than using item.q throughout your code.

ZenQuotes API — frequently asked questions

Is ZenQuotes free?

Yes, the public endpoints need no API key. Attribution is required on the free tier; a paid plan removes that and raises the rate limit.

What happened to the Quotable API?

Its public instance went offline, which is why ZenQuotes is now the more reliable free option. Quotable's source remains available for self-hosting.

What do the q, a and h fields mean?

Quote text, author and pre-formatted HTML respectively. The short names keep payloads small but are worth mapping to readable names in your code.

Can I get quotes by a specific author?

Yes, use /api/author/{name} with a lowercase author slug, though coverage varies by author.

Tools that pair with this API

ZenQuotes is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.