Data Dictionary
Every field the API returns, what it means, and where the data comes from. The reference for anything the docs do not spell out.
List Endpoint Fields
Returned by GET /api/v1/contracts.
| Field | Type | Description |
|---|---|---|
| id | string (uuid) | Unique contract identifier. Use it with GET /api/v1/contracts/:id for the detail. |
| title | string | Contract title. May include a short solicitation descriptor. |
| contract_number | string | The agency's solicitation/reference number. May be null for some sources. |
| state | string (2-char) | State code for the place of performance (e.g. "CA"). "US" for federal / nationwide. |
| agency | string | Issuing agency name. |
| location | string | Place-of-performance location description when available. |
| posting_date | date (ISO) | Date the solicitation was posted. Null for ~31k contracts without a source posting date. |
| due_date | date (ISO) | Response deadline. The key date for most workflows. |
| estimated_value | number | Estimated contract value in USD. Null when not disclosed on the source. |
| naics_codes | array<string> | NAICS industry codes for the contract (2-6 digits). Empty when not classifiable. |
| keywords | array<string> | Extracted capability keywords from the title/description. |
| status | string | "active", "expired", or "all". Currently all rows are active. |
| days_until_due | integer|null | Whole days from now to due_date. Null when no due date. |
| has_attachments | boolean | True if the source exposed solicitation document links. Always true/false, all tiers. |
| created_at | datetime | When our system first ingested the contract. |
Detail Endpoint Fields
Additional fields returned by GET /api/v1/contracts/:id.
| Field | Type | Description |
|---|---|---|
| description | string|null | Full solicitation description / abstract. Listed on detail only. Null when the source did not expose one. |
| source_url | string|null | The original procurement-page link. Send end users here. All tiers, detail only. |
| pdf_urls | array<string> | Solicitation document links (PDF/DOCX/XLS). Paid tiers only; empty on free. Coverage varies by source portal. |
| updated_at | datetime|null | When the row was last refreshed by our daily sync. Use to detect changes. |
Historical Coverage
~102,000
Total contracts
~69,900
With posting date (2025+)
~69,900
With posting date (2024+)
~31,700
No posting date
2006 - 2026 (operationally dense 2024+)
Posting date range
2021 - 2046
Due date range
40+ (26 primary)
Source portals
Daily per source portal
Update frequency
Honest note: the dataset includes records back to 2006, but the operational coverage (where posting dates are dense) is 2024+. ~31,700 contracts have no posting date from their source portal. The list endpoint filters to status=active by default, so you are seeing current, actionable work.
Update Frequency
Every source portal is synced daily. The detail endpoint returns updated_at so you can detect when a row changed (new documents, corrected dates, status changes). Contract additions are incremental - a new posting appears on the next daily sync.
Data Sources
40+ source portals across 5 groups. The list below shows the primary sources and their scale.
Federal (SAM.gov)
The single largest source, ~44.6k contracts. All 50 states' federal work.
BuySpeed / BSO e-procurement states
States on the shared BuySpeed platform - public detail pages + documents.
State procurement portals (custom)
Each state's own system.
BidNet Direct states
States aggregated via BidNet Direct - detail pages may be login-gated.
Bonfire / local tenants
County and city portals on the Bonfire platform.
Exports
The API returns JSON. For spreadsheets or BI tools, request data via the API and export to CSV on your end (the pagination tutorial shows how to pull large sets). Native CSV endpoints, Tableau/Power BI connectors, and bulk exports are in the pipeline.