Gov Bids, RFPs & Federal Awards API (SAM.gov)
Pricing
Pay per event
Gov Bids, RFPs & Federal Awards API (SAM.gov)
Open government bids, RFPs and new federal contract awards from official APIs only: USAspending, SAM.gov (your own key), NYC City Record, RAMP LA, Delaware, Montgomery County MD. One normalized schema.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Civic Data Tools
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
Public Bid & RFP Search (Gov Contracts API)
One call returns open government solicitations (bids, RFPs, RFQs) and new federal contract awards in a single normalized schema. Every source is an official government API or open-data portal (see sources.md for the terms review). No scraping, no logins, no commercial aggregators.
Sources (v0.1)
| id | Coverage | Kind |
|---|---|---|
usaspending-awards | All federal agencies: new contract awards in the last N days (who won what, and for how much) | award |
sam-gov-opportunities | Federal open opportunities. Only with your own SAM.gov API key (samApiKey) | open solicitation |
nyc-city-record | New York City agencies (City Record Online solicitations) | open solicitation |
la-ramp | Los Angeles region: City of LA, LA County, LAUSD, ports, airports (RAMP LA) | open solicitation |
delaware-open-bids | State of Delaware agencies | open solicitation |
montgomery-county-md | Montgomery County, Maryland | open solicitation |
Input
keywords (whole word, simple plurals; landscap* for prefix), matchMode, sources, states, naicsCodes (prefix match; federal only), onlyOpen (default true), postedWithinDays (60), includeFederalAwards (true), awardsWithinDays (30), samApiKey (secret, optional), samMaxRequests (1–10, default 1), socrataAppToken (secret, optional), maxResultsPerSource (200), maxResults (500). Every field is documented in .actor/input_schema.json.
SAM.gov (optional, bring your own key)
- Paste your free personal SAM.gov key into
samApiKey(a secret field: Apify stores it encrypted). Setup steps:SAM-GOV-SETUP.md. - Personal keys allow 10 requests/day (1,000 if your SAM.gov account holds an entity role) and expire every 90 days. The Actor never retries SAM.gov and spends at most
samMaxRequestscalls per run (default 1). - With keywords and
keywords ≤ samMaxRequests, each keyword becomes one server-side SAM.govtitlesearch. Otherwise the newest 1,000 notices per request are scanned and matched locally.OUTPUT.stats.perSource["sam-gov-opportunities"].metareportsstrategy,requestsUsed,totalAvailable,fetched, andpartial(with a hint). - Errors are explicit:
AUTH_ERROR(bad, expired, or wrongly formatted key, with the renewal steps),RATE_LIMITED(daily quota used). A SAM.gov "No Data found" 404 counts as an empty result. The key is redacted from every log line and the OUTPUT record.
Output record (type: "bid-record")
source, sourceName, recordKind (open-solicitation | award), level (federal | state | county | city | regional), jurisdiction, state, agency, subAgency, title, description, solicitationNumber, noticeType, category, naics{code,description}, psc, postedDate, dueDate, value, valueType, recipient (awards), periodEnd (awards), contact (NYC), link, matchedKeywords, disclaimer (Montgomery), retrievedAt. See demo/actor-sample-item.json.
Errors never crash the run. They are written to the OUTPUT record as AUTH_ERROR, RATE_LIMITED, or SOURCE_ERROR. SAM.gov without a key appears under skipped: NO_API_KEY.
Pricing (pay per event)
bid-record(primary): one per record written to the dataset. Proposed price $0.005 (set in Apify Console, not in code).- Keep
apify-actor-start(synthetic). Removeapify-default-dataset-itemso records aren't charged twice. - The Actor follows the user's spending limit (
eventChargeLimitReachedstops the run cleanly). Events only (no "+ usage"), limited permissions, no Standby, so it's eligible for Apify agentic payments once KYC is done.
Run
npm installnpm test # 10 offline tests (all 6 sources mocked, including SAM.gov strategy/quota/key handling)LIVE=1 npm test # plus a live test against the 5 keyless sourcesnpm run demo # every open record → demo/demo-all-open.jsonnpm start # Actor locally (input in storage/key_value_stores/default/INPUT.json)read -rs SAM_API_KEY && export SAM_API_KEY # paste key, nothing is echoednode scripts/sam-smoke.mjs landscaping # 1 SAM.gov request, prints a redacted summarynode src/cli.js --keywords landscaping --sam-requests 1 # all sources incl. SAM.gov
Demo results (live, 2026-10-04 PT)
- All open records, no keywords: 422 records in about 7 s, 0 errors. That's 100 new federal awards, 91 NYC, 186 RAMP LA, 36 Delaware, and 9 Montgomery County.
- Grounds-maintenance niche (
landscaping, grounds maintenance, mowing, tree(s), vegetation, irrigation): 39 records. NYC Parks "LiDAR Based Street Tree Inventory" (due 2026-10-20), LADWP "Drip Tubing for Owens Lake Managed Vegetation" (due 2026-10-22), and 37 new federal awards. Examples: VA "Grounds Maintenance Services… Santa Fe National Cemetery" ($451,595, Moderno Inc), USDA "ALB Tree Removal Services in South Carolina" ($6.72M, Davey Resource Group). - Local Actor run (Apify SDK),
janitorial, custodial, cleaning: 36 records,bid-recordcharged 36 times (simulated).
Notes and limits
- USAspending gives awards, not open bids. They're useful for competitive intel and recompete planning.
dueDateis null for awards. - USAspending keyword search runs server-side across many fields, then our whole-word filter runs on title, description, and NAICS title. Broad prefixes like
landscap*also match NAICS 541320 "Landscape Architectural Services". - Montgomery County records have no per-item URL, so
linkgoes to the County solicitations page. - Disclaimers. Montgomery County: "The data made available here has been modified for use from its original source, which is Montgomery County, Maryland ('the County'). THE COUNTY MAKES NO REPRESENTATIONS OR WARRANTIES AS TO THE COMPLETENESS, ACCURACY, OR TIMELINESS OF ANY DATA." NYC: "The City of New York can not vouch for the accuracy or completeness of data provided by this web site or application or for the usefulness or integrity of the web site or application. This site provides applications using data that has been modified for use from its original source, NYC.gov, the official web site of the City of New York." LA data: City of Los Angeles, CC0. Not affiliated with any government.
Civic Data Tools (related Actors)
Same publisher (civic-data-tools) — useful together for agents monitoring local government:
| Actor | Use when | Store |
|---|---|---|
| City Council & County Agenda Search | Keyword/topic matches in council, board, and commission agendas (Legistar / CivicClerk / Granicus) | meeting-agenda-search |
| Multi-City Building Permits | Normalized building permits from large US city open-data portals | building-permits |
This Actor covers open bids / RFPs / federal awards. Pair agenda search for “who is about to bid out work” and permits for “what already pulled a permit.”