# US Treasury Yields & Interest Rates Scraper (`scrapemint/us-treasury-rates-scraper`) Actor

Official US Treasury data, keyless: the daily yield curve (1-month to 30-year, with 2s10s spread and inversion flag), TIPS real yields, T-bill rates, auction results with bid-to-cover, average interest on US debt, and total public debt to the penny.

- **URL**: https://apify.com/scrapemint/us-treasury-rates-scraper.md
- **Developed by:** [Ken M](https://apify.com/scrapemint) (community)
- **Categories:** Business, Education
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 data rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## US Treasury Yields & Interest Rates Scraper

The official US Treasury interest-rate record, straight from government feeds: the daily yield curve, TIPS real yields, T-bill rates, auction results, average interest on the US debt, and the total public debt to the penny. No API key, no login, no browser.

### Datasets

Pick one per run:

- **Daily yield curve** - par yields for 1-month through 30-year maturities, one row per trading day, plus a computed **2s10s spread** and **curve inversion flag** (the classic recession signal). History back to 1990.
- **Real yield curve (TIPS)** - inflation-adjusted 5Y-30Y yields.
- **T-bill rates** - 4 to 52-week bill discount and coupon-equivalent rates.
- **Long-term composite rates** - the 20-year-plus composite and real rate.
- **Treasury auction results** - one row per auction: security type and term, offering size, total tendered and accepted, **bid-to-cover ratio**, high yield/discount rate, and the competitive/non-competitive/dealer/direct/indirect acceptance split. Announced-but-not-yet-held auctions appear with their terms and serve as an auction calendar.
- **Average interest rates** - the average rate the US pays on each class of its debt, monthly.
- **Total public debt** - the daily debt to the penny, split by public and intragovernmental holdings.

### Example

```json
{
    "dataset": "yield_curve",
    "sinceDays": 365
}
```

One row per trading day, newest first:

```json
{
    "date": "2026-07-17",
    "yield3Month": 3.85,
    "yield2Year": 4.18,
    "yield10Year": 4.55,
    "yield30Year": 5.06,
    "spread2y10y": 0.37,
    "curveInverted": false
}
```

Set **sinceDays** to 0 for the full available history; rows stream newest first so **maxRows** keeps the recent end.

### Monitor mode

Turn on **newOnly**, put the actor on a daily schedule, and each run emits only rows it has not returned before - fresh yields after each trading day, new auction results as they land. Runs where nothing new arrived cost nothing.

### Who uses this

- **Finance teams and analysts**: the risk-free rate for DCF models, loan pricing and benchmarks, as a clean feed instead of a screenshot from treasury.gov.
- **Fintech and dashboard builders**: yield curve and debt data without a data-vendor subscription.
- **Business schools and econ courses**: real historical curve data for teaching, back to 1990.
- **Macro researchers and journalists**: inversion history, auction demand (bid-to-cover) and debt growth in structured rows.

Pairs with our Labor Statistics Scraper (BLS) for the inflation and jobs side of the macro picture, and our Stock Earnings Calendar for the equity side.

### Pricing

A small fee per data row. Pulls that match nothing are free note rows, and the first 2 rows of every run are free.

### Notes

- Sources: treasury.gov interest-rate XML feeds and the Treasury FiscalData API - both official, keyless US government data.
- Yields are par yields in percent. Auction and debt amounts are in US dollars.
- New yield-curve rows appear each business day around 6pm US Eastern time.

# Actor input Schema

## `dataset` (type: `string`):

Which official Treasury dataset to pull. Daily yield curve is the one most people want: par yields for 1-month through 30-year maturities, one row per trading day.

## `sinceDays` (type: `integer`):

How far back to go, in days. 0 = full available history (the yield curve goes back to 1990; other datasets vary). Rows come newest first, so Max rows caps long pulls at the recent end.

## `newOnly` (type: `boolean`):

Remember rows already returned and emit only ones not seen before. Run on a daily schedule for a clean feed of fresh yields, auctions or debt figures - quiet runs cost nothing.

## `maxRows` (type: `integer`):

Stop after this many rows, newest first.

## Actor input object example

```json
{
  "dataset": "yield_curve",
  "sinceDays": 90,
  "newOnly": false,
  "maxRows": 250
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "dataset": "yield_curve",
    "sinceDays": 90
};

// Run the Actor and wait for it to finish
const run = await client.actor("scrapemint/us-treasury-rates-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "dataset": "yield_curve",
    "sinceDays": 90,
}

# Run the Actor and wait for it to finish
run = client.actor("scrapemint/us-treasury-rates-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "dataset": "yield_curve",
  "sinceDays": 90
}' |
apify call scrapemint/us-treasury-rates-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=scrapemint/us-treasury-rates-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/hTNPPHfgAW5iPWVpd/builds/zOR4dA5Rtxf3egYh2/openapi.json
