Genuine Good News grant preflight API

The grant preflight API from Genuine Good News — 1 operation(s) for grant preflight.

GitHub OpenAPI

Operations 2

POST /v1/grants/preflight Federal Grant Shortlist Preflight #
GET /v1/grants/preflight Federal Grant Shortlist Preflight #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/genuinegood-online:genuinegood-online-grant-preflight-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

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.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

genuinegood-online-grant-preflight-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Genuine Good Grants / Genuine Good Grants grant preflight…
  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: grant preflight
paths:
  /v1/grants/preflight:
    post:
      operationId: federal-grant-shortlist-preflight
      summary: Federal Grant Shortlist Preflight
      description: '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. 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:
      - grant preflight
      x-x402:
        version: 2
        scheme: exact
        network: eip155:8453
        asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        amount: '5000000'
        priceUsd: '5.00'
      x-payment-info:
        protocols:
        - x402: {}
        price:
          mode: fixed
          currency: USD
          amount: '5.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:
                opportunityIds:
                  type: array
                  minItems: 1
                  maxItems: 5
                  uniqueItems: true
                  items:
                    type: integer
                    minimum: 1
                applicantTypeCodes:
                  type: array
                  maxItems: 12
                  items:
                    type: string
                    minLength: 1
                    maxLength: 40
                deadlineHorizonDays:
                  type: integer
                  minimum: 7
                  maximum: 365
                  default: 60
              required:
              - opportunityIds
              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:
                - generatedAt
                - request
                - evaluatedCount
                - results
                - caveat
                - attribution
                properties:
                  generatedAt:
                    type: string
                    format: date-time
                  request:
                    type: object
                    properties:
                      opportunityIds:
                        type: array
                        minItems: 1
                        maxItems: 5
                        uniqueItems: true
                        items:
                          type: integer
                          minimum: 1
                      applicantTypeCodes:
                        type: array
                        maxItems: 12
                        items:
                          type: string
                          minLength: 1
                          maxLength: 40
                      deadlineHorizonDays:
                        type: integer
                        minimum: 7
                        maximum: 365
                        default: 60
                    required:
                    - opportunityIds
                    additionalProperties: false
                  evaluatedCount:
                    type: integer
                    minimum: 0
                    maximum: 5
                  results:
                    type: array
                    maxItems: 5
                    items:
                      type: object
                      required:
                      - opportunityId
                      - screening
                      - official
                      - source
                      properties:
                        opportunityId:
                          type: string
                        screening:
                          type: object
                          required:
                          - deadlineState
                          - applicantTypeSignal
                          - eligibilityTextState
                          - awardRangeState
                          - costSharingState
                          - officialNoticeVerificationRequired
                          - manualReviewRequired
                          - flags
                          properties:
                            deadlineState:
                              type: string
                              enum:
                              - past_due
                              - within_horizon
                              - outside_horizon
                              - ongoing
                              - unknown
                            applicantTypeSignal:
                              type: string
                              enum:
                              - listed_code_intersects
                              - no_listed_code_intersection
                              - not_checked
                            eligibilityTextState:
                              type: string
                              enum:
                              - present
                              - missing
                            awardRangeState:
                              type: string
                              enum:
                              - complete
                              - partial
                              - missing
                            costSharingState:
                              type: string
                              enum:
                              - required
                              - not_required
                              - unknown
                            officialNoticeVerificationRequired:
                              type: boolean
                              const: true
                              description: The buyer must verify the result against the complete official notice before acting.
                            manualReviewRequired:
                              type: boolean
                              const: true
                              deprecated: true
                              description: Legacy compatibility field. True means official-notice verification is required; it does not promise human review.
                            flags:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        official:
                          type: object
                          additionalProperties: true
                        source:
                          type: object
                          required:
                          - publisher
                          - api
                          - accessedAt
                          properties:
                            publisher:
                              type: string
                              const: Grants.gov
                            api:
                              type: string
                              format: uri
                            accessedAt:
                              type: string
                              format: date-time
                            terms:
                              type: string
                              format: uri
                          additionalProperties: true
                      additionalProperties: false
                  caveat:
                    type: string
                    const: Deterministic rule-based checks over the retrieved Grants.gov notice only. Applicant-type results report listed-code intersection, not eligibility. This is not an eligibility determination, legal opinion, award prediction, or government endorsement.
                  attribution:
                    type: string
                    const: This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.
                additionalProperties: false
        '402':
          description: 'x402 payment required: 5.00 USDC on Base mainnet'
          headers:
            PAYMENT-REQUIRED:
              description: Base64-encoded x402 v2 payment requirements
              schema:
                type: string
    get:
      operationId: federal-grant-shortlist-preflight-get
      summary: Federal Grant Shortlist Preflight
      description: '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. GET compatibility accepts the same input as query parameters. Array values may be comma-separated.'
      tags:
      - grant preflight
      x-x402:
        version: 2
        scheme: exact
        network: eip155:8453
        asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913'
        amount: '5000000'
        priceUsd: '5.00'
      x-payment-info:
        protocols:
        - x402: {}
        price:
          mode: fixed
          currency: USD
          amount: '5.000000'
      parameters:
      - name: opportunityIds
        in: query
        required: true
        schema:
          type: array
          minItems: 1
          maxItems: 5
          uniqueItems: true
          items:
            type: integer
            minimum: 1
        style: form
        explode: false
      - name: applicantTypeCodes
        in: query
        required: false
        schema:
          type: array
          maxItems: 12
          items:
            type: string
            minLength: 1
            maxLength: 40
        style: form
        explode: false
      - name: deadlineHorizonDays
        in: query
        required: false
        schema:
          type: integer
          minimum: 7
          maximum: 365
          default: 60
      - 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
      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:
                - generatedAt
                - request
                - evaluatedCount
                - results
                - caveat
                - attribution
                properties:
                  generatedAt:
                    type: string
                    format: date-time
                  request:
                    type: object
                    properties:
                      opportunityIds:
                        type: array
                        minItems: 1
                        maxItems: 5
                        uniqueItems: true
                        items:
                          type: integer
                          minimum: 1
                      applicantTypeCodes:
                        type: array
                        maxItems: 12
                        items:
                          type: string
                          minLength: 1
                          maxLength: 40
                      deadlineHorizonDays:
                        type: integer
                        minimum: 7
                        maximum: 365
                        default: 60
                    required:
                    - opportunityIds
                    additionalProperties: false
                  evaluatedCount:
                    type: integer
                    minimum: 0
                    maximum: 5
                  results:
                    type: array
                    maxItems: 5
                    items:
                      type: object
                      required:
                      - opportunityId
                      - screening
                      - official
                      - source
                      properties:
                        opportunityId:
                          type: string
                        screening:
                          type: object
                          required:
                          - deadlineState
                          - applicantTypeSignal
                          - eligibilityTextState
                          - awardRangeState
                          - costSharingState
                          - officialNoticeVerificationRequired
                          - manualReviewRequired
                          - flags
                          properties:
                            deadlineState:
                              type: string
                              enum:
                              - past_due
                              - within_horizon
                              - outside_horizon
                              - ongoing
                              - unknown
                            applicantTypeSignal:
                              type: string
                              enum:
                              - listed_code_intersects
                              - no_listed_code_intersection
                              - not_checked
                            eligibilityTextState:
                              type: string
                              enum:
                              - present
                              - missing
                            awardRangeState:
                              type: string
                              enum:
                              - complete
                              - partial
                              - missing
                            costSharingState:
                              type: string
                              enum:
                              - required
                              - not_required
                              - unknown
                            officialNoticeVerificationRequired:
                              type: boolean
                              const: true
                              description: The buyer must verify the result against the complete official notice before acting.
                            manualReviewRequired:
                              type: boolean
                              const: true
                              deprecated: true
                              description: Legacy compatibility field. True means official-notice verification is required; it does not promise human review.
                            flags:
                              type: array
                              items:
                                type: string
                          additionalProperties: false
                        official:
                          type: object
                          additionalProperties: true
                        source:
                          type: object
                          required:
                          - publisher
                          - api
                          - accessedAt
                          properties:
                            publisher:
                              type: string
                              const: Grants.gov
                            api:
                              type: string
                              format: uri
                            accessedAt:
                              type: string
                              format: date-time
                            terms:
                              type: string
                              format: uri
                          additionalProperties: true
                      additionalProperties: false
                  caveat:
                    type: string
                    const: Deterministic rule-based checks over the retrieved Grants.gov notice only. Applicant-type results report listed-code intersection, not eligibility. This is not an eligibility determination, legal opinion, award prediction, or government endorsement.
                  attribution:
                    type: string
                    const: This product uses the Grants.gov API but is not endorsed or certified by the U.S. Department of Health and Human Services.
                additionalProperties: false
        '402':
          description: 'x402 payment required: 5.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