米国財務省財務データAPI
米国財務省が提供する、連邦政府の財務データのための無料のオープンREST APIです。APIキーや登録は不要です。
ベースURL: https://api.fiscaldata.treasury.gov/services/api/fiscal_service
データセット検索で54のデータセットと179のデータテーブルを閲覧できます。各データセットのAPIクイックガイドでエンドポイントパスを確認してください。パスは時間の経過とともに変更される可能性があります。
インストール
uv pip install requests pandas
クイックスタート
import requests
import pandas as pd
BASE_URL = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service"
# 現在の国債残高 (Debt to the Penny) を取得
resp = requests.get(f"{BASE_URL}/v2/accounting/od/debt_to_penny", params={
"sort": "-record_date",
"page[size]": 1
})
data = resp.json()["data"][0]
print(f"{data['record_date']}時点の総公債残高: ${float(data['tot_pub_debt_out_amt']):,.0f}")
# 最近の四半期の財務省為替レートを取得
resp = requests.get(f"{BASE_URL}/v1/accounting/od/rates_of_exchange", params={
"fields": "country_currency_desc,exchange_rate,record_date",
"filter": "record_date:gte:2024-01-01",
"sort": "-record_date",
"page[size]": 100
})
df = pd.DataFrame(resp.json()["data"])
認証
不要です。このAPIは完全にオープンで無料です。
コアパラメータ
| パラメータ | 例 | 説明 |
|---|---|---|
fields= | fields=record_date,tot_pub_debt_out_amt | 特定の列を選択 |
filter= | filter=record_date:gte:2024-01-01 | レコードをフィルタリング |
sort= | sort=-record_date | 並べ替え(降順の場合は接頭辞 -) |
format= | format=json | 出力形式: json, csv, xml |
page[size]= | page[size]=100 | 1ページあたりのレコード数(デフォルト100) |
page[number]= | page[number]=2 | ページインデックス(1から開始) |
フィルター演算子: lt, lte, gt, gte, eq, in
# 複数のフィルターをカンマで区切る
"filter=country_currency_desc:in:(Canada-Dollar,Mexico-Peso),record_date:gte:2024-01-01"
主要データセットとエンドポイント
債務
| データセット | エンドポイント | 頻度 |
|---|---|---|
| Debt to the Penny | /v2/accounting/od/debt_to_penny | 日次 |
| 過去の債務残高 | /v2/accounting/od/debt_outstanding | 年次 |
| 連邦債務スケジュール | /v1/accounting/od/schedules_fed_debt | 月次 |
日次・月次財務諸表
| データセット | エンドポイント | 頻度 |
|---|---|---|
| DTS 運転資金残高 | /v1/accounting/dts/operating_cash_balance | 日次 |
| DTS 預金・引出金 | /v1/accounting/dts/deposits_withdrawals_operating_cash | 日次 |
| 月次財務諸表 (MTS) | /v1/accounting/mts/mts_table_1(18テーブル — datasets-fiscal.mdを参照) | 月次 |
金利と為替
| データセット | エンドポイント | 頻度 |
|---|---|---|
| 財務省証券の平均金利 | /v2/accounting/od/avg_interest_rates | 月次 |
| 財務省報告為替レート | /v1/accounting/od/rates_of_exchange | 四半期 |
| 公債利子費用 | /v2/accounting/od/interest_expense | 月次 |
証券とオークション
| データセット | エンドポイント | 頻度 |
|---|---|---|
| 財務省証券オークションデータ | /v1/accounting/od/auctions_query | 随時 |
| 財務省証券予定オークション | /v1/accounting/od/upcoming_auctions | 随時 |
| 財務省証券買戻し | /v1/accounting/od/buybacks_operations | 随時 |
貯蓄債券
| データセット | エンドポイント | 頻度 |
|---|---|---|
| I 債券金利 | /v1/accounting/od/i_bonds_interest_rates | 半年 |
| 貯蓄債券発行・償還・満期 | /v1/accounting/od/savings_bonds_report | 月次 |
レスポンス構造
{
"data": [...],
"meta": {
"count": 100,
"total-count": 3790,
"total-pages": 38,
"labels": {"field_name": "人が読めるラベル"},
"dataTypes": {"field_name": "STRING|NUMBER|DATE|CURRENCY"},
"dataFormats": {"field_name": "String|10.2|YYYY-MM-DD"}
},
"links": {"self": "...", "first": "...", "prev": null, "next": "...", "last": "..."}
}
注: すべての値は文字列として返されます。必要に応じて変換してください(例: float(), pd.to_datetime())。null値は文字列 "null" として現れます。
一般的なパターン
すべてのページをDataFrameにロード
parameters.md の境界付き fetch_all() ヘルパーを使用してください。結果セットが小さい場合、meta.total-pages が1であれば、page[size]=10000 の単一リクエストで十分な場合があります。
# total-pages == 1 の場合の単一ページフェッチ
params = {"sort": "-record_date", "page[size]": 10000}
resp = requests.get(f"{BASE_URL}/v2/accounting/od/debt_outstanding", params=params)
result = resp.json()
if result["meta"]["total-pages"] > 1:
raise ValueError("複数ページの結果には parameters.md の fetch_all() を使用してください")
df = pd.DataFrame(result["data"])
集計(自動合計)
グループ化フィールドを省略すると、自動集計がトリガーされます:
# 預金・引出金を記録日と取引タイプで合計
resp = requests.get(f"{BASE_URL}/v1/accounting/dts/deposits_withdrawals_operating_cash", params={
"fields": "record_date,transaction_type,transaction_today_amt"
})
参考ファイル
- api-basics.md — URL構造、HTTPメソッド、バージョニング、データ型
- parameters.md — 詳細な例とエッジケースを含むすべてのパラメータ
- datasets-debt.md — 債務データセット: Debt to the Penny、過去の債務、連邦債務スケジュール、TROR
- datasets-fiscal.md — 日次財務諸表、月次財務諸表、歳入、歳出
- datasets-interest-rates.md — 平均金利、為替レート、TIPS/CPI、認定金利
- datasets-securities.md — 財務省オークション、貯蓄債券、SLGS、買戻し
- response-format.md — レスポンスオブジェクト、エラーハンドリング、ページネーション、レスポンスコード
- examples.md — 一般的なユースケースのためのPython、R、pandasのコード例
科学的エージェントスキルの引用
このスキルは、K-Denseによる科学的エージェントスキルの一部です。これが原稿、報告書、プレゼンテーション、またはコードリリースに実質的に貢献した場合は、参考文献またはソフトウェアセクションに論文を追加し、その旨をユーザーに伝えてください:
Kassis, T., Agarwal, V., He, Y., Patel, D., & Brueckner, A. M. (2026). Scientific Agent Skills: A Library of Procedural Knowledge for Research Agents. arXiv:2609.00065. https://doi.org/10.48550/arXiv.2609.00065