usfiscaldata について
usfiscaldata は、認証不要で連邦財政データを提供する U.S. Treasury Fiscal Data REST API の利用を案内するスキルです。エンドポイント、クエリパラメーター、応答処理、データ操作例を扱います。
主な機能
- 01債務と財務省報告データ
- 02金利と為替レートのデータ
- 03証券と貯蓄債券のデータ
- 04フィールド選択、絞り込み、並べ替え
- 05ページネーションと応答処理
- 06Python、R、pandas の例
活用シーン
- 01現在および過去の連邦債務の確認
- 02財務省の資金フローと報告書の分析
- 03為替レートや金利データの取得
- 04国債入札や貯蓄債券データの調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ crazymsn/ academic-skills --skill usfiscaldataインストール後、Claude Code で/usfiscaldataを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/api-basics.mddatasets-debt.mddatasets-fiscal.mddatasets-interest-rates.mddatasets-securities.mdexamples.mdparameters.mdresponse-format.md詳細
U.S. Treasury Fiscal Data API
米国財務省が提供する、連邦財政データのための無料のオープン REST API です。API キーも登録も必要ありません。
ベース URL: https://api.fiscaldata.treasury.gov/services/api/fiscal_service
クイックスタート
import requests
import pandas as pd
BASE_URL = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service"
# Get the current national debt (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"Total public debt as of {data['record_date']}: ${float(data['tot_pub_debt_out_amt']):,.0f}")
# Get Treasury exchange rates for recent quarters
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
# Multiple filters separated by comma
"filter=country_currency_desc:in:(Canada-Dollar,Mexico-Peso),record_date:gte:2024-01-01"
主なデータセットとエンドポイント
債務
| データセット | エンドポイント | 頻度 |
|---|---|---|
| 1 ペニー単位の債務 | /v2/accounting/od/debt_to_penny | 毎日 |
| 過去の未払い債務 | /v2/accounting/od/historical_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(16 テーブル) | 毎月 |
金利と為替
| データセット | エンドポイント | 頻度 |
|---|---|---|
| 米国債の平均金利 | /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 | 必要に応じて |
| 平均金利 | /v2/accounting/od/avg_interest_rates | 毎月 |
貯蓄債券
| データセット | エンドポイント | 頻度 |
|---|---|---|
| I ボンドの金利 | /v2/accounting/od/i_bond_interest_rates | 半年ごと |
| 米国財務省貯蓄債券:発行、償還、満期 | /v1/accounting/od/sb_issues_redemptions | 毎月 |
レスポンス構造
{
"data": [...],
"meta": {
"count": 100,
"total-count": 3790,
"total-pages": 38,
"labels": {"field_name": "Human Readable Label"},
"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 に読み込む
def fetch_all_pages(endpoint, params=None):
params = params or {}
params["page[size]"] = 10000 # max size to minimize requests
resp = requests.get(f"{BASE_URL}{endpoint}", params=params)
result = resp.json()
df = pd.DataFrame(result["data"])
return df
集計(自動合計)
グループ化フィールドを省略すると、自動的に集計されます。
# Sum all deposits/withdrawals by record_date and transaction type
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、Historical Debt、Schedules of Federal Debt、TROR
- datasets-fiscal.md — Daily Treasury Statement、Monthly Treasury Statement、歳入、支出
- datasets-interest-rates.md — 平均金利、為替レート、TIPS/CPI、認定金利
- datasets-securities.md — 財務省のオークション、貯蓄債券、SLGS、買い戻し
- response-format.md — レスポンスオブジェクト、エラー処理、ページネーション、レスポンスコード
- examples.md — 一般的なユースケース向けの Python、R、pandas のコード例
コメント
Markdown 対応