---
title: "Quote Of The Day"
method: GET
path: "/api/quote-of-the-day"
---

# Quote Of The Day

`GET /api/quote-of-the-day`

## Request

- Base URL: `https://www.oxfordledge.com` (the document declares no server; this is the origin it was published from)
- URL: `https://www.oxfordledge.com/api/quote-of-the-day`
- Auth: none declared

Return the current rotating quote from value-investing-facts.

Surfaces ~1,400 filtered (beginner+intermediate) quotes from the
1,976-item seed. Rotation: 30-min UTC buckets — same wall-clock
slot returns the same quote globally so the response is fully
CDN-cacheable for that window. Cycles the full corpus in ~29 days;
each quote surfaces ~12× per year. Per OWNER 2026-04-26.

URL kept (`/api/quote-of-the-day`) for stability; semantics now
rotate every 30 min, not every day.

## Response `200`

Successful Response

- QuoteOfTheDayResponse: `/api/quote-of-the-day` — rotating value-investing quote. F4 boundary backfill 2026-05-08 (Initiative 6). Pre-fix the route returned a manually-serialized JSON Response without response_model, so the OpenAPI spec couldn't enforce wire-shape. Frontend welcome-observatory dereferences `quote` + `author` + `bucketStart` without null-checks; pin these as required. Optional fields (year, source, category) carry None when the underlying value-investing-facts seed has no record (~3% of corpus per 2026-04-26 quote-service spot-check).
  - `quote` string, required: The quote text body.
  - `author` string, required: Quote author or 'Anonymous' when source-attribution is unknown.
  - `source` string, required: Book / interview / speech the quote was sourced from. Empty string when no source recorded.
  - `category` string, required: Pedagogical bucket (e.g. 'beginner', 'intermediate', 'advanced').
  - `bucketStart` string, required: ISO-8601 UTC timestamp of the current rotation bucket's start. Used by the frontend to compute time-until-next-quote.
  - `rotateSeconds` integer, required: Bucket length in seconds (currently 1800 = 30 min). Surfaces as future-proofing if the cadence changes.
  - `year` integer, nullable: Year of original publication. Optional — None when source seed lacks `source_year`.

---

[API](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api.md) · [All operations](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/llms.txt) · [OpenAPI document](https://skmtc.dev/oxfordledge/apis/oxford-ledge-api/revisions/e832a1260f0b?raw)
