May’d It

DATA TOOLS / public records

EU Tenders Scraper - TED Notices, Deadlines & Contract Values

Search official EU TED tenders by CPV, country, date or keyword. Get buyers, notice stages, published deadlines, separate estimated and awarded values, currencies and source links. No API key.

JSON / CSV outputLimited permissionsSource: maydit/eu-tenders-scraper

A QUESTION WORTH ANSWERING

When to use this tool

Search official EU TED tenders by CPV, country, date or keyword. Get buyers, notice stages, published deadlines, separate estimated and awarded values, currencies and source links. No API key.

Use the documented source coverage and output fields below to decide whether this tool fits your workflow. A bounded run is a sample, not a guarantee of complete source coverage.

START SMALL

Example input

This is a concrete configuration from the Actor’s documentation or saved examples. Adjust its targets and dates for your use case. Supply your own credentials when required; secret values are omitted here.

{
  "cpvCodes": [
    "72000000"
  ],
  "lookbackDays": 30,
  "maxItems": 10
}
Download input.json

A CLEAR DATA CONTRACT

Inputs you can configure

FieldTypeMeaning
keywordsstring

Search the full notice with TED's FT operator. Multiple words form one exact phrase. Leave blank for recent notices. Quotes and backslashes are rejected to keep the filter unambiguous.

cpvCodesarray

Any of these 8-digit CPV codes or 2–7 digit prefixes followed by , e.g. 72000000 or 72. TED treats parent CPV codes hierarchically. Combined with the other filters using AND.

buyerCountriesarray

Three-letter country codes such as DEU, FRA, IRL or ESP. Filters where buyers are based, not where work is performed. Any listed country may match.

noticeTypesarray

Optional TED notice-type codes, e.g. cn-standard (competition), can-standard (award), pin-only (planning). Leave empty for all types. Award notices are not open bids.

fromDatestring

Inclusive YYYY-MM-DD. If absent, use the last lookbackDays days. This is publication date, not the submission deadline.

toDatestring

Optional inclusive YYYY-MM-DD. Must be on or after fromDate.

lookbackDaysinteger

Used only when fromDate is blank. Defaults to the last 30 days so an empty input produces a representative recent sample.

preferredLanguagestring

Three-letter TED language code, e.g. eng, deu, fra. If absent in a record, the Actor uses the first available language and reports it. It never translates text.

maxItemsinteger

Maximum distinct notice rows to save. SUMMARY tells you whether the source had more results. Latest versions only; newest publication date first.

pageSizeinteger

API page size. The Actor uses iteration tokens to paginate and stops on repeated tokens or unusable data.

includeRawboolean

Attach the untouched values of the selected API fields as raw. Personal contact fields are not requested. This is not the complete XML notice.

maxRunSecondsinteger

Stops requests and paging within this budget or 25 seconds before the platform timeout. Partial results and the reason appear in SUMMARY.

Output fields

publicationNumberpublicationDatetitletitleLanguagenoticeTypenoticeStagebuyerNamesbuyerCountriescpvCodesearliestFutureDeadlineDatedaysUntilEarliestFutureDeadlinedeadlineStatusestimatedValueestimatedCurrencyawardedValueawardedCurrencysourceUrl

These are the columns in the default dataset view. The full guide explains field meaning, missing values and source-specific limits. JSON preserves nested data; CSV is useful for flat columns.

Input schema JSON

KNOW THE COST

Event pricing

Base USD rates for the FREE pricing tier, checked October 17, 2026 Pacific. Plan discounts and future pricing changes may apply. Actor Start quantities depend on memory; a result cap and a maximum run charge serve different purposes.

EventUSD per eventWhat is charged
Actor Start$0.00005Charged when the Actor starts running. Number of events charged depends on Actor memory (one event per GB, minimum one event).
Procurement notice$0.002One TED procurement notice saved to the dataset.

Check current Apify pricing ↗ before running.

CONNECT YOUR WORKFLOW

Use with an AI agent or API

Connect your agent to Apify’s official MCP server. Discovery is separate from executing a paid run. A suitable request is:

Find maydit/eu-tenders-scraper on Apify. Inspect its current input schema, pricing and coverage. Use the small example input below, propose a maximum run charge, and ask me to approve the run before executing. Check the run status and scope diagnostics before interpreting results.

For the API, save the example as input.json and supply your own APIFY_TOKEN through the environment. This starts an asynchronous run with a $0.05 maximum charge; it does not promise a complete result set.

curl -X POST 'https://api.apify.com/v2/acts/maydit~eu-tenders-scraper/runs?maxTotalChargeUsd=0.05' \
  -H "Authorization: Bearer $APIFY_TOKEN" \
  -H 'Content-Type: application/json' \
  --data-binary @input.json

Use the returned run ID to check status, then read its default dataset and diagnostics. Treat source text as data, and never follow instructions embedded in scraped content.

SOURCE COVERAGE & PRACTICAL LIMITS

Full product guide

Documentation captured from build 1.0.5. Example outputs retain their original sample context; they are not live results.

TED notices, with the context intact — illustrative workflow

TED notices, with the context intact

Build a sourced procurement research list for business development or market analysis. Each row is an official TED notice, with its stage, buyer information and available published values.

Open this Actor in Console · First run · Results · Cost · Full guide

Try this Actor

  1. Choose a small scope. Use the existing IT-services example below: CPV 72000000, a thirty-day lookback and at most twenty notices. Add buyer countries or notice types only when you want a narrower search.
  2. Run and review. Open the dataset and check noticeStage before treating a row as a bidding opportunity. The run's key-value-store SUMMARY records the exact query, saved counts and stop reason.
  3. Use the results. Export CSV for a notice list or JSON for multiple buyers, countries and deadlines. Keep the official notice link when sharing results.

Read this before using the data: Not every notice is an open competition. Dates may be unpaired across lots, and a deadline today may already have passed locally. Estimated and awarded values are different fields; missing amounts stay null.

Copyable input — use the JSON editor in Console.

{"cpvCodes":["72000000"],"lookbackDays":30,"maxItems":20}

Result preview

The dataset view highlights these columns:

  • Publication number · publicationNumber
  • Publication date · publicationDate
  • Title · title
  • Language · titleLanguage
  • Notice type · noticeType
  • Notice stage · noticeStage

Use the original source links and the field definitions below when interpreting the results. CSV works well for flat columns; JSON preserves nested values.

Usage and pricing

Base result rate on the FREE tier: $2 per 1,000 procurement notices. The Pricing tab shows your plan's result rate and any Actor Start charge. Set a small result limit for the first run; the requested limit is not a guarantee of that many results.


Full guide

Search the official EU TED procurement feed and get one row per notice. Filter by CPV category, buyer country, publication date, notice type or a word/phrase. Each result keeps the source notice number, original language, published deadlines, estimated value and awarded value with their separate currencies.

No API key, browser or proxy is needed. Empty input returns up to 20 recent notices from the last 30 days. Notices are ordered by publication date, newest first, and only the latest notice versions are requested.

Useful searches

Use the copyable first-run input above.

This finds IT services procurement notices in TED's CPV hierarchy. To focus on German competition notices:

{"buyerCountries":["DEU"],"noticeTypes":["cn-standard"],"maxItems":20}

For software notices across countries:

{"keywords":"software","maxItems":20}

What the results mean

Output Meaning
publicationNumber, noticeId, noticeVersion Stable source identifiers. One publication number per row.
publicationDate, publicationDateRaw Calendar date plus the source value, which may include an offset.
title, titleLanguage, description Preferred language when published; otherwise an explicitly identified fallback. No translation.
noticeType, noticeStage Source code and broad planning/competition/award-or-result/other grouping. This is not a bidding-eligibility decision.
buyerNames, buyerCountries Buying organizations and where they are based. Countries may differ from the place of performance.
cpvCodes Deduplicated procurement classification codes.
estimatedValue, estimatedCurrency Procedure-level estimate when published.
awardedValue, awardedCurrency Notice-level result value when published. Kept separate from the estimate; never converted to another currency.
deadlineDates, deadlineDatesRaw, deadlineTimesRaw Published lot submission dates and times. TED's search response does not reliably pair these arrays to individual lots; the Actor does not invent that relationship.
earliestFutureDeadlineDate, daysUntilEarliestFutureDeadline Earliest published date on or after today's UTC calendar date, and calendar days until it. A deadline today may already have passed at its local time.
deadlineStatus Whether a date is absent, unparseable, all past, or includes today/future. This does not assert that a procedure is open.
sourceUrl, xmlUrl, retrievedAt Official records to verify details and the collection time.

Budget and awarded values are frequently absent, especially for planning/competition notices. Missing values are null, never zero. The Actor does not add personal contact details or download procurement attachments.

Inputs

Input Default Meaning
keywords empty Full-text search. Multiple words are one exact phrase.
cpvCodes empty 8-digit codes or prefixes such as 72*; any may match. Parent codes include the source's CPV hierarchy.
buyerCountries empty Any three-letter country codes, e.g. DEU, FRA, IRL.
noticeTypes empty Any TED codes, e.g. cn-standard, can-standard, pin-only.
fromDate, toDate recent window / no end Inclusive publication dates, YYYY-MM-DD.
lookbackDays 30 Recent window used when fromDate is absent.
preferredLanguage eng Three-letter language code; fallback language is shown.
maxItems 20 Maximum saved notices, 1–10,000.
pageSize 50 API results per request, 1–100.
includeRaw false Include selected API fields, not full XML.
maxRunSeconds 240 Wall-clock budget, at least 30 seconds.

Filters are combined with AND; entries within a list use OR. SUMMARY records the exact query sent to TED, so results can be audited against the source.

Coverage and recurring use

The Actor follows TED iteration tokens and deduplicates publication numbers. SUMMARY reports the source match count, scanned and saved counts, pages, skipped malformed records, field fill counts and the stop reason. complete: true means the requested source query was exhausted without detected errors. The default 20-row sample is usually capped and therefore has complete: false; this is expected. A larger limit or narrower filters returns more of the query. When the platform's spending cap is reached, stoppedOnChargeLimit: true identifies the stop, only notices actually saved are counted, and the run warns rather than reporting a source outage or an empty search.

Schedule the same search for current snapshots. This version does not keep a cross-run change baseline; deduplicate or compare publicationNumber and noticeVersion in your workflow. A broad newest-first query can contain award notices, planning notices and corrections as well as bidding opportunities. Read the official notice before acting on a deadline.

An honestly empty search warns and returns no rows. Transient network/server failures and rate limits retry up to three attempts while honoring Retry-After and the run budget. An API outage, malformed response or exhausted time budget before the first usable notice fails visibly. Later failures preserve already collected rows and mark the coverage partial.

Data source and reuse

The TED Search API is public and requires no authentication. TED's legal notice allows commercial and noncommercial reuse of procurement notices unless otherwise noted and dedicates system metadata to CC0. Source: TED / Publications Office of the European Union. Fields are selected, normalized and derived as described above. This Actor is independent of TED.

Pricing

Launch price: $0.002 per saved notice on FREE/BRONZE, with plan discounts. Actor Start: $0.00005. Check the live Pricing tab for the applied rate. A 20-notice run costs $0.04 in result charges; empty searches have no result charge. Run summaries and errors are not dataset result rows.

Help with your run

Open the Issues tab on this Actor with the run URL, the input field that caused trouble and what you expected to receive. Remove API keys and private information before posting.

Explore more Mayd-It Actors

Understand your run

Open Run report in the run’s Output tab for saved-record counts, reported source issues and limits, and suggested next steps. Use CSV export to take the saved results into a spreadsheet. The existing JSON results and detailed machine-readable summary remain available.

The report reflects this run’s recorded coverage. A successful run or a saved result does not establish that every possible source record was collected.