---
title: "The whole Treasury curve, 3M bill to 30Y bond, in one call"
method: GET
path: "/v1/treasury"
tags: ["Rates and curve"]
---

# The whole Treasury curve, 3M bill to 30Y bond, in one call

`GET /v1/treasury`

## Request

- Base URL: `https://api.helious.io`
- URL: `https://api.helious.io/v1/treasury`
- Auth: one of:
  - none
  - HTTP bearer

One row per tenor from the 3M bill to the 30Y bond. Live on Pro and Ultimate; Free, Squawk and Starter get the same curve 60 minutes behind for 1 credit and live for 5 with fresh=1; without a key the upgrade steps come instead of numbers. The regime label comes with it. Each tenor also carries its 52-week range, one-year and ten-year percentiles (range_52w, pct_1y, pct_10y) and a significance note like 'highest close since 2007' when the level is beyond everything back at least a year.

## Query parameters

- `fresh` boolean

## Response `200`

summary + source + data + meta envelope

- Envelope: Every /v1 response. `summary` states the answer as one plain-English sentence and `source` says who to credit for it, both before the raw `data`, so the finished claim is the first thing a reader meets.
  - `summary` string: The answer as a sentence, with the numbers in it. Identical to the sentence the matching MCP tool returns.
  - `source` object: Who to credit and where a reader can check the number.
    - `name` string
    - `url` string, uri: The Helious page backing this answer.
    - `cite_as` string
    - `attribution` string
    - `live` string: How current these numbers are on YOUR plan, and how to ask for them again. Says the data is live only on a tier that serves it live.
  - `data` object: The dataset itself.
  - `meta` object: When it was true, and what your plan allows.
  - `plan_limit` object: Present only when your plan moved the window. Says this is a plan limit rather than missing data, what Helious holds behind it, and the exact step to relay to the person you work for.

## Other responses

- `429`: Over the per-minute limit (code rate_limited, Retry-After the rest of the minute) or the wallet cannot pay (code out_of_credits: credits_left, resets_on, retry_after_seconds, packs, topup_url, upgrade_url, and fresh_costs on a held plan). Nothing is charged for a refusal.

## Changes

- **2026-10-20** `06bada17ad7a`: 2 info
  - added the new optional `query` request parameter `fresh`
  - added the non-success response with the status `429`

[Operation history](https://skmtc.dev/helious/apis/helious-public-api/changes/v1/treasury/get.md)

---

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