US Grants.gov Opportunity Document Change Watch avatar

US Grants.gov Opportunity Document Change Watch

Pricing

from $201.00 / 1,000 grant opportunity deltas

Go to Apify Store
US Grants.gov Opportunity Document Change Watch

US Grants.gov Opportunity Document Change Watch

New or replaced attachments on a posted federal funding opportunity. Sourced from the public Grants.gov Search2 and FetchOpportunity APIs, logged-out, no key.

Pricing

from $201.00 / 1,000 grant opportunity deltas

Rating

0.0

(0)

Developer

NexGen Watch

NexGen Watch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

New or replaced attachments on a posted federal funding opportunity.

## Source
Grants.gov public Search2 and FetchOpportunity APIs (public, logged-out)
- https://api.grants.gov/v1/api/search2
  • https://api.grants.gov/v1/api/fetchOpportunity

    Public, logged-out only — no API key, login, cookie or CAPTCHA.
    ## The eight delta types
    | value | fires when |
    |---|---|
    | `new-opportunity` | an opportunity appears in the watched set |
    | `forecast-to-posted` | status moves `forecasted``posted` |
    | `deadline-amendment` | the close date or synopsis response date moves |
    | `funding-range-change` | award ceiling, floor, estimated funding, number of awards or cost sharing changes |
    | `eligibility-change` | the set of eligible applicant types changes |
    | `opportunity-cancellation` | status moves into closed/archived/withdrawn, or the record is delisted |
    | `agency-program` | the agency, agency code or CFDA programme list changes |
    | `opportunity-document-change` | the attached document set changes |
    Leave `delta_types` empty for all eight. Every emitted delta carries `delta_kinds`
    naming which ones it satisfied.
    The last three need a per-opportunity detail read. Selecting any of them narrows
    the watched set to `max_detail_reads` opportunities, newest first, and uses a
    separate baseline — so a list-mode baseline is never diffed against a detail-mode
    read.
    ## Pricing
    | Event | Price (FREE tier) |
    |---|---|
    | Actor start (`apify-actor-start`) | $0.02 one-time |
    | Source check (`source-check`) | $0.10 |

| Per delta (grant-opportunity-delta) | $0.30 |

`source-check` ladder, GOLD-floored: **$0.10 / $0.09 / $0.08 / $0.067**.
Charged once per run after the source enumeration terminates — seed runs and
genuine-zero runs included. It is **not** charged when the source refused the read.
The per-delta value event (`grant-opportunity-delta`) is the **primary** event and is priced at **$0.30 per delta** at the FREE tier. Ladder, GOLD-floored: **$0.30 / $0.27 / $0.24 / $0.201** (FREE / BRONZE / SILVER / GOLD-PLATINUM-DIAMOND). `source-check` still charges; it is no longer the headline event. Billed deltas are capped at 500 per run and any overflow is reported as a withholding rather than charged.
## Snapshot mode is a PREVIEW
`watch_mode: false` returns at most **25 records**, hard-capped in code, labeled
`output_mode: "preview"`. This actor sells change detection, not bulk export.
## Watch semantics
The first watch run stores a private baseline and emits **zero** deltas. Billed
deltas are capped at 500 per run; the overflow is a named PARTIAL withholding,
never billed, and re-detected next run. When a read is truncated, `REMOVED` is
suppressed rather than reported as a cancellation.
## Terminal states
`NORMAL` · `SUCCEEDED-0: GENUINE_EMPTY` · `SUCCEEDED-0` (no change) · `PARTIAL` · `BLOCKED`.
A zero with no evidence FAILS loud rather than exiting 0 quietly.

You name what this Actor watches

This Actor reads fields that only exist on the per-opportunity detail record, so it must issue one request per opportunity. It will not do that across the whole live set — instead it watches exactly what you name:

  • opportunity_numbers — e.g. PAR-25-221. One bounded lookup each, exact-number match.
  • agency_codes — e.g. DOI-NPS. Every live opportunity for that agency.

At least one is required. A run with neither fails immediately and says why, rather than quietly watching an arbitrary slice of the corpus and looking healthy.

Both bounds were proven to actually filter, control-vs-test on 2026-07-27 — oppNum takes 1,224 live opportunities to 1, agencies=DOI-NPS takes it to 16. A named opportunity that resolves to nothing is reported as NOT FOUND, never dropped in silence.

Why this matters for what you pay. Pool-wide, this field family changes on the order of a dozen times a year across all 1,224 live opportunities. Watching 40 opportunities you actually care about turns that into a signal; watching 150 arbitrary ones turns it into nothing.

One delta type per Actor

This Actor watches opportunity-document-change and nothing else. The other delta types in this family are separate Actors, each with its own price and its own baseline — so you pay for the feed you want and no other.

Run it WEEKLY, not daily

Schedule this Actor once a week. That is a recommendation about your bill, not about coverage — a weekly run reads the same opportunities and misses nothing.

This is a bounded, low-frequency feed by construction. Measured on 2026-07-27 across 200 of the 1,234 live posted opportunities, through this Actor's own classifier: 8.00 (a ceiling — see below) of this Actor's events per 100 watched opportunities per year. At the maximum bound this Actor accepts — 300 opportunities — that is about 24 deltas a year, or 0.46 a week.

A daily schedule pays seven source-check events a week to re-read a set that changes a few times a year: the check would be roughly 90% of your bill and buy no extra signal. On a weekly schedule the per-delta event carries about 54% of the bill and you see exactly the same changes. Override the cadence if you have a reason to.