TED and SAM bid-desk deadlines

TED and SAM bid desk deadlines and CPV alerts in one CSV queue

Job: one spreadsheet for bid-desk deadlines — TED tenders (CPV) and SAM.gov opportunities — instead of two API clients. Start TED-only with no key. Add us when you have a SAM.gov API key. deadlineAt is on each notice row. Export the default dataset as CSV.

This page is the combined desk / deadline path, not a Store mirror. Product overview lives on TED, SAM.gov & Grants Bid Alerts Scraper (taroyamada/procurement-intel-actor). Official notice APIs only. Not an HTML scrape.

Open Input → Start. TED-only × maxItemsPerSource 1 ≈ $0.008 if a row delivers. From $8.00 / 1,000 rows. No live start charge. Empty queues are $0.

Open SAM.gov / TED / grants Input → Start

Start path: TED first, then SAM on the same desk

  1. Open taroyamada/procurement-intel-actor Input. Sign in (an account is required to run).
  2. First paid proof: jurisdictions eu, live cpvCodes, daysAhead 7, maxItemsPerSource 1, report/export off. Click Start and inspect deadlineAt.
  3. When TED rows look like a desk, set jurisdictions to eu,us, add samApiKey, keep naicsCodes or replace them. Leave maxItemsPerSource at 1 until the mixed CSV is useful.
  4. Export CSV from the default dataset. Recurring runs can add deadline and closing-soon alerts.

If us is present without a key, SAM.gov is skipped with a warning. TED can still deliver. That is a partial desk, not “full US coverage.”

Open Input → Start

Cheapest TED proof, then a combined desk

TED-only (no external key):

{
  "jurisdictions": "eu",
  "keywords": "cybersecurity",
  "cpvCodes": "72000000,72220000",
  "daysAhead": 7,
  "maxItemsPerSource": 1,
  "generateReport": false,
  "emitExport": false,
  "delivery": "dataset",
  "dryRun": false
}

Then, with a real SAM.gov key, the same desk plus the US lane:

{
  "jurisdictions": "eu,us",
  "keywords": "cybersecurity",
  "cpvCodes": "72000000,72220000",
  "naicsCodes": "541512,541519",
  "daysAhead": 7,
  "maxItemsPerSource": 1,
  "samApiKey": "YOUR_SAM_GOV_API_KEY",
  "delivery": "dataset",
  "dryRun": false
}

Live PPE (copy only; Store prices unchanged): opportunity or alert row $0.008. No live start charge. Store card: From $8.00 / 1,000 rows. Report $5 and export $7 stay off on the first desk run.

TED (eu) SAM.gov (us)
Filter field cpvCodes (default 72000000,72220000) naicsCodes (default 541512,541519)
API key Not required samApiKey required; missing key skips US
Official endpoint api.ted.europa.eu/v3/notices/search api.sam.gov/opportunities/v2/search
Deadline deadlineAt on each notice; daysAhead window (default 7)
First paid cap maxItemsPerSource 1 ≈ $0.008 per delivered row

minValue defaults to 100000 and can empty the first queue — lower it or widen CPV before raising maxItemsPerSource. The published Store Quickstart is TED-only with maxItemsPerSource 40 (same rate; more row events if all 40 deliver).

Open Input → Start

What this page is not

Can TED and SAM deadlines sit in one CSV queue?

Yes. jurisdictions is a comma-separated source list: eu for TED, us for SAM.gov, grants for Grants.gov. A combined desk uses eu,us plus a SAM.gov API key. Each notice row carries deadlineAt. daysAhead keeps notices closing inside that window (live default 7). Recurring alerts include deadline_changed, status_changed, and closing_soon. Export the default dataset as CSV.

Do I need API keys for both TED and SAM?

TED-only (jurisdictions eu) needs no external key. The US lane needs samApiKey from SAM.gov Account Details. If us is present without a key, the run warns and skips SAM.gov instead of failing the whole queue — TED rows can still deliver. grantsApiKey is optional for Grants.gov.

How do CPV filters differ from NAICS filters?

cpvCodes (live default 72000000,72220000) are optional TED CPV filters. naicsCodes (live default 541512,541519) are optional SAM.gov NAICS filters. keywords go to TED titles, SAM.gov titles, and Grants.gov queries. watchTerms highlight buyers or incumbents in summaries without changing upstream queries. NAICS-only CSV: SAM.gov NAICS bid alerts.

What deadline fields are in the CSV?

Notice rows include source, noticeId, title, buyer, deadlineAt, estimatedValue, signalTags, lanePriority, and recommendedAction. meta.executiveSummary reports queue size, top buyers, and overallStatus (stable, watch, or action_needed). Starter samples still return alerts: [] on a first queue; recurring runs add deadline and closing-soon events.

What does a first combined queue cost?

Live PPE is $0.008 per delivered procurement opportunity or alert row ($8.00 / 1,000). No live start charge. First proof: TED-only, maxItemsPerSource 1 ≈ $0.008 if one row delivers. Empty queues are $0. A later eu,us run still bills per delivered row. The published Store Quickstart is TED-only with maxItemsPerSource 40 (40 × $0.008 = $0.32 if all 40 deliver).

Should I turn on the $5 report on the first desk run?

No. Leave generateReport and emitExport false. Live value events are procurement summary report $5 and opportunity export $7. The cheapest desk proof is raw opportunity rows only. Raise maxItemsPerSource after the first CSV looks like a bid desk.

Is this a scrape of TED or SAM.gov HTML?

No. Schema-default endpoints are TED api.ted.europa.eu/v3/notices/search and SAM.gov api.sam.gov/opportunities/v2/search. It is not Google News RSS, not PubMed, and not page-HTML cleanup. A partial source response is never presented as complete coverage.

Open Input → Start. TED-only × maxItemsPerSource 1 ≈ $0.008 if a row delivers. From $8.00 / 1,000 rows. No live start charge. Empty queues are $0.

Open SAM.gov / TED / grants Input → Start

Related pages

Official TED and SAM.gov notice APIs only. Not an HTML scrape. Missing SAM.gov key skips US with a warning. Empty queues are not billed. Store prices unchanged on this page.