TED, SAM.gov & Grants Bid Alerts Scraper
Start with a TED-only quickstart, then turn TED tenders, SAM.gov opportunities, and grants notices into source-linked bid queues, report bundles, export files, deadlines, award watch, and rebid watch signals. This Actor is a public-sector bid-alert queue — not a podcast search, chart, or reviews tool, and not a website or article HTML extractor.
Source availability and rate limits are reported in warnings[] and errors[]. A partial source response is never presented as complete coverage.
Open TED, SAM.gov & Grants Bid Alerts Scraper on Apify
Public-sector bid alerts, not podcasts or page extraction
Use this page when the job is monitoring official TED, SAM.gov, and Grants.gov / Simpler.Grants.gov notice feeds into one reviewable queue. Use Apple Podcasts Scraper, Apple Podcasts Chart Scraper, or Apple Podcasts Reviews Scraper for storefront shows, ranks, or reviews. Use Website Content Extractor or Article Content Extractor when the input is a list of page URLs to clean.
| This Actor | Podcast / extractor pages | |
|---|---|---|
| Intent | TED / SAM.gov / Grants bid-alert queue, award watch, rebid signals, deadline and status deltas | Show search, chart ranks, review RSS, or HTML article/docs cleanup |
| Starter lane | jurisdictions: "eu" against the TED notices search API — no external key |
Apple/iTunes endpoints or a urls list |
| Expansion | grants then us (SAM.gov key required for the US lane) |
Countries, collection IDs, or more URLs |
| Deliverable | Normalized notices, alerts, optional executive report and JSON export | Show, rank, review, or page-content rows |
Use cases
- Business development teams: turn TED and federal opportunity noise into one shortlist of current bids worth opening today.
- Capture / bid managers: spot deadline pressure, strategic-value tenders, award-watch rows, and rebid hints in one queue.
- Public-sector consultants: keep a reusable buyer/framework watchlist without maintaining source-specific scrapers.
- RevOps / automation teams: push recurring procurement summaries into CRM, Slack, webhook routers, or internal dashboards.
- Grants teams: add closing-soon and status-delta alerts once the TED starter lane is already useful.
Watch terms highlight buyers, incumbents, frameworks, or competitor names in summaries and notice signals without changing upstream source queries. Add them after the first useful run.
What is the best first run?
Start TED-only. The published Store quickstart needs no external key:
{
"jurisdictions": "eu",
"keywords": "cloud,cybersecurity,IT services",
"cpvCodes": "72000000,72220000",
"daysAhead": 21,
"maxItemsPerSource": 40,
"minValue": 100000,
"delivery": "dataset"
}
jurisdictionsdefault iseu(TED tenders). Addgrantsfor Grants.gov notices, thenusfor SAM.gov opportunities when you have a SAM.gov API key.keywordsdefault iscloud,cybersecurity,IT services. Keep terms narrow enough that the first queue feels reviewable.cpvCodesdefault is72000000,72220000(software / IT services on TED).naicsCodesdefault is541512,541519for the optional SAM.gov lane.daysAheaddefault is 21 so the dataset reads like a current bid-alert queue.minValuedefault is 100000 and hides smaller notices when an estimated value is present.maxItemsPerSourcedefault is 40.
Run the TED-only quickstart on Apify
What does a run return?
A normal run returns four surfaces:
meta.executiveSummary— current queue size, top buyers, review urgency, source mix, and whether the run isstable,watch, oraction_needed.notices[]— one normalized tender or grant row per opportunity, withsource,noticeId,title,buyer,deadlineAt,estimatedValue,signalTags,lanePriority, and a source-derivedrecommendedAction.alerts[]— recurring delta events such asdeadline_changed,status_changed, orclosing_soon, plus award-watch or rebid events when enabled. Empty starter runs still returnalerts: [].warnings[]/errors[]— missing API keys, skipped sources, throttling, or degraded upstream responses.
Dataset delivery attaches the opportunity_record event name to each notices[] row. procurement_summary and alert_event are additive compatibility labels under meta and alerts[]. The actor continues to return top-level meta, errors, notices, and alerts; it does not emit top-level PPE-name aliases.
Published README sample (TED starter shape):
{
"meta": {
"generatedAt": "2026-04-23T11:48:39.536Z",
"warnings": [],
"executiveSummary": {
"overallStatus": "action_needed",
"brief": "Tracked 40 tender / grant notice(s) this run. 1 notice(s) need same-day bid review. Source mix: 40 TED.",
"recommendedCadence": "daily",
"trackedNoticeCount": 40,
"immediateReviewCount": 1,
"strategicValueCount": 14,
"sourceMix": { "ted": 40 }
}
},
"notices": [
{
"source": "ted",
"noticeId": "c97dfecb-0cf9-4ba7-800d-685dbd87bbda",
"title": "Sweden – IT services: consulting, software development, Internet and support – Upphandling - IT-konsulttjänster ramavtal",
"buyer": "Transportstyrelsen",
"deadlineAt": "2026-04-23T22:00:00.000Z",
"estimatedValue": 736000000,
"urgencyLevel": "critical",
"signalTags": ["urgent_deadline", "strategic_value"],
"lanePriority": "now",
"recommendedAction": "Triage before the deadline"
}
],
"alerts": []
}
That sample is the published README illustration of the starter payload, not a live coverage guarantee.
Report and export path
Use the report/export path only after the narrow TED queue is useful. Opt in to one source-linked executive procurement report and/or one source-linked JSON opportunity export when matched notices or alerts exist. The low-cost queue and high-value report are separate paths; a raw notice row is not a report or export purchase. Set emitRawRows false when the report/export bundle is the only required deliverable.
{
"jurisdictions": "eu",
"keywords": "cloud,cybersecurity",
"cpvCodes": "72000000,72220000",
"daysAhead": 21,
"maxItemsPerSource": 40,
"minValue": 100000,
"delivery": "dataset",
"datasetMode": "all",
"emitRawRows": false,
"generateReport": true,
"emitExport": true,
"maxChargeUsd": 12,
"dryRun": false
}
An empty result emits zero rows and zero charges, including for report/export mode. maxChargeUsd is checked before any dataset write, so the actor fails closed instead of delivering a partial bundle. Zero means no cap.
Configure a report or export run on Apify
What happens if SAM.gov or grants are unavailable?
The actor does not pretend coverage is complete. It returns the useful sources it could fetch, then surfaces explicit warnings or source errors for the missing lane. If us is present without a SAM.gov key, the actor warns and skips that source instead of failing the whole run. SAM.gov and grants are additive, not required. Official endpoints used by the schema defaults are https://api.ted.europa.eu/v3/notices/search, https://api.sam.gov/opportunities/v2/search, and https://api.simpler.grants.gov/v1/opportunities/search.
When should I enable award watch or rebid watch?
After the starter or recurring TED queue already proves useful. Those workflows are best when you care about incumbent movement, renewals, or follow-on phrasing more than net-new open bids. includeAwarded defaults to false. Turn it on for award watch, incumbent movement, or rebid monitoring.
How are duplicates handled?
The actor normalizes notices and deduplicates them across comparable identifiers so recurring queues stay cleaner when similar records appear across sources. Bid-alert prioritization rolls deadline pressure, value, award/rebid phrasing, and watch-term hits into the review queue.
Can I schedule recurring bid alerts?
Yes. The actor is designed for daily or weekly recurring runs. datasetMode all emits the current matched opportunity queue. changes_only emits only stateful alert rows and writes zero rows when nothing changed. Grants closing-soon and status-delta alerts persist snapshots in a named Apify key-value store (default procurement-intel-grants-state) so deadline and status alerts stay comparable. grantsOpportunityStatuses default is posted,forecasted. grantsAlertClosingSoonDays default is 7.
How is TED, SAM.gov & Grants Bid Alerts Scraper priced?
Billing is pay-per-event. The live Store pricing tab charges $0.008 for one delivered source-linked procurement opportunity or stateful alert row.
The published README also names procurement-summary-report at $5.00 for one matched source-linked executive report and procurement-opportunity-export at $7.00 for one matched source-linked opportunity export bundle. The README says to check the live Apify pricing tab before publishing customer-facing estimates; those two events are listed there as a scheduled pricing change. Unchanged changes_only polls and empty report/export runs emit zero rows and zero charge.
$0.008 per delivered opportunity or alert row
See TED, SAM.gov & Grants Bid Alerts Scraper pricing on Apify
How do dataset, webhook, and dry-run delivery work?
delivery defaults to dataset and writes billed output. Webhook mode first writes and bills the same canonical dataset/value rows through Actor.pushData, verifies chargedCount, then forwards the run payload. Webhook delivery never replaces dataset billing and does not create a free webhook-only path. Downstream webhook failure is treated as a warning without rebilling on retry. dryRun skips dataset writes and webhook delivery side effects while validating inputs. Runtime is Node.js 20+.
Open TED, SAM.gov & Grants Bid Alerts Scraper on Apify
Related pages
- Tools
- Apple Podcasts Scraper — show search, episodes, and watchlists
- Apple Podcasts Chart Scraper — storefront ranks
- Apple Podcasts Reviews Scraper — public review RSS
- Website Content Extractor
- Article Content Extractor