Home › Funding, grants and compliance › EU Public Tenders API
Search EU public procurement notices on TED by keyword, CPV code, country, buyer, date and value: deadline, estimated value, award winners, plus a new-notices-since-last-run monitor. Beta.
| Field | Name | Required | What it does |
|---|---|---|---|
keywords | Keywords | no | Full-text search over notice text. Any keyword matches (OR). Leave empty to filter only by the fields below. |
cpvCodes | CPV codes | no | Common Procurement Vocabulary codes. A short code is a prefix: 72 or 72000000 matches all IT services. Any code matches (OR). |
countries | Buyer countries | no | Country of the contracting authority, ISO 2-letter (DE, FR, PL) or 3-letter (DEU) codes. Empty = all EU/EEA. |
buyerName | Buyer name contains | no | Contracting authority name, e.g. Bundesamt or Ministry of Health. |
noticeKind | Notice kind | no | Contract notices carry deadline and estimated value. Award notices carry winners and awarded value. |
daysBack | Published in the last N days | no | Publication-date window (1 to 365). |
maxItems | Max items | no | Cap on notices delivered (and charged) this run. |
onlyNewSinceLastRun | Monitor mode: only new since last run | no | Skip notices delivered in a previous run (tracked in a named key-value store). A repeat run with no new notices delivers 0 rows and charges 0 events. |
onlyOpenForBids | Only tenders still open for bids | no | Contract notices only: keep notices whose submission deadline has not passed. |
minValue | Minimum value | no | Minimum estimated value (contract notices) or awarded value (award notices), in the notice currency. Notices without a published value are dropped when a value filter is set. |
maxValue | Maximum value | no | Maximum estimated or awarded value. |
currency | Value currency | no | Optional ISO currency code (EUR, PLN, SEK). When set, only notices valued in that currency pass the value filter. |
stateStoreName | Dedupe store name | no | Named key-value store that remembers delivered notices. Change it to keep separate monitors or reset dedupe. |
One row per result. These are the 24 fields declared in the actor's dataset schema (field list from the schema, not a sample run).
| Field | Type | Meaning |
|---|---|---|
noticeId | string | |
noticeKind | string | |
noticeType | string | |
title | string | |
publicationDate | string | |
buyerName | string | |
buyerCountry | string | |
buyerCity | string | |
contractNature | string | |
procedureType | string | |
deadline | string | |
estimatedValueCurrency | string | |
awardedValueCurrency | string | |
noticeUrl | string | |
pdfUrl | string | |
source | string | |
scrapedAt | string | |
estimatedValue | number | |
awardedValue | number | |
lotCount | integer | |
deadlineOpen | boolean | |
cpvCodes | array | |
winners | array | |
winnerCountries | array |
Public data only, no login. Fields a source does not publish come back empty rather than guessed. Coverage and freshness follow the underlying public source.
Pay on Apify, no subscription: $0.004 per procurement notice returned (pay per event). The live price is on the actor page.
Disclosure: we build and maintain this actor.