When a prime wins federal work, who does it flow subcontracts and subgrants down to? Searc
When a prime wins federal work, who does it flow subcontracts and subgrants down to? Search USAspending subawards (File F prime → sub cascade) by sub-recipient or prime name/UEI, prime award id, awarding agency, NAICS, PSC, subaward type (contract/grant), place-of-performance state, amount, or action date. Set new_subawardee=true for first-time subawardees — subs with NO prime award on record, coming up through subcontracts (a bonding/staffing/lending/teaming lead). Public federal records.
1250000 (raw units)
price
1
calls / 30d
1
unique payers
2026-09-08
updated
Provider
api.govparse.io · discovered, not yet claimed by its owner
Payment (x402 accepts[])
[
{
"scheme": "exact",
"network": "eip155:8453",
"payTo": "0x3873d15CF3209c32aaA8d9AA542164E658567129",
"asset": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
"amount": "1250000",
"maxTimeoutSeconds": 300
},
{
"scheme": "exact",
"network": "solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp",
"payTo": "BdcZbENFdEyEUMqv9pnRMUnn1Yyeyo2dCMbYXbJ3LmaB",
"asset": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v",
"amount": "1250000",
"maxTimeoutSeconds": 300
}
]Output schema
{
"bazaar": {
"info": {
"input": {
"method": "GET",
"queryParams": {
"prime_recipient": "lockheed",
"sub_recipient": "technologies",
"sub_uei": "ZQGD2XIX75A5"
},
"type": "http"
},
"output": {
"example": {
"rows": [
{
"action_date": "2026-06-20",
"amount": 391579.43,
"awarding_agency": "Department of Defense",
"awarding_sub_agency": "Department of the Navy",
"naics_code": "541330",
"no_prime_history": true,
"pop_city": "ANAHEIM",
"pop_state": "CA",
"prime_award_id": "N0003022C2001",
"prime_recipient_name": "INTERSTATE ELECTRONICS CORPORATION",
"prime_recipient_uei": null,
"psc_code": "H914",
"recipient_distinct_prime_count": 2,
"recipient_first_subaward_date": "2026-05-02",
"recipient_subaward_count": 3,
"sub_entity_id": null,
"sub_recipient_name": "CPI SATCOM & ANTENNA TECHNOLOGIES INC.",
"sub_recipient_uei": null,
"subaward_key": "3d9f2a1b6c4e5f70a1b2c3d4e5f60718",
"subaward_number": "JH11-00071",
"subaward_type": "sub-contract"
}
],
"total_matched": 1
},
"type": "json"
}
},
"routeTemplate": "/v1/subawards/search",
"schema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"agency": {
"description": "Awarding agency or sub-agency name fragment. Example: 'navy'.",
"examples": [
"navy"
],
"type": "string"
},
"amount_max": {
"description": "Maximum subaward amount in USD.",
"examples": [
50000000
],
"type": "number"
},
"amount_min": {
"description": "Minimum subaward amount in USD.",
"examples": [
100000
],
"type": "number"
},
"awarded_after": {
"description": "Subaward action date on or after (YYYY-MM-DD).",
"examples": [
"2026-01-01"
],
"type": "string"
},
"awarded_before": {
"description": "Subaward action date on or before (YYYY-MM-DD).",
"examples": [
"2026-07-24"
],
"type": "string"
},
"limit": {
"description": "Max rows (default 25, cap 100).",
"examples": [
25
],
"type": "integer"
},
"naics": {
"description": "NAICS code prefix(es), CSV. Example: '5415' covers all IT services.",
"examples": [
"5415"
],
"type": "string"
},
"new_since": {
"description": "Sub-recipient's FIRST observed subaward on or after this date (YYYY-MM-DD).",
"examples": [
"2026-04-01"
],
"type": "string"
},
"new_subawardee": {
"description": "true → only first-time subawardees: subs with NO prime award on record.",
"examples": [
"true"
],
"type": "string"
},
"offset": {
"description": "Rows to skip, for paging.",
"examples": [
0
],
"type": "integer"
},
"prime_award_id": {
"description": "Prime award PIID / FAIN, exact match — all subs under one prime.",
"examples": [
"N0003022C2001"
],
"type": "string"
},
"prime_recipient": {
"description": "Prime recipient name fragment. Example: 'lockheed'.",
"examples": [
"lockheed"
],
"type": "string"
},
"prime_uei": {
"description": "Prime recipient Unique Entity Identifier (SAM UEI), exact match.",
"examples": [
"ABC123DEF456"
],
"type": "string"
},
"psc": {
"description": "Product/Service Code(s), CSV — exact.",
"examples": [
"R425"
],
"type": "string"
},
"sort": {
"description": "field:direction — amount | action_date. Default 'action_date:desc'.",
"examples": [
"amount:desc"
],
"type": "string"
},
"state": {
"description": "Place-of-performance state code(s), CSV.",
"examples": [
"VA"
],
"type": "string"
},
"sub_recipient": {
"description": "Sub-recipient (subcontractor/subgrantee) name fragment.",
"examples": [
"technologies"
],
"type": "string"
},
"sub_uei": {
"description": "Sub-recipient Unique Entity Identifier (SAM UEI), exact match.",
"examples": [
"ZQGD2XIX75A5"
],
"type": "string"
},
"type": {
"description": "contract | grant (sub-contract vs sub-grant). CSV for both.",
"examples": [
"contract"
],
"type": "string"
}
},
"required": [],
"type": "object"
}
},
"type": "object"
}
}
}Use it
curl
curl "https://api.govparse.io/v1/subawards/search" # -> 402 Payment Required, accepts[] lists how to pay # retry with a PAYMENT-SIGNATURE (or PAYMENT header) once paid
JavaScript
const res = await fetch("https://api.govparse.io/v1/subawards/search");
if (res.status === 402) {
const { accepts } = await res.json();
// pay one of accepts[] via an x402 client, then retry with the payment header
}Python
import httpx
res = httpx.get("https://api.govparse.io/v1/subawards/search")
if res.status_code == 402:
accepts = res.json()["accepts"]
# pay one of accepts[] via an x402 client, then retry with the payment headerMachine-readable
Everything on this page is also available as clean JSON at /resources/14582.json, and this resource appears in /discovery/resources and /discovery/search.