---
title: "Api Portfolio Briefing"
method: GET
path: "/api/portfolio/briefing"
tags: ["Portfolio"]
---

# Api Portfolio Briefing

`GET /api/portfolio/briefing`

## 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/portfolio/briefing`
- Auth: none declared

Daily 1-paragraph plain-English portfolio summary.

ROADMAP P2 (2026-04-24). Reads top movers + recent headlines +
upcoming calendar events for the user's tickers and composes a
deterministic English paragraph. Cached 6h per (sorted-tickers)
key. Plus-tier gated since the news + calendar lookups consume
server resources at scale.

OWNER ruling 2026-10-04: the paragraph may be rewritten by the model
(services.portfolio_briefing._llm_rewrite_briefing), so the parental-
consent gate applies; found by the AI-route census.

## Query parameters

- `tickers` string

## Response `200`

Successful Response

- PortfolioBriefingResponse: `GET /api/portfolio/briefing` — morning briefing. F4 backfill 2026-05-11.
  - `error` string, nullable

## Other responses

- `422`: Validation 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)
