lookup_piid
Look up awards by their exact PIID, across contracts AND IDVs.
Looks for awards whose own PIID is exactly this value (the award_ids
filter), in both contracts and IDVs, and says how many share it.
match='exact' rows are the awards themselves: an IDV PIID returns the
IDV (award_type='idv'; its Award Amount is what was obligated on the IDV
record itself, usually 0, so use get_idv_amounts() for the order total).
PIIDs are not unique: task and delivery order numbers like '0001' repeat
under different parent IDVs, so check 'ambiguous' and tell matches apart
by parent_idv_piid and Awarding Agency.
Only when nothing has that exact PIID does it fall back to keyword
search, and those rows come back as match='fuzzy': keyword search
matches the award's own PIID and its description text, NOT its parent
IDV, so a vehicle PIID or prefix returns only orders whose description
happens to cite it. For the orders under a vehicle use get_idv_activity()
or get_idv_children() with the IDV's generated_internal_id; for a
contracting-office prefix (N00024, W91CRB, FA8650) use search_awards
keywords with a time window.
limit applies to contracts and to IDVs separately. Use
get_award_detail() with a returned generated_internal_id for the full
record. Handy for enriching PRISM, Contract Court, or FPDS exports where
you have a PIID but don't know whether it's a contract or IDV.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"piid": "<piid>"
},
"name": "lookup_piid"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| piid | Yes | ||
| limit | No |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||