---
title: "Search G2X contract vehicles"
method: POST
path: "/api/webmcp/g2x_search_vehicles"
---

# Search G2X contract vehicles

`POST /api/webmcp/g2x_search_vehicles`

## Request

- Base URL: `https://g2x.com`
- URL: `https://g2x.com/api/webmcp/g2x_search_vehicles`
- Auth: API key in cookie `__session`

Searches bounded contract-vehicle definitions such as GWACs and BPAs. It returns linked vehicle records, not a list of vehicles held by a particular company. Continuation is capped at four pages; further research continues in the signed-in product. Invoke from an enabled G2X page surface. A signed-in account receives the same fields and results the G2X page shows that account; a signed-out viewer receives the public projection. Follow a returned continuation cursor instead of increasing the limit.

## Request body

- object
  - `schema_version` '2026-09-01', required
  - `surface` 'awards_spend', required
  - `input` object, required
    - `query` string
    - `funding_agency` string: Canonical agency name or 4-character FPDS code; shorter numeric codes are rejected.
    - `naics` string[]
    - `psc` string[]
    - `fiscal_year` integer[]
    - `limit` integer
    - `cursor` string

## Response `200`

Bounded result with source provenance and linked citations, carrying the fields the signed-in G2X page shows. Data is specific to the operation.

- Success
  - `ok` unknown, required
  - `schema_version` '2026-09-01', required
  - `surface` string, required
  - `data` unknown, required
  - `revision` integer
  - `next_step` object
    - `tool` 'g2x_get_lumen_task' | 'g2x_get_access_options', required
    - `input` object, required
  - `citations` object[], required
    - `label` string, required
    - `record_url` string, uri, required
  - `entitlement` object, required
    - `tier` string, required
    - `withheld_count` integer, required
    - `withheld_fields` string[], required
    - `reason` unknown, required
    - `next_step` object, nullable, required
  - `provenance` object, required
    - `source` string, required
    - `read_at` string, date-time, required
    - `record_count` integer, required
    - `truncated` boolean, required

## Other responses

- `400`: Invalid input or schema version
- `403`: Sign-in, plan or product permission required, or the account's daily record allowance is used
- `404`: Tool, surface or record unavailable, including disabled access or missing product permissions
- `409`: Ambiguous input or revision conflict
- `413`: Request or result exceeds the bounded transport limit
- `429`: Usage limit reached
- `499`: Request aborted
- `500`: Internal error
- `503`: Upstream source unavailable or timed out

---

[API](https://skmtc.dev/g2x/apis/g2x-webmcp-read-transport.md) · [All operations](https://skmtc.dev/g2x/apis/g2x-webmcp-read-transport/llms.txt) · [OpenAPI document](https://skmtc.dev/g2x/apis/g2x-webmcp-read-transport/revisions/0bce02900b04?raw)
