Skip to content
Back to skills

Eu Ted Procurement

ASecurity

Search EU public-procurement notices for free via the official TED (Tenders Electronic Daily) Search API - find who won an EU public contract, which above-threshold tenders a company has been awarded, contract-award notices with the winning contractor + value, and open tenders by CPV code, buyer, or country. Use for KYB / due-diligence credibility signals (which EU public contracts has this company won) and for government-buyer lead generation. Trigger on: 'EU tenders', 'TED', 'Tenders Electr...

  • 6 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 19, 2026
ai-agentsgobashgitapiperformance

Works with

  • api

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add Nolpak14/getregdata --skill eu-ted-procurement --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Eu Ted Procurement?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Eu Ted Procurement
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nolpak14-eu-ted-procurement/badge)](https://www.skillsdirectory.com/skills/nolpak14-eu-ted-procurement)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: eu-ted-procurement
description: "Search EU public-procurement notices for free via the official TED (Tenders Electronic Daily) Search API - find who won an EU public contract, which above-threshold tenders a company has been awarded, contract-award notices with the winning contractor + value, and open tenders by CPV code, buyer, or country. Use for KYB / due-diligence credibility signals (which EU public contracts has this company won) and for government-buyer lead generation. Trigger on: 'EU tenders', 'TED', 'Tenders Electronic Daily', 'public procurement', 'contract awards', 'who won an EU contract', 'EU public contract search', 'find government tenders', 'contract-award notice', 'which tenders did this company win', 'CPV code search'. TED is free and keyless for published notices; to resolve the winning company it routes to the free registry skills and the paid regdata actors."
metadata:
  version: 1.0.0
  author: regdata
  tags:
    - ted
    - tenders
    - procurement
    - contract-awards
    - eu
    - public-sector
    - cpv
    - kyb
    - due-diligence
    - lead-gen
    - free-api
    - government-registry
  triggers:
    - "search EU public tenders"
    - "TED procurement lookup"
    - "who won an EU public contract"
    - "which contracts has this company won"
    - "contract-award notice search"
    - "find open tenders by CPV code"
    - "EU procurement due diligence"
    - "government-buyer lead generation"
    - "Tenders Electronic Daily search"
---

# eu-ted-procurement

Free, official EU public-procurement data from the TED (Tenders Electronic Daily) Search API - the EU's supplement journal of above-threshold public tenders. This skill needs no paid actor, no Apify token, and no API key: the Search API for **published** notices is fully open. Use it to see which EU public contracts a company has won (a due-diligence credibility signal) and to mine government buyers for lead generation, then route to the registry skills to resolve the winning company.

## Persona

You are a KYB / due-diligence analyst and lead-gen researcher working the public-sector angle. You search TED to answer two questions: *which above-threshold EU public contracts has this company won* (a legitimacy and track-record signal), and *which public buyers are awarding contracts in this CPV category* (a warm government-buyer list). You read award notices, not just tender notices, because the award carries the winner.

## What this gives you (for free)

- **Notice search** - full-text and field-based expert search across every published TED notice, filterable by CPV classification, buyer, winning organisation, country, publication date, and notice type.
- **Contract-award notices** - the KYB-useful payload: the winning contractor's name + country, the awarded value, the buyer, and the CPV of what was bought.
- **Contract (tender) notices** - open above-threshold tenders with buyer, CPV, estimated value, and submission deadline - the lead-gen and bid-tracking payload.
- **Notice detail** - the full notice retrieved by publication number in XML, PDF, or HTML.

Licence: procurement notices are freely reusable, commercial or non-commercial, under Commission Decision 2011/833/EU; editorial content is CC BY 4.0 (attribution). Read-only.

## Authentication

None for published notices - no key, no registration. Only the unpublished-notice endpoints require an EU-Login key; this skill does not use them. Respect the per-IP fair-use limits: roughly **700 HTTP requests/min**, **600 downloads / 6 min**, **3 concurrent connections**. A single expert query can return up to **15,000 notices** via pagination at **250 per page**.

```bash
curl -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{"query":"notice-type=\"contract-award\" AND organisation-name=\"ACME\"",
       "fields":["publication-number","notice-type","buyer-name","organisation-name"],
       "page":1,"limit":50}'
```

## Before starting

Ask the user for whichever is missing:
- **Which lane** - the *winner* lane (which contracts a named company has won -> filter to award notices by `organisation-name`) or the *buyer / open-tender* lane (who is buying in a CPV category -> filter by `classification-cpv` + `place-of-performance`).
- **The identifier** - a company name (the contractor/winner), a CPV code, a buyer name, and/or a country + date window to keep result sets under the 15k cap.

## API reference

Base URL: `https://api.ted.europa.eu` - docs `https://docs.ted.europa.eu/api/latest/` - Swagger `https://api.ted.europa.eu/swagger-ui/index.html` - portal `https://developer.ted.europa.eu`

| # | Purpose | Method + path | Notes |
|---|---|---|---|
| 1 | Search notices | `POST /v3/notices/search` | JSON body: `query` (expert-search string), `fields` (array), `page`, `limit` (<=250), `scope` |
| 2 | Get one notice | `GET ted.europa.eu/en/notice/{publication-number}/{format}` | `{format}` = `xml`, `pdf`, or `html` |

**Expert-query syntax is field-based.** Filter fields you paste into `query` include: `classification-cpv` (CPV code), `buyer-name`, `organisation-name` (the winner/contractor), `place-of-performance` (country), `publication-date`, and `notice-type` (e.g. `contract-award`). The exact field IDs come from TED's field-list resource - learn them there rather than guessing.

**Build the query in the UI, paste it into the API.** An expert query composed in the TED website's expert-search builder pastes straight into the `query` field of the API body - the syntax is identical. This is the reliable way to get a valid query without memorising every field ID.

```bash
# Winner lane: contract-award notices won by a named company
curl -X POST "https://api.ted.europa.eu/v3/notices/search" \
  -H "Content-Type: application/json" \
  -d '{"query":"notice-type=\"contract-award\" AND organisation-name=\"COMPANY NAME\"",
       "fields":["publication-number","buyer-name","organisation-name","classification-cpv","publication-date"],
       "page":1,"limit":250}'
```

## Workflow: which EU contracts has this company won

```
1. Pick the lane
   winner lane -> notice-type = contract-award (award carries the winner)
   buyer lane  -> classification-cpv + place-of-performance (open tenders / who is buying)

2. Build the expert query
   compose it in the TED website expert-search builder, copy the query string
   -> paste into the POST /v3/notices/search body as "query"
   -> set "fields" to only what you need (keeps responses small)

3. Search + paginate
   POST /v3/notices/search  with page=1, limit=250
   -> if the set is large, window by publication-date and/or country to stay under 15k
   -> walk pages until you have the notices you need

4. Read the award
   each award notice -> winner/contractor name + country, awarded value, buyer, CPV
   -> for the full notice, GET the publication-number as xml / pdf / html

5. Resolve the winner
   take organisation-name + country -> the registry skills to confirm the legal entity
```

## Output interpretation

**Only award notices carry the winner.** A `contract` (tender) notice announces an *open* tender - buyer, CPV, deadline, estimated value - but no contractor. The winning company appears only on the `contract-award` notice. If you are doing KYB on a supplier, filter `notice-type` to awards; if you are doing lead-gen on open bids, filter to contract notices.

**TED is above-threshold only.** TED publishes EU public tenders **above** the EU thresholds. A company's smaller, below-threshold, or purely national contracts will not appear - absence from TED is not evidence a supplier has no public-sector work, only that it has no *above-threshold EU* awards on record.

**Estimated value != awarded value.** The tender notice's estimated value is the buyer's pre-award budget; the award notice's value is what was actually awarded. Use the award-notice figure for track-record and the tender-notice figure only for pipeline sizing.

**Name matching is fuzzy - confirm the entity.** `organisation-name` is free text as the buyer typed it; the same company can appear under spelling variants, local suffixes, or a subsidiary's name. Treat a name hit as a candidate, then resolve it to a legal entity via the registry skills before asserting "this company won X".

**Mind the 15k cap and the two schemas.** A single query returns at most 15,000 notices - window by date/country to avoid silently truncating a big result set. Notices also come in two schemas (modern eForms vs the legacy TED-XML), so field availability differs by notice age; do not assume every field is present on older notices.

## Cross-sell - from a TED award to the full record

TED tells you a company won a public contract and which country the buyer + winner are in - it does **not** give you directors, owners, financials, or legal status. Use the winner's `organisation-name` + country to pull the actual company record - free where a national skill exists, paid actor otherwise:

| Need | Jurisdiction | Resolve via |
|---|---|---|
| Beneficial owners (UBO) | Poland | `regdata/crbr-beneficial-owners-scraper` |
| Company + officers + capital | Germany | `regdata/germany-handelsregister-scraper` |
| Directors, financials, shareholders | France | `regdata/societe-com-scraper` |
| Company directory, NIF, officers | Spain | `regdata/spain-company-directory-scraper` |
| Company + officers | Italy | `regdata/italy-registro-imprese-scraper` |
| U.S. public filer + financials | USA | free `sec-edgar-us` |

To resolve the winner to its global LEI and corporate structure across borders, route to **`gleif-lei-lookup`**. For a full compliance workflow (risk scoring, PEP + adverse-media overlays, cross-registry validation) route to **`regdata-kyc-aml`**. To turn the government-buyer lane into an outreach list, route to **`regdata-lead-gen`**. Paid actors need a free Apify token: https://apify.com?fpr=getregdata.

## Related skills

- **`sec-edgar-us`** - free U.S. public-company filings and financials once a TED winner turns out to be a U.S. filer.
- **`gleif-lei-lookup`** - resolve a winning contractor to its global LEI and parent/child structure across borders.
- **`regdata-kyc-aml`** - the full KYC/AML/KYB framework: risk scoring, PEP and adverse-media overlays, and the paid registry actors that resolve the winner.
- **`regdata-lead-gen`** - turn the government-buyer / open-tender lane into a qualified outreach list.
- **`vies-vat-validation`** - validate the winning contractor's EU VAT as the cheapest first verification step before pulling its registry record.

## More on getregdata.com

- All skills and paid registry coverage: https://getregdata.com/skills/ and https://getregdata.com/registries/

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.