XOOMAR

Free Federal Contracts API

The largest federal contract actions per day from USAspending as JSON, with the recipient mapped to its listed parent so obligations can be summed by ticker. Daily refresh of the last ten action dates and a weekly sweep of sixty for late reports.

Endpoints

GET
/api/markets/federal-contracts?days=7&listed=1

Largest actions in the window, 100 rows; listed=1 keeps recipients mapped to a ticker.

GET
/api/markets/federal-contracts?by=ticker&days=30

Obligations summed by listed parent in the window.

GET
/api/markets/federal-contracts?ticker=LMT

Every stored action for one parent, newest first.

GET
/api/markets/federal-contracts/csv

Largest actions of the last 90 days as CSV, up to 10,000 rows.

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
actionDatestringDate the action was signed
awardIdstringContract or order number (PIID)
modstring | nullModification number; 0 or null is the original award
actionTypestring | nullFPDS action type code
amountUsdnumberDollars obligated by this action; negative for de-obligations
recipientNamestringRecipient legal name as registered
tickerstring | nullListed parent from the contractor map; null when private or unmatched
awardingAgency / awardingSubAgencystring | nullAwarding department and bureau
awardTypestring | nullDefinitive contract, delivery order, BPA call, purchase order
naicsCodestring | nullIndustry code of the work
descriptionstring | nullAgency's description of the action, up to 1,000 characters
generatedIdstring | nullUSAspending award id; https://www.usaspending.gov/award/{generatedId}

Coverage is the top few hundred actions per action date (roughly everything above $1M). Agencies report with up to a 90-day lag, so recent dates fill in over time.

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. Attribution is appreciated: xoomar.com/markets.

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?
USAspending.gov's public transaction search, which republishes the Federal Procurement Data System. No key is needed on either side.
What are the rate limits?
30 requests per minute per IP without a key, 120 with a free account key.

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