EU Industrial Equipment Tender Matcher
Pricing
from $6.00 / 1,000 verified industrial tender matches
EU Industrial Equipment Tender Matcher
Find EU TED tenders for industrial pumps, generators and compressors with CPV filtering, verified source-text evidence, buyer names and bid deadlines. Official public TED API.
Pricing
from $6.00 / 1,000 verified industrial tender matches
Rating
0.0
(0)
Developer
AFK Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
12 days ago
Last modified
Categories
Share
EU Industrial Equipment Tender Matcher — API22

Match EU TED notices to real equipment needs, with quoted source evidence. Focused on industrial pumps, generators, compressors, power and mechanical equipment. Built independently for /opt/APIFY/API22 using only TED's public, published-notice Search API, not browser scraping or private endpoints.
Why this Actor is different
General TED searches return broad tender lists. This Actor applies a second, verifiable qualification layer: the buyer's actual notice title, lot title or procurement description must contain a target equipment term, an optional user-selected CPV family must match the same notice, and default industrial-context checks exclude medical/incidental keyword hits. Every output includes the evidence wording, source field, language, CPV signal, TED link, and conservative bidding status. CPV alone or a broad TED full-text hit never creates a billable record.
Input
productTerms: 1–8 equipment words/phrases; use language-specific synonyms for better recall, e.g.["pump", "pompe", "Pumpe"].cpvCodes: optional list of 8-digit CPV codes such as42120000(pump-family),31120000(generators),42123000(compressor family). Supplying codes requires both text evidence and matching CPV.country: optional buyer-country ISO alpha-3 (ROU,DEU,FRA).language: preferred evidence language ISO-639-3 (defaulteng). Search itself is multilingual and preferred language cannot guarantee translated procurement descriptions.publishedFrom/publishedTo: YYYY-MM-DD inclusive. Default: previous 30 days.procurementNature:supplies(default equipment purchasing),services,worksorall. The default excludes service-only notices.openClosed:open(default),closed,all. "Open" requires a competition notice with a published bid deadline after today's UTC date. Results/awards are closed. Missing/today deadlines areunknownand excluded from "open" results.industrialOnly: default true; reject medical/nonindustrial incidental matches.includeHistoricalVersions: default false, asks TED itself for only latest versions. When true, historical/latest labels are relative to scanned results, not a promise to retrieve complete history.maxResults: 1–200 qualified outputs (default 25);maxPages: 1–30 (default 8). Page size is 60 to remain well inside TED's 250 rows/page and 10,000 fields/page rules.
Use examples/input-open.json and examples/input-all.json as starting points.
Output (default dataset)
One row per qualifying notice/version with:
tedNoticeId, noticeIdentifier, noticeVersion, versionState, noticeType, noticeForm, status, statusBasis, buyerName, title, description, publishedAt, country, deadline, deadlines, estimatedValue, currency, estimateLevel, sourceNoticeUrl, sourceDocumentUrls, matchedTerms, matchedCpvCodes, noticeCpvCodes, evidence.text, evidence.sourceField, evidence.language, evidence.matchedTerm, matchSignals.
evidenceis from TED's published notice/lot procurement text, not a generated description or inference. The exact field and language are included.estimatedValueis shown only when the source exposes a procedure-level value, or one unambiguous distinct lot-level value. Different lot estimates are not summed. Missing fields remain null.deadlineis the next source-declared bid-deadline date (or last published date for closed items);deadlinescontains all distinct retrieved dates. Lot/time-zone detail is not merged into a falsely precise timestamp. Check the actual source before bidding.statusis a conservative classification from form type and date, not a legal eligibility determination. TED itself describes "ACTIVE" as including recent planning and results notices.sourceDocumentUrlsonly contains URLs supplied by TED; no fabricated document URLs.RUN-SUMMARYandERRORSkey-value records show scanned/qualified/duplicate counts, scan caps, retry attempts and TED retrieval failures.
Transparent Pay Per Event pricing
This Actor is published on Apify Store under the Pay Per Event model. Its configured price is $0.006 per evidence-qualified, nonduplicate dataset item (qualified-match), plus an automatic $0.0005 Actor-start event for a 256 MB run. At this default setting, 100 qualified matches cost $0.6005 before any other possible platform charges. Only verified results actually delivered to the dataset trigger the qualified-match event. Nonmatches, duplicates, invalid queries and error reports never trigger that result event. There are no per-page or per-request charging events in the Actor.
Apify Cloud billing verification: a run with two verified matches charged 2 qualified-match events + 1 startup; a run with zero verified matches charged 0 qualified-match events + 1 startup. User spending limits are honored by the official Apify SDK. Results do not guarantee tender eligibility, technical compatibility or winning probability.
Data source, API rules and safeguards
- Official endpoint:
POST https://api.ted.europa.eu/v3/notices/search(anonymous published notices; no API key). - Common pump/generator/compressor terms receive CPV query hints when explicit codes are omitted. Explicit CPVs require text AND CPV. This boosts precision but may miss unusual classifications.
- All queries use TED Expert Search with
FT~"...",classification-cpv,buyer-country, publication dates asYYYYMMDD, and newest publication-date sort. String input is validated to prevent expert-query injection. - Official v3 OpenAPI:
https://api.ted.europa.eu/api-v3.yaml. SettingcheckQuerySyntax:trueonly validates and does not execute a search. The Actor sets it false. It usesonlyLatestVersionsand PAGE_NUMBER pagination. - 60 notices/page, at most 30 pages/1,800 notice candidates/run; serial fetching and a minimum 1.1s pause between pages. 429/5xx and transient networking issues get bounded retries with Retry-After (up to 30 seconds); 400/401/403 are not bypassed.
- Official limits: <=250 notices/page, <=10,000 fields/page, <=15,000 notices per paged search; iteration mode exists but is not required for this focused Actor.
- No login, customer credentials, private TED endpoints, proxy rotation or CAPTCHA bypass. No hidden portal scraping.
- Only publicly published procurement-notice data is processed. Do not add contact scraping or personal profiling.
- Tender suitability, technical specification compatibility and winning probability are not guaranteed. Buyer deadlines/values can change; always validate with the original TED notice and procurement documents.
- TED and European Union are source/organisational references only; this independent tool is not officially endorsed.
Local development and verification
cd /opt/APIFY/API22npm cinpm testnpm run smokenpm run check
To test end-to-end using local Apify storage:
mkdir -p storage/key_value_stores/defaultcp examples/input-all.json storage/key_value_stores/default/INPUT.jsonnpm start
The publisher tested genuine TED records and verified the live pricing behavior before public release on 13 October 2026. Test artifacts are retained privately by the publisher; customers only receive qualified dataset records and run diagnostics.
References (official, checked 13 October 2026)
- TED Search API: https://docs.ted.europa.eu/api/latest/search.html
- TED Search paging and field limits: https://docs.ted.europa.eu/ODS/latest/reuse/search-api.html
- TED field dictionary: https://docs.ted.europa.eu/ODS/latest/reuse/field-list.html
- TED "active" and version-scope explanation: https://ted.europa.eu/en/help/search-browse
- Apify Pay Per Event: https://docs.apify.com/actors/publishing/monetize/pay-per-event
- Apify publishing: https://docs.apify.com/actors/publishing/monetize
This code is original for API22. No other API Actor folders are edited.