{
  "openapi": "3.0.1",
  "info": {
    "title": "EU Funding & Tender Opportunities (Grants) – Calls & Deadlines",
    "description": "Search and monitor EU grant calls from the Funding & Tenders Portal: Horizon Europe, Digital Europe, LIFE, Erasmus+, CEF and more. Deadlines, budgets, action types, official link. No personal data. Unofficial, built on the public search API.",
    "version": "0.1",
    "x-build-id": "k58NUGJ2BYlERcQPB"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/shadow-tools~eu-funding-tender-opportunities-grants/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-shadow-tools-eu-funding-tender-opportunities-grants",
        "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/shadow-tools~eu-funding-tender-opportunities-grants/runs": {
      "post": {
        "operationId": "runs-sync-shadow-tools-eu-funding-tender-opportunities-grants",
        "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/shadow-tools~eu-funding-tender-opportunities-grants/run-sync": {
      "post": {
        "operationId": "run-sync-shadow-tools-eu-funding-tender-opportunities-grants",
        "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": [
              "search",
              "monitor"
            ],
            "type": "string",
            "description": "Pick one. \"search\" = use for a question about funding calls right now (which calls are open for topic X, which close before a date): returns the calls matching your filters, soonest deadline first. \"monitor\" = use only for scheduled (daily or weekly) runs: returns only calls that are NEW or CHANGED (status, deadline, budget, title) since a previous run with the same filters; the first monitor run returns the current matching calls. Allowed values: search, monitor. Default: search.",
            "default": "search"
          },
          "keywords": {
            "title": "Keywords",
            "maxItems": 50,
            "type": "array",
            "description": "English words searched in the full text of the call, as a list, e.g. [\"artificial intelligence\", \"quantum\"]. ANY keyword matches (OR); all the words of a keyword with several words must appear (AND), not necessarily next to each other. Empty = no keyword filter. Use specific words; very general ones (\"AI\") also match boilerplate text.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "programmes": {
            "title": "Programmes",
            "maxItems": 40,
            "type": "array",
            "description": "EU funding programmes to include, as a list of codes, e.g. [\"HORIZON\", \"DIGITAL\", \"LIFE\"]. Common codes: HORIZON = Horizon Europe (research and innovation), DIGITAL = Digital Europe, LIFE = environment and climate, ERASMUS = Erasmus+ (only the calls published on this portal), CEF = Connecting Europe Facility, EDF = European Defence Fund, CREA = Creative Europe, CERV = citizens, equality, rights and values, EU4H = EU4Health. Empty = all programmes.",
            "items": {
              "type": "string",
              "enum": [
                "HORIZON",
                "DIGITAL",
                "CEF",
                "ERASMUS",
                "EDF",
                "LIFE",
                "SMP",
                "CREA",
                "CERV",
                "EU4H",
                "AGRIP",
                "EURATOM",
                "EUAF",
                "RFCS",
                "ESF",
                "PPPA",
                "EP",
                "EUBA",
                "I3",
                "INNOVFUND",
                "ISF",
                "EMFAF",
                "JUST",
                "UCPM",
                "SOCPL",
                "AMIF",
                "ESC",
                "BMVI",
                "JTM",
                "IMREG",
                "IMCAP",
                "RENEWFM",
                "NDICI",
                "ERDF_TA",
                "PERICLES",
                "HUMA",
                "RELEX_PROSPECT",
                "RELEX2027",
                "BCS"
              ],
              "enumTitles": [
                "Horizon Europe (HORIZON)",
                "Digital Europe Programme (DIGITAL)",
                "Connecting Europe Facility (CEF)",
                "Erasmus+ (ERASMUS)",
                "European Defence Fund (EDF)",
                "Programme for the Environment and Climate Action (LIFE)",
                "Single Market Programme (SMP)",
                "Creative Europe Programme (CREA)",
                "Citizens, Equality, Rights and Values programme (CERV)",
                "EU4Health Programme (EU4H)",
                "Promotion of Agricultural Products (AGRIP)",
                "Euratom Research and Training Programme (EURATOM)",
                "Union Anti-Fraud Programme (EUAF)",
                "Research Fund for Coal & Steel (RFCS)",
                "European Social Fund (ESF)",
                "Pilot Projects & Preparation Actions (PPPA)",
                "European Parliament (EP)",
                "EU Bodies and Agencies (EUBA)",
                "Interregional Innovation Investments Instrument (I3)",
                "Innovation Fund (INNOVFUND)",
                "Internal Security Fund (ISF)",
                "European Maritime, Fisheries and Aquaculture Fund (EMFAF)",
                "Justice Programme (JUST)",
                "Union Civil Protection Mechanism (UCPM)",
                "Social Prerogative and Specific Competencies Lines (SOCPL)",
                "Asylum, Migration and Integration Fund (AMIF)",
                "European Solidarity Corps (ESC)",
                "Border Management and Visa Instrument (BMVI)",
                "Just Transition Mechanism (JTM)",
                "Information Measures for the EU Cohesion policy (IMREG)",
                "Support for information measures relating to the common agricultural policy (IMCAP)",
                "Renewable Energy Financing Mechanism (RENEWFM)",
                "Neighbourhood, Development and International Cooperation Instrument - Global Europe (NDICI)",
                "Technical assistance for ERDF, CF and JTF (ERDF-TA)",
                "Programme for the Protection of the Euro against Counterfeiting (PERICLES)",
                "Humanitarian Aid (HUMA)",
                "EU External Action - Prospect (RELEX-PROSPECT)",
                "EU External Action - eGrants (RELEX2027)",
                "Business and Consumer Surveys Programme (BCS)"
              ]
            },
            "default": []
          },
          "status": {
            "title": "Call status",
            "maxItems": 3,
            "type": "array",
            "description": "Status of the calls to return, as a list, e.g. [\"open\", \"forthcoming\"]. Allowed values: open (accepting proposals now), forthcoming (announced, not yet open), closed (past calls, useful for history; there are thousands, so combine with programmes or keywords). Default: open and forthcoming.",
            "items": {
              "type": "string",
              "enum": [
                "open",
                "forthcoming",
                "closed"
              ],
              "enumTitles": [
                "Open for submission",
                "Forthcoming",
                "Closed"
              ]
            },
            "default": [
              "open",
              "forthcoming"
            ]
          },
          "kinds": {
            "title": "Kinds of call",
            "maxItems": 3,
            "type": "array",
            "description": "Kinds of call to include, as a list, e.g. [\"topic\"]. Allowed values: topic (a topic of an EU work programme, the main grants), competitive-call (a call for third parties launched by an already funded project, often small amounts, also called cascade funding or financial support to third parties), external-aid (EU external-action grant calls, Prospect/EuropeAid). Default: all three.",
            "items": {
              "type": "string",
              "enum": [
                "topic",
                "competitive-call",
                "external-aid"
              ],
              "enumTitles": [
                "Topic of a work programme",
                "Call for third parties (cascade funding)",
                "External-action grant call"
              ]
            },
            "default": [
              "topic",
              "competitive-call",
              "external-aid"
            ]
          },
          "actionTypes": {
            "title": "Type of action",
            "maxItems": 20,
            "type": "array",
            "description": "Words that must appear in the type of action, as a list, e.g. [\"Innovation Actions\", \"Coordination and Support\"]. ANY matches (OR), case ignored. Typical types: Research and Innovation Actions, Innovation Actions, Coordination and Support Actions, Project Grants, Lump Sum Grant. Empty = all types.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "callIdentifiers": {
            "title": "Call identifiers",
            "maxItems": 50,
            "type": "array",
            "description": "Exact identifiers of calls (a call groups several topics), as a list, e.g. [\"HORIZON-CL3-2027-01\"]. Use to restrict to one work-programme call. Empty = no restriction.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "topicIdentifiers": {
            "title": "Topic identifiers",
            "maxItems": 100,
            "type": "array",
            "description": "Exact identifiers of topics, as a list, e.g. [\"HORIZON-CL3-2027-02-CS-ECCC-01\"]. Use when you already know the topic code and want its deadline, budget and status. Include status closed if the topic may be past. Empty = no restriction.",
            "items": {
              "type": "string"
            },
            "default": []
          },
          "deadlineFrom": {
            "title": "Deadline from",
            "type": "string",
            "description": "Keep calls having at least one deadline on or after this date, format YYYY-MM-DD, e.g. 2026-12-01. Empty = no lower bound. Deadlines are calendar dates as published by the portal."
          },
          "deadlineTo": {
            "title": "Deadline to",
            "type": "string",
            "description": "Keep calls having at least one deadline on or before this date, format YYYY-MM-DD, e.g. 2027-03-31. Empty = no upper bound. Combine with deadlineFrom for a window."
          },
          "minBudget": {
            "title": "Minimum budget (EUR)",
            "minimum": 0,
            "maximum": 1000000000000,
            "type": "integer",
            "description": "Keep calls whose published total budget is at least this many euros, as an integer, e.g. 5000000. Calls without a published budget are excluded when this is set. Empty = no budget filter."
          },
          "includeExpired": {
            "title": "Include expired open calls",
            "type": "boolean",
            "description": "If true, also return calls the portal still marks open or forthcoming although every deadline has passed (continuous or stale entries). Default false: such calls are hidden.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "deadline",
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Order of the results. Allowed values: deadline (soonest upcoming deadline first), relevance (best keyword match first, needs keywords), newest (most recent opening date first). Default: deadline.",
            "default": "deadline"
          },
          "onlyNew": {
            "title": "Only new or changed since last run",
            "type": "boolean",
            "description": "If true, a search returns only calls not delivered before (or whose status, deadline, budget or title changed) for the same filters; state is kept per Actor and user store. Default false, so a plain run always returns data. Monitor mode always behaves like this.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of calls to return, as an integer from 1 to 5000, e.g. 20. Keep it small for agents; the run summary says when more calls match. Each returned call is one billed result.",
            "default": 20
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}