# EU Funding Calls Monitor – Horizon, Creative Europe (`aleksejsg/eu-funding-calls-monitor`) Actor

Search and monitor open and forthcoming EU grant calls (Horizon Europe, Creative Europe MEDIA, Erasmus+, Digital Europe, LIFE, CERV...) from the official European Commission Funding & Tenders Portal. Keyword search, deadline filters, only-new mode for scheduled alerts.

- **URL**: https://apify.com/aleksejsg/eu-funding-calls-monitor.md
- **Developed by:** [Aleksej Sg](https://apify.com/aleksejsg) (community)
- **Categories:** Business, Automation, News
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$5.00 / 1,000 call returneds

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 Calls Monitor – Horizon Europe, Creative Europe MEDIA, Erasmus+, Digital Europe

Find and monitor **open and forthcoming EU grant calls** from the official **European Commission Funding & Tenders Portal**:
Horizon Europe, Creative Europe (MEDIA, Culture, Cross-sectoral), Erasmus+, Digital Europe, LIFE, CERV, EU4Health,
Single Market Programme and more. Keyword search, next-deadline sorting, and an **only-new mode** for daily or weekly alerts
to email, Slack, Google Sheets, Make or n8n.

### Why this Actor

- Uses the **public search API behind the portal** (no browser, no login, no personal data) → fast and cheap
- Returns the **next real deadline** for multi-cut-off calls and hides calls whose cut-offs have all passed
  (the portal still marks some of them "open")
- Each row links to the official topic page
- `onlyNew: true` + an Apify schedule = a grant alert service in two minutes

### Who it is for

Grant consultants, EU project managers, universities and research offices, film producers and cultural organisations
(Creative Europe MEDIA: slate development, Films on the Move, festivals, innovative tools), start-ups looking for EIC and Digital Europe calls, NGOs (CERV, Erasmus+).

### Input example

```json
{"keywords": ["audiovisual", "film", "CREA-MEDIA"], "statuses": ["open", "forthcoming"], "deadlineBefore": "2027-03-31", "onlyNew": false}
```

### Output (one row per topic)

`identifier` (e.g. CREA-MEDIA-2027-DEVSLATE), `title`, `callIdentifier`, `status`, `openingDate`, `nextDeadline`,
`deadlineDates[]`, `deadlineModel`, `typesOfAction`, `keywords[]`, `frameworkProgramme`, `summary`, `url`, `source`.

### Pricing (pay per event)

$0.005 per call returned (≈ $0.50 per 100 calls). A weekly alert on 3 keywords with only-new mode usually costs cents per month.

### Data source and licence

European Commission, Funding & Tenders Portal. Reuse of Commission documents is permitted with acknowledgement
(Commission Decision 2011/833/EU). This Actor is not affiliated with the European Commission.

Keywords: EU grants, EU funding opportunities, Horizon Europe calls, Creative Europe MEDIA calls, Erasmus+ calls,
Funding and Tenders Portal API, EU calls for proposals, grant alerts, bandi europei, finanziamenti UE, appels à projets européens.

### Example output row

```json
{"identifier": "CREA-MEDIA-2027-DEVSLATE", "title": "European Slate Development", "callIdentifier": "CREA-MEDIA-2027-DEV",
 "status": "forthcoming", "openingDate": "2026-12-10", "nextDeadline": "2027-03-04", "deadlineDates": ["2027-03-04"],
 "frameworkProgramme": "Creative Europe", "url": "https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/crea-media-2027-devslate"}
```

(Values illustrative.) Export as JSON, CSV, Excel, or send to Google Sheets / Slack via Apify integrations.

### Use case: weekly grant alert

1. Set `keywords` to your topics, `onlyNew: true`. 2. Create an Apify **Schedule** (e.g. every Monday 08:00).
2. Add an email or Slack integration on run success. You only pay for new calls found.

### 🇮🇹 In italiano

**Monitor dei bandi europei** (Horizon Europe, Europa Creativa MEDIA, Erasmus+, Europa Digitale, LIFE, CERV) dal
portale ufficiale Funding & Tenders della Commissione europea. Ricerca per parole chiave, filtri per scadenza e
modalità "solo nuovi" per ricevere alert giornalieri o settimanali sui bandi UE. Prezzo: **0,005 $ per bando restituito**.
Parole chiave: bandi europei, finanziamenti UE, bandi alert, bandi Europa Creativa, bandi Horizon Europe.

# Actor input Schema

## `keywords` (type: `array`):

One search per keyword or call code, e.g. 'audiovisual', 'artificial intelligence', 'CREA-MEDIA', 'HORIZON-CL4'. Leave empty to list all calls matching the filters.

## `statuses` (type: `array`):

Which call statuses to include: open (accepting proposals), forthcoming (announced, not yet open), closed.

## `types` (type: `array`):

Kinds of opportunity: grant-topic (Horizon, Creative Europe, CERV... topics), grant-other, external-action-call (EuropeAid), tender (Commission procurement).

## `deadlineAfter` (type: `string`):

Only calls with a deadline on or after this date, format YYYY-MM-DD (e.g. 2026-12-01).

## `deadlineBefore` (type: `string`):

Only calls with a deadline on or before this date, format YYYY-MM-DD (e.g. 2027-06-30).

## `upcomingOnly` (type: `boolean`):

Hide calls whose cut-off dates have all passed. The portal keeps some multi-cut-off calls marked 'open' after the last cut-off.

## `onlyNew` (type: `boolean`):

Return only calls not returned by previous runs (remembered in a named key-value store). Use with a daily or weekly Apify schedule for alerts; you pay only for new calls.

## `stateStoreName` (type: `string`):

Name of the key-value store that remembers seen calls for onlyNew mode. Use different names for different alert profiles.

## `maxItems` (type: `integer`):

Maximum number of calls returned per keyword (each returned call is one billed event).

## Actor input object example

```json
{
  "keywords": [
    "audiovisual"
  ],
  "statuses": [
    "open",
    "forthcoming"
  ],
  "types": [
    "grant-topic",
    "grant-other"
  ],
  "deadlineAfter": "2026-11-01",
  "upcomingOnly": true,
  "onlyNew": false,
  "stateStoreName": "eu-funding-calls-state",
  "maxItems": 200
}
```

# Actor output Schema

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

One row per EU funding call/topic: identifier, title, programme, status, deadlines and portal link.

# 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 = {
    "keywords": [
        "audiovisual"
    ],
    "deadlineAfter": "2026-11-01"
};

// Run the Actor and wait for it to finish
const run = await client.actor("aleksejsg/eu-funding-calls-monitor").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 = {
    "keywords": ["audiovisual"],
    "deadlineAfter": "2026-11-01",
}

# Run the Actor and wait for it to finish
run = client.actor("aleksejsg/eu-funding-calls-monitor").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 '{
  "keywords": [
    "audiovisual"
  ],
  "deadlineAfter": "2026-11-01"
}' |
apify call aleksejsg/eu-funding-calls-monitor --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,aleksejsg/eu-funding-calls-monitor"
        }
    }
}
```

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/mJzECgn1LqBfun27P/builds/ucclsgyWzTXsHRZBL/openapi.json
