# Changelog of SAM.gov Federal Contract Opportunities (Unofficial) (`syntrovia/federal-opportunities-sam-gov-extract`) Actor

- **URL**: https://apify.com/syntrovia/federal-opportunities-sam-gov-extract/changelog.md
- **Full Actor documentation**: https://apify.com/syntrovia/federal-opportunities-sam-gov-extract.md

## Changelog

### 0.1 (2026-11-14, not yet published)

- First version: streams the public SAM.gov Contract Opportunities extract newest-first and stops after the requested window (1-90 days).
- Filters: notice type, NAICS prefix, PSC prefix, set-aside code, place-of-performance state, agency phrase, keywords (any/all), response deadline.
- "Only notices not returned before" mode with a per-schedule state name, a run lock with heartbeat and a per-batch journal.
- Privacy: contact columns, street address, description and raw awardee text are never output; awardee names only for legal entities (INC, INCORPORATED, LLC, CORP, CORPORATION, LTD, LIMITED, LP, LLP, PLLC, PC) on awards from 2022-04-04, fail-closed on any doubtful case.
- Pay-per-event with exactly two events: `run-start` (charged by the Actor after the file passes the layout check) and `notice` per saved notice; nothing charged for invalid input, an empty file or a layout change in the header or first 200 rows.
- Run state saved after every batch as small segments; migration and abort stop at a batch boundary, so no notice is saved or charged twice.
- Internal review round 2: saved count taken from the `notice` event only; only download errors are retried; `basic-ftp` forced to 6.2.6.
- Internal review round 3: CO and COMPANY no longer accepted as legal-entity suffixes; a batch saved before a charge-API error is recorded as returned; a pending migration always wins over late errors; run-state writes grow linearly; the state lock is refreshed during the run.
