One request.Or 30 days.

Genuine Good Grants API exposes five U.S. federal grant research tools over x402 v2. Pay per request, or activate a non-renewing $15 pass for 30 days of bearer-token access with a 1,000-request fair-use limit.

Know what the $5 call returns.

See one current Grants.gov notice screened through the same deterministic preflight used for a paid request. No wallet, account, or payment is needed for this example.

Useful output before a paid call.Source link, normalized fields, visible flags, and the limits of the signal.
Loading one current official record…
WHEN YOU ARE READY

Bring 1–5 of your own opportunity IDs. The paid preflight costs $5 USDC on Base and returns this same kind of source-linked screening for your shortlist.

Read the first-call guide

Generate the secret. Pay once. Keep calling.

Your client creates the token locally and sends it only over HTTPS. Genuine Good stores its SHA-256 hash, never the bearer token itself. Save the token in your secret manager; it cannot be recovered.

const activationId = crypto.randomUUID();
const bytes = crypto.getRandomValues(new Uint8Array(32));
const token = "ggp_" + Buffer.from(bytes).toString("base64url");

const passResponse = await paidFetch(
  `https://genuinegood.online/v1/grants/pass?activationId=${activationId}`,
  {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({ activationId, token }),
  },
);
if (!passResponse.ok) throw new Error("Pass activation failed");
const pass = await passResponse.json();

const apiResponse = await fetch("https://genuinegood.online/v1/grants/search", {
  method: "POST",
  headers: {
    "content-type": "application/json",
    authorization: `Bearer ${token}`,
  },
  body: JSON.stringify({ keyword: "rural clean water", rows: 5 }),
});
console.log(await apiResponse.json(), pass.expiresAt);
01 / INSPECT

See the terms without paying.

This ordinary request intentionally returns HTTP 402 and an empty JSON body. Read the PAYMENT-REQUIRED header for the accepted network, asset, amount, destination, and discovery declaration.

curl -i -X POST https://genuinegood.online/v1/grants/preflight \
  -H 'content-type: application/json' \
  -d '{"opportunityIds":[346815],"applicantTypeCodes":[],"deadlineHorizonDays":60}'
02 / AUTHORIZE

Use a funded x402 buyer.

The official client handles the payment header and retry. The example raises x402's default $1 spend cap to cover the $15 pass. Keep the signing key in your own secret manager; Genuine Good never receives it.

npm install @x402/fetch @x402/core @x402/evm viem
import { wrapFetchWithPayment, x402HTTPClient } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const signer = privateKeyToAccount(
  process.env.EVM_PRIVATE_KEY as `0x${string}`,
);
const client = x402Client.fromConfig({
  schemes: [{
    network: "eip155:*",
    client: new ExactEvmScheme(signer),
  }],
  // x402 defaults to a $1 spend cap; the pass costs $15.
  spendControls: { maxAmountPerPayment: "$15" },
});

const paidFetch = wrapFetchWithPayment(fetch, client);
const httpClient = new x402HTTPClient(client);
const response = await paidFetch(
  "https://genuinegood.online/v1/grants/preflight",
  {
    method: "POST",
    headers: { "content-type": "application/json" },
    body: JSON.stringify({
      opportunityIds: [346815],
      applicantTypeCodes: [],
      deadlineHorizonDays: 60,
    }),
  },
);

const result = await httpClient.processResponse(response);
console.log(result.body);
03 / VERIFY

Read the receipt and provenance.

A successful response includes current normalized grant records and official Grants.gov links. The payment response header is the settlement receipt; a match remains a discovery signal, not an eligibility or award decision.

Official x402 buyer guide

Pick the smallest useful call.

01

U.S. Federal Grant Opportunity Search

Search current Grants.gov opportunities with normalized deadlines, days remaining, agency, status, assistance listing numbers, and official source links.

POST OR GET /v1/grants/search
$5.00 USDC
02

U.S. Federal Grant Opportunity Detail

Retrieve an official Grants.gov opportunity with normalized applicant types, eligibility text, award range, deadline, categories, and provenance.

POST OR GET /v1/grants/detail
$5.00 USDC
03

Federal Grant Mission Fit

Rank current U.S. federal opportunities against a mission profile using transparent keyword, deadline, and applicant-type signals; returns reasons and official records.

POST OR GET /v1/grants/fit
$5.00 USDC
04

Federal Grant Opportunity Brief

Produce a sourced agent-ready brief of up to ten current U.S. federal grant matches, eligibility signals, deadline urgency, award ranges, and next actions.

POST OR GET /v1/grants/brief
$5.00 USDC
05

Federal Grant Shortlist Preflight

Run deterministic rule-based checks over up to five retrieved Grants.gov notices: deadline horizon, listed applicant-type code intersection, source-field completeness, and official-notice verification flags.

POST OR GET /v1/grants/preflight
$5.00 USDC
06

Genuine Good Grants API 30-Day API Pass

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.

POST /v1/grants/pass
$15.00 USDC

Source notice. This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.