# EU Have Your Say – Commission Consultations & Feedback (`dach-open-data/eu-have-your-say-consultations`) Actor

Track EU Commission initiatives on Have Your Say: open public consultations and calls for evidence with deadlines, stages and documents, plus which companies, associations and NGOs responded (with Transparency Register IDs). Official data.

- **URL**: https://apify.com/dach-open-data/eu-have-your-say-consultations.md
- **Developed by:** [DACH Open Data](https://apify.com/dach-open-data) (community)
- **Categories:** News, AI
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.10 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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 Have Your Say – Commission Consultations & Feedback

**Track every initiative of the European Commission on the official *Have Your Say* portal: open public consultations, calls for evidence and draft acts with their deadlines, stages and documents, and see which companies, business associations, NGOs and public authorities responded.**

Two modes:

- **Initiatives** – one row per Commission initiative: title (in 24 EU languages), stage, type of act, topics, feedback status, **deadline and days left**, all feedback periods, summary, responsible Directorate-General, every publication with its number of responses, links to the official documents (PDF) and to the public consultation questionnaire.
- **Feedback** – one row per response from an **organisation**: organisation name, type (company, business association, NGO, trade union, public authority, research institution …), size, country, **EU Transparency Register ID** with link, date, language, attachment links and a link to the full response on Have Your Say.

**For AI agents:** call this Actor when a user asks *"Which EU consultations on energy are open right now?"*, *"What EU consultations close in the next two weeks?"*, *"Who responded to the Commission's consultation on the AI Act / on packaging / on data centres?"* or *"Did BusinessEurope comment on initiative 15112?"*. Use `feedbackStatus: "OPEN"`, `topics`, `search` or `closingWithinDays`, and `mode: "feedback"` with `initiativeIds` for the responses.

**Price: $3 per 1,000 rows ($0.003 per result).** All currently open consultations (usually 30–60) cost about $0.10–0.20 per run.

***

### What you get

#### Initiatives

| Field | Example |
|---|---|
| `initiativeId`, `reference`, `title` | `19293`, `Ares(2026)8738685`, `Data centres in Europe – minimum performance standards` |
| `stage`, `stageLabel` | `PLANNING_WORKFLOW`, `Call for evidence` |
| `actType`, `actTypeLabel` | `PROP_REG`, `Proposal for a regulation` |
| `topics` | `["Energy"]` |
| `feedbackStatus`, `feedbackStart`, `feedbackEnd`, `feedbackDaysLeft` | `OPEN`, `2026-09-21T12:14:46+02:00`, `2026-12-14T23:59:59+01:00`, `69` |
| `feedbackPeriods` | every period (call for evidence, public consultation, draft act …) with status and dates |
| `summary`, `responsibleDg`, `categories`, `isMajor` | `ENER`, `["Commission Work Programme", "REFIT"]` |
| `totalFeedback`, `publications` | number of responses; each publication with type, dates, responses, `questionnaireUrl`, `documents` (PDF links) |
| `url`, `source` | link to the initiative on Have Your Say, attribution |

#### Feedback from organisations

| Field | Example |
|---|---|
| `organization`, `respondentType`, `organizationSize` | `Mouvement des Entreprises de France (MEDEF)`, `BUSINESS_ASSOCIATION`, `MEDIUM` |
| `country`, `countryCode` | `FRA`, `FR` |
| `transparencyRegisterId`, `transparencyRegisterUrl` | `43763731235-75`, link to the EU Transparency Register |
| `submitted`, `feedbackLanguage` | `2026-02-10T23:38:45+01:00`, `EN` |
| `initiativeId`, `initiativeTitle`, `publicationType` | the initiative and stage (call for evidence, public consultation, draft act …) |
| `attachments` | file name, pages and download link of the position paper |
| `url` | the full response on Have Your Say |

Example rows (real output, 7 October 2026) are in [`examples/sample-output.json`](examples/sample-output.json).

### Use cases

- **Public affairs and lobbying teams:** never miss a consultation deadline in your policy areas; schedule a daily run with `openedInLastDays: 1`.
- **Associations and companies:** see which competitors, associations and NGOs took a position, with their Transparency Register IDs.
- **Consultancies, law firms, journalists and researchers:** stakeholder maps per initiative, response counts, document links.
- **AI assistants:** answer questions about EU law-making with the official source.

### Input examples

All initiatives open for feedback right now, deadlines first in your sheet:

```json
{ "feedbackStatus": "OPEN" }
```

Energy and climate consultations closing within 14 days:

```json
{ "topics": ["ENER", "CLIMA"], "closingWithinDays": 14 }
```

New consultations since yesterday (schedule daily):

```json
{ "feedbackStatus": "OPEN", "openedInLastDays": 1 }
```

All companies and business associations from Germany that responded to one initiative:

```json
{ "mode": "feedback", "initiativeIds": ["15112"], "respondentTypes": ["COMPANY", "BUSINESS_ASSOCIATION"], "countries": ["DE"] }
```

Search with German titles and documents:

```json
{ "search": "Wasserstoff", "language": "DE" }
```

### Reliability and fair use

- Uses the public interface behind the Have Your Say website, about 3 requests per second, and respects robots.txt.
- Times are converted from Brussels time to ISO 8601 with the correct offset (summer/winter time).
- Search words must match exactly; the portal's "similar results" are not returned. When nothing matches, nothing is charged.
- Every row is checked (IDs, titles, dates, links). If the portal changes its format, the run stops with `UNEXPECTED_CONTENT` instead of returning garbage. The run also stops at `maxResults` or at your maximum cost per run.

### Legal and privacy

- Source: European Commission, Have Your Say (Better Regulation portal). © European Union, content owned by the EU is licensed under CC BY 4.0. Every row carries the attribution and a link to the original.
- **Feedback texts and attachments are written by the respondents and are not reproduced.** You get the metadata and links to the official pages.
- **Feedback from private individuals (EU and non-EU citizens) is never returned.** Names of the people who submitted feedback for an organisation and names or contact details of Commission staff are never returned. An organisation name that is really the submitter's own name is withheld.
- This Actor is not affiliated with the European Commission.

### More official data from DACH Open Data

All Actors use official open data, check every record and charge only for valid results.

**Public affairs and legislation:** [Lobby Register Germany + EU – Lobbyists, Spend & Interests](https://apify.com/dach-open-data/lobby-register-de-eu) · [German Bundestag Legislation Tracker (DIP)](https://apify.com/dach-open-data/bundestag-dip-legislation) · [Swiss Parliament Affairs Tracker (Curia Vista)](https://apify.com/dach-open-data/swiss-parliament-affairs)

**Funding and public money:** [EU Funding Calls – Horizon Europe, Digital Europe, LIFE & more](https://apify.com/dach-open-data/funding-calls-at-eu) · [EU Grants & Contracts Recipients (FTS)](https://apify.com/dach-open-data/eu-grants-contracts-fts) · [EU Funding Recipients – Structural Funds (Kohesio)](https://apify.com/dach-open-data/eu-funding-recipients-kohesio)

**Energy, mobility and environment:** [Germany Electricity Prices & Power Generation (SMARD)](https://apify.com/dach-open-data/germany-electricity-market) · [Germany EV Charging Stations – Official BNetzA Register](https://apify.com/dach-open-data/german-ev-charging-stations) · [Germany New Car Registrations – KBA by Brand, Model, EV](https://apify.com/dach-open-data/german-car-registrations-kba) · [German Water Levels – Rhine, Elbe, Danube (PEGELONLINE)](https://apify.com/dach-open-data/german-water-levels) · [German Weather Warnings – Official DWD Alerts (CAP)](https://apify.com/dach-open-data/german-weather-warnings)

**Health, consumers and finance:** [German Hospitals Directory (Klinik-Atlas)](https://apify.com/dach-open-data/german-hospitals-klinik-atlas) · [German Food Recalls & Warnings Monitor (lebensmittelwarnung.de)](https://apify.com/dach-open-data/german-food-recalls) · [ECB Rates – Key Rates, €STR, Mortgage Rates, Bond Yields, FX](https://apify.com/dach-open-data/ecb-interest-exchange-rates)

# Actor input Schema

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

initiatives = one row per Commission initiative. feedback = one row per response from a company, association, NGO, public authority or research body (metadata and links only, feedback from private individuals is never returned).

## `initiativeIds` (type: `array`):

Optional. Initiative IDs (e.g. 15112) or Have Your Say links. When set, the filters below are ignored. In feedback mode this is the usual way to get all organisations that responded to one initiative.

## `search` (type: `string`):

Words in the initiative title or summary, e.g. "hydrogen", "AI Act", "packaging". Only exact matches are returned.

## `topics` (type: `array`):

One or more policy topics (code or name, e.g. ENER or Energy). Empty = all topics.

## `feedbackStatus` (type: `string`):

OPEN = initiatives you can comment on right now (calls for evidence, public consultations, draft acts).

## `closingWithinDays` (type: `integer`):

Only initiatives whose open feedback period ends within this many days (0 = off). Useful for deadline alerts.

## `openedInLastDays` (type: `integer`):

Only initiatives whose feedback period opened in the last N days (0 = off). Schedule daily with 1 or weekly with 7 to get new consultations.

## `openedSince` (type: `string`):

Only initiatives whose feedback period opened on or after this date (YYYY-MM-DD).

## `stages` (type: `array`):

Current stage: in preparation, call for evidence, public consultation, draft act, Commission adoption, suspended/abandoned. Empty = all.

## `actTypes` (type: `array`):

Legislative proposals, delegated acts, implementing acts, communications, others. Empty = all.

## `categories` (type: `array`):

Commission Work Programme, REFIT (simplification), evaluations, Conference on the Future of Europe. Empty = all.

## `includeDetails` (type: `boolean`):

Adds summary, responsible DG, all publications with feedback counts, questionnaire link and document download links (one extra request per initiative). Turn off for fast lists.

## `language` (type: `string`):

Language of titles, links and documents (falls back to English when no translation exists).

## `respondentTypes` (type: `array`):

Only these kinds of organisations, e.g. COMPANY, BUSINESS_ASSOCIATION, NGO. Empty = all organisations. Private individuals are never returned.

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

Only organisations from these countries: ISO codes like DE, FR, BE (or DEU, FRA). Empty = all.

## `feedbackSince` (type: `string`):

Only feedback submitted on or after this date (YYYY-MM-DD). Good for monitoring an open consultation.

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

Maximum number of rows (each row is charged). The run also stops at your maximum cost per run.

## Actor input object example

```json
{
  "mode": "initiatives",
  "initiativeIds": [],
  "search": "",
  "topics": [],
  "feedbackStatus": "OPEN",
  "closingWithinDays": 0,
  "openedInLastDays": 0,
  "openedSince": "",
  "stages": [],
  "actTypes": [],
  "categories": [],
  "includeDetails": true,
  "language": "EN",
  "respondentTypes": [],
  "countries": [],
  "feedbackSince": "",
  "maxResults": 200
}
```

# Actor output Schema

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

All records returned by this run (default dataset, table view "initiatives"; feedback rows in view "feedback").

## `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 = {
    "search": "",
    "feedbackStatus": "OPEN"
};

// Run the Actor and wait for it to finish
const run = await client.actor("dach-open-data/eu-have-your-say-consultations").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 = {
    "search": "",
    "feedbackStatus": "OPEN",
}

# Run the Actor and wait for it to finish
run = client.actor("dach-open-data/eu-have-your-say-consultations").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 '{
  "search": "",
  "feedbackStatus": "OPEN"
}' |
apify call dach-open-data/eu-have-your-say-consultations --silent --output-dataset

```

## MCP server setup

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

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/KeqzgRQCYZPnxcSYm/builds/qjFYEk7V7ckg1MGHu/openapi.json
