---
title: "Market indicators grouped by asset class"
method: GET
path: "/api/indicators"
tags: ["Market Data"]
---

# Market indicators grouped by asset class

`GET /api/indicators`

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

Market indicators: indexes, commodities, rates, crypto, options sentiment.

Route-level 12s timeout (2026-04-26 P0): a HAR trace from prod
showed two consecutive /api/indicators requests timing out at the
frontend's 20s ceiling with net::ERR_ABORTED, leaving the
"Loading market data..." text stuck on the macro view. Root
cause: when FMP is over quota the underlying fetch_market_indicators
blocks waiting on the FMP HTTP timeout (which exceeds 20s).
Now we cap the route at 12s and return an empty payload on
timeout — frontend renders an empty grid honestly rather than
a perpetual loader.

## Response `200`

Successful Response

- MarketIndicatorsResponse: Market indicator groups returned by GET /api/indicators.
  - `Indexes` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Commodities` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Rates` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `FX` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Bonds` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Crypto` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Volatility` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Futures` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Shipping` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `Credit` MarketIndicator[], nullable
    - `symbol` string, nullable
    - `name` string, nullable
    - `value` number, nullable
    - `change` number, nullable
    - `changePct` number, nullable
    - `source` string, nullable
    - `source_url` string, nullable
    - `credit` string, nullable
    - `trademark_notice` string, nullable
    - `sparkline` number[], nullable
    - `isYield` boolean, nullable
    - `unit` string, nullable
    - `asOf` string, nullable
    - `prevAsOf` string, nullable
    - `changeBps` number, nullable
    - `mtdBps` number, nullable
    - `ytdBps` number, nullable
    - `mmBps` number, nullable
    - `d90Bps` number, nullable
    - `yyBps` number, nullable
    - `staleBusinessDays` integer, nullable
    - `stale` boolean, nullable
  - `optionsSentiment` object, nullable
  - `treasuryRate10yr` number, nullable
  - `as_of` string, nullable
  - `fetchedAt` string, nullable

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