Awards — who got paidApprovals — what authorized it

API docs

The same real nationwide ledger behind the dashboard, as JSON. Amounts are stated approval dollars — amount: null means not reported, never zero.

Authentication

Create a key in your account, then send it as the x-api-key header (or ?api_key=). API access requires a Basic or Enterprise plan.

curl -H "x-api-key: uo_live_..." \
  "https://usa-outlays.ai/api/v1/approvals?state=TX&min_amount=1000000"

Quotas

  • Basic — 100 requests/day
  • Enterprise — 100,000 requests/day

Every response includes a quota object with your tier, limit, used, and remaining counts. Exceeding the daily quota returns HTTP 429.

Endpoints

GET/api/v1/approvals

Approvals and funding decisions — the layer that authorized spending.

params: state, body_type, item_type, min_amount, page

GET/api/v1/awards

Awards (who got paid) and CA procurement line items.

params: state, record_kind (award|po_line), topic (node id), vendor_id, min_amount, page

GET/api/v1/topics

Taxonomy tree: government functions → domains → topics, with classified award counts and stated dollars.

params: none

GET/api/v1/vendors/{vendorId}

Canonical vendor entity: aliases, award counts, stated totals, top topics.

params: vendorId in path

GET/api/v1/bodies

Government bodies — the entity spine.

params: state, body_type, q, page

GET/api/v1/search

Full-text search across approvals, awards, and PO lines.

params: q (required), state, record_kind, limit

Data honesty

  • Amounts are stated approval dollars from public records — not confirmed spend.
  • amount: null means the amount was not reported; never treat it as 0.
  • Agenda-only records are proposed actions, not confirmed spend.
  • record_kind: "po_line" rows are California purchase-order line items (FY2012–2015), not standalone awards.
  • Obligations are not outlays. Coverage: all loaded states.