Skip to content

Single contract vehicle

Returns the vehicle's latest transaction plus two roll-ups: one across the vehicle's own transaction history, and one across the orders placed against it.

The second is what makes this endpoint worth calling. A vehicle's own transactions carry its ceiling, the most that may be ordered through it. The money moves on the orders, which live in the contracts table. A vehicle without its orders is a stub.

Response

curl -H "Authorization: Bearer $GOVCON_API_KEY" \
  "https://govconapi.com/api/v1/vehicles/N0003920D0054"
{
  "vehicle": {
    "award_id_piid": "N0003920D0054",
    "contract_award_unique_key": "CONT_IDV_N0003920D0054_9700",
    "idv_type": "IDC",
    "idv_type_code": "B",
    "prime_award_base_transaction_description": "SERVICE MANAGEMENT, INTEGRATION, AND TRANSPORT (SMIT)",
    "action_date": "2025-12-08",
    "period_of_performance_start_date": "2020-02-01",
    "ordering_period_end_date": "2028-08-04",
    "potential_total_value_of_award": 7729639286.25,
    "awarding_agency_name": "Department of Defense",
    "awarding_sub_agency_name": "Department of the Navy",
    "recipient_uei": "UE9QJD4KK1L6",
    "recipient_name": "LEIDOS, INC.",
    "naics_code": "541512",
    "multiple_or_single_award_idv": "SINGLE AWARD",
    "usaspending_permalink": "https://www.usaspending.gov/award/CONT_IDV_N0003920D0054_9700/"
  },
  "transaction_rollup": {
    "transaction_count": 70,
    "max_ceiling": 7729639286.25,
    "first_action_date": "2020-02-05",
    "latest_action_date": "2025-12-08",
    "ordering_period_end_date": "2028-08-04",
    "distinct_awardees": 1
  },
  "orders_rollup": {
    "order_count": 16056,
    "distinct_orders": 5988,
    "total_obligated": 1257164494.67,
    "distinct_holders": 1,
    "first_order_date": "2024-10-01",
    "latest_order_date": "2026-02-27"
  },
  "vehicle_family": {
    "is_multiple_award": false,
    "piid_count": 1,
    "solicitation_identifier": "N0003918R0005",
    "note": null
  },
  "_sources": ["usaspending_fpds"]
}

Read that as: the Navy's SMIT vehicle has a $7.73 billion ceiling, its ordering period runs to August 2028, and $1.26 billion has actually been obligated across 5,988 distinct orders.

On a multiple-award IDIQ, the same call looks different. SMIT above is a single-award vehicle (one PIID, one company), the simplest and least representative case. Query one specific PIID of a multiple-award vehicle instead (each awardee under a multi-award IDIQ gets its OWN PIID) and vehicle_family changes shape:

"vehicle_family": {
  "is_multiple_award": true,
  "piid_count": 6926,
  "solicitation_identifier": "FCIS-JB-980001-B",
  "note": "This PIID is one of several awards under the same solicitation. transaction_rollup/orders_rollup above describe only this award; see /vehicles/{piid}/holders for every holder and who has earned through the whole family."
}

transaction_rollup/orders_rollup still describe only the ONE PIID you queried — distinct_awardees/distinct_holders read 1, because FPDS gives every awardee of a multi-award vehicle a separate PIID, so a single PIID's own history can structurally never show more than one. That's not a bug: it matches how USAspending's own IDV award view works (a single award record has no cross-awardee aggregation). vehicle_family is the signal that tells you when a "1" means "the only holder" versus "one of 6,926 , see /holders for the rest."

Fields

transaction_rollup , across every transaction of the vehicle itself.

Field Meaning
transaction_count The vehicle's base award plus every modification
max_ceiling Highest potential_total_value_of_award seen. This is the ceiling.
max_base_and_all_options_value The equivalent column used on orders. Populated on a minority of vehicles; usually 0.
ordering_period_end_date When the ordering period closes
distinct_awardees Firms holding this PIID. Always 1 , see vehicle_family below for the multi-award picture.

orders_rollup , across the orders placed against this PIID (prime_awards.parent_award_id_piid).

Field Meaning
order_count Order transactions, modifications included
distinct_orders Distinct orders (modifications collapsed)
total_obligated Dollars actually obligated through this PIID
distinct_holders Firms that have been paid through this PIID. Always 1, same reason as distinct_awardees above.

order_count is always greater than or equal to distinct_orders: an order and its modifications are separate FPDS rows.

vehicle_family , whether this PIID is one of several awards under the same solicitation. On a multiple-award IDIQ (GSA Alliant-style: one program, many awardees, each with their own PIID), transaction_rollup/orders_rollup above describe only the one PIID in the URL , this block is what tells you that's happening.

Field Meaning
is_multiple_award true if this PIID shares a solicitation with sibling awards
piid_count How many PIIDs (including this one) share that solicitation. 1 when not multi-award.
solicitation_identifier The shared solicitation, or null if none is on record
note Guidance pointing to /holders, present only when is_multiple_award is true

For the full holder list and who has actually earned money across the whole family, use /vehicles/{piid}/holders , this endpoint deliberately does not blend sibling awardees' numbers into transaction_rollup/orders_rollup, since that would answer a different question (the whole program's activity) than the one the URL asks (this one award's activity).

Coverage

Orders are carried from FY2025 onward, so orders_rollup counts orders placed in that window, while the vehicle record itself may date back decades. A vehicle awarded before FY2025 shows its full history in transaction_rollup and only its recent orders in orders_rollup.

Returns 404 if the PIID is not a vehicle we carry. If you have an order PIID and want the vehicle it rides, use /contracts/{piid}/vehicle instead.

Errors

Status When
400 Any query parameter is sent (this endpoint takes none)
401 Missing or invalid API key
404 The PIID is not a vehicle we carry. If you have an order PIID, use /contracts/{piid}/vehicle

A REST API and MCP server for U.S. federal procurement data.

Get a free key, emailed instantly, or follow the quickstart.

Found something wrong, missing or confusing on this page?

Press Ctrl + Enter to send a note. Highlight text first and it travels with your note.