US federal award details
One federal award: ids (PIID or FAIN), category and type, description, total obligation, options, outlays, funding, loan face value and subsidy, subawards, dates and period of performance, awarding and funding agency with office, recipient (UEI, parent, business categories, location), place of performance, NAICS and PSC hierarchy, assistance listing, parent award, the latest contract or assistance transaction data (competition, set-aside, pricing, offers and more) and obligations and outlays by disaster code. With include=subawards adds subawards (number, recipient, amount, action date, description; largest first) and subawards_has_more; with include=transactions adds transactions (each modification: action date, modification number, action type, description, obligation amount; newest first) and transactions_has_more.
Every response includes credits_used: the credits this call cost.
Parameters
| name | type | description |
|---|---|---|
id | string | The award's internal id (internal_id in /usaspending/v1/awards). Example: CONT_AWD_DEAC0494AL85000_8900_-NONE-_-NONE- |
include | string | Extra lists, comma-separated: subawards, transactions. |
include_limit | integer | Rows per included list, 1-100 (default 25). |
Every endpoint also takes fresh, raw, fields (see lean responses and caching).
Example
curl "https://api.api.sh/usaspending/v1/award?id=CONT_AWD_DEAC0494AL85000_8900_-NONE-_-NONE-" \
-H "x-api-key: $APISH_KEY" import os, requests
res = requests.get(
"https://api.api.sh/usaspending/v1/award",
params={"id": "CONT_AWD_DEAC0494AL85000_8900_-NONE-_-NONE-"},
headers={"x-api-key": os.environ["APISH_KEY"]},
timeout=120,
)
res.raise_for_status()
data = res.json() const url = new URL("https://api.api.sh/usaspending/v1/award");
url.searchParams.set("id", "CONT_AWD_DEAC0494AL85000_8900_-NONE-_-NONE-");
const res = await fetch(url, { headers: { "x-api-key": process.env.APISH_KEY } });
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
const data = await res.json(); Response
A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).