EU Funding & Tenders Portal Scraper
Pricing
from $6.23 / 1,000 opportunities
EU Funding & Tenders Portal Scraper
Scrapes 48,000+ EU grants, calls for proposals and tenders from the European Commission Funding & Tenders Portal with deadlines, budgets, eligibility and documents.
Pricing
from $6.23 / 1,000 opportunities
Rating
0.0
(0)
Developer
ParseForge
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
EU Funding and Tenders Portal Scraper - Horizon Europe
Scrape all 48,184 opportunities on the European Commission Funding & Tenders Portal: 17,584 Horizon Europe and other grant topics, 25,058 calls for tenders, 3,933 EuropeAid external action calls and 1,609 cascade funding calls. Every row carries 44 fields including status, programme, call identifier, every submission deadline, budget in euro and a plain-text summary. No login, no EU Login account, no API key. Export to CSV, JSON, Excel or XML.
The portal's own search screen paginates 50 results at a time behind an Angular app, and its filter values are numeric codes like 31094502 and 43108390 that mean nothing outside the page. This reads the same public search API the portal calls, resolves its numeric codes to English labels, and returns one flat row per opportunity across all four sections in a single run.
| Who uses it | What they scrape EU funding data for |
|---|---|
| Grant consultants | Open calls by programme and deadline, ranked by what closes next |
| Research offices | Horizon Europe topics for a faculty, with budget and eligibility |
| Bid and capture teams | Commission tenders by CPV code, country and procedure type |
| Startups and SMEs | Cascade funding calls that pay sub-grants without a consortium |
| Market analysts | Programme-level budget and deadline series across 2014 to 2027 |
What it does
This Actor collects opportunities from all four sections of the EU Funding & Tenders Portal and returns each one as a flat row. Every opportunity carries:
- 🧾 Core fields: title, identifier, type, status, portal URL, call identifier and call title, framework programme, programme period and publication date.
- ⏰ Every deadline: the next upcoming cut-off, the full list of cut-offs, how many there are, the deadline model (single-stage, two-stage or multiple cut-off) and days remaining.
- 💶 Money: budget amount and currency, taken from the work programme line for grant topics and from the estimated procedure value for tenders.
- 🏷️ Classification: types of action, keywords, cross-cutting priorities, contract type, procedure type, award method, main CPV code and label, and target countries.
- 🧩 Sixteen optional blocks: full description, eligibility and topic conditions, budget breakdown per year and per action, submission links, call documents, tender lots, change log, support info, destination text, CPV list, geography, contracting authority, tender terms, corrigenda, programme structure and the raw upstream record.
Results export to CSV, JSON, Excel or XML, or stream from the API.
What you can do with EU funding data
🎯 Build a deadline pipeline.
Filter to open opportunities with a future deadline, sort by deadline ascending, and get a working list of what closes next across every EU programme at once.
🔬 Map a programme.
Pick Horizon Europe and a destination group, and pull every topic in that work programme block with its budget line, expected number of grants and minimum and maximum EU contribution.
📑 Track Commission tenders.
Filter tenders by CPV code, procedure type, award method and place of performance, then add tender terms for the TED notice number, submission method and estimated value.
💡 Find cascade funding.
Cascade funding calls pay sub-grants to SMEs without needing a consortium. They are a separate opportunity type here, filterable on their own, with the funding project and duration attached.
Why choose this scraper
| What you get | |
|---|---|
| All four sections in one run | Grants, tenders, EuropeAid calls and cascade funding, in one schema, from one input. |
| Codes resolved to labels | The portal's own code dictionary is read live each run, so 31094502 arrives as "Open for submission". |
| Every deadline, not just one | Topics with multiple cut-offs return the whole list plus the next one still ahead. |
| Past the 10,000 ceiling | The portal API stops at 10,000 results per query. The Actor slices by type, then year, then month, automatically. |
| Twenty-three filters | Programme, period, status, type, CPV, country, place of performance, mission, destination group, priority, procedure, award method, focus area, objective and four date bounds. |
| Pay only for what returns | Sixteen optional blocks, each off by default and billed only when the source actually returned it. |
How it compares
Four other Actors read this portal, and none of them has more than three monthly users. Two cover grants and tenders, one pairs Horizon calls with CORDIS projects, and none resolve the portal's numeric codes or handle the 10,000 result ceiling. This one is the only one that returns tenders, grants, EuropeAid calls and cascade funding in the same schema, and it is the more expensive option because it does more per row.
| Feature | ParseForge | maximedupre | studio-amba | jungle_synthesizer |
|---|---|---|---|---|
| Grants, tenders, EuropeAid and cascade calls | All four | Grants and tenders | Grants and tenders | Horizon calls plus CORDIS |
| Numeric codes resolved to English labels | Yes, live per run | No | No | No |
| Automatic slicing past the 10,000 result cap | Yes | No | No | No |
| Every submission cut-off, not only the first | Yes | No | No | No |
| Optional enrichment blocks | 16, billed on delivery | No | No | No |
| Price per 1,000 rows | $7.00 | Not published | $2.00 | $0.40 |
What an opportunity looks like
{"opportunityId": "ERC-2026-POC","reference": "48939636TOPICSen","title": "ERC PROOF OF CONCEPT GRANTS","opportunityType": "Grant topic","opportunityTypeCode": "1","status": "Open for submission","statusCode": "31094502","isOpen": "Yes","url": "https://ec.europa.eu/info/funding-tenders/opportunities/portal/screen/opportunities/topic-details/ERC-2026-POC","callIdentifier": "ERC-2026-POC","callTitle": "Call for proposals for ERC Proof of Concept","callId": "48939656","topicId": "48939636","programme": "Horizon Europe (HORIZON)","programmeCode": "43108390","programmePeriod": "2021 - 2027","publicationDate": "2026-01-20T00:00:00.000Z","deadlineDate": "2026-09-17T00:00:00.000Z","allDeadlines": ["2026-03-17T00:00:00.000Z","2026-09-17T00:00:00.000Z"],"deadlineCount": 2,"deadlineModel": "multiple cut-off","daysUntilDeadline": 21,"closingDate": "N/A","lastUpdated": "N/A","typesOfAction": ["HORIZON ERC Proof of Concept Grants"],"keywords": ["ERC-2026-POC","ERC-2026-POC"],"crossCuttingPriorities": [],"destination": "N/A","contractType": "N/A","procedureType": "N/A","awardMethod": "N/A","mainCpvCode": "N/A","mainCpvLabel": "N/A","countries": [],"budgetAmount": "60000000","budgetCurrency": "EUR","beneficiaryAdministration": "N/A","projectAcronym": "N/A","projectName": "N/A","fundedProjectId": "N/A","durationMonths": "N/A","allowsPartnerSearch": "Yes","summary": "ERC PROOF OF CONCEPT GRANTS","scrapedAt": "2026-08-27T16:57:39.171Z"}
Fields that do not apply to a record type come back as N/A, and fields the portal withholds come back as Not Disclosed. A grant topic has no CPV code; a tender has no types of action. That is the record's real state, not a parsing gap.
Configure the run
Drive it three ways, alone or together: a keyword, portal detail URLs, or bare identifiers. With none of them set it lists everything the filters match. Filters run server side on the portal API, so only matching opportunities are read, written and billed. The Input tab lists every parameter.
Everything closing soon, across all four sections:
{ "opportunityStatus": ["open"], "onlyFutureDeadlines": true, "sortBy": "deadline", "sortOrder": "ASC", "maxItems": 500 }
Horizon Europe topics about hydrogen, with the budget breakdown and submission links:
{ "searchKeywords": "hydrogen", "programmes": ["43108390"], "opportunityTypes": ["grant"], "includeBudgetBreakdown": true, "includeActionTypes": true, "maxItems": 300 }
Open Commission tenders for research services, with the terms and the documents:
{ "opportunityTypes": ["tender"], "opportunityStatus": ["open"], "cpvCodes": ["73000000"], "includeTenderTerms": true, "includeDocuments": true, "maxItems": 200 }
Pricing
Pay-per-event: $0.007 per opportunity, dropping to $0.00623 at higher volume, plus a $0.02 run-start fee and $0.01 per search page paginated. The sixteen optional blocks cost $0.002 to $0.004 each and are charged only when the source actually returned that block. You pay only for rows written to your dataset.
| Opportunities collected | Approximate cost |
|---|---|
| 100 | $0.73 |
| 1,000 | $7.12 |
| 10,000 | $71.02 |
Those figures are the base row alone. At higher monthly volume the per-opportunity rate drops to $0.00623, so 10,000 opportunities runs about $63. New Apify accounts start with $5 in free credit.
Free users
Free-plan runs return up to 10 opportunities as a preview. Upgrade your Apify plan to collect up to 1,000,000 opportunities per run.
Run it
- Create a free Apify account with $5 in credit.
- Open the EU Funding & Tenders Portal Scraper.
- Pick your
opportunityTypesandopportunityStatus, add a keyword or a programme, tick any optional blocks, and click Start. - Export the results as CSV, Excel, JSON or XML from the Dataset tab.
Run it programmatically through the Apify API or the ApifyClient for JavaScript and Python.
Use with AI agents (MCP)
Give an AI agent live access to EU funding calls through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:
$claude mcp add --transport http apify "https://mcp.apify.com?tools=parseforge/eu-funding-tenders-scraper"
Then prompt it in plain language:
- "List every Horizon Europe topic still open for submission that closes in the next 60 days, with its budget."
- "Find open EU calls for tenders with CPV code 73000000 and tell me the submission method and deadline for each."
- "Pull all cascade funding calls open right now and summarise which ones an SME can apply to alone."
Copy this into ChatGPT, Claude, or Cursor to start:
Use the Apify Actor "parseforge/eu-funding-tenders-scraper" to collect EU funding opportunities from the European Commission Funding & Tenders Portal. Input: { "searchKeywords": "<keyword>", "opportunityTypes": ["grant","tender","external-action","cascade"], "opportunityStatus": ["open"], "onlyFutureDeadlines": true, "maxItems": <n> }. It returns opportunityId, title, opportunityType, status, programme, callIdentifier, publicationDate, deadlineDate, allDeadlines, daysUntilDeadline, budgetAmount, budgetCurrency and url per opportunity. Call it with the ApifyClient and my APIFY_TOKEN.
Troubleshooting
Why am I getting no results?
A filter value that does not exist returns zero rows rather than an error. Check that your cpvCodes and callIdentifier are exact, and remember that combining opportunityStatus: ["open"] with onlyFutureDeadlines: true leaves 704 of the portal's 1,865 open records.
Why fewer opportunities than I asked for?
The portal API serves at most 10,000 results per query. The Actor slices the query by type, then by year, then by month to get past that, but a slice that still exceeds 10,000 is capped and the log says how many were left behind. Narrow the filters and the ceiling stops mattering.
Why is a status "Open for submission" when the deadline has passed?
That is the portal's own flag, and 1,161 of its 1,865 open records are stale that way. Tick Only Opportunities Still Accepting Submissions to filter on the deadline instead of the status.
Why is the deadline sort out of order?
The portal sorts on its deadline index, which uses a topic's first cut-off. A topic that opened in 2021 with a cut-off every September sorts by 2021, not by the one still ahead. Sort your export on deadlineDate, which is the next cut-off still in the future.
Why is the run slow?
Eligibility conditions, submission links, support info, the change log and raw metadata are not available in the portal's compact response, so ticking any of them makes the Actor fetch whole records. That path runs at about 11 rows per second against about 100 without them.
Why is a field empty?
Grant topics carry no CPV code, procedure type or contracting authority; tenders carry no types of action, destination or partner search flag. Each type fills its own half of the schema.
FAQ
| Question | Answer |
|---|---|
| Do I need an EU Login account or an API key? | No. It reads the portal's public search API, which needs no account, no token and no proxy. |
| Which sections of the portal does it cover? | All four: grant topics (17,584), calls for tenders (25,058), EuropeAid external action calls (3,933) and cascade funding calls (1,609). |
| Can I get Horizon Europe topics only? | Yes. Set opportunityTypes to grant and programmes to Horizon Europe, or pick any of the 64 programmes in the dropdown. |
| Does it return the full topic conditions? | Yes, as an optional block: admissibility, eligibility, financial capacity and award criteria, about 10 KB of text per topic. |
| How many opportunities per run? | Free plan: 10. Paid: up to 1,000,000, bounded by the portal's 10,000 results per query, which the Actor works around by slicing. |
| Can I scrape one specific topic or tender? | Yes. Paste its portal URL into startUrls, or its identifier into opportunityIds. |
| Are the budgets reliable? | Grant budgets come from the work programme line for that topic and tender values from the estimated procedure value. Both are the portal's own numbers and are absent on many records. |
| What are call summary rows? | An optional extra row per distinct call, aggregating its topics, statuses and deadlines. They do not count against Max Items. |
| Does it cover TED procurement notices? | Only the Commission tenders published on this portal. For the full TED database use the TED Europa Tenders Scraper. |
| Is this an official European Commission product? | No. It is unofficial and reads only public portal data. |
Related actors
- TED Europa Tenders Scraper: the full EU procurement notice database behind Tenders Electronic Daily.
- CORDIS EU Research Projects Scraper: the projects that these calls funded, with participants and results.
- Grants.gov Federal Grant Scraper: the United States equivalent, federal grant opportunities.
- ANAC Italy Public Procurement Scraper: Italian national tenders and awards.
- EUR-Lex Scraper: the EU legal acts these programmes are established by.
Browse the full ParseForge collection for more scrapers.
🆘 Need help? Email parseforge@protonmail.com with your run ID, your input, and what you expected.
⚠️ Disclaimer. This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by the European Commission. It collects only publicly available data from the Funding & Tenders Portal. You are responsible for using the data in compliance with the portal's terms and applicable laws, including GDPR, CCPA, and PIPL. Do not use it to identify, profile, or target individuals.
