US Treasury 1-Month Rate API MCP

US Treasury 1-Month Rate API MCP

You need an authoritative, machine-readable source for the US 1‑month Treasury yield so your applications can price money market instruments, compute short-term discount curves, compare funding costs, and drive dashboards. By the end of this guide, you’ll be able to fetch the US_TREASURY_1M rate from the Interest Rates API, read its effective dates correctly, analyze its historical behavior, compute spreads, and integrate it into loan or treasury workflows using seven purpose-built endpoints.

What the US_TREASURY_1M rate represents and how it’s expressed

US_TREASURY_1M is the 1‑month US Treasury yield (category: treasury; currency: USD; frequency: daily). It reflects the annualized yield of short-dated US government securities with approximately one month to maturity. The Interest Rates API expresses this yield as a percentage rate (e.g., 5.33 means 5.33% per annum).

Publishers update this benchmark on US business days; there are typically no observations on weekends or US federal holidays. In the API, each observation is stamped with a calendar date (YYYY-MM-DD). Treat this as the effective date for that daily fixing. Downstream systems should align calculations to this date and consider that data for a given date may become final only after source publication completes on that day.

For all requests, use the base URL at https://interestratesapi.com/api/v1/ with GET requests and authenticate by appending the api_key query parameter. See interestratesapi.com for platform details and the MCP page for model and capability information.

Working with dates, units, and business days

Units are percent per annum. A JSON numeric value 5.33 corresponds to a 5.33% annualized yield. The API uses daily frequency for US_TREASURY_1M; gaps in dates correspond to weekends and holidays. When querying a single historical date that’s not a business day, the provider behavior for this symbol is to return the last available date on or before that day within the applicable calendar, as suggested by the historical endpoint note for monthly symbols (treasury series are daily, but the principle of returning the last available observation on or before the requested date within the range still applies).

To support robust pipelines, assume that:

  • US_TREASURY_1M publishes on US business days; no observations on weekends/US holidays.
  • All times are represented as the effective calendar date (YYYY-MM-DD), not as timestamps. Your system should not assume an intraday time or timezone offset in this field.
  • Cache responses per date and symbol to reduce redundant calls; refresh caches when the current business day changes.

Endpoint 1: Catalogue of available symbols

Use the symbols endpoint to programmatically discover the US_TREASURY_1M identifier and its metadata. You can filter by category and currency.

cURL

curl -s "https://interestratesapi.com/api/v1/latest?api_key=YOUR_API_KEY&symbols=SOFR"

official JSON response

{
"success": true,
"date": "2026-09-28",
"base": "USD",
"rates": {
"SOFR": 3.9
},
"dates": {
"SOFR": "2026-09-28"
},
"currencies": {
"SOFR": "USD"
},
"base_filter_note": null
}

Key fields:

  • symbol: The code you will pass to other endpoints (US_TREASURY_1M).
  • category: treasury (not central_bank or interbank).
  • frequency: daily, indicating business-day updates.

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/symbols",
params=dict(category="treasury", base="USD", api_key="YOUR_API_KEY")
)
data = resp.json()
# Find US_TREASURY_1M in data["symbols"] by symbol

JavaScript (fetch)

const r = await fetch(
"https://interestratesapi.com/api/v1/symbols?category=treasury&base=USD&api_key=YOUR_API_KEY"
);
const data = await r.json();
// Use data.symbols to locate "US_TREASURY_1M"

PHP

<?php
$url = "https://interestratesapi.com/api/v1/symbols?category=treasury&base=USD&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
// Iterate $data["symbols"] to get US_TREASURY_1M
?>

Endpoint 2: Latest value for US_TREASURY_1M

The latest endpoint returns the most recent available daily fixing. It also includes a dates map that tells you the effective date of each rate and a currencies map to confirm base currency (USD for US_TREASURY_1M).

cURL

official JSON response (structure and fields)

How to read it:

  • rates.US_TREASURY_1M is the annualized yield in percent.
  • dates.US_TREASURY_1M is the effective fixing date (YYYY-MM-DD).
  • currencies.US_TREASURY_1M confirms USD.

Real API response example (provided)

The following real response demonstrates the same structure for a different symbol (SOFR). Use it as a structural reference; your US_TREASURY_1M responses follow the same shape.

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/latest",
params=dict(symbols="US_TREASURY_1M", api_key="YOUR_API_KEY")
)
data = resp.json()
rate = data["rates"]["US_TREASURY_1M"]
effective_date = data["dates"]["US_TREASURY_1M"]

JavaScript (fetch)

const response = await fetch(
"https://interestratesapi.com/api/v1/latest?symbols=US_TREASURY_1M&api_key=YOUR_API_KEY"
);
const data = await response.json();
const rate = data.rates["US_TREASURY_1M"];
const effDate = data.dates["US_TREASURY_1M"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/latest?symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$rate = $data["rates"]["US_TREASURY_1M"];
$effectiveDate = $data["dates"]["US_TREASURY_1M"];
?>

Endpoint 3: Historical value on a specific date

Fetch the US_TREASURY_1M yield as of a target calendar date. Input is YYYY-MM-DD. If the date is a non-business day, expect the most recent effective date on or before the requested date within the available range.

cURL

official JSON response

Fields you’ll use:

  • rates.US_TREASURY_1M: the yield (percent per annum).
  • date: the query date you asked for; the value returned is for the effective date on or before this.

Python (requests)

import requests

params = dict(date="2025-06-15", symbols="US_TREASURY_1M", api_key="YOUR_API_KEY")
resp = requests.get("https://interestratesapi.com/api/v1/historical", params=params)
data = resp.json()
value = data["rates"]["US_TREASURY_1M"]

JavaScript (fetch)

const r = await fetch(
"https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY"
);
const data = await r.json();
const value = data.rates["US_TREASURY_1M"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/historical?date=2025-06-15&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$value = $data["rates"]["US_TREASURY_1M"];
?>

Endpoint 4: Time series between two dates

Pull a continuous daily series for US_TREASURY_1M between start and end. Use this for charts, statistical analysis, and curve construction. The response nests dates by symbol.

cURL

official JSON response

Use rates.US_TREASURY_1M as a date-to-value map. frequencies and currencies provide metadata per symbol, useful when mixing symbols across categories in one request.

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/timeseries",
params=dict(
start="2025-09-30",
end="2026-09-30",
symbols="US_TREASURY_1M",
api_key="YOUR_API_KEY",
),
)
ts = resp.json()["rates"]["US_TREASURY_1M"]
# ts is a dict mapping YYYY-MM-DD to percent values

JavaScript (fetch)

const url = "https://interestratesapi.com/api/v1/timeseries?start=2025-09-30&end=2026-09-30&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
const res = await fetch(url);
const data = await res.json();
const series = data.rates["US_TREASURY_1M"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/timeseries?start=2025-09-30&end=2026-09-30&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$series = $data["rates"]["US_TREASURY_1M"];
// $series is an associative array date => value
?>

Endpoint 5: Fluctuation statistics over a range

Summarize the change in US_TREASURY_1M between two dates along with the high/low. This is useful for performance snapshots, VaR inputs, and dashboards.

cURL

official JSON response

Field notes:

  • start_value and end_value are expressed as percent yields.
  • change = end_value − start_value.
  • change_pct = 100 × change / start_value (null if start_value is zero).

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/fluctuation",
params=dict(
start="2025-09-30",
end="2026-09-30",
symbols="US_TREASURY_1M",
api_key="YOUR_API_KEY",
),
)
fl = resp.json()["rates"]["US_TREASURY_1M"]
# Use fl["change"], fl["change_pct"], fl["high"], fl["low"]

JavaScript (fetch)

const u = "https://interestratesapi.com/api/v1/fluctuation?start=2025-09-30&end=2026-09-30&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
const resp = await fetch(u);
const data = await resp.json();
const stats = data.rates["US_TREASURY_1M"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/fluctuation?start=2025-09-30&end=2026-09-30&symbols=US_TREASURY_1M&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$stats = $data["rates"]["US_TREASURY_1M"];
?>

Endpoint 6: OHLC candlestick data (derived)

For higher-level charting and technical summaries, request OHLC buckets computed from daily data. You can choose weekly, monthly, or quarterly periods; monthly is the default.

cURL

official JSON response

Field notes:

  • open/high/low/close are percent yields within the period.
  • period is YYYY-MM (monthly), ISO-based per chosen granularity.
  • data_points is the count of daily observations aggregated into that bucket.

Python (requests)

import requests

resp = requests.get(
"https://interestratesapi.com/api/v1/ohlc",
params=dict(
symbols="US_TREASURY_1M",
period="monthly",
start="2025-09-30",
end="2026-09-30",
api_key="YOUR_API_KEY",
),
)
ohlc = resp.json()["rates"]["US_TREASURY_1M"]
# ohlc is a list of buckets with open/high/low/close

JavaScript (fetch)

const ohlcUrl = "https://interestratesapi.com/api/v1/ohlc?symbols=US_TREASURY_1M&period=monthly&start=2025-09-30&end=2026-09-30&api_key=YOUR_API_KEY";
const ohlcRes = await fetch(ohlcUrl);
const ohlcData = await ohlcRes.json();
const buckets = ohlcData.rates["US_TREASURY_1M"];

PHP

<?php
$url = "https://interestratesapi.com/api/v1/ohlc?symbols=US_TREASURY_1M&period=monthly&start=2025-09-30&end=2026-09-30&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$buckets = $data["rates"]["US_TREASURY_1M"];
?>

Endpoint 7: Loan interest cost comparison (convert)

Use convert to estimate simple total interest cost over a term using the latest US_TREASURY_1M versus another symbol. This is useful for benchmarking or sanity-checking internal pricing models.

cURL

official JSON response

Notes:

  • rate is the latest annualized percent for each symbol.
  • total_interest reflects a simple interest calculation over term_months at the returned rate.
  • rate_spread is the arithmetic difference (from.rate − to.rate) in percentage points.

Python (requests)

import requests

params = dict(
from="US_TREASURY_1M",
to="ECB_MRO",
amount=100000,
term_months=12,
api_key="YOUR_API_KEY",
)
r = requests.get("https://interestratesapi.com/api/v1/convert", params=params)
conv = r.json()
spread = conv["difference"]["rate_spread"]

JavaScript (fetch)

const cu = "https://interestratesapi.com/api/v1/convert?from=US_TREASURY_1M&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
const cr = await fetch(cu);
const conv = await cr.json();
const spread = conv.difference.rate_spread;

PHP

<?php
$url = "https://interestratesapi.com/api/v1/convert?from=US_TREASURY_1M&to=ECB_MRO&amount=100000&term_months=12&api_key=YOUR_API_KEY";
$json = file_get_contents($url);
$data = json_decode($json, true);
$spread = $data["difference"]["rate_spread"];
?>

How to compute spreads, accruals, and payments using US_TREASURY_1M

US_TREASURY_1M is an annualized percentage. Common downstream calculations include:

  • Rate spread between two symbols: spread_pp = rateA − rateB (percentage points). Use the difference.rate_spread from the convert endpoint for quick comparisons.
  • Simple daily accrual approximation: daily_rate = (rate_percent / 100) / 360, then interest = notional × daily_rate × days. Use 360 or 365 according to your convention; the API provides the annualized rate without prescribing day count.
  • Monthly payment on interest-only exposure: monthly_interest = notional × (rate_percent / 100) × (days_in_month / day_count_base). Avoid assuming a compounding convention unless your product requires it.

If you need to benchmark your product’s internal cost-of-funds against a public treasury rate, consider a scheduled job that calls /latest for US_TREASURY_1M daily on US business days and caches the result for that date. For historical P&L, use /timeseries to align accruals to recorded fixings. Visit interestratesapi.com for more product details.

Operational guidance: caching, business days, and rate limits

Practical steps to keep your integration reliable:

  • Cache by symbol and effective date. For example, cache latest until the next US business day begins; revalidate after source publication windows.
  • Expect no new data on weekends/US federal holidays for US_TREASURY_1M. Pre-warm charts using /timeseries over the last 30 business days.
  • Handle errors by checking the standardized error shape with success=false and the error message. Respect 429 responses using Retry-After and the X-RateLimit-* headers to throttle retries.
  • Validate inputs: dates must be YYYY-MM-DD; symbols must be from the available catalogue (US_TREASURY_1M is approved).

Error handling and troubleshooting

Common error scenarios you should guard against:

  • 401 (Missing or invalid api_key): Ensure the api_key query parameter is present and valid.
  • 403 (No active plan): Surface a clear message internally; do not retry until access is restored.
  • 404 (No symbols matched or no data): Check the symbol spelling and date range. Some 404s include a details field with available ranges.
  • 422 (Validation errors): Confirm date formats and numeric parameters.
  • 429 (Quota exhausted): Honor Retry-After and monitor X-RateLimit-Remaining.

Example: building a minimal US_TREASURY_1M widget

Steps for a production-ready widget that displays today’s US 1‑month Treasury yield and the week-to-date change:

  1. On app start, call /latest for US_TREASURY_1M and cache the response payload (rate, date, currency).
  2. Compute the start date for the most recent US business-week open (e.g., last Monday on or before today, skipping holidays). Call /fluctuation for start to today.
  3. Render:
    • Headline rate: data.rates["US_TREASURY_1M"] with data.dates["US_TREASURY_1M"].
    • Week-to-date change: difference.change and difference.change_pct from the fluctuation response.
  4. Set a scheduler to refresh on US business days after source publication time; between refreshes, serve from cache.

Get an API key and start integrating: Register. You can also review capabilities on the MCP page.

Security and deployment notes

Use server-side calls to avoid leaking your api_key in client applications. If you must call from the browser, proxy the request via your backend. All Interest Rates API calls use HTTPS GET and the api_key query parameter; do not send credentials in headers. Monitor integration health by logging response metadata such as the dates map and currencies map, which help verify symbol alignment when supporting multiple benchmarks.

Developer FAQ

Q: What exactly is returned in the date fields for US_TREASURY_1M?
A: The API returns the effective calendar date (YYYY-MM-DD) for each symbol in a dates map on /latest and within the per-symbol objects on other endpoints. Treat it as the business date of the fixing, not a timestamp.

Q: How often should I refresh US_TREASURY_1M?
A: Refresh once per US business day after source publication completes. Cache the response for that day. There is no new data on weekends or US federal holidays.

Q: Can I query multiple symbols in one call?
A: Yes, pass a comma-separated list to symbols. The response includes rates, dates, and currencies maps keyed by symbol so you can attribute values correctly.

Q: How do I compute a spread to another rate?
A: Use /latest to fetch both symbols and subtract their values, or call /convert with from and to to get difference.rate_spread computed for you.

Q: What if I request a date with no observation?
A: For non-business days, expect the most recent available observation on or before the requested date within the available range, or a 404 if no data exist for the range.

Ship your US_TREASURY_1M integration now. Explore endpoints at interestratesapi.com and Get started with Interest Rates API. If you prefer a direct registration link, use Register. For model and capability details, see Interest Rates API MCP.

Ready to get started?

Get your API key and start validating bank data in minutes.

Get API Key

Related posts