Source profileQuality 80/100

K-Dense-AI/scientific-agent-skills/skills/usfiscaldata/SKILL.md

usfiscaldata

Query the U.S. Treasury Fiscal Data REST API for federal financial data. No API key required. Use for national debt (Debt to the Penny), Daily Treasury Statements, Monthly Treasury Statements, Treasury securities auctions, interest rates, foreign exchange rates, savings bonds, or U.S. government revenue and spending statistics.

Source repository stars
31,966
Declared platforms
0
Static risk flags
1
Last source update
2026-07-28
Source checked
2026-07-28

Decision brief

What it does—and where it fits

Free, open REST API from the U.S. Department of the Treasury for federal financial data. No API key or registration required.

Best for

    Not for

    • Tasks that require unconfirmed production actions or broad system permissions.
    • Environments where the pinned source and install steps cannot be inspected.

    Compatibility matrix

    Platform support, with evidence labels

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    Installation

    Inspect first. Install second.

    The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.

    Source-detected install commandSource
    npx skills add https://github.com/K-Dense-AI/scientific-agent-skills --skill "skills/usfiscaldata"
    Safe inspection promptEditorial

    Inspect the Agent Skill "usfiscaldata" from https://github.com/K-Dense-AI/scientific-agent-skills/blob/e7ac42510774624f327003c95b6650e2883bc01d/skills/usfiscaldata/SKILL.md at commit e7ac42510774624f327003c95b6650e2883bc01d. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.

    Workflow

    What the source asks the agent to do

    1. 01

      Quick Start

      python import requests import pandas as pd

      python import requests import pandas as pdBASEURL = "https://api.fiscaldata.treasury.gov/services/api/fiscalservice"
    2. 02

      Installation

      Review the “Installation” section in the pinned source before continuing.

      Review and apply the “Installation” source section.
    3. 03

      Get the current national debt (Debt to the Penny)

      resp = requests.get(f"{BASEURL}/v2/accounting/od/debttopenny", params={ "sort": "-recorddate", "page[size]": 1 }) data = resp.json()["data"][0] print(f"Total public debt as of {data['recorddate']}: ${float(data['totpubdebtoutamt']):,.0f}") python

      resp = requests.get(f"{BASEURL}/v2/accounting/od/debttopenny", params={ "sort": "-recorddate", "page[size]": 1 }) data = resp.json()["data"][0] print(f"Total public debt as of {data['recorddate']}: ${float(data['totpubd…
    4. 04

      Get Treasury exchange rates for recent quarters

      resp = requests.get(f"{BASEURL}/v1/accounting/od/ratesofexchange", params={ "fields": "countrycurrencydesc,exchangerate,recorddate", "filter": "recorddate:gte:2024-01-01", "sort": "-recorddate", "page[size]": 100 }) df = pd.DataFrame(resp.json()["data"]) python

      resp = requests.get(f"{BASEURL}/v1/accounting/od/ratesofexchange", params={ "fields": "countrycurrencydesc,exchangerate,recorddate", "filter": "recorddate:gte:2024-01-01", "sort": "-recorddate", "page[size]": 100 }) df…
    5. 05

      Authentication

      None required. The API is fully open and free.

      None required. The API is fully open and free.

    Permission review

    Static risk signals and limitations

    Network access

    medium · line 7

    The documentation includes network, browsing, or remote request actions.

    Browse [54 datasets and 179 data tables](https://fiscaldata.treasury.gov/datasets/) via the dataset search. Verify endpoint paths on each dataset's API Quick Guide — paths change over time.

    Network access

    medium · line 21

    The documentation includes network, browsing, or remote request actions.

    BASE_URL = "https://api.fiscaldata.treasury.gov/services/api/fiscal_service"

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score80/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars31,966SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated or reviewed according to the visible evidence level

    Pinned source

    Provenance and original SKILL.md

    Repository
    K-Dense-AI/scientific-agent-skills
    Skill path
    skills/usfiscaldata/SKILL.md
    Commit
    e7ac42510774624f327003c95b6650e2883bc01d
    License
    MIT
    Collected
    2026-07-28
    Default branch
    main
    View the original SKILL.md

    U.S. Treasury Fiscal Data API

    Free, open REST API from the U.S. Department of the Treasury for federal financial data. No API key or registration required.

    Base URL: https://api.fiscaldata.treasury.gov/services/api/fiscal_service

    Browse 54 datasets and 179 data tables via the dataset search. Verify endpoint paths on each dataset's API Quick Guide — paths change over time.

    Installation

    uv pip install requests pandas
    

    Quick Start

    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"])
    

    Authentication

    None required. The API is fully open and free.

    Core Parameters

    ParameterExampleDescription
    fields=fields=record_date,tot_pub_debt_out_amtSelect specific columns
    filter=filter=record_date:gte:2024-01-01Filter records
    sort=sort=-record_dateSort (prefix - for descending)
    format=format=jsonOutput format: json, csv, xml
    page[size]=page[size]=100Records per page (default 100)
    page[number]=page[number]=2Page index (starts at 1)

    Filter operators: 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"
    

    Key Datasets & Endpoints

    Debt

    DatasetEndpointFrequency
    Debt to the Penny/v2/accounting/od/debt_to_pennyDaily
    Historical Debt Outstanding/v2/accounting/od/debt_outstandingAnnual
    Schedules of Federal Debt/v1/accounting/od/schedules_fed_debtMonthly

    Daily & Monthly Statements

    DatasetEndpointFrequency
    DTS Operating Cash Balance/v1/accounting/dts/operating_cash_balanceDaily
    DTS Deposits & Withdrawals/v1/accounting/dts/deposits_withdrawals_operating_cashDaily
    Monthly Treasury Statement (MTS)/v1/accounting/mts/mts_table_1 (18 tables — see datasets-fiscal.md)Monthly

    Interest Rates & Exchange

    DatasetEndpointFrequency
    Average Interest Rates on Treasury Securities/v2/accounting/od/avg_interest_ratesMonthly
    Treasury Reporting Rates of Exchange/v1/accounting/od/rates_of_exchangeQuarterly
    Interest Expense on Public Debt/v2/accounting/od/interest_expenseMonthly

    Securities & Auctions

    DatasetEndpointFrequency
    Treasury Securities Auctions Data/v1/accounting/od/auctions_queryAs Needed
    Treasury Securities Upcoming Auctions/v1/accounting/od/upcoming_auctionsAs Needed
    Treasury Securities Buybacks/v1/accounting/od/buybacks_operationsAs Needed

    Savings Bonds

    DatasetEndpointFrequency
    I Bonds Interest Rates/v1/accounting/od/i_bonds_interest_ratesSemi-Annual
    Savings Bonds Issues, Redemptions & Maturities/v1/accounting/od/savings_bonds_reportMonthly

    Response Structure

    {
      "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": "..."}
    }
    

    Note: All values are returned as strings. Convert as needed (e.g., float(), pd.to_datetime()). Null values appear as the string "null".

    Common Patterns

    Load all pages into a DataFrame

    Use the bounded fetch_all() helper in parameters.md. For small result sets, a single request with page[size]=10000 may suffice when meta.total-pages is 1.

    # Single-page fetch when 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("Use fetch_all() from parameters.md for multi-page results")
    df = pd.DataFrame(result["data"])
    

    Aggregation (automatic sum)

    Omitting grouping fields triggers automatic aggregation:

    # 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"
    })
    

    Reference Files

    Alternatives

    Compare before choosing