{
  "openapi": "3.0.1",
  "info": {
    "title": "Grants.gov Grant Opportunity Monitor & Deadline Alerts",
    "description": "Search and monitor every US federal grant on Grants.gov. Filter by keyword, agency, eligibility (cities, nonprofits, small businesses, tribes, schools), category and Assistance Listing. Deadline countdowns, only-new alerts, optional full details (award amounts, eligibility, NOFOs). Official API.",
    "version": "0.1",
    "x-build-id": "SkI6AeMotN3G7753U"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/opendatalabs~grants-gov-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-opendatalabs-grants-gov-monitor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/opendatalabs~grants-gov-monitor/runs": {
      "post": {
        "operationId": "runs-sync-opendatalabs-grants-gov-monitor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/opendatalabs~grants-gov-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-opendatalabs-grants-gov-monitor",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "keywords": {
            "title": "Keywords",
            "type": "array",
            "description": "Search terms, e.g. broadband, mental health, \"wildfire resilience\". Each keyword is a separate Grants.gov search; results are merged and each row lists which keywords matched. Leave empty to list everything that matches the other filters.",
            "items": {
              "type": "string"
            }
          },
          "strictKeywordMatch": {
            "title": "Strict keyword match",
            "type": "boolean",
            "description": "Grants.gov's keyword search is broad (stemming, full text). Turn this on to keep only rows whose title (or description/eligibility, if details are on) contains the exact word or phrase.",
            "default": false
          },
          "statuses": {
            "title": "Opportunity status",
            "type": "array",
            "description": "Forecasted = announced but not yet open for applications; Posted = open now. Add Closed or Archived for historical research. Default: forecasted and posted.",
            "items": {
              "type": "string",
              "enum": [
                "forecasted",
                "posted",
                "closed",
                "archived"
              ],
              "enumTitles": [
                "Forecasted",
                "Posted (open)",
                "Closed",
                "Archived"
              ]
            },
            "default": [
              "forecasted",
              "posted"
            ]
          },
          "agencies": {
            "title": "Agencies",
            "type": "array",
            "description": "Grants.gov agency codes. Top-level codes include all sub-agencies: HHS, USDA, DOE, DOJ = USDOJ, ED, NSF, EPA, DOT, DOC, DOI, HUD, DOL, DHS, NASA, NEA, NEH, IMLS. Sub-agency codes also work, e.g. HHS-NIH11, USDA-NIFA, DOC-EDA.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "eligibilities": {
            "title": "Eligible applicant types",
            "type": "array",
            "description": "Keep only opportunities that at least one of these applicant types can apply for, e.g. nonprofits (12, 13), city or county governments (01, 02) or small businesses (23). Leave empty for all applicant types.",
            "items": {
              "type": "string",
              "enum": [
                "00",
                "01",
                "02",
                "04",
                "05",
                "06",
                "07",
                "08",
                "11",
                "12",
                "13",
                "20",
                "21",
                "22",
                "23",
                "25",
                "99"
              ],
              "enumTitles": [
                "State governments (00)",
                "County governments (01)",
                "City or township governments (02)",
                "Special district governments (04)",
                "Independent school districts (05)",
                "Public and State controlled institutions of higher education (06)",
                "Native American tribal governments (Federally recognized) (07)",
                "Public housing authorities/Indian housing authorities (08)",
                "Native American tribal organizations (other than Federally recognized tribal governments) (11)",
                "Nonprofits with 501(c)(3) status (other than institutions of higher education) (12)",
                "Nonprofits without 501(c)(3) status (other than institutions of higher education) (13)",
                "Private institutions of higher education (20)",
                "Individuals (21)",
                "For-profit organizations other than small businesses (22)",
                "Small businesses (23)",
                "Others (see eligibility text) (25)",
                "Unrestricted (open to any type of entity) (99)"
              ]
            },
            "default": []
          },
          "fundingCategories": {
            "title": "Funding categories",
            "type": "array",
            "description": "Keep only opportunities in at least one of these Grants.gov funding categories, e.g. Health, Education, Environment or Infrastructure (IIJA). Leave empty for all categories.",
            "items": {
              "type": "string",
              "enum": [
                "AG",
                "AR",
                "BC",
                "CD",
                "CP",
                "DPR",
                "ED",
                "ELT",
                "EN",
                "ENV",
                "FN",
                "HL",
                "HO",
                "HU",
                "IIJ",
                "ISS",
                "IS",
                "LJL",
                "NR",
                "OZ",
                "O",
                "RT",
                "RD",
                "ST",
                "T",
                "ACA"
              ],
              "enumTitles": [
                "Agriculture (AG)",
                "Arts (AR)",
                "Business and Commerce (BC)",
                "Community Development (CD)",
                "Consumer Protection (CP)",
                "Disaster Prevention and Relief (DPR)",
                "Education (ED)",
                "Employment, Labor and Training (ELT)",
                "Energy (EN)",
                "Environment (ENV)",
                "Food and Nutrition (FN)",
                "Health (HL)",
                "Housing (HO)",
                "Humanities (HU)",
                "Infrastructure Investment and Jobs Act (IIJA) (IIJ)",
                "Income Security and Social Services (ISS)",
                "Information and Statistics (IS)",
                "Law, Justice and Legal Services (LJL)",
                "Natural Resources (NR)",
                "Opportunity Zone Benefits (OZ)",
                "Other (O)",
                "Recreation and Tourism (RT)",
                "Regional Development (RD)",
                "Science, Technology and other R&D (ST)",
                "Transportation (T)",
                "Affordable Care Act (ACA)"
              ]
            },
            "default": []
          },
          "fundingInstruments": {
            "title": "Funding instruments",
            "type": "array",
            "description": "Type of award: grant, cooperative agreement (a grant with substantial agency involvement), procurement contract or other. Leave empty for all types.",
            "items": {
              "type": "string",
              "enum": [
                "G",
                "CA",
                "PC",
                "O"
              ],
              "enumTitles": [
                "Grant (G)",
                "Cooperative Agreement (CA)",
                "Procurement Contract (PC)",
                "Other (O)"
              ]
            },
            "default": []
          },
          "assistanceListings": {
            "title": "Assistance Listing (CFDA) numbers",
            "type": "array",
            "description": "Assistance Listing (formerly CFDA) program numbers, e.g. 93.243 or 11.029. Only opportunities under these federal programs are returned. You can look up a program's number on SAM.gov.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "postedWithinDays": {
            "title": "Posted within the last N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only opportunities first posted on Grants.gov in the last N days (Eastern Time), e.g. 7 for everything posted this week. Leave empty for no limit."
          },
          "closingWithinDays": {
            "title": "Deadline within the next N days",
            "minimum": 0,
            "maximum": 3650,
            "type": "integer",
            "description": "Only opportunities whose application deadline is between today and N days from now, e.g. 60. Opportunities with no deadline are kept unless you also turn on the option below."
          },
          "excludeNoDeadline": {
            "title": "Exclude posted opportunities without a deadline",
            "type": "boolean",
            "description": "Drop posted opportunities that list no close date (rolling or continuous notices), so every row has a real, dated deadline.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "openDate|desc",
              "openDate|asc",
              "closeDate|asc",
              "closeDate|desc"
            ],
            "type": "string",
            "description": "Order of the results: newest posted first (default), oldest posted first, soonest deadline first or latest deadline first. Soonest deadline first suits deadline-driven lists.",
            "default": "openDate|desc"
          },
          "includeDetails": {
            "title": "Include full opportunity details",
            "type": "boolean",
            "description": "Fetch each opportunity's full record: description, eligibility text, award ceiling/floor, total funding, number of awards, cost sharing, forecast dates and NOFO attachment links. Charged as an extra 'opportunity-details' event.",
            "default": false
          },
          "minAwardCeiling": {
            "title": "Minimum award ceiling (USD)",
            "minimum": 0,
            "type": "integer",
            "description": "Only opportunities whose maximum award is at least this amount. Turns on includeDetails automatically."
          },
          "maxDescriptionChars": {
            "title": "Max description characters",
            "minimum": 200,
            "maximum": 100000,
            "type": "integer",
            "description": "Only used with full details. Long description and eligibility text is cut to this many characters to keep rows readable; raise it to get the full notice text.",
            "default": 5000
          },
          "onlyNew": {
            "title": "Only new opportunities (monitoring mode)",
            "type": "boolean",
            "description": "Remember what earlier runs delivered and only output opportunities you have not received before. The first run returns everything that matches and saves it as the baseline. Use with a daily or weekly schedule.",
            "default": false
          },
          "reportUpdates": {
            "title": "Also report deadline/status changes",
            "type": "boolean",
            "description": "With onlyNew: re-deliver an opportunity when its deadline moves or it changes status (e.g. forecasted → posted), with changeType and previousCloseDate.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Name of this monitor's memory when Only new is on (letters, numbers, dashes). Use a different name for each separate alert, e.g. one per client or topic, so they don't share history.",
            "default": "default"
          },
          "maxItems": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Hard cap on rows written (cost control). The default of 50 keeps a first run around $0.06 at $0.0012 per opportunity; raise it (up to 100,000) for a full scan.",
            "default": 50
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}