---
title: "US Treasury curve as of a past date"
method: GET
path: "/macro/yield-curve/history"
tags: ["macro"]
---

# US Treasury curve as of a past date

`GET /macro/yield-curve/history`

## Request

- Base URL: `https://kresmion.com/v1`
- URL: `https://kresmion.com/v1/macro/yield-curve/history`
- Auth: HTTP bearer

The constant-maturity Treasury curve as it stood on, or last before, `date`. `data` is the point list in maturity order; `meta` carries the resolved `observation_date`, the two spreads and the served range.

`observation_date` is the newest date at or before `date` that carries at least 6 of the 11 tenors, which is why a weekend or holiday resolves to the prior session. It is a separate field from `requested_date` precisely so a consumer can see that.

PARTIAL CURVES ARE SERVED AS PARTIAL. The eleven tenors do not all exist for all time (DGS1MO begins 2001-07-31; DGS20 resumes 1993-10-01 after a six-year gap), and a date carries points ONLY for the tenors it actually has. Nothing is interpolated and no tenor is carried forward from a neighbouring day.

An empty table, or a `date` before `meta.available_from`, returns `data: []` with `meta.status = "no_data"` — never a fabricated curve.

## Query parameters

- `date` string, nullable: YYYY-MM-DD. Default: today.

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- object

## Other responses

- `422`: Validation Error

---

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