API Docs
A free JSON API for the daily Stoic quote. No auth required, open CORS, no rate limit beyond fair use.
Get today's quote
GET https://www.onestoicquote.com/api/quote
Returns the quote for the current UTC day. The response is stable for the whole day and cached for up to an hour.
Get a specific day's quote
GET https://www.onestoicquote.com/api/quote?date=YYYY-MM-DD
Same shape as above, but for the quote shown on that calendar date.
Filter by tradition
GET https://www.onestoicquote.com/api/quote?tradition=stoic
Not every author in the collection is a Stoic, so quotes are classified as
stoic (the school itself), adjacent (Greco-Roman figures who
shaped or argued with it — Socrates, Aristotle, Cicero), or other
(voices from outside that tradition, included for reflection).
The default is stoic, so the endpoint never returns a
non-Stoic quote unless you ask. Pass all to draw from the whole collection.
Response
{
"quote": "There is no favorable wind for the sailor who does not know where he wants to go.",
"author": "Seneca",
"id": "q0006",
"authorSlug": "seneca",
"tradition": "stoic",
"url": "https://www.onestoicquote.com/quotes/seneca-there-is-no-favorable-wind-for-the-sailor",
"source": {
"status": "unverified",
"work": null,
"reference": null,
"translator": null,
"translationYear": null,
"originalLanguage": null,
"sourceUrl": null,
"note": null,
"actualAuthor": null
}
}
quote and author are unchanged; the rest is additive.
url is a permanent link to that quote's page. Every quote carries a
source object; source.status is one of:
verified— traced to a specific passage in a public-domain translation.work,reference,translatorandsourceUrlare populated.unverified— plausible but not yet traced. The honest default for most quotes right now.disputed— the attribution is contested; seenote.misattributed— the named author demonstrably did not say it.noteexplains, andactualAuthornames who did, where known.
Disputed and misattributed quotes are not hidden — see
/disputed for the full list with explanations. Check
source.status before repeating a quote as fact.
Example
curl https://www.onestoicquote.com/api/quote
curl "https://www.onestoicquote.com/api/quote?date=2026-01-01"
curl "https://www.onestoicquote.com/api/quote?tradition=adjacent"
Errors
date must be in YYYY-MM-DD format, and tradition must be one of stoic, adjacent, other, all. An invalid value returns HTTP 400 with { "error": string }.
Stability
Selection is deterministic per calendar day, but it is a function of the current collection: adding quotes or reclassifying an author changes which quote a past date returns. Treat dated responses as stable for about an hour, not forever.
Notes
- CORS is open (
Access-Control-Allow-Origin: *) — call it from a browser or a server. - No API key or authentication required.
- When quoting, please attribute the philosopher named in
author.
See also: llms.txt for a machine-readable summary, or openapi.yaml for the full OpenAPI 3.0 definition.