EU TED Industrial Equipment Tender Keyword Matcher
Pricing
$7.00 / 1,000 verified unique ted notice / lot matches
EU TED Industrial Equipment Tender Keyword Matcher
Find industrial equipment tenders across the EU with separate CPV and exact keyword evidence, source-verified lot deadlines and official links. $7 per 1,000 verified lots.
Pricing
$7.00 / 1,000 verified unique ted notice / lot matches
Rating
0.0
(0)
Developer
AFK Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
NEWAPI17 · Version 1.0.0 · Official EU TED Search API v3
Discover industrial machinery and equipment procurement notices on TED, with separate, source-backed evidence for CPV matches and original-language technical keyword matches. Each eForms lot is matched to its own tender deadline from the original XML. No inferred deadline/lot combinations.
What you get
- Official Publications Office TED Search API v3, not website scraping.
- CPV hierarchy matching with explicit lot-level or procedure-fallback provenance.
- Literal technical keyword matches with source scope, field, original language, matched text and excerpt.
- Keyword absence is marked not observed in available original-language text, never “unsuitable” or “non-compliant.” Cross-language translations may hide exact phrases.
- Deadline timestamps and UTC offsets preserved from each XML lot. Expired and timezone-unknown deadlines excluded by default.
- Unique per-notice/lot results, published buyer, title, official TED link and UTC observation time.
- JSON and CSV Dataset exports with incremental checkpoints, request and spending bounds.
Example input
{"cpvCodes": ["42000000", "43000000"],"keywords": ["CNC", "laser", "robot", "milling"],"countryCodes": ["DEU", "FRA"],"publicationDateFrom": "2026-10-01","publicationDateTo": "2026-10-22","deadlineFrom": "2026-10-22","deadlineTo": "2026-12-31","keywordMatchMode": "ANNOTATE","maxResults": 10,"maxCostUsd": 0.07}
All dates are YYYY-MM-DD. Empty publication dates mean the last 14 days, relative to the run date. Country codes are ISO 3166-1 alpha-3, e.g. DEU, FRA, ITA or ESP. CPV values accept 2–8 digits plus an optional check digit. A division code such as 42000000 matches hierarchical prefix 42*, and 43000000 matches 43*.
With keywordMatchMode ANNOTATE (default), retain CPV-matching tenders even if literal keyword evidence is absent. With REQUIRE, return only lots with directly observed keywords, but never assert the excluded results are unsuitable. Add synonyms from the relevant procurement languages.
includeExpired and includeUnknownDeadlines default to false. Without a complete trustworthy deadline and timezone, the Actor will not falsely mark a tender as open. Deadline date range filters operate on the original lot-local calendar date.
The valid prefilled input caps results at 10 and result charges at $0.07, with a maximum 65 notices scanned, 5 search pages, 100 HTTP requests, and 240 seconds run time. Increase these limits carefully. maxResults supports 1–2,000; maxCostUsd supports 0–1,000. A $0 maximum returns no results without querying TED.
Output fields
Required fields:
- publication_number, lot_id, country_code, buyer_name, title_text
- matched_keywords and match_evidence (independent CPV and KEYWORD evidence objects)
- cpv_codes and cpv_match_scope
- submission_deadline and deadline_timezone
- ted_notice_url, observed_at
Additional fields include title_language, keyword_match_status, cpv_match, deadline_precision, deadline_source_date, deadline_source_time, source and estimated_value.
For every lot, submission_deadline combines original eForms TenderSubmissionDeadlinePeriod EndDate and EndTime; deadline_timezone is the original Z or numeric UTC offset, not an invented IANA timezone. observed_at is the UTC ingestion time. A source-reported date without a precise time remains date-only if includeUnknownDeadlines is enabled.
The optional estimated_value retains the eForms lot's EstimatedOverallContractAmount as its original string, with the source field type and source currencyID, without currency conversion. It is not an award price or guaranteed budget. Missing source fields are null.
Example CPV evidence object:
{"type":"CPV","source_scope":"lot","field":"ItemClassificationCode","matched_code":"42623000","input_prefix":"42","method":"hierarchy_prefix"}
Example keyword evidence object:
{"type":"KEYWORD","keyword":"CNC","matched_text":"CNC","source_scope":"lot","field":"title","language":"deu","excerpt":"CNC Bearbeitungszentrum","method":"case_insensitive_literal_phrase"}
The keyword status not_observed_in_available_original_text means only that a literal phrase was not found in the fetched source text. It is not disqualifying evidence.
Pricing
$0.007 per unique output lot record, billed through Apify Pay-per-event with only the synthetic event apify-default-dataset-item enabled. Do not also enable an Actor-start event or a second custom row charge. 1,000 rows correspond to $7.00 gross before optional user discounts. The publisher's net income is lower after commission and platform costs.
The user-defined maxCostUsd imposes a local cap on the number of emitted records: floor(maxCostUsd / 0.007). The platform's maximum run charge limit is independently enforced and should also be set in Apify Console.
Source, lot and deadline fidelity
The Search API response is notice based. Lot identifiers, CPVs and deadline arrays cannot be zipped by position. Instead, search returns candidate notices; the Actor then uses the official linked eForms XML and reads each ProcurementProjectLot's own ProcurementProject, TenderingProcess and TenderSubmissionDeadlinePeriod.
Lot-level CPVs take precedence. If a lot supplies no CPV, a procedure-level match is labelled procedure_fallback; it is never passed off as lot-specific evidence.
Only one TED request is made at a time, voluntarily spaced at least 1.1 seconds apart. Source responses 429 and transient 5xx are retried with bounded exponential backoff and Retry-After. Other HTTP failures are counted or propagated, as appropriate; request limits and timeouts prevent runaway costs.
The official Search API supports ITERATION scroll pagination with 250 notices maximum per page and 10,000 fields per page. Unlike normal pagination (15,000 notices per query), iteration avoids that total cap and reduces source-index changes during paging. The scroll token expires after the next OJ S release plus 24 hours; failed runs can resume only while the checkpoint remains valid.
A per-run key-value checkpoint stores the iteration token, processed lot keys and counters after each successfully persisted result. The key-value SUMMARY record reports counts, skipped/expired items, source requests, runtime and estimated result charges. New runs have independent datasets and caches. A source correction/new edition can receive a different publication number; always validate directly before bidding.
Official RDF fallback
In Apify cloud environments TED may return empty HTTP 202 instead of the official XML notice. In that case the Actor queries the exact publication-number named graph from the official TED Open Data SPARQL service (https://docs.ted.europa.eu/ODS/latest/connecting/sparql.html) at the Publications Office. It follows each typed Lot, Purpose and SubmissionTerm relationship, retaining the lot-specific CPV and the exact hasReceiptTenderDeadline. Participation and expression-of-interest deadlines are never substituted for tender deadlines. No third-party scraper or proxy is used.
TED Open Data graphs may be behind the latest TED publications. If a graph has not yet been ingested, the corresponding notice is omitted, not fabricated. The output source property identifies whether the result used the original eForms XML or the official TED Open Data RDF. The latter uses the source type epo:hasEstimatedValue for amounts if present, rather than claiming to expose the original XML field. No currency conversion is performed. Because of RDF ingestion lag, this Actor cannot guarantee complete coverage of the newest notices.
Download JSON or CSV
In Apify Console, open the run, select Dataset and choose Export > JSON or CSV. The Actor output tab contains direct Dataset JSON/CSV download links plus the SUMMARY key-value record. Nested match_evidence is serialized as JSON inside a CSV cell.
Source attribution and reuse
Source: Tenders Electronic Daily (TED), Publications Office of the European Union, https://ted.europa.eu.
Official TED API documentation · TED Search field list · TED pagination limits · TED legal notice · Apify PPE
TED notices can generally be reused for commercial or non-commercial purposes with applicable source attribution and third-party rights. Editorial site content is CC BY 4.0, and official system metadata is CC0 under TED's legal notice. This independently developed Actor is not affiliated with or endorsed by the European Union or TED; it does not use official EU logos.
Limitations
The Actor does not translate source content, download buyers' attached tender specifications, submit a bid or certify a procurement opportunity. CPV categories may be broad or imperfectly classified. Missing dates and keywords may reflect source data gaps. Always check the original official TED notice and the buyer's portal.