{
  "openapi": "3.0.1",
  "info": {
    "title": "Grants.gov API Scraper: Federal Grants Search, Deadline Monitor",
    "description": "For grant writers, nonprofits and funding research: federal grants from the Grants.gov API, one row per opportunity with title, number, agency, posted and close dates, status, ALN, award ceiling and floor, eligibility. Monitoring returns only new grants and changed deadlines. No API key.",
    "version": "0.1",
    "x-build-id": "Etx9Bbg7Zpwto72zS"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/neverempty~grants-gov-opportunities-monitor/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-neverempty-grants-gov-opportunities-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/neverempty~grants-gov-opportunities-monitor/runs": {
      "post": {
        "operationId": "runs-sync-neverempty-grants-gov-opportunities-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/neverempty~grants-gov-opportunities-monitor/run-sync": {
      "post": {
        "operationId": "run-sync-neverempty-grants-gov-opportunities-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": {
          "keyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Words to search for, as in the Grants.gov search box. Several words match opportunities with any of them; put a phrase in double quotes (\"rural health\") to match it exactly. Leave empty for every opportunity."
          },
          "statuses": {
            "title": "Opportunity status",
            "uniqueItems": true,
            "type": "array",
            "description": "Which opportunities to search. When nothing is chosen, forecasted and posted are searched (the same as the Grants.gov search page). Closed holds about 8,700 opportunities and archived about 73,000.",
            "items": {
              "type": "string",
              "enum": [
                "forecasted",
                "posted",
                "closed",
                "archived"
              ],
              "enumTitles": [
                "Forecasted (announced, not open yet)",
                "Posted (open for applications)",
                "Closed",
                "Archived"
              ]
            }
          },
          "agencies": {
            "title": "Agency codes",
            "type": "array",
            "description": "Grants.gov agency codes, one per line: a department (HHS, DOD, USDA, DOE, NSF, NASA ...) or one of its agencies (HHS-NIH11, DOD-AMC, USDA-NIFA ...). A department code is searched as all of its agencies; sent on its own, the Grants.gov API returns nothing for most departments. The codes are in the \"Agency\" filter of the Grants.gov search page and in the agencyCode column of every row. Leave empty for every agency.",
            "items": {
              "type": "string"
            }
          },
          "eligibilities": {
            "title": "Eligible applicants",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep opportunities open to at least one of these applicant types. \"Others\" and \"Unrestricted\" are separate types on Grants.gov: an opportunity marked only \"Unrestricted\" does not match \"Small businesses\".",
            "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 having a 501(c)(3) status with the IRS, other than institutions of higher education (12)",
                "Nonprofits that do not have a 501(c)(3) status with the IRS, 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 (25)",
                "Unrestricted (99)"
              ]
            }
          },
          "fundingCategories": {
            "title": "Funding category",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep opportunities in at least one of these categories of funding activity.",
            "items": {
              "type": "string",
              "enum": [
                "ACA",
                "AG",
                "AR",
                "BC",
                "CD",
                "CP",
                "DPR",
                "ED",
                "EIC",
                "ELT",
                "EN",
                "ENV",
                "FN",
                "HL",
                "HO",
                "HU",
                "IIJ",
                "IS",
                "ISS",
                "LJL",
                "NR",
                "O",
                "OZ",
                "RA",
                "RD",
                "RT",
                "ST",
                "T"
              ],
              "enumTitles": [
                "Affordable Care Act (ACA)",
                "Agriculture (AG)",
                "Arts (AR)",
                "Business and Commerce (BC)",
                "Community Development (CD)",
                "Consumer Protection (CP)",
                "Disaster Prevention and Relief (DPR)",
                "Education (ED)",
                "Energy Infrastructure and Critical Mineral and Materials (EICMM) (EIC)",
                "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)",
                "Information and Statistics (IS)",
                "Income Security and Social Services (ISS)",
                "Law, Justice and Legal Services (LJL)",
                "Natural Resources (NR)",
                "Other (O)",
                "Opportunity Zone Benefits (OZ)",
                "Recovery Act (RA)",
                "Regional Development (RD)",
                "Recreation and Tourism (RT)",
                "Science and Technology and other Research and Development (ST)",
                "Transportation (T)"
              ]
            }
          },
          "fundingInstruments": {
            "title": "Funding instrument",
            "uniqueItems": true,
            "type": "array",
            "description": "Keep opportunities offered as at least one of these: grant, cooperative agreement, procurement contract or other.",
            "items": {
              "type": "string",
              "enum": [
                "CA",
                "G",
                "O",
                "PC"
              ],
              "enumTitles": [
                "Cooperative Agreement (CA)",
                "Grant (G)",
                "Other (O)",
                "Procurement Contract (PC)"
              ]
            }
          },
          "aln": {
            "title": "Assistance Listing number (ALN / CFDA)",
            "type": "string",
            "description": "Keep opportunities under this Assistance Listing, for example 93.866. One number."
          },
          "opportunityNumber": {
            "title": "Opportunity number",
            "type": "string",
            "description": "Search by funding opportunity number, for example PAR-25-283."
          },
          "postedWithinDays": {
            "title": "Posted in the last N days",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Keep opportunities whose posted date is within this many days, as counted by Grants.gov. Leave empty for no date filter. Monitoring does not need it: it compares with what it saw before."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "newest-posted",
              "oldest-posted",
              "closing-soonest",
              "closing-latest"
            ],
            "type": "string",
            "description": "Order of the rows, and which ones are returned when the search matches more than \"Maximum opportunities\". Not used in monitoring mode.",
            "default": "newest-posted"
          },
          "maxItems": {
            "title": "Maximum opportunities",
            "minimum": 1,
            "maximum": 20000,
            "type": "integer",
            "description": "Stop after this many opportunity rows. Not used in monitoring mode, which returns every new or changed opportunity.",
            "default": 100
          },
          "includeDetails": {
            "title": "Include details (description, amounts, eligibility)",
            "type": "boolean",
            "description": "Reads the detail record of every returned opportunity: description, award ceiling and floor, estimated total funding, expected number of awards, cost sharing, funding instruments, categories, eligible applicants and forecast dates. This is one more request per opportunity, about 1.3 seconds each (1,000 opportunities take about 22 minutes). Turn it off for a fast list of title, number, agency, dates, status, ALN and link. The price per row is the same.",
            "default": true
          },
          "includeAgencyContact": {
            "title": "Include the agency contact",
            "type": "boolean",
            "description": "Adds the grantor contact published on the opportunity (name, email, phone) as agencyContact, and leaves email addresses and phone numbers in the description as written. Off by default: the contact is often a named person. Needs details.",
            "default": false
          },
          "monitoringMode": {
            "title": "Monitoring mode: only new opportunities and changed deadlines",
            "type": "boolean",
            "description": "Remembers the opportunities of this search between runs. The first run with a given set of filters only remembers them: nothing is returned and nothing is charged. Later runs return an opportunity when it is new to the search or when its close date or status changed, with the previous close date and status. A run that finds nothing new or changed returns one row saying so and is charged one monitoring check (search-checked). Opportunities are remembered per set of filters. Do not run two schedules with the same filters at the same moment.",
            "default": false
          },
          "resetMonitoringState": {
            "title": "Forget the remembered opportunities of this search",
            "type": "boolean",
            "description": "Clears what is remembered for this set of filters before the run reads anything, so with monitoring on this run is a first run again: the opportunities are remembered and nothing is returned. Use it for one run and turn it off again.",
            "default": false
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}