Search contracts
Search federal prime contract transactions. Every base award and every modification is one row, sourced from the federal procurement system of record (FPDS) for award types A, B, C, and D. Coverage today is FY2025 + FY2026 (action dates from October 2024 onward).
Award types A, B, C, and D are the orders and definitive contracts. The indefinite-delivery vehicles those orders are placed against (IDIQ, GWAC, FSS schedule, BPA, BOA) are a separate surface: search them at /api/v1/vehicles/search, and resolve any order to its parent vehicle with /api/v1/contracts/{piid}/vehicle.
Parameters
At least one of uei, parent_uei, piid, parent_piid, agency, or naics is required. Unknown parameters return 400.
uei: recipient UEI, 12 characters, exact match (case-insensitive).parent_uei: recipient parent UEI for corporate roll-up across subsidiaries.piid: Procurement Instrument Identifier, exact match.parent_piid: parent vehicle (IDV) PIID. To resolve an order to its full parent vehicle record, use/api/v1/contracts/{piid}/vehicle.agency: awarding agency name substring, case-insensitive.defensematches every DoD sub-agency.naics: exactly 6 digits.award_type_code: one ofA(BPA Call),B(Purchase Order),C(Delivery Order),D(Definitive Contract). Not a substantive filter on its own; combine with one of the above.date_from/date_to: YYYY-MM-DD bounds onaction_date. Older dates are soft-clamped to the coverage floor; the clamp is surfaced in thewindowblock.amount_min/amount_max: bounds onfederal_action_obligation.0is honored. Acceptsvalue_min/value_maxas aliases.sort_by: one ofaction_date(default),federal_action_obligation,current_total_value_of_award,recipient_name.sort_order:ascordesc(default).limit: Results per page. Default 100; maximum 100 on the free trial and 1,000 on paid plans. Over the maximum returns402.offset: pagination offset.fields:lean(default, 26 fields),expanded(57 fields),full(every column), or a comma-separated list.
Response
Standard list envelope: data, pagination, filters_applied, window, and _sources. pagination.total is exact (no estimate cap). Each row in data is one FPDS transaction. _sources is ["usaspending_fpds"].
Example
curl -H "Authorization: Bearer YOUR_API_KEY" \
"https://govconapi.com/api/v1/contracts/search?uei=CKV2L9GZKJK3&naics=541512&agency=defense&limit=50"