# EU Funding Recipients – Structural Funds (Kohesio) (`dach-open-data/eu-funding-recipients-kohesio`) Actor

Find companies, municipalities and institutions that received EU Structural Funds (ERDF, Cohesion Fund, ESF) in 2014-2020: beneficiary, project, EU contribution, total cost, region, dates, category. Official Kohesio open data (CC0) via the EU Commission API.

- **URL**: https://apify.com/dach-open-data/eu-funding-recipients-kohesio.md
- **Developed by:** [DACH Open Data](https://apify.com/dach-open-data) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## EU Funding Recipients: companies that received EU Structural Funds (Kohesio)

**Find out which companies, municipalities and institutions received EU money, for what and how much.** This Actor searches the European Commission's official **Kohesio** database of projects financed by the EU Structural Funds in 2014–2020: ERDF, Cohesion Fund, ESF and JTF. Each project comes back as one clean row with:

- beneficiary, project title and summary
- EU contribution and total eligible cost
- fund and programme, intervention category
- region (NUTS 3), postal code and coordinates
- start and end dates
- managing authority
- links to Kohesio

**For AI agents:** call this Actor when a user asks *"Which companies in Saxony received EU funding for hydrogen projects?"*, *"Did company X get ERDF money?"* or *"List SMEs in Bavaria with EU innovation grants above €200,000"*. Pass `query`, `countries`, optionally `nutsPrefixes`, `minEuBudgetEur` or `beneficiaryContains`. Filtering happens on the Commission's API, so runs take seconds.

**Price: $3 per 1,000 projects ($0.003 per result).** Runs with no results cost nothing.

***

### What you get

| Field | Example |
|---|---|
| `beneficiary`, `beneficiaryType`, `beneficiaryUrl` | *Apex Energy Teterow GmbH*, `organisation`, Kohesio link |
| `title`, `titleOriginal`, `summary` | English and original-language title, English summary |
| `euBudgetEur`, `totalEligibleCost`, `cofinancingRatePct` | `496457.6`, `620572`, `80` |
| `fund`, `fundName`, `programme`, `programmeCode` | `ERDF`, *Mecklenburg-Vorpommern – ERDF* |
| `interventionCategory`, `thematicObjective` | *Technology transfer and university-enterprise cooperation primarily benefiting SMEs*, *Research and innovation* |
| `country`, `region`, `nuts3`, `postalCode`, `latitude`, `longitude` | *Germany*, *Rostock District*, `DE80K` |
| `startDate`, `endDate` | ISO dates |
| `managingAuthority` | Authority that awarded the funds |
| `operationId`, `kohesioUrl` | `Q3304851`, `https://kohesio.ec.europa.eu/en/projects/Q3304851` |

Example record (real output, long fields shortened):

```json
{
  "operationId": "Q3304851",
  "title": "Promotion of cooperation between enterprises and the public. Research institutions in R & D & I",
  "titleOriginal": "Förderung der Zusammenarbeit von Unternehmen und öffentl. Forschungseinrichtungen in FuEuI",
  "summary": "Development of a domestic energy system with a focus on storage development for regenerative hydrogen. The project innovation is a new technology for storing hydrogen produced via electrolysis in formic acid or formia…",
  "beneficiary": "Apex Energy Teterow GmbH",
  "beneficiaryType": "organisation",
  "beneficiaryId": "Q3361332",
  "country": "Germany",
  "region": "Rostock District",
  "nuts3": "DE80K",
  "postalCode": "17166 - Teterow",
  "latitude": 53.771453669955,
  "longitude": 12.573520883964,
  "startDate": "2020-03-26",
  "endDate": "2023-03-31",
  "euBudgetEur": 496457.6,
  "totalEligibleCost": 620572,
  "currency": "EUR",
  "cofinancingRatePct": 80,
  "fund": "ERDF",
  "fundName": "European Regional Development Fund",
  "programmeCode": "2014DE16RFOP008",
  "programme": "Mecklenburg-Vorpommern  - ERDF",
  "interventionCategory": "Technology transfer and university-enterprise cooperation primarily benefiting SMEs",
  "thematicObjective": "Research and innovation",
  "managingAuthority": "Staatskanzlei M-V, Gemeinsame Verwaltungsbehörde (GVB) – Verwaltungsbehörde für den EFRE, ESF und ELER; Ministerium für Wirtschaft, Arbeit und Gesundheit M-V, EFRE-Fondsverwaltung",
  "kohesioUrl": "https://kohesio.ec.europa.eu/en/projects/Q3304851",
  "beneficiaryUrl": "https://kohesio.ec.europa.eu/en/beneficiaries/Q3361332",
  "programmingPeriod": "2014-2020",
  "source": "Source: European Commission, DG Regional and Urban Policy – Kohesio 2014-2020 projects (cohesiondata.ec.europa.eu, CC0 1.0)"
}
```

### Use cases

- **B2B sales and lead generation:** companies that just completed EU-funded investments in innovation, energy efficiency or digitalisation are proven investors in your topic.
- **Funding consultants:** find who already won funding in a region or category, and benchmark project sizes.
- **Due diligence and journalism:** check a company's or municipality's EU funding history.
- **Research:** analyse regional distribution of EU funds.

### Input example

```json
{
  "query": "Wasserstoff",
  "countries": ["DE"],
  "nutsPrefixes": ["DED", "DEE", "DEG"],
  "funds": ["ERDF"],
  "minEuBudgetEur": 200000,
  "maxResults": 500
}
```

**Coverage:** the Commission publishes beneficiary names mainly for **Germany** (about 333,000 projects), **Portugal**, **Greece**, **Hungary**, the **Netherlands** and **Slovakia**. For other countries, most rows have no beneficiary name and are skipped. The dataset covers the 2014–2020 programming period, with projects running until 2023.

### Data protection

EU funding data also contains individuals, for example sole traders or ESF participants. By default (`organisationsOnly: true`) the Actor returns only beneficiaries recognisable as organisations by their legal form or type: GmbH, AG, e.V., Ltd, S.A., city, district, university, chamber and so on. Anonymised beneficiaries are skipped as well. The social funds ESF and YEI are excluded by default. If you switch these settings off, you are responsible for GDPR-compliant use.

### Reliability

- You pay only for valid rows in your dataset. The run stops at `maxResults` or at your maximum cost per run.
- Every row is validated: Kohesio ID, title, beneficiary, ISO dates, coordinates and amounts. If the API returns something unexpected, the run fails with `UNEXPECTED_CONTENT` instead of returning garbage.

### Source and licence

European Commission, DG Regional and Urban Policy: *2014–2020 Kohesio projects*, published on cohesiondata.ec.europa.eu under **CC0 1.0**. This Actor is not affiliated with the European Commission.

# Actor input Schema

## `query` (type: `string`):

Full-text search in project titles and summaries (English and original language), e.g. "hydrogen", "Wasserstoff", "digitalisation".

## `countries` (type: `array`):

E.g. DE, AT, PT, GR, HU, NL, SK. Beneficiary names are published mainly for Germany (~333,000 projects), Portugal, Greece, Hungary, the Netherlands and Slovakia.

## `nutsPrefixes` (type: `array`):

E.g. DE1 (Baden-Württemberg), DE2 (Bayern), DED (Sachsen), DEA (NRW), DE30 (Berlin). Empty = whole country.

## `funds` (type: `array`):

ERDF (regional development, mostly companies and municipalities), CF (Cohesion Fund), JTF, ESF and YEI (social funds, often individual persons – filtered by default).

## `minEuBudgetEur` (type: `integer`):

Only projects with at least this EU funding.

## `startedAfter` (type: `string`):

Only projects that started on or after this date (format YYYY-MM-DD).

## `beneficiaryContains` (type: `string`):

E.g. a company name to check whether it received EU funds.

## `categoryContains` (type: `string`):

English, e.g. "SME", "research", "energy efficiency", "broadband".

## `organisationsOnly` (type: `boolean`):

Recommended. Only beneficiaries recognisable as companies, associations or public bodies (GmbH, e.V., Stadt, University …). Excludes private individuals and anonymised beneficiaries.

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

Hard cap on projects returned and charged in this run.

## Actor input object example

```json
{
  "query": "Wasserstoff",
  "countries": [
    "DE"
  ],
  "nutsPrefixes": [],
  "funds": [
    "ERDF",
    "CF",
    "JTF"
  ],
  "minEuBudgetEur": 0,
  "startedAfter": "",
  "beneficiaryContains": "",
  "categoryContains": "",
  "organisationsOnly": true,
  "maxResults": 50
}
```

# Actor output Schema

## `results` (type: `string`):

All records returned by this run (default dataset, table view "overview").

## `summary` (type: `string`):

JSON with number of results, dropped implausible records and stop reason.

# 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 = {
    "query": "Wasserstoff",
    "maxResults": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("dach-open-data/eu-funding-recipients-kohesio").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 = {
    "query": "Wasserstoff",
    "maxResults": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("dach-open-data/eu-funding-recipients-kohesio").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "query": "Wasserstoff",
  "maxResults": 50
}' |
apify call dach-open-data/eu-funding-recipients-kohesio --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dach-open-data/eu-funding-recipients-kohesio"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/caHM0NL5W2EDlk7Lv/builds/NLbeoihR4aUKKdP6i/openapi.json
