# Grants.gov Federal Grants Scraper (`solidcode/grants-gov-scraper`) Actor

\[💰 $8.0 / 1K] Extract US federal grant opportunities from Grants.gov — titles, agencies, deadlines, award amounts, eligibility, and contacts. Filter by keyword, agency, category, applicant type, status, and posted date.

- **URL**: https://apify.com/solidcode/grants-gov-scraper.md
- **Developed by:** [SolidCode](https://apify.com/solidcode) (community)
- **Categories:** Developer tools, Automation, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $8.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Grants.gov Federal Grants Scraper

Pull US federal grant funding opportunities from Grants.gov at scale — opportunity numbers, titles, owning agencies, application deadlines, award ceilings and floors, estimated total program funding, eligible applicant types, agency contacts, and downloadable attachments for every posted, forecasted, closed, or archived grant in the federal catalog. Built for grant writers, nonprofit development teams, and university sponsored-programs offices who need complete federal funding intelligence without combing the Grants.gov search box opportunity by opportunity.

### Why This Scraper?

- **The full federal catalog** — search across 80,000+ opportunities spanning forecasted, posted, closed, and archived grants, all from one official source.
- **31 federal agency filters** — narrow to the NSF, Department of Health and Human Services (HHS), Department of Energy, EPA, NASA, USDA, Department of Education, and 24 more, by name instead of cryptic codes.
- **17 applicant-eligibility types** — surface only grants open to nonprofits (with or without 501(c)(3) status), small businesses, state and county governments, individuals, school districts, public and private universities, or Native American tribal organizations.
- **4 opportunity statuses, including Forecasted** — catch upcoming grants announced but not yet open, so you can prepare before the application window opens, plus Posted, Closed, and Archived.
- **Full award economics on every detailed row** — award ceiling, award floor, estimated total program funding, expected number of awards, and the cost-sharing/matching requirement flag.
- **24 funding categories** — filter by Health, Education, Environment, Energy, Agriculture, Science & Technology, Housing, and 17 more activity areas.
- **Agency point-of-contact captured** — name, email, and phone for the program officer on each opportunity when full details are enabled.
- **Downloadable attachment links** — every NOFO, instructions packet, and supporting document returned as a ready-to-fetch name + download URL.
- **Live application deadlines and one-click URLs** — close date, open date, and a direct Grants.gov opportunity link on every row.

### Use Cases

**Nonprofit Fundraising & Development**
- Build a pipeline of open grants matched to your mission area and 501(c)(3) eligibility
- Track forecasted opportunities to start proposals before the window opens
- Monitor closing deadlines across every agency you target
- Pull award ceilings and floors to size your ask realistically

**University & Research Administration**
- Feed sponsored-programs offices a daily list of NSF, NIH, and DOE opportunities
- Filter to higher-education-eligible grants only, by public or private institution type
- Capture expected number of awards and cost-sharing requirements for go/no-go decisions
- Distribute matched opportunities to faculty by funding category

**Grant Consulting & Advisory**
- Maintain client-specific opportunity feeds by agency, category, and eligibility
- Benchmark estimated total program funding across competing programs
- Deliver branded funding reports with agency contacts and attachment links included
- Archive closed opportunities to study historical funding patterns

**Small Business & Innovation Funding**
- Find grants and cooperative agreements open to small businesses
- Track SBIR/STTR-style science and technology opportunities by agency
- Filter to Procurement Contract and Cooperative Agreement instruments
- Surface award floors to screen out grants below your funding threshold

**Competitive & Market Intelligence**
- Map which agencies fund a given category and at what scale
- Analyze award ceilings and total funding trends across years of archived data
- Identify recurring annual programs by their opportunity-number patterns
- Enrich CRMs and dashboards with structured federal-funding data

### Getting Started

#### Search by Keyword

The simplest run — one keyword across open and upcoming grants:

```json
{
    "searchQuery": "clean energy",
    "maxResults": 100
}
````

#### Filter by Agency and Eligibility

Open nonprofit-eligible health grants from a single agency:

```json
{
    "searchQuery": "community health",
    "agencies": ["HHS"],
    "eligibilities": ["12"],
    "opportunityStatus": ["posted"],
    "maxResults": 200
}
```

#### Look Up Specific Opportunities

Pull exact grants by their Grants.gov opportunity number:

```json
{
    "opportunityNumbers": ["EPA-R9-SFUND-2024", "PD-23-1234"],
    "includeDetails": true
}
```

#### Full-Featured Example

Forecasted and posted science grants from multiple agencies, fully enriched:

```json
{
    "searchQuery": "artificial intelligence",
    "agencies": ["NSF", "DOE", "NASA"],
    "fundingCategories": ["ST"],
    "eligibilities": ["06", "20"],
    "fundingInstruments": ["G", "CA"],
    "opportunityStatus": ["forecasted", "posted"],
    "postedFrom": "2024-01-01",
    "includeDetails": true,
    "maxResults": 500
}
```

### Input Reference

#### Search

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQuery` | string | `"climate"` | Keywords to search across grant titles and descriptions. Leave empty to browse all opportunities that match the filters. |
| `opportunityNumbers` | string\[] | `[]` | Look up exact opportunities by Grants.gov number (e.g. `EPA-R9-SFUND-2024`). When set, returns just those opportunities and ignores the search filters. |

#### Filters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `opportunityStatus` | select\[] | `["forecasted", "posted"]` | Which stages to include: Forecasted (upcoming), Posted (open now), Closed, Archived. |
| `agencies` | select\[] | `[]` | Limit to specific federal agencies by name (31 available). Leave empty for all agencies. |
| `fundingCategories` | select\[] | `[]` | Limit to funding categories such as Health, Education, or Environment (24 available). Leave empty for all. |
| `eligibilities` | select\[] | `[]` | Limit to opportunities open to specific applicant types such as Nonprofits or Small businesses (17 available). Leave empty for all. |
| `fundingInstruments` | select\[] | `[]` | Limit to Grant, Cooperative Agreement, Procurement Contract, or Other. Leave empty for all. |
| `postedFrom` | date | (none) | Only include opportunities posted on or after this date (YYYY-MM-DD). |
| `postedTo` | date | (none) | Only include opportunities posted on or before this date (YYYY-MM-DD). |

#### Output Options

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `includeDetails` | boolean | `false` | Fetch full details for every opportunity: description, award amounts, expected number of awards, cost-sharing requirement, agency contact, eligibility notes, and attachment links. Richer results, but takes longer. |
| `maxResults` | integer | `100` | Maximum number of opportunities to return. Set to 0 to return all matching opportunities. |

### Output

Each result is one flat row per grant opportunity. Here's a representative result with full details enabled:

```json
{
    "opportunityId": 350849,
    "opportunityNumber": "EPA-R9-SFUND-2024",
    "title": "Brownfields Assessment Grants",
    "agencyCode": "EPA",
    "agencyName": "Environmental Protection Agency",
    "status": "posted",
    "docType": "synopsis",
    "postedDate": "2024-02-15",
    "openDate": "2024-02-15",
    "closeDate": "2024-05-30",
    "alnList": ["66.818"],
    "url": "https://www.grants.gov/web/grants/view-opportunity.html?oppId=350849",
    "description": "The U.S. Environmental Protection Agency is soliciting proposals from eligible entities to carry out assessment activities at brownfield sites...",
    "fundingInstruments": ["Cooperative Agreement"],
    "fundingCategories": ["Environment"],
    "eligibleApplicants": ["County governments", "Nonprofits with 501(c)(3) status"],
    "eligibilityDescription": "Eligible entities include general purpose units of local government and nonprofit organizations.",
    "awardCeiling": 500000,
    "awardFloor": 0,
    "estimatedTotalFunding": 30000000,
    "expectedNumberOfAwards": 60,
    "costSharingRequired": false,
    "agencyContactName": "Jane Doe",
    "agencyContactEmail": "brownfields@epa.gov",
    "agencyContactPhone": "415-555-0100",
    "attachments": [
        { "name": "NOFO_Full_Announcement.pdf", "url": "https://www.grants.gov/grantsws/rest/opportunity/att/download/98765" }
    ],
    "lastUpdatedDate": "2024-03-01"
}
```

#### Core Fields

Always returned for every opportunity.

| Field | Type | Description |
|-------|------|-------------|
| `opportunityId` | integer | Internal Grants.gov opportunity ID |
| `opportunityNumber` | string | Public opportunity number (e.g. `EPA-R9-SFUND-2024`) |
| `title` | string | Opportunity title |
| `agencyCode` | string | Owning agency code (e.g. `HHS-CDC`) |
| `agencyName` | string | Owning agency name |
| `status` | string | Stage: forecasted, posted, closed, or archived |
| `docType` | string | Document type (synopsis or forecast) |
| `openDate` | string | Date applications open (ISO) |
| `closeDate` | string | Application deadline (ISO) |
| `alnList` | string\[] | Assistance Listing Numbers (formerly CFDA) |
| `url` | string | Direct Grants.gov opportunity link |

#### Funding Amounts

Populated when `includeDetails` is on.

| Field | Type | Description |
|-------|------|-------------|
| `awardCeiling` | integer | Maximum award amount (USD) |
| `awardFloor` | integer | Minimum award amount (USD) |
| `estimatedTotalFunding` | integer | Estimated total program funding (USD) |
| `expectedNumberOfAwards` | integer | Expected number of awards |
| `costSharingRequired` | boolean | Whether cost sharing / matching is required |
| `fundingInstruments` | string\[] | Funding instrument types (Grant, Cooperative Agreement, etc.) |

#### Eligibility & Description

Populated when `includeDetails` is on.

| Field | Type | Description |
|-------|------|-------------|
| `description` | string | Full opportunity description / synopsis text |
| `fundingCategories` | string\[] | Funding activity categories |
| `eligibleApplicants` | string\[] | Applicant types eligible to apply |
| `eligibilityDescription` | string | Additional eligibility information and exceptions |
| `postedDate` | string | Date the opportunity was posted (ISO) |
| `lastUpdatedDate` | string | Date the record was last updated (ISO) |

#### Contact & Attachments

Populated when `includeDetails` is on.

| Field | Type | Description |
|-------|------|-------------|
| `agencyContactName` | string | Agency point-of-contact name |
| `agencyContactEmail` | string | Agency point-of-contact email |
| `agencyContactPhone` | string | Agency point-of-contact phone |
| `attachments` | object\[] | Linked documents, each with `name` and download `url` |

### Tips for Best Results

- **Set status to Forecasted to find grants before they open** — forecasted opportunities are announced ahead of their application window, giving you a head start on proposals competitors haven't seen yet.
- **Turn on Include Full Details for award amounts** — award ceiling, floor, estimated total funding, agency contacts, and attachment links only appear in detailed runs; leave it off for fast title-and-deadline sweeps.
- **Browse without a keyword** — leave the search box empty and rely on agency, category, and eligibility filters to pull every matching grant in a program area.
- **Combine eligibility with category** — pairing an applicant type (e.g. Nonprofits) with a funding category (e.g. Health) is the fastest way to a clean, on-target list.
- **Use opportunity numbers for precise re-pulls** — when you already track specific programs, list their numbers to refresh just those rows, including closed and archived ones.
- **Narrow with a posted-date floor** — set Posted On or After to skip older opportunities and focus on the current funding cycle.
- **Start with a small Max Results to preview** — run 25–50 first to confirm your filters match the right grants, then scale up.

### Pricing

**From $8.00 per 1,000 results** — transparent, per-opportunity pricing for the official federal grants catalog. Bronze, Silver, and Gold subscribers pay progressively less; the table below shows total cost at each discount tier.

| Results | No discount | Bronze | Silver | Gold |
|---------|-------------|--------|--------|------|
| 100 | $0.96 | $0.91 | $0.85 | $0.80 |
| 1,000 | $9.60 | $9.05 | $8.50 | $8.00 |
| 10,000 | $96.00 | $90.50 | $85.00 | $80.00 |
| 100,000 | $960.00 | $905.00 | $850.00 | $800.00 |

A "result" is one grant opportunity row in your dataset. There are no compute or time-based charges — you pay per result, plus a small fixed per-run start fee. Platform fees depend on your Apify plan.

### Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

- **Zapier** / **Make** / **n8n** — Workflow automation
- **Google Sheets** — Direct spreadsheet export
- **Slack** / **Email** — Notifications on new opportunities
- **Webhooks** — Trigger custom APIs on run completion
- **Apify API** — Full programmatic access

### Legal & Ethical Use

Grants.gov is the official US federal government grants database, and the opportunity data it publishes is public-domain US government information. This actor is designed for legitimate funding research, proposal development, and grant-management workflows. Users are responsible for complying with applicable laws and the Grants.gov Terms of Service. Always verify deadlines, eligibility, and award details against the official opportunity page before applying.

# Actor input Schema

## `searchQuery` (type: `string`):

Keywords to search across grant titles and descriptions, such as 'clean energy' or 'rural health'. Leave empty to browse all opportunities that match the filters below.

## `opportunityNumbers` (type: `array`):

Look up exact opportunities by their Grants.gov opportunity number (for example, 'EPA-R9-SFUND-2024'). When you add numbers here, the actor returns just those opportunities and ignores the search filters.

## `opportunityStatus` (type: `array`):

Which stages to include. Forecasted opportunities are announced but not yet open; Posted opportunities are open for applications now.

## `agencies` (type: `array`):

Limit results to specific federal agencies. Leave empty to include all agencies.

## `fundingCategories` (type: `array`):

Limit results to specific funding categories, such as Health or Environment. Leave empty to include all categories.

## `eligibilities` (type: `array`):

Limit results to opportunities open to specific applicant types, such as nonprofits or small businesses. Leave empty to include all.

## `fundingInstruments` (type: `array`):

Limit results to a funding instrument type. Leave empty to include all.

## `postedFrom` (type: `string`):

Only include opportunities posted on or after this date. Use the format YYYY-MM-DD, for example 2024-01-15. Leave empty for no lower bound.

## `postedTo` (type: `string`):

Only include opportunities posted on or before this date. Use the format YYYY-MM-DD, for example 2024-12-31. Leave empty for no upper bound. This upper-bound date is only applied when Include Full Details is on (the posted date is only available in full details); without details, this filter is ignored.

## `includeDetails` (type: `boolean`):

Fetch the full details of every opportunity: description, award amounts, expected number of awards, cost-sharing requirement, agency contact, eligibility notes, and attachment links. Produces much richer results but takes longer.

## `maxResults` (type: `integer`):

Maximum number of opportunities to return. Set to 0 to return all matching opportunities (up to 100,000). For larger pulls, narrow your search with filters or a posted-date range.

## Actor input object example

```json
{
  "searchQuery": "climate",
  "opportunityNumbers": [],
  "opportunityStatus": [
    "forecasted",
    "posted"
  ],
  "agencies": [],
  "fundingCategories": [],
  "eligibilities": [],
  "fundingInstruments": [],
  "includeDetails": false,
  "maxResults": 100
}
```

# Actor output Schema

## `overview` (type: `string`):

Table of grant opportunities with key fields.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQuery": "climate",
    "opportunityNumbers": [],
    "opportunityStatus": [
        "forecasted",
        "posted"
    ],
    "agencies": [],
    "fundingCategories": [],
    "eligibilities": [],
    "fundingInstruments": [],
    "includeDetails": false,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("solidcode/grants-gov-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchQuery": "climate",
    "opportunityNumbers": [],
    "opportunityStatus": [
        "forecasted",
        "posted",
    ],
    "agencies": [],
    "fundingCategories": [],
    "eligibilities": [],
    "fundingInstruments": [],
    "includeDetails": False,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("solidcode/grants-gov-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQuery": "climate",
  "opportunityNumbers": [],
  "opportunityStatus": [
    "forecasted",
    "posted"
  ],
  "agencies": [],
  "fundingCategories": [],
  "eligibilities": [],
  "fundingInstruments": [],
  "includeDetails": false,
  "maxResults": 100
}' |
apify call solidcode/grants-gov-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=solidcode/grants-gov-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Grants.gov Federal Grants Scraper",
        "description": "[💰 $8.0 / 1K] Extract US federal grant opportunities from Grants.gov — titles, agencies, deadlines, award amounts, eligibility, and contacts. Filter by keyword, agency, category, applicant type, status, and posted date.",
        "version": "1.0",
        "x-build-id": "SgbZ0lbaysiRjh5hQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/solidcode~grants-gov-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-solidcode-grants-gov-scraper",
                "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/solidcode~grants-gov-scraper/runs": {
            "post": {
                "operationId": "runs-sync-solidcode-grants-gov-scraper",
                "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/solidcode~grants-gov-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-solidcode-grants-gov-scraper",
                "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": {
                    "searchQuery": {
                        "title": "Search Keywords",
                        "type": "string",
                        "description": "Keywords to search across grant titles and descriptions, such as 'clean energy' or 'rural health'. Leave empty to browse all opportunities that match the filters below."
                    },
                    "opportunityNumbers": {
                        "title": "Specific Opportunity Numbers",
                        "type": "array",
                        "description": "Look up exact opportunities by their Grants.gov opportunity number (for example, 'EPA-R9-SFUND-2024'). When you add numbers here, the actor returns just those opportunities and ignores the search filters.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "opportunityStatus": {
                        "title": "Opportunity Status",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Which stages to include. Forecasted opportunities are announced but not yet open; Posted opportunities are open for applications now.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "forecasted",
                                "posted",
                                "closed",
                                "archived"
                            ],
                            "enumTitles": [
                                "Forecasted (upcoming)",
                                "Posted (open now)",
                                "Closed",
                                "Archived"
                            ]
                        },
                        "default": [
                            "forecasted",
                            "posted"
                        ]
                    },
                    "agencies": {
                        "title": "Federal Agencies",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Limit results to specific federal agencies. Leave empty to include all agencies.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "USAID",
                                "AC",
                                "CNCS",
                                "USDA",
                                "DOC",
                                "DOD",
                                "ED",
                                "DOE",
                                "PAMS",
                                "HHS",
                                "DHS",
                                "HUD",
                                "USDOJ",
                                "DOL",
                                "DOS",
                                "DOI",
                                "USDOT",
                                "DOT",
                                "VA",
                                "EPA",
                                "IMLS",
                                "IAF",
                                "MCC",
                                "NASA",
                                "NARA",
                                "NEA",
                                "NEH",
                                "NSF",
                                "ONDCP",
                                "SBA",
                                "SSA"
                            ],
                            "enumTitles": [
                                "Agency for International Development",
                                "AmeriCorps",
                                "Corporation for National and Community Service",
                                "Department of Agriculture",
                                "Department of Commerce",
                                "Department of Defense",
                                "Department of Education",
                                "Department of Energy",
                                "Department of Energy - Office of Science",
                                "Department of Health and Human Services",
                                "Department of Homeland Security",
                                "Department of Housing and Urban Development",
                                "Department of Justice",
                                "Department of Labor",
                                "Department of State",
                                "Department of the Interior",
                                "Department of the Treasury",
                                "Department of Transportation",
                                "Department of Veterans Affairs",
                                "Environmental Protection Agency",
                                "Institute of Museum and Library Services",
                                "Inter-American Foundation",
                                "Millennium Challenge Corporation",
                                "National Aeronautics and Space Administration",
                                "National Archives and Records Administration",
                                "National Endowment for the Arts",
                                "National Endowment for the Humanities",
                                "National Science Foundation",
                                "Office of National Drug Control Policy",
                                "Small Business Administration",
                                "Social Security Administration"
                            ]
                        },
                        "default": []
                    },
                    "fundingCategories": {
                        "title": "Funding Categories",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Limit results to specific funding categories, such as Health or Environment. Leave empty to include all categories.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "RA",
                                "AG",
                                "AR",
                                "BC",
                                "CD",
                                "CP",
                                "DPR",
                                "ED",
                                "ELT",
                                "EN",
                                "ENV",
                                "FN",
                                "HL",
                                "HO",
                                "HU",
                                "IS",
                                "ISS",
                                "LJL",
                                "NR",
                                "OZ",
                                "RD",
                                "ST",
                                "T",
                                "O"
                            ],
                            "enumTitles": [
                                "Recovery Act",
                                "Agriculture",
                                "Arts",
                                "Business and Commerce",
                                "Community Development",
                                "Consumer Protection",
                                "Disaster Prevention and Relief",
                                "Education",
                                "Employment, Labor and Training",
                                "Energy",
                                "Environment",
                                "Food and Nutrition",
                                "Health",
                                "Housing",
                                "Humanities",
                                "Information and Statistics",
                                "Income Security and Social Services",
                                "Law, Justice and Legal Services",
                                "Natural Resources",
                                "Opportunity Zone Benefits",
                                "Regional Development",
                                "Science, Technology and R&D",
                                "Transportation",
                                "Other"
                            ]
                        },
                        "default": []
                    },
                    "eligibilities": {
                        "title": "Eligible Applicant Types",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Limit results to opportunities open to specific applicant types, such as nonprofits or small businesses. Leave empty to include all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "99",
                                "00",
                                "01",
                                "02",
                                "04",
                                "05",
                                "06",
                                "07",
                                "08",
                                "11",
                                "12",
                                "13",
                                "20",
                                "21",
                                "22",
                                "23",
                                "25"
                            ],
                            "enumTitles": [
                                "Unrestricted (any applicant)",
                                "State governments",
                                "County governments",
                                "City or township governments",
                                "Special district governments",
                                "Independent school districts",
                                "Public and state-controlled higher education",
                                "Native American tribal governments (federally recognized)",
                                "Public housing authorities / Indian housing authorities",
                                "Native American tribal organizations (other)",
                                "Nonprofits with 501(c)(3) status",
                                "Nonprofits without 501(c)(3) status",
                                "Private higher education institutions",
                                "Individuals",
                                "For-profit organizations (other than small businesses)",
                                "Small businesses",
                                "Others (see opportunity text)"
                            ]
                        },
                        "default": []
                    },
                    "fundingInstruments": {
                        "title": "Funding Instrument Type",
                        "uniqueItems": true,
                        "type": "array",
                        "description": "Limit results to a funding instrument type. Leave empty to include all.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "G",
                                "CA",
                                "PC",
                                "O"
                            ],
                            "enumTitles": [
                                "Grant",
                                "Cooperative Agreement",
                                "Procurement Contract",
                                "Other"
                            ]
                        },
                        "default": []
                    },
                    "postedFrom": {
                        "title": "Posted On or After",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Only include opportunities posted on or after this date. Use the format YYYY-MM-DD, for example 2024-01-15. Leave empty for no lower bound."
                    },
                    "postedTo": {
                        "title": "Posted On or Before",
                        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
                        "type": "string",
                        "description": "Only include opportunities posted on or before this date. Use the format YYYY-MM-DD, for example 2024-12-31. Leave empty for no upper bound. This upper-bound date is only applied when Include Full Details is on (the posted date is only available in full details); without details, this filter is ignored."
                    },
                    "includeDetails": {
                        "title": "Include Full Details",
                        "type": "boolean",
                        "description": "Fetch the full details of every opportunity: description, award amounts, expected number of awards, cost-sharing requirement, agency contact, eligibility notes, and attachment links. Produces much richer results but takes longer.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of opportunities to return. Set to 0 to return all matching opportunities (up to 100,000). For larger pulls, narrow your search with filters or a posted-date range.",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            },
                            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
