Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.
openapi: 3.2.0
info:
title: Genuine Good Grants / Genuine Good Grants API pass API
version: 1.0.0
description: Independent paid API for current U.S. federal grant discovery using Grants.gov public records. This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.
termsOfService: https://genuinegood.online/terms
contact:
name: Genuine Good Grants
email: hello@genuinegood.online
url: https://genuinegood.online/grants
x-guidance: Use the POST form of the six /v1/grants routes. Send a descriptive User-Agent identifying your actual client and version; the default Python urllib user-agent can be denied at the edge before reaching the API. Do not impersonate a browser. Send JSON without PAYMENT-SIGNATURE first to receive a 402 response, then sign the accepted Base USDC x402 option and retry the identical request. Five grant tools cost $5 USDC per request; the non-renewing 30-day pass costs $15 and supports up to 1,000 calls. See /grants/quickstart.
servers:
- url: https://genuinegood.online
tags:
- name: API pass
paths:
/v1/grants/pass:
post:
operationId: grant-api-30-day-pass
summary: Genuine Good Grants API 30-Day API Pass
description: 'Activate 30 days of bearer-token access to every Genuine Good Grants API tool, subject to a 1,000-request fair-use limit. The client supplies its own random token; Genuine Good stores only its SHA-256 hash. 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.'
tags:
- API pass
x-x402:
version: 2
scheme: exact
network: eip155:8453
asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
amount: '15000000'
priceUsd: '15.00'
x-payment-info:
protocols:
- x402: {}
price:
mode: fixed
currency: USD
amount: '15.000000'
parameters:
- name: PAYMENT-SIGNATURE
in: header
required: false
description: Base64-encoded x402 v2 payment payload. First call without this header to receive PAYMENT-REQUIRED, then retry the same request with the signed payload.
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
activationId:
type: string
format: uuid
description: Client-generated idempotency key; also include it as the activationId query parameter.
token:
type: string
pattern: ^ggp_[A-Za-z0-9_-]{43}$
description: 'Client-generated token: ggp_ plus 32 random base64url bytes. Store it securely; Genuine Good stores only its hash.'
required:
- activationId
- token
additionalProperties: false
responses:
'200':
description: Paid result
headers:
PAYMENT-RESPONSE:
description: Base64-encoded x402 settlement response for a successful paid retry
schema:
type: string
content:
application/json:
schema:
type: object
required:
- activationId
- accessToken
- status
- expiresAt
- requestLimit
- requestCount
properties:
activationId:
type: string
format: uuid
accessToken:
type: string
pattern: ^ggp_[A-Za-z0-9_-]{43}$
status:
type: string
enum:
- activates-after-settlement
- active
expiresAt:
type: string
format: date-time
requestLimit:
type: integer
const: 1000
requestCount:
type: integer
minimum: 0
additionalProperties: false
'402':
description: 'x402 payment required: 15.00 USDC on Base mainnet'
headers:
PAYMENT-REQUIRED:
description: Base64-encoded x402 v2 payment requirements
schema:
type: string
externalDocs:
description: This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.
url: https://www.grants.gov/api/terms-conditions