Europa APIwebgate.ec.europa.eu ↗
Search EU state aid grants awarded to companies across all member states. Filter by country, beneficiary name, or national ID. Returns amounts, dates, and granting authority.
What is the Europa API?
The webgate.ec.europa.eu API exposes one endpoint — search_grants — that returns paginated records from the European Commission's State Aid Transparency Register, covering grants awarded across EU member states. Each record includes aid measure details, monetary amounts, award dates, granting authority information, and beneficiary identifiers. You can filter results by ISO country code, beneficiary national ID, or company name to trace public subsidies at the firm level.
curl -X GET 'https://api.parse.bot/scraper/3c61cd5e-a165-4c1e-b53c-962d33f4aaeb/search_grants?page=1&country=DE&beneficiary_id=HRB+42243&beneficiary_name=BMW' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace webgate-ec-europa-eu-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: EC State Aid Transparency SDK — bounded, re-runnable; every call capped."""
from parse_apis.webgate_ec_europa_eu_api import ECTransparency, InvalidCountry
client = ECTransparency()
# Search grants for German companies matching "BMW"
for grant in client.grants.search(country="DE", beneficiary_name="BMW", limit=3):
print(grant.beneficiary_name, grant.sa_number, grant.aid_element)
# Search by beneficiary national ID
item = client.grants.search(country="DE", beneficiary_id="HRB 42243", limit=1).first()
if item:
print(item.ref_no, item.date_granted, item.granting_authority)
# Typed error handling for invalid country
try:
for g in client.grants.search(country="XX", limit=1):
print(g.beneficiary_name)
except InvalidCountry as e:
print("invalid country:", e.country)
print("exercised: grants.search")
Search state aid grants awarded to companies within a given EU member state. Results can be filtered by beneficiary national ID or beneficiary name. Returns paginated grant records including aid measure details, amounts, dates, and granting authority information. Results are auto-iterated across pages of 25 records each.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for paginated results. |
| countryrequired | string | ISO 3166-1 alpha-2 country code identifying the EU member state (e.g. 'DE' for Germany, 'FR' for France, 'ES' for Spain). |
| beneficiary_id | string | National identifier of the beneficiary company (e.g. 'HRB 42243' for a German company). |
| beneficiary_name | string | Name or partial name of the beneficiary company to search for (e.g. 'BMW', 'Renault'). |
{
"type": "object",
"fields": {
"page": "integer",
"grants": "array of grant records with aid details",
"per_page": "integer",
"total_results": "integer, count of results on this page"
},
"sample": {
"data": {
"page": 1,
"grants": [
{
"ref_no": "TM-10097598",
"region": "Oberbayern",
"sector": "Manufacture of motor vehicles",
"country": "Germany",
"objective": "Sectoral development",
"sa_number": "SA.38632",
"aid_element": "10,000,001 to 30,000,000 EUR",
"national_id": "HRB_42243",
"date_granted": "31/07/2016",
"aid_instrument": "Tax advantage or tax exemption",
"nominal_amount": "",
"published_date": "24/04/2018",
"beneficiary_name": "BMW AG",
"beneficiary_type": "Only large enterprises",
"entrusted_entity": "",
"aid_measure_title": "EEG 2014",
"granting_authority": "Übertragungsnetzbetreiber (50Hertz Transmission, Amprion, Tennet TSO, TransnetBW)en",
"financial_intermediaries": ""
}
],
"per_page": 25,
"total_results": 9
},
"status": "success"
}
}About the Europa API
What the API Returns
The search_grants endpoint queries the EU State Aid Transparency Register and returns paginated grant records. Each page of results includes the total result count (total_results), the current page number (page), records per page (per_page), and the grants array containing individual award details. Each grant record carries aid measure metadata, the monetary amount awarded, the date of award, the granting authority, and beneficiary identification details.
Filtering and Pagination
The only required parameter is country, which accepts an ISO 3166-1 alpha-2 code (e.g., DE, FR, ES, PL). You can narrow results further with beneficiary_id — a national company identifier such as a trade register number — or beneficiary_name for a name or partial-name search. The page parameter controls which page of results is returned, and total_results tells you how many records matched on the current page.
Coverage and Source
The underlying data is drawn from the European Commission's mandatory state aid transparency publication requirement, which applies to individual aid awards above EUR 500,000 in most sectors. Coverage spans all EU member states that have submitted reporting data. Not every member state's data is equally complete or up to date, as reporting obligations and submission timelines vary.
The Europa API is a managed, monitored endpoint for webgate.ec.europa.eu — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when webgate.ec.europa.eu changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official webgate.ec.europa.eu API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Audit which companies in a specific EU country received state aid above disclosure thresholds by filtering with the
countryparameter. - Track subsidies awarded to a named company across multiple EU member states using
beneficiary_namesearches. - Look up all grants tied to a specific legal entity using its national trade register number via
beneficiary_id. - Monitor which granting authorities in a given country are most active in distributing state aid.
- Build a compliance database mapping aid measure IDs to recipient companies and award dates.
- Cross-reference grant amounts and dates with company financial filings to assess the impact of public funding.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the European Commission provide an official developer API for the State Aid Transparency Register?+
What fields does a single grant record in the `grants` array contain?+
Does `total_results` reflect the full dataset size or just the current page?+
total_results is the count of results on the current page, not the grand total across all pages. To determine full dataset size for a query, you need to iterate pages and accumulate counts, or infer from per_page and page values.