EU TED Tender Monitor avatar

EU TED Tender Monitor

Pricing

from $3.00 / 1,000 notices

Go to Apify Store
EU TED Tender Monitor

EU TED Tender Monitor

Monitor new EU public tenders from TED (Tenders Electronic Daily) via the official API. Get clean, deduplicated notices with buyer, CPV, value, deadline and links. Optional AI English summaries. Pay only per notice.

Pricing

from $3.00 / 1,000 notices

Rating

0.0

(0)

Developer

yanpengluo

yanpengluo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

EU TED Tender Monitor (TED Search API v3)

Monitors EU public procurement notices from TED (Tenders Electronic Daily) via the official anonymous Search API v3 (POST https://api.ted.europa.eu/v3/notices/search). HTTP only, no browser, no proxy, 1 request/second max. Part of a tender pack (TED / SAM.gov / UK FTS & Contracts Finder) sharing one output schema (packages/shared).

Data licence & attribution

  • Source: © European Union, https://ted.europa.eu. Per the TED legal notice, "procurement notices published in the Supplement to the Official Journal of the European Union can be freely reused, for commercial or non-commercial purposes" (Commission Decision 2011/833/EU on the reuse of Commission documents). Editorial content: CC BY 4.0; metadata CC0.
  • Every record has licenseAttribution. When you republish: credit TED/EU, link sourceUrl, and indicate that summaryEn/keyRequirementsEn (and titleEn when titleEnSource: "generated") are AI-generated derivatives, not official text.
  • Do not use the TED/EU logos. Only the notices published in the OJ S are authentic.

Input (main)

cpvCodes, keywords (full text), query (TED expert query, ANDed), noticeTypes, buyerCountries, publishedFrom/publishedTo (YYYY-MM-DD), maxItems, dedupe + dedupeScope (skip notices already output by earlier runs — stored in named KV tender-ted-seen), enableSummaries, summaryBudgetUsd (default 0.20, hard max 2.00).

Output

noticeId, source, noticeType, titleOriginal, titleEn, buyer, cpv, naics, psc, estimatedValue{amount,currency}, awardValue{amount,currency}, awardees, deadlineAt, documentUrls, sourceUrl, licenseAttribution, summaryEn, keyRequirementsEn, summaryStatus, model, promptVersion, retrievedAt
(+ estimatedValueBasis, deadlineDateRaw, publicationDate).

  • Money fields are always {amount, currency} (ISO 4217) or null. An amount without a stated currency is reported as null. Values are never converted between currencies.
  • estimatedValue: the procedure estimate (BT-27 procedure); else the sum of lot estimates if all lots share a single currency (estimatedValueBasis). It is always null on award/result notices (can-*, veat, pmc…).
  • awardValue: {amount, currency} from the notice total value (total-value + total-value-cur), only for result notices (can-*, veat, …).
  • titleEn / titleEnSource: "official": the English title supplied by TED. It may not actually be translated (TED builds it as "Country – CPV label – original-language title").
  • deadlineAt: earliest lot deadline, ISO 8601 with the offset stated in the notice; null if date or time is not stated (never invented).
  • summaryStatus: ok | cached | disabled | skipped_no_key | skipped_budget | failed.

Default input

With no filters at all (e.g. the Store default input {}), the Actor returns notices published in the last 24 h. TED publication-date is day-level (UTC), so the query is publication-date >= yesterday AND <= today (UTC). TED publishes Monday–Friday, so a weekend or holiday window can return 0 notices. That is a successful run (runStatus: ok), not an error. The window used is reported in RUN_SUMMARY defaultWindow.

Source and licence

  • Source: TED (Tenders Electronic Daily), operated by the Publications Office of the European Union — https://ted.europa.eu (TED Search API v3).
  • Licence: TED site content is © European Union and licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/). Reuse follows Commission Decision 2011/833/EU on the reuse of Commission documents.
  • TED logo: not used anywhere in this Actor, its output or its Store page. There is no claim of EU endorsement.
  • Every record's licenseAttribution states the source, the CC BY 4.0 licence and Decision 2011/833/EU. Keep it if you republish. AI summaries are derived content, not official text.

AI summaries

DeepSeek (deepseek-flash, non-thinking mode, OpenAI-compatible, JSON mode), key from env DEEPSEEK_API_KEY (absent → skipped_no_key). Prompt allows only facts from the source and requires "not stated" for missing items. Cache: named KV tender-ted-summary-cache keyed noticeId+promptVersion. Budget: per-run budget + global daily cap $1, cost computed from response usage tokens at official peak/off-peak rates (named KV tender-ted-llm-budget; the daily cap applies per Actor); over budget → skipped_budget, run continues.

Pricing (pay-per-event)

EventPrice (USD)When
actor-start$0.005once per run
notice$0.003 ($3 / 1,000)per record written to the dataset
notice-summary$0.01per newly generated AI summary (optional)

No charge for failed records, duplicates, or for cached, skipped or failed summaries. Config: .actor/pay_per_event.json; local simulation: scripts/ppe-local.sh.

Privacy

Contact persons, emails and phone numbers are not requested from the API, and a scrubber removes email/phone patterns from every text field before output and before sending text to the LLM. Notices may still name natural persons as buyers/awardees (sole traders); handle under GDPR if you redistribute.

Run locally

cd /workspace/apify/tender && npm install
cd actors/ted && apify run -p # input: storage/key_value_stores/default/INPUT.json
npx tsx src/check.ts # numeric/field checker vs raw (needs includeRaw: true)
./scripts/ppe-local.sh # simulate pay-per-event charges (local charging_log dataset)

Dev: mockSummaries: true uses a fake LLM (local only) to test cache/budget logic without spending.