---
title: "U.S. Federal Grant Opportunity Search"
method: POST
path: "/v1/grants/search"
tags: ["grants", "funding", "deadline", "eligibility", "Grants.gov"]
---

# U.S. Federal Grant Opportunity Search

`POST /v1/grants/search`

## Request

- Base URL: `https://genuinegood.online`
- URL: `https://genuinegood.online/v1/grants/search`
- Auth: none declared

Search current Grants.gov opportunities with normalized deadlines, days remaining, agency, status, assistance listing numbers, and official source links. Payment flow: send the request without PAYMENT-SIGNATURE, read PAYMENT-REQUIRED from the 402 response, sign one accepted option, then retry the identical request with PAYMENT-SIGNATURE.

## Headers

- `PAYMENT-SIGNATURE` string

## Request body

- object
  - `keyword` string, required: Plain-language mission or funding topic
  - `statuses` string[]
  - `rows` integer
  - `offset` integer: Zero-based starting record offset for paginating search results
  - `agencies` string[]: Optional Grants.gov agency codes
  - `eligibilityCodes` string[]
  - `fundingCategories` string[]: Optional Grants.gov funding activity category codes
  - `fundingInstruments` string[]: Optional Grants.gov funding instrument codes

## Response `200`

Paid result

- object
  - `query` object, required
  - `totalMatches` integer, required
  - `pagination` object, required
    - `offset` integer, required
    - `rows` integer, required
    - `totalMatches` integer, required
    - `hasMore` boolean, required
    - `nextOffset` integer, nullable, required
  - `opportunities` object[], required
    - `id` string, required
    - `title` string, required
    - `agency` string
    - `status` string
    - `deadline` string, nullable
    - `closeDate` string, nullable
    - `daysRemaining` integer, nullable
    - `officialUrl` string, uri, required
  - `source` object, required
    - `publisher` 'Grants.gov', required
    - `api` string, uri, required
    - `accessedAt` string, date-time, required
    - `terms` string, uri
  - `caveat` string, required

## Other responses

- `402`: x402 payment required: 0.05 USDC on Base mainnet

---

[API](https://skmtc.dev/genuinegood/apis/genuine-good-grants-genuine-good-grants-api.md) · [All operations](https://skmtc.dev/genuinegood/apis/genuine-good-grants-genuine-good-grants-api/llms.txt) · [OpenAPI document](https://skmtc.dev/genuinegood/apis/genuine-good-grants-genuine-good-grants-api/revisions/5511533a9771?raw)
