Skip to content

Search contract vehicles

Search federal contract vehicles: the IDIQs, GWACs, FSS schedules, BPAs, and BOAs that task orders are placed against. Sourced from FPDS via USAspending.

Most federal services work is not bought as a standalone contract. It is a task order placed against a vehicle the winner already holds, so the actionable question is often not "who won this" but "what would I have needed to hold to bid at all." /contracts/* carries the orders; this endpoint carries the vehicles they hang off.

One row per vehicle

A vehicle's base award and each of its modifications are separate rows in FPDS. This endpoint collapses them: you get one row per vehicle, carrying its latest transaction, and pagination.total counts distinct vehicles. Searching idv_type=GWAC returns the GWACs, not the thousands of modification records behind them.

That is the opposite of /contracts/search, where a transaction is the unit of interest because each one is a distinct obligation.

Parameters

At least one of uei, parent_uei, piid, agency, naics, or idv_type is required. Unknown parameters return 400.

Parameter Type Description
uei string Vehicle holder's UEI, exactly 12 characters
parent_uei string Holder's parent UEI (corporate roll-up)
piid string Vehicle PIID (exact)
agency string Awarding agency name, acronym, or CGAC code (Navy, Department of Defense, 1700)
naics string NAICS, exactly 6 digits
idv_type string IDC, FSS, BPA, GWAC, or BOA
active_only boolean Only vehicles whose ordering period has not closed
date_from, date_to date YYYY-MM-DD, filters action_date (the award date)
ceiling_min, ceiling_max number Vehicle ceiling (potential_total_value_of_award)
sort_by string action_date (default), potential_total_value_of_award, ordering_period_end_date, recipient_name
sort_order string asc or desc (default desc)
limit, offset integer Page size (default 100; maximum 100 on the free trial, 1,000 on paid plans) and start
fields string lean (default), expanded, full, or a comma-separated column list

Vehicle types

Code What it is
IDC Indefinite Delivery Contract, the IDIQ family. The largest group by far.
FSS Federal Supply Schedule, the GSA schedules.
BPA Blanket Purchase Agreement.
GWAC Government-Wide Acquisition Contract (SEWP, Alliant, and similar).
BOA Basic Ordering Agreement.

Which columns carry a vehicle's money and dates

FPDS populates different columns on a vehicle than on an order, and the ones that look right on a vehicle are usually the order's columns, left empty:

  • The ceiling is potential_total_value_of_award. base_and_all_options_value is populated on a minority of vehicles and current_total_value_of_award is never populated on one, so neither is a usable filter or sort key. A $7.7 billion Navy IDIQ reads 0.0 in base_and_all_options_value.
  • The end date is ordering_period_end_date, the day the ordering period closes. The period_of_performance_*_end_date pair is not populated on vehicles, and is excluded from the default projection rather than returned as a column that is always null. active_only reads the ordering period.

ceiling_min / ceiling_max and the ceiling sort key all target potential_total_value_of_award.

Example

curl -H "Authorization: Bearer $GOVCON_API_KEY" \
  "https://govconapi.com/api/v1/vehicles/search?idv_type=GWAC&sort_by=potential_total_value_of_award&limit=1"
{
  "data": [
    {
      "award_id_piid": "47QTCB26D0001",
      "contract_award_unique_key": "CONT_IDV_47QTCB26D0001_4732",
      "idv_type": "GWAC",
      "idv_type_code": "A",
      "prime_award_base_transaction_description": "THE GSA ALLIANT 3 GWAC PROVIDES IT SERVICES-BASED SOLUTIONS THROUGH PERFORMANCE OF A BROAD RANGE OF IT SERVICES THROUGH FLEXIBLE TASK ORDER CONTRACTING TO ELIGIBLE FEDERAL AGENCIES IN ACCORDANCE WITH GSA ORDER OGP 4800.2I.",
      "action_date": "2026-05-06",
      "period_of_performance_start_date": "2026-02-25",
      "ordering_period_end_date": "2036-03-09",
      "potential_total_value_of_award": 999999999999.99,
      "awarding_agency_name": "General Services Administration",
      "awarding_sub_agency_name": "Federal Acquisition Service",
      "recipient_uei": "JCBMLGPE6Z71",
      "recipient_name": "BOOZ ALLEN HAMILTON INC",
      "naics_code": "541512",
      "naics_description": "COMPUTER SYSTEMS DESIGN SERVICES",
      "multiple_or_single_award_idv": "MULTIPLE AWARD",
      "usaspending_permalink": "https://www.usaspending.gov/award/CONT_IDV_47QTCB26D0001_4732/"
    }
  ],
  "pagination": { "limit": 1, "offset": 0, "total": 3016, "total_is_estimate": false, "has_next": true },
  "filters_applied": { "idv_type": "GWAC", "sort_by": "potential_total_value_of_award", "sort_order": "desc" },
  "window": { "plan_window_days": null, "earliest_searchable": "1982-05-15", "clamped": false },
  "_sources": ["usaspending_fpds"]
}

The 999999999999.99 ceiling above is real FPDS data. A thin tail of vehicles carries placeholder ceilings (all-nines values, and GSA schedules recorded in the trillions). These are the source's values and are passed through unchanged rather than rewritten.

Coverage

Vehicles are long-lived, so this data is not date-windowed the way /contracts/* is: a GWAC awarded in 2015 is still the thing you must hold in 2026, and its award date says nothing about its relevance. The full vehicle history we carry is searchable on every plan, back to 1982. Use active_only=true to restrict to vehicles whose ordering period is still open.

Errors

Status When
400 No required filter given (uei, parent_uei, piid, agency, naics, or idv_type); an unknown query parameter; a malformed naics (not 6 digits); an unrecognized idv_type; or a non-ISO date
401 Missing or invalid API key
429 Rate limit exceeded (see Retry-After)

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.