# Government Tender & Grants Alert Report (`taroyamada/government-tender-grants-monitor`) Actor

Monitor public TED, Grants.gov, UK Contracts Finder, and optional SAM.gov opportunities and generate source-linked tender, grant, deadline, report, and export rows.

- **URL**: https://apify.com/taroyamada/government-tender-grants-monitor.md
- **Developed by:** [naoki anzai](https://apify.com/taroyamada) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $6.00 / 1,000 raw opportunity rows

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

## Government Tender & Grants Alert Report

GovCon business development teams use this actor to monitor public tender and grants opportunities from TED, Grants.gov, UK Contracts Finder, and optional SAM.gov.
Provide watch terms such as keywords, CPV/NAICS codes, countries, sources, and deadline windows.
Get source-linked tender alerts, grant alerts, deadline changes, buyer watch reports, and export rows.

### Store Quickstart

Start with a free baseline run. It saves the current source state and writes zero dataset rows.

```json
{
  "dryRun": false,
  "watches": [
    {
      "id": "cloud-modernization",
      "keywords": ["cloud", "cybersecurity"],
      "naicsCodes": ["541512"],
      "cpvCodes": ["72000000"],
      "deadlineWithinDays": 180
    }
  ],
  "sources": ["ted", "grants", "uk"],
  "monitorKey": "my-govcon-bid-watch",
  "initialRunMode": "baseline_only",
  "generateReport": true,
  "emitExport": true,
  "emitRawRows": false,
  "emitUnchanged": false
}
````

Run a paid trial after the baseline when you want current matches as alerts and reports:

```json
{
  "dryRun": false,
  "watches": [
    {
      "id": "cyber-grants",
      "keywords": ["cybersecurity", "resilience"],
      "deadlineWithinDays": 120
    }
  ],
  "sources": ["grants", "ted", "uk"],
  "monitorKey": "trial-cyber-grants",
  "initialRunMode": "emit_backfill",
  "generateReport": true,
  "emitExport": true,
  "emitRawRows": false,
  "emitUnchanged": false,
  "maxChargeUsd": 15
}
```

Add SAM.gov only when you provide your own official API key:

```json
{
  "dryRun": false,
  "watches": [
    {
      "id": "sam-cloud-services",
      "keywords": ["cloud services"],
      "naicsCodes": ["541512"],
      "deadlineWithinDays": 90
    }
  ],
  "sources": ["sam", "ted", "grants"],
  "samApiKey": "YOUR_SAM_API_KEY",
  "monitorKey": "sam-cloud-watch",
  "initialRunMode": "baseline_only",
  "generateReport": true,
  "emitUnchanged": false
}
```

### Run The Next Report

- Track awards, incumbents, and recompete timing with [GovCon Recompete & Incumbent Watch](https://apify.com/taroyamada/govcon-recompete-incumbent-watch-scraper).
- Follow public company disclosure triggers with [SEC EDGAR Material Disclosure Watch](https://apify.com/taroyamada/sec-edgar-material-disclosure-watch-scraper).
- Monitor broader public procurement sources with [Procurement Intel Actor](https://apify.com/taroyamada/procurement-intel-actor).

### Output Rows

The main paid rows are value rows, not bulk raw records.

```json
{
  "rowType": "tender_opportunity_alert",
  "billingEventName": "tender-opportunity-alert",
  "watchId": "cloud-modernization",
  "changeType": "new_opportunity",
  "opportunity": {
    "source": "ted",
    "opportunityType": "tender",
    "title": "Cloud modernization services",
    "buyer": "Example Ministry",
    "deadline": "2026-08-15",
    "status": "published",
    "url": "https://ted.europa.eu/en/notice/-/detail/123456-2026"
  },
  "limitations": [
    "Rows summarize public tender and grants data for human review."
  ],
  "prohibitedInterpretations": [
    "Not procurement, legal, bid/no-bid, protest, or capture strategy advice."
  ]
}
```

### Pricing And No-change Runs

- Raw opportunity row: low-cost optional raw row.
- Tender or grant opportunity alert: charged when a public source match is emitted.
- Deadline or status change alert: charged when a tracked opportunity changes.
- Buyer watch report: charged when the actor generates a report from alerts.
- Tender export generated: charged when the actor generates an export row.

Recurring no-change runs with `emitUnchanged=false` write zero dataset rows and charge zero.

### Compliance Guardrails

This actor is unofficial and not affiliated with TED, Grants.gov, SAM.gov, Contracts Finder, or any government agency. It only uses public source data. It does not provide procurement advice, legal advice, bid/no-bid recommendations, protest advice, award probability, guaranteed win claims, private notices, or agency endorsement.

### See Also

- [GovCon Recompete & Incumbent Watch](https://apify.com/taroyamada/govcon-recompete-incumbent-watch-scraper)
- [SEC EDGAR Material Disclosure Watch](https://apify.com/taroyamada/sec-edgar-material-disclosure-watch-scraper)
- [Procurement Intel Actor](https://apify.com/taroyamada/procurement-intel-actor)

# Actor input Schema

## `dryRun` (type: `boolean`):

Return sample value-event rows without fetching live sources.

## `watches` (type: `array`):

Keyword, CPV/NAICS, country, and source watches. Required for non-dry runs.

## `sources` (type: `array`):

Public sources to query. SAM.gov is optional and requires samApiKey.

## `monitorKey` (type: `string`):

Stable key for stateful no-change monitoring.

## `initialRunMode` (type: `string`):

baseline\_only saves state and emits no billable rows. emit\_backfill emits current matches for charged proof or first reports.

## `emitUnchanged` (type: `boolean`):

Keep false for recurring monitoring so unchanged runs write zero dataset rows and charge zero.

## `generateReport` (type: `boolean`):

Generate a source-linked buyer watch report when alerts are found.

## `emitExport` (type: `boolean`):

Generate a tender export row when alerts are found.

## `emitRawRows` (type: `boolean`):

Optional low-priced raw rows. Main value is alert/report/export rows.

## `maxOpportunitiesPerWatch` (type: `integer`):

Maximum source records to normalize per watch before dedupe and alert/report generation.

## `maxChargeUsd` (type: `number`):

Fail closed before delivery if the estimated PPE charge would exceed this amount.

## `samApiKey` (type: `string`):

Optional user-supplied official SAM.gov API key. Leave empty to use TED, Grants.gov, and UK sources only.

## Actor input object example

```json
{
  "dryRun": false,
  "watches": [
    {
      "id": "cloud-modernization",
      "keywords": [
        "cloud",
        "cybersecurity"
      ],
      "naicsCodes": [
        "541512"
      ],
      "cpvCodes": [
        "72000000"
      ],
      "deadlineWithinDays": 180
    }
  ],
  "sources": [
    "ted",
    "grants",
    "uk"
  ],
  "monitorKey": "my-govcon-bid-watch",
  "initialRunMode": "baseline_only",
  "emitUnchanged": false,
  "generateReport": true,
  "emitExport": true,
  "emitRawRows": false,
  "maxOpportunitiesPerWatch": 50,
  "maxChargeUsd": 25
}
```

# 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 = {
    "watches": [
        {
            "id": "cloud-modernization",
            "keywords": [
                "cloud",
                "cybersecurity"
            ],
            "naicsCodes": [
                "541512"
            ],
            "cpvCodes": [
                "72000000"
            ],
            "deadlineWithinDays": 180
        }
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("taroyamada/government-tender-grants-monitor").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 = { "watches": [{
            "id": "cloud-modernization",
            "keywords": [
                "cloud",
                "cybersecurity",
            ],
            "naicsCodes": ["541512"],
            "cpvCodes": ["72000000"],
            "deadlineWithinDays": 180,
        }] }

# Run the Actor and wait for it to finish
run = client.actor("taroyamada/government-tender-grants-monitor").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 '{
  "watches": [
    {
      "id": "cloud-modernization",
      "keywords": [
        "cloud",
        "cybersecurity"
      ],
      "naicsCodes": [
        "541512"
      ],
      "cpvCodes": [
        "72000000"
      ],
      "deadlineWithinDays": 180
    }
  ]
}' |
apify call taroyamada/government-tender-grants-monitor --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Government Tender & Grants Alert Report",
        "description": "Monitor public TED, Grants.gov, UK Contracts Finder, and optional SAM.gov opportunities and generate source-linked tender, grant, deadline, report, and export rows.",
        "version": "0.1",
        "x-build-id": "HWbGrCn6j79C6eRa1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/taroyamada~government-tender-grants-monitor/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-taroyamada-government-tender-grants-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/taroyamada~government-tender-grants-monitor/runs": {
            "post": {
                "operationId": "runs-sync-taroyamada-government-tender-grants-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/taroyamada~government-tender-grants-monitor/run-sync": {
            "post": {
                "operationId": "run-sync-taroyamada-government-tender-grants-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",
                "required": [
                    "watches"
                ],
                "properties": {
                    "dryRun": {
                        "title": "Dry run",
                        "type": "boolean",
                        "description": "Return sample value-event rows without fetching live sources.",
                        "default": false
                    },
                    "watches": {
                        "title": "Watches",
                        "type": "array",
                        "description": "Keyword, CPV/NAICS, country, and source watches. Required for non-dry runs."
                    },
                    "sources": {
                        "title": "Sources",
                        "type": "array",
                        "description": "Public sources to query. SAM.gov is optional and requires samApiKey.",
                        "items": {
                            "type": "string",
                            "enum": [
                                "ted",
                                "grants",
                                "uk",
                                "sam"
                            ],
                            "enumTitles": [
                                "TED",
                                "Grants.gov",
                                "UK Contracts Finder",
                                "SAM.gov"
                            ]
                        },
                        "default": [
                            "ted",
                            "grants",
                            "uk"
                        ]
                    },
                    "monitorKey": {
                        "title": "Monitor key",
                        "type": "string",
                        "description": "Stable key for stateful no-change monitoring.",
                        "default": "my-govcon-bid-watch"
                    },
                    "initialRunMode": {
                        "title": "Initial run mode",
                        "enum": [
                            "baseline_only",
                            "emit_backfill"
                        ],
                        "type": "string",
                        "description": "baseline_only saves state and emits no billable rows. emit_backfill emits current matches for charged proof or first reports.",
                        "default": "baseline_only"
                    },
                    "emitUnchanged": {
                        "title": "Emit unchanged rows",
                        "type": "boolean",
                        "description": "Keep false for recurring monitoring so unchanged runs write zero dataset rows and charge zero.",
                        "default": false
                    },
                    "generateReport": {
                        "title": "Generate watch report",
                        "type": "boolean",
                        "description": "Generate a source-linked buyer watch report when alerts are found.",
                        "default": true
                    },
                    "emitExport": {
                        "title": "Generate export row",
                        "type": "boolean",
                        "description": "Generate a tender export row when alerts are found.",
                        "default": true
                    },
                    "emitRawRows": {
                        "title": "Emit raw opportunity rows",
                        "type": "boolean",
                        "description": "Optional low-priced raw rows. Main value is alert/report/export rows.",
                        "default": false
                    },
                    "maxOpportunitiesPerWatch": {
                        "title": "Max opportunities per watch",
                        "minimum": 1,
                        "maximum": 250,
                        "type": "integer",
                        "description": "Maximum source records to normalize per watch before dedupe and alert/report generation.",
                        "default": 50
                    },
                    "maxChargeUsd": {
                        "title": "Max charge USD",
                        "minimum": 0.1,
                        "maximum": 250,
                        "type": "number",
                        "description": "Fail closed before delivery if the estimated PPE charge would exceed this amount.",
                        "default": 25
                    },
                    "samApiKey": {
                        "title": "SAM.gov API key",
                        "type": "string",
                        "description": "Optional user-supplied official SAM.gov API key. Leave empty to use TED, Grants.gov, and UK sources only."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
