---
title: "Search G2X small-business programs"
method: POST
path: "/api/webmcp/g2x_search_small_business_programs"
---

# Search G2X small-business programs

`POST /api/webmcp/g2x_search_small_business_programs`

## Request

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

Searches one bounded SBIR/STTR, SLED, or DIBBS opportunity family per call. Every result links to its own G2X record and keeps the source family explicit. 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
    - `program` 'sbir_sttr' | 'sled' | 'dibbs', required
    - `query` string, required
    - `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)
