# EU TED Tender & Award Intelligence (`straightforward_hydra/eu-ted-tender-intelligence`) Actor

Find open EU government tenders to bid on, or track who wins EU public contracts. Official TED data. No key.

- **URL**: https://apify.com/straightforward\_hydra/eu-ted-tender-intelligence.md
- **Developed by:** [Dev D](https://apify.com/straightforward_hydra) (community)
- **Categories:** Developer tools, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 notices

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## EU TED Tender & Award Intelligence 🇪🇺

**Find open EU government tenders to bid on, or track who wins EU public contracts — straight from the official TED (Tenders Electronic Daily) API. No API key, no proxy.**

TED is the EU's official journal of public procurement — every significant tender and award across all 27 member states (plus EEA and beyond). This actor gives you two high-value angles:

- 🎯 **Opportunities** — open EU tenders you can bid on: title, buyer, country, value, **bid deadline**, CPV category, contract nature, direct link. Lead generation for businesses selling to the European public sector.
- 🏆 **Awards** — who won which contracts, for how much: buyer, **winner**, value, country. Track a competitor's EU wins, size a market, or map EU public spending.

Perfect for **bid/tender teams, EU market entry, competitor intelligence, market research**, and public-spending analysis.

> Uses the official **TED v3 API** — public procurement data, no key, very low maintenance.

---

### Modes

- **Opportunities** — open tenders (form-type: competition).
- **Awards** — awarded contracts with winner + value (form-type: result).
- **Planning** — early pipeline notices.

### Features

- ✅ **No API key, no proxy** — official EU TED API.
- ✅ **All 27 EU states** in one feed, with buyer country.
- ✅ **Bid deadlines** on opportunities.
- ✅ **Competitor tracking** — filter awards by winner name.
- ✅ **Smart filters** — keyword, CPV category, country, value range, date range.

---

### Input

| Field | Description |
|---|---|
| **Mode** | opportunities / awards / planning. |
| **Keyword** | Full-text search (e.g. `software`, `medical`, `construction`). |
| **CPV codes** | Category codes, e.g. `["48000000"]` (software), `["45000000"]` (construction), `["33000000"]` (medical). |
| **Buyer country** | ISO 3-letter, e.g. `DEU`, `FRA`, `POL`, `ESP`, `ITA`. |
| **Published from / to** | Date range (YYYY-MM-DD). |
| **Winner/supplier contains** | Track a competitor's wins (awards mode). |
| **Min / Max value (EUR)** | Contract value range. |
| **Max results** | Cap on notices. |

#### Example — large medical-supply tenders

```json
{
  "mode": "opportunities",
  "keyword": "medical",
  "cpvCodes": ["33000000"],
  "minValue": 1000000,
  "publishedFrom": "2026-06-01"
}
````

#### Example — German construction awards

```json
{
  "mode": "awards",
  "cpvCodes": ["45000000"],
  "buyerCountry": "DEU",
  "publishedFrom": "2026-01-01"
}
```

### Output

```json
{
  "publication_number": "370729-2026",
  "form_type": "competition",
  "notice_type": "cn-standard",
  "title": "Romania – Medical consumables …",
  "buyer": "Spitalul Clinic de Urgenta …",
  "buyer_country": "ROU",
  "contract_nature": "supplies",
  "cpv_codes": ["33140000"],
  "value_amount": 117456000,
  "value_currency": "EUR",
  "publication_date": "2026-06-15+02:00",
  "deadline": "2026-07-07+03:00",
  "winners": [],
  "url": "https://ted.europa.eu/en/notice/370729-2026"
}
```

Awards populate `winners` and the awarded `value_amount`.

### Run it on a schedule

Run daily with `publishedFrom` = yesterday to get a fresh feed of new EU tenders (or new awards for a competitor) — pipe to Slack, email, a CRM or a webhook.

### Notes & limitations

- Official **TED v3** data (EU-wide, above-threshold public procurement).
- Titles/buyer names are multilingual — the actor prefers English, else the notice's language.
- CPV codes and deadlines can be multi-valued per notice; the primary value is surfaced.
- Data source: TED / Publications Office of the EU. Informational, not legal advice.

***

#### Keywords

EU tenders, TED, Tenders Electronic Daily, European procurement, public procurement, government contracts, bid opportunities, tender alerts, contract awards, CPV, competitor intelligence, EU market, supplier tracking, public sector, RFP, RFQ, sales intelligence, lead generation, procurement data, EU spending.

# Actor input Schema

## `mode` (type: `string`):

opportunities = open tenders to bid on (lead gen); awards = who won contracts (competitor/market intel).

## `keyword` (type: `string`):

Full-text search across the notice, e.g. "software", "construction", "medical".

## `cpvCodes` (type: `array`):

Filter by CPV classification codes, e.g. \["48000000"] (software), \["45000000"] (construction), \["85000000"] (health).

## `buyerCountry` (type: `string`):

Filter by buyer country, 3-letter code, e.g. "DEU" (Germany), "FRA" (France), "POL" (Poland), "ESP" (Spain).

## `publishedFrom` (type: `string`):

Only notices published on/after this date (YYYY-MM-DD).

## `publishedTo` (type: `string`):

Only notices published on/before this date (YYYY-MM-DD).

## `supplierContains` (type: `string`):

Track a supplier/competitor's wins, e.g. "Siemens". Only meaningful in awards mode.

## `minValue` (type: `integer`):

Minimum contract value.

## `maxValue` (type: `integer`):

Maximum contract value.

## `maxResults` (type: `integer`):

Maximum number of notices to return.

## Actor input object example

```json
{
  "mode": "opportunities",
  "maxResults": 1000
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {};

// Run the Actor and wait for it to finish
const run = await client.actor("straightforward_hydra/eu-ted-tender-intelligence").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {}

# Run the Actor and wait for it to finish
run = client.actor("straightforward_hydra/eu-ted-tender-intelligence").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{}' |
apify call straightforward_hydra/eu-ted-tender-intelligence --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=straightforward_hydra/eu-ted-tender-intelligence",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "EU TED Tender & Award Intelligence",
        "description": "Find open EU government tenders to bid on, or track who wins EU public contracts. Official TED data. No key.",
        "version": "0.1",
        "x-build-id": "FuuosRQJze8dJ13jQ"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/straightforward_hydra~eu-ted-tender-intelligence/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-straightforward_hydra-eu-ted-tender-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/straightforward_hydra~eu-ted-tender-intelligence/runs": {
            "post": {
                "operationId": "runs-sync-straightforward_hydra-eu-ted-tender-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/straightforward_hydra~eu-ted-tender-intelligence/run-sync": {
            "post": {
                "operationId": "run-sync-straightforward_hydra-eu-ted-tender-intelligence",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "opportunities",
                            "awards",
                            "planning"
                        ],
                        "type": "string",
                        "description": "opportunities = open tenders to bid on (lead gen); awards = who won contracts (competitor/market intel).",
                        "default": "opportunities"
                    },
                    "keyword": {
                        "title": "Keyword (full-text)",
                        "type": "string",
                        "description": "Full-text search across the notice, e.g. \"software\", \"construction\", \"medical\"."
                    },
                    "cpvCodes": {
                        "title": "CPV codes",
                        "type": "array",
                        "description": "Filter by CPV classification codes, e.g. [\"48000000\"] (software), [\"45000000\"] (construction), [\"85000000\"] (health).",
                        "items": {
                            "type": "string"
                        }
                    },
                    "buyerCountry": {
                        "title": "Buyer country (ISO 3-letter)",
                        "type": "string",
                        "description": "Filter by buyer country, 3-letter code, e.g. \"DEU\" (Germany), \"FRA\" (France), \"POL\" (Poland), \"ESP\" (Spain)."
                    },
                    "publishedFrom": {
                        "title": "Published from",
                        "type": "string",
                        "description": "Only notices published on/after this date (YYYY-MM-DD)."
                    },
                    "publishedTo": {
                        "title": "Published to",
                        "type": "string",
                        "description": "Only notices published on/before this date (YYYY-MM-DD)."
                    },
                    "supplierContains": {
                        "title": "Winner/supplier contains (awards mode)",
                        "type": "string",
                        "description": "Track a supplier/competitor's wins, e.g. \"Siemens\". Only meaningful in awards mode."
                    },
                    "minValue": {
                        "title": "Min value (EUR)",
                        "type": "integer",
                        "description": "Minimum contract value."
                    },
                    "maxValue": {
                        "title": "Max value (EUR)",
                        "type": "integer",
                        "description": "Maximum contract value."
                    },
                    "maxResults": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 200000,
                        "type": "integer",
                        "description": "Maximum number of notices to return.",
                        "default": 1000
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
