---
title: "Search G2X opportunities"
method: POST
path: "/api/webmcp/g2x_search_opportunities"
---

# Search G2X opportunities

`POST /api/webmcp/g2x_search_opportunities`

## Request

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

Searches bounded opportunity records using G2X procurement intelligence and returns resolvable record links. It does not expose notice bodies, hidden fields, bulk extracts, or an upstream API response. 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` 'opportunity_search', 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
    - `set_aside` string[]
    - `response_deadline_after` string
    - `response_deadline_before` 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)
