EU Industrial Equipment Tender Matcher avatar

EU Industrial Equipment Tender Matcher

Pricing

from $6.00 / 1,000 verified industrial tender matches

Go to Apify Store
EU Industrial Equipment Tender Matcher

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

AFK Digital

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

12 days ago

Last modified

Share

EU Industrial Equipment Tender Matcher — API22

EU Industrial Equipment Tender Matcher logo

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 as 42120000 (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 (default eng). 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, works or all. 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 are unknown and 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.

  • evidence is from TED's published notice/lot procurement text, not a generated description or inference. The exact field and language are included.
  • estimatedValue is 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.
  • deadline is the next source-declared bid-deadline date (or last published date for closed items); deadlines contains all distinct retrieved dates. Lot/time-zone detail is not merged into a falsely precise timestamp. Check the actual source before bidding.
  • status is a conservative classification from form type and date, not a legal eligibility determination. TED itself describes "ACTIVE" as including recent planning and results notices.
  • sourceDocumentUrls only contains URLs supplied by TED; no fabricated document URLs.
  • RUN-SUMMARY and ERRORS key-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 as YYYYMMDD, 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. Setting checkQuerySyntax:true only validates and does not execute a search. The Actor sets it false. It uses onlyLatestVersions and 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/API22
npm ci
npm test
npm run smoke
npm run check

To test end-to-end using local Apify storage:

mkdir -p storage/key_value_stores/default
cp examples/input-all.json storage/key_value_stores/default/INPUT.json
npm 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)

This code is original for API22. No other API Actor folders are edited.