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:
- On app start, call /latest for US_TREASURY_1M and cache the response payload (rate, date, currency).
- 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.
- 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.
- 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.




