← One Stoic Quote

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:

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

See also: llms.txt for a machine-readable summary, or openapi.yaml for the full OpenAPI 3.0 definition.