XOOMAR

Free Treasury Auction Results API

Every US Treasury auction since January 2010 from TreasuryDirect: the announced calendar, then the results the afternoon of the auction. High yield, bid-to-cover, and how much went to indirect bidders (foreign and domestic institutions bidding through dealers), direct bidders and primary dealers. Coupon auctions also appear on the economic calendar with the high yield as the actual.

Endpoints

GET
/api/markets/treasury-auctions?type=Note&term=10-Year&from=2020-01-01&limit=5000, or ?upcoming=1

Newest first. Default: coupon auctions (notes, bonds, TIPS, FRNs), 100 rows. type selects Bill, CMB, Note, Bond, TIPS, FRN or all; term one maturity (2-Year, 10-Year, 29-Year 11-Month for a reopening); from and to a window; limit up to 5,000. upcoming=1 returns announced auctions that have not run yet, soonest first.

GET
/api/markets/treasury-auctions/csv

Coupon auctions as CSV, newest first; ?type=all includes bills.

Example

import requests

r = requests.get("https://xoomar.com/api/markets/treasury-auctions", params={"term": "10-Year", "limit": 12})
for a in r.json()["data"]:
    print(a["auctionDate"], a["highYield"], "bid-to-cover", a["bidToCover"], "indirect", a["indirectShare"])

Response Shape

Every endpoint returns the same JSON envelope: { data, updatedAt, source, docs }. The data field is an array of records with these fields:

FieldTypeDescription
cusipstringSecurity CUSIP; a reopening shares the original's CUSIP
auctionDatestring (date)Auction date
securityTypestringBill, CMB (cash management bill), Note, Bond, TIPS or FRN
securityTermstringTerm as announced: 4-Week, 2-Year, 10-Year, 9-Year 10-Month (reopening)
issueDatestring (date) | nullSettlement date
maturityDatestring (date) | nullMaturity
reopeningboolean | nullTrue when the auction adds to an existing issue
offeringAmountnumber | nullAnnounced size, USD
totalAcceptednumber | nullAccepted, USD (null until results)
totalTenderednumber | nullBids received, USD
highYieldnumber | nullStop-out yield, percent (notes, bonds, TIPS)
highRatenumber | nullHigh discount rate (bills) or high discount margin (FRNs), percent
interestRatenumber | nullCoupon set at auction, percent
bidToCovernumber | nullTendered divided by accepted
indirectAcceptednumber | nullAccepted from indirect bidders, USD
directAcceptednumber | nullAccepted from direct bidders, USD
dealerAcceptednumber | nullAccepted by primary dealers, USD
indirectSharenumber | nullIndirect share of accepted, 0 to 1
directSharenumber | nullDirect share of accepted, 0 to 1
dealerSharenumber | nullDealer share of accepted, 0 to 1

Results appear within the hour of the auction close (about 13:00 ET for coupons, 11:30 ET for bills). Announced auctions carry the size and dates only until then.

Numeric values arrive as strings where precision matters (prices, rates); parse with your language's decimal type for accounting-grade math. Rate limiting is fair-use per IP; a 429 response includes a Retry-After header. No authentication or API key needed. Credit XOOMAR with a link to the dataset page when you republish the data; the terms have the licence.

Need more headroom? A free account raises your limit to 120 requests a minute with an X-API-Key header.

Frequently Asked Questions

Where does the data come from?
TreasuryDirect's public auction query API, run by the Bureau of the Fiscal Service. Announcements are read three times a day on business days; results the afternoon of the auction.
What do indirect, direct and dealer mean?
Primary dealers must bid at every auction. Direct bidders are institutions bidding for their own account; indirect bidders bid through a dealer and are mostly foreign central banks and asset managers. A high indirect share with a strong bid-to-cover is a well-received auction; a large dealer share means the street had to absorb the paper.
What is a tail?
The high yield minus the when-issued yield at the close. TreasuryDirect does not publish the when-issued level, so the tail is not in this dataset; compare the high yield with the same term's previous auction instead.
What are the rate limits?
30 requests a minute per IP without a key, 120 with a free account key. Seven days after Pro and Ultra open, the free limits become 10 and 30 a minute with six months of history; Pro (120 a minute, full history) and Ultra (300 a minute) are on the pricing page.

Data on this page is provided for informational purposes only and is not financial advice. See our editorial policy.