---
title: "Daily research lede for the News surface research-hero"
method: GET
path: "/api/news/daily-lede"
tags: ["News"]
---

# Daily research lede for the News surface research-hero

`GET /api/news/daily-lede`

## 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/news/daily-lede`
- Auth: none declared

Return today's editorial research lede (or the most-recent
available) as `{lede: {...}, source: "pg"|"empty"}`.

Behavior:
  - PG-populated: returns the latest lede (date DESC LIMIT 1) via
    `pg_get_daily_research_lede()`. `source` = "pg".
  - PG empty / unavailable: returns `{lede: null, source: "empty"}`
    so the News research-hero card can render an empty-state
    without descending into a missing `.headline`.

No JSON fallback — there is no static-file source-of-truth for
daily ledes (unlike the LEARN editorial corpora). The empty-state
envelope IS the contract for the unseeded case.

## Response `200`

Successful Response

- DailyResearchLedeResponse: `GET /api/news/daily-lede` response. Top-level envelope: `{lede: {date, headline, body, ...} | null, source}`. `source` is one of `"pg"` (PG-backed entry returned), `"empty"` (no lede entered yet / PG unavailable). `lede` is the editorial blob; `null` when source == "empty" so the renderer can branch on `body.lede` falsy → empty-state without descending into a missing `headline`. The News surface research-hero card iterates `body.lede.headline + body.lede.body`; both required-on-the-inner-dict in the PG branch but the outer envelope's `lede` may be null — a frontend rendering without a null-check would be a defect.
  - `lede` unknown
  - `source` string, required: 'pg' when a lede was found, 'empty' otherwise.

## Other responses

- `500`: Internal Server Error

---

[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)
