One request.One tiny payment.

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

Generate the secret. Pay once. Keep calling.

Your client creates the token locally and sends it only over HTTPS. Greater 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://greatergood.site/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://greatergood.site/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 returns HTTP 402 with the accepted network, asset, amount, destination, and discovery declaration.

curl -i -X POST https://greatergood.site/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. Keep the signing key in your own secret manager; Greater 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 = new x402Client();
client.register("eip155:*", new ExactEvmScheme(signer));

const paidFetch = wrapFetchWithPayment(fetch, client);
const httpClient = new x402HTTPClient(client);
const response = await paidFetch(
  "https://greatergood.site/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
$0.05 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
$0.08 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
$0.20 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
$0.50 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 fixed manual-review flags.

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

GrantSignal 30-Day API Pass

Activate 30 days of bearer-token access to every GrantSignal tool, subject to a 1,000-request fair-use limit. The client supplies its own random token; Greater Good stores only its SHA-256 hash.

POST /v1/grants/pass
$15.00 USDC

The $99 Opportunity Check is planned next.

Local governments, nonprofits, schools, and community organizations can get 3–5 current official prospects, fit and disqualifier notes, and deadline or eligibility questions for $99 after launch. No viable opportunity after two research passes? We will return $50 of the $99 fee. If none of the 3–5 opportunities in the first report is viable under the official notices, we will run one replacement research pass at no charge. If that report also finds none, $50 comes back.No request or payment is accepted yet.

See the planned Opportunity Check

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.