Marktstammdatenregister (MaStR) Scraper — German Energy Units avatar

Marktstammdatenregister (MaStR) Scraper — German Energy Units

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Marktstammdatenregister (MaStR) Scraper — German Energy Units

Marktstammdatenregister (MaStR) Scraper — German Energy Units

Extract solar, wind, biomass, hydro & storage units from Germany's official MaStR energy registry. Filter by energy source, state, postal code, operator & status. Get operator names, capacity (kW), commissioning date & location for B2B leads and market research.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

19 hours ago

Last modified

Features

Limited permissions

Share

Marktstammdatenregister Scraper — German Energy Units (Solar, Wind, Biomass, Storage & Operators)

Extract structured data on Germany's energy generation and consumption units from the Marktstammdatenregister (MaStR) — the official German market master data register for electricity and gas operated by the Federal Network Agency (Bundesnetzagentur). This Marktstammdatenregister scraper turns the official register into clean, structured datasets of commercial solar parks, rooftop photovoltaic systems, onshore and offshore wind turbines, biomass plants, hydropower, battery storage systems (BESS), and conventional generators, each with its operator name, MaStR numbers, gross and net capacity in kW, operational status, commissioning dates, and exact geographic coordinates. No login, no coding, and no complex manual queries.

Export to JSON, CSV, Excel, or API — or connect directly into PostgreSQL, Snowflake, Airtable, HubSpot, Google Sheets, Make, Zapier, and n8n.

Apify Actor

Built for: renewable energy sales reps, solar installers, wind farm operators, battery storage developers, energy traders, infrastructure fund managers, ESG analysts, and consultants mapping Germany's energy transition (Energiewende).


⚡ At a glance

FeatureDetails
Data SourceBundesnetzagentur Marktstammdatenregister (MaStR) — Official German Energy Registry
Geographic ScopeAll 16 German federal states (Bundesländer): Bayern, Baden-Württemberg, NRW, Niedersachsen, etc.
Energy SourcesSolar (PV), Wind (Onshore/Offshore), Biomass, Hydro, Battery Storage, Hydrogen, Geothermal, Gas, Coal
Registry ScopeOver 6.6 million electricity-generation units and millions of energy storage and consumption systems
Key Output FieldsUnit ID, MaStR #, unit name, energy source, status, operator name, operator MaStR #, gross/net kW, dates, location
Commercial FilteringFilter by named commercial organizations (isCommercial: true) vs anonymized private residential systems
Location EnrichmentOptional deep enrichment adding city (Ort), postal code (PLZ), municipality, parcel, and WGS84 GPS coordinates
Export FormatsJSON, CSV, Excel (XLSX), XML, HTML table, webhook & REST API
Max CapacityScalable from 100 sample records to 1,000+ or multi-state deep extractions
Execution SpeedUp to 250 records per request batch; fast prefill runs finish in under 30 seconds

🔎 Why scrape the Marktstammdatenregister (MaStR)?

The Marktstammdatenregister (MaStR) is the central statutory registry in Germany for all electricity and gas market participants and generation units. Managed by the Bundesnetzagentur, it documents every connected energy asset across Germany — from a 5 kW residential rooftop solar array in Bavaria to multi-megawatt commercial wind parks in Lower Saxony and industrial gas turbines in North Rhine-Westphalia.

While the data is legally public, navigating the government portal manually or relying on massive static file dumps creates serious operational bottlenecks:

  • B2B lead generation for solar & wind services: Identify commercial operating companies (GmbH, AG, KG, eG) operating commercial-scale photovoltaic installations and wind turbines for operations and maintenance (O&M), repowering, inverter replacement, and panel cleaning contracts.
  • Battery storage (BESS) co-location prospecting: Pinpoint medium and large-scale solar farms commissioned without battery storage, creating high-intent lead lists for utility-scale battery integration and peak shaving systems.
  • Renewable energy market sizing & competitor intelligence: Track which EPC contractors, municipal utilities (Stadtwerke), and independent power producers (IPPs) are building capacity across specific federal states or postal codes.
  • Power purchase agreement (PPA) origination: Corporate energy buyers and green power traders can discover unsubsidized or post-EEG renewable assets approaching expiration of feed-in tariffs.
  • Site selection & grid infrastructure planning: Map installed generation capacity by district and municipality to identify areas with high feed-in saturation or grid connection opportunities.

🗂️ Covered Technologies & Energy Sources

This scraper extracts units across all official MaStR technology classifications:

  1. Solar Photovoltaics (solar): Ground-mounted solar parks (Freiflächenanlagen), commercial rooftop arrays, agrivoltaics, and floating solar systems. Includes module counts and gross kilowatt peak ratings.
  2. Wind Energy (wind): Onshore wind turbines (Windkraftanlagen an Land) and offshore installations across the North Sea and Baltic Sea. Captures rotor hub heights and turbine capacities.
  3. Biomass & Biogas (biomass): Solid biomass power plants, agricultural biogas facilities, and biomethane cogeneration (CHP) units.
  4. Hydropower (hydro): Run-of-river stations, storage power plants, and pumped-storage hydroelectric facilities (Wasserkraft).
  5. Battery & Energy Storage (storage): Utility-scale battery storage facilities, commercial storage systems (Gewerbespeicher), and grid-scale storage assets (Speicheranlagen).
  6. Hydrogen & Power-to-X (hydrogen): Electrolyzers and hydrogen generation installations (Wasserstofferzeuger).
  7. Geothermal Energy (geothermal): Deep geothermal power and combined heat and power plants (Geothermie).
  8. Conventional & Gas Generation: Natural gas (Erdgas), mine gas (Grubengas), sewage gas (Klärgas), and thermal backup plants.

✨ Key Features & Capabilities

  • ✅ Official MaStR Registry Ingestion: Fetches real-time structured data directly from the official register with full parameter support.
  • ✅ B2B Commercial Operator Focus: Instantly isolate commercial corporate entities (onlyCommercial: true) such as GmbH, AG, KG, or energy cooperatives (Bürgerenergiegenossenschaften), filtering out anonymized residential records.
  • ✅ Deep 1,000+ Record Pagination: Unlocked pagination engine allows collecting thousands of units across multiple states and energy types without arbitrary caps.
  • ✅ Precise Capacity Filtering: Filter by minimum and maximum gross capacity (minCapacityKw / maxCapacityKw) to focus exclusively on commercial, industrial, or utility-scale facilities.
  • ✅ Geographic Targeting: Filter by federal state (Bundesland), major city preset, specific municipality name, or 5-digit German postal code (PLZ).
  • ✅ Optional Location Enrichment: Toggle includeLocation: true to enrich records with full municipal details, cadastral parcels (Flurstück), and WGS84 GPS latitude/longitude.
  • ✅ Automatic Deduplication: Built-in hashing prevents duplicate entries when combining multiple energy types, states, and search queries.

📊 Extracted Data Fields

The scraper normalizes official register fields into an intuitive, developer-ready schema:

⚡ Unit Identification & Technical Specs

FieldCoverageDescription
unitId🟢 High (100%)Internal MaStR registry unit identifier (e.g., SEE918273645)
mastrNr🟢 High (100%)Official public MaStR registration number (e.g., EEG901234567890)
unitName🟢 High (100%)Official registered unit name (e.g., Solarpark Altötting II)
category🟢 High (100%)Primary registry category (e.g., Stromerzeugung)
energySource🟢 High (100%)Normalized energy source (Solar, Wind, Biomass, Storage, etc.)
grossPowerKw🟢 High (100%)Gross rated power capacity in kilowatts (Bruttoleistung)
netPowerKw🟢 High (98%)Net nominal capacity fed into the grid (Nettonennleistung)
solarModuleCount🟡 ConditionalNumber of installed solar modules (photovoltaic units only)
detailUrl🟢 High (100%)Direct link to the unit's public page on Marktstammdatenregister

🏢 Operator & Commercial Information

FieldCoverageDescription
operatorName🟢 High (100%)Legal business entity name (anonymized for private individuals)
operatorMastrNr🟢 High (99%)Operator's unique MaStR market partner number (e.g., ABR987654321)
isCommercial🟢 High (100%)Boolean flag: true for commercial businesses/organizations, false for private individuals

📍 Geographic & Location Fields (Enriched when includeLocation: true)

FieldCoverageDescription
city🟢 High (98%)Municipality or city name (Ort / Gemeinde)
postalCode🟢 High (98%)Official 5-digit German postal code (Postleitzahl / PLZ)
state🟢 High (99%)Federal state (Bundesland, e.g., Bayern, Nordrhein-Westfalen)
district🟢 High (95%)Administrative district (Landkreis / kreisfreie Stadt)
municipality🟢 High (95%)Local administrative municipality (Gemeinde)
latitude🟡 Conditional (75-85%)WGS84 GPS latitude for GIS mapping and spatial analysis
longitude🟡 Conditional (75-85%)WGS84 GPS longitude for GIS mapping and spatial analysis
parcel🟡 ConditionalCadastral land parcel identifier (Flurstück / Gemarkung)

📅 Operational Timestamps & Status

FieldCoverageDescription
status🟢 High (100%)Operational status (In Betrieb, In Planung, Stillgelegt)
commissioningDate🟢 High (97%)Date unit commenced operation (Inbetriebnahmedatum, YYYY-MM-DD)
reportedDate🟢 High (99%)Date unit was originally registered (EinheitMeldedatum, YYYY-MM-DD)
lastUpdated🟢 High (99%)Date of last registry modification (DatumLetzteAktualisierung, YYYY-MM-DD)
scrapedAt🟢 High (100%)UTC timestamp when record was extracted by the scraper

⚙️ Input Parameters

Configure your extraction via the Apify Console or pass JSON parameters directly:

{
"unitCategory": "electricity-generation",
"energyTypes": ["solar", "wind"],
"states": ["bayern", "niedersachsen"],
"operationalStatus": ["in-operation"],
"onlyCommercial": true,
"minCapacityKw": 100,
"includeLocation": true,
"maxItems": 500,
"sortBy": "capacity-desc"
}
ParameterTypeDefaultDescription
unitCategorystring"electricity-generation"Registry category: electricity-generation, electricity-consumption, gas-generation, gas-consumption.
energyTypesarray[] (all)Filter by energy source: solar, wind, biomass, hydro, storage, nuclear, hydrogen, etc.
statesarray[] (all)Filter by one or more German federal states (bayern, nordrhein-westfalen, brandenburg, etc.).
operationalStatusarray["in-operation"]Filter by operational status: in-operation, in-planning, temporarily-shut-down, permanently-shut-down.
cityPresetstring""Quick dropdown selector for major German cities (Berlin, Hamburg, München, Köln, Frankfurt, etc.).
postalCodestring""Filter by a specific 5-digit German postal code (PLZ).
operatorNamestring""Search for specific operator or holding company names (e.g., EnBW, RWE, Stadtwerke).
onlyCommercialbooleanfalseKeep only named commercial organizations (isCommercial: true), omitting anonymized residential entries.
minCapacityKwintegernullMinimum gross capacity in kW. Set to 100, 500, or 1000 to target commercial installations.
maxCapacityKwintegernullMaximum gross capacity in kW. Useful for segmenting specific market tiers.
includeLocationbooleanfalseWhen enabled, fetches municipal location, PLZ, district, and GPS coordinates from detail records.
sortBystring"newest"Result ordering: newest, oldest, capacity-desc, commissioning-desc.
maxItemsinteger100 (prefill), 0 (default)Maximum records to extract across all combinations. Set 0 for unlimited extraction.
proxyConfigurationobject{"useApifyProxy": true}Proxy configuration. Datacenter proxies ensure consistent throughput.

📦 Sample Output

Every extracted unit is structured as normalized JSON:

{
"unitId": "SEE912847561923",
"mastrNr": "EEG948172635412",
"unitName": "Solarpark Mainfranken GmbH & Co. KG - Teilanlage 1",
"category": "electricity-generation",
"energySource": "Solar",
"status": "In Betrieb",
"operatorName": "Mainfranken Solar Asset Management GmbH",
"operatorMastrNr": "ABR901827364512",
"isCommercial": true,
"grossPowerKw": 749.5,
"netPowerKw": 720.0,
"solarModuleCount": 1820,
"commissioningDate": "2023-08-15",
"reportedDate": "2023-08-20",
"lastUpdated": "2024-02-10",
"city": "Würzburg",
"postalCode": "97076",
"state": "Bayern",
"district": "Würzburg",
"municipality": "Würzburg",
"latitude": 49.7913,
"longitude": 9.9534,
"parcel": "Flur 4, Flurstück 128/3",
"detailUrl": "https://www.marktstammdatenregister.de/MaStR/Einheit/Detail/IndexOeffentlich/SEE912847561923",
"scrapedAt": "2026-11-10T12:00:00.000Z"
}

💡 Practical B2B & Energy Use Cases

1. Solar & Wind Repowering / O&M Lead Generation

Filter for commercial solar or wind installations commissioned between 2000 and 2012 (commissioningDate) with capacities exceeding 500 kW (minCapacityKw: 500). As these facilities transition out of the initial 20-year EEG feed-in tariff guarantee, operators are prime candidates for repowering, modern inverters, PPA advisory, and comprehensive O&M agreements.

2. Large-Scale Battery Storage (BESS) Co-Location

Target commercial ground-mounted solar plants without registered co-located storage units. BESS developers can extract solar assets above 1 MW (grossPowerKw >= 1000) across Bavaria and Brandenburg to pitch revenue-stacking battery solutions (frequency regulation, arbitrage, and curtailment mitigation).

3. Energy Asset Investment & Portfolio Due Diligence

Infrastructure funds, renewable IPPs, and private equity firms conducting market research can map regional asset concentration, operating company structures, and total megawatt capacity across specific federal states or grid distribution zones.

4. Municipal Utilities (Stadtwerke) Benchmarking

Regional utilities can monitor newly registered photovoltaic installations and heat pumps across their concession areas (Netzgebiet) to forecast distribution grid load, transformer upgrades, and local renewable generation density.


🚀 How to Run via Apify API

Integrate MaStR data extraction directly into your automated pipelines:

Node.js (Apify Client)

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('haketa/marktstammdatenregister-scraper').call({
energyTypes: ['solar', 'storage'],
states: ['bayern'],
onlyCommercial: true,
minCapacityKw: 250,
includeLocation: true,
maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Retrieved ${items.length} commercial energy units from MaStR.`);

Python (Apify Client)

import os
from apify_client import ApifyClient
client = ApifyClient(os.getenv('APIFY_TOKEN'))
run = client.actor('haketa/marktstammdatenregister-scraper').call(run_input={
'energyTypes': ['wind'],
'states': ['niedersachsen', 'schleswig-holstein'],
'onlyCommercial': True,
'minCapacityKw': 1000,
'includeLocation': True,
'maxItems': 1000,
})
dataset_items = client.dataset(run['defaultDatasetId']).list_items().items
print(f'Retrieved {len(dataset_items)} commercial wind units from MaStR.')

cURL

curl -X POST "https://api.apify.com/v2/acts/haketa~marktstammdatenregister-scraper/runs?token=$APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"energyTypes": ["solar"],
"states": ["nordrhein-westfalen"],
"onlyCommercial": true,
"maxItems": 250
}'

❓ Frequently Asked Questions

Why are some operator names listed as "(natürliche Person)"? Under German privacy law (BDSG/GDPR), private individuals who operate small residential rooftop solar systems or balcony power plants (Balkonkraftwerke) are anonymized in the public register. To focus exclusively on named businesses and commercial operators, turn on onlyCommercial: true.

How does location enrichment work? The main register search index provides core unit metadata and operator names. When includeLocation: true is enabled, the scraper concurrently inspects each unit's public detail page to extract exact postal codes, city names, districts, municipalities, cadastral parcel IDs, and GPS coordinates.

Can I extract 1,000+ units across multiple states? Yes. You can select multiple federal states (e.g., Bayern, Baden-Württemberg, and NRW) and multiple energy types. The actor automatically paginates in batches of 250 units and scales seamlessly up to your specified maxItems or 0 for unlimited.

What is the difference between gross power and net power? Gross power (Bruttoleistung) is the peak generator nameplate capacity (e.g., total DC solar module capacity or maximum turbine rating). Net power (Nettonennleistung) is the maximum continuous active power that can actually be fed into the public electricity grid after internal station consumption and inverter losses.

How fresh is the data in the register? Data is queried live from the official Marktstammdatenregister. Newly registered energy units, capacity adjustments, and commissioning reports are reflected in the registry in real time.


Can I export data directly to GIS tools like QGIS or ArcGIS? Yes. When includeLocation: true is enabled, every record with geographic data includes latitude and longitude fields formatted in standard WGS84 coordinates. You can export the Apify dataset as CSV or GeoJSON and import it directly into QGIS, ArcGIS, Mapbox, or Google Earth.

Can I search for a specific municipal utility or energy developer? Yes. Use the operatorName field to search for specific corporate entities, such as Stadtwerke, EnBW, RWE, Vattenfall, LEAG, or local citizen energy cooperatives (Bürgerenergie). The search performs substring matching across the official organization name.

What happens if I leave all filters empty? A run with no filters returns a fast, diverse mixed sample of the newest ~100 units across Germany. This allows you to verify the dataset format and fields in seconds before launching targeted large-scale extractions.

How do I schedule regular updates to track newly commissioned plants? You can set up an Apify Schedule (e.g., daily or weekly) with sortBy: "commissioning-desc" or sortBy: "newest" and your target federal states. New installations reported to the registry will appear at the top of each scheduled dataset run.

Does the scraper handle grid connection status? Yes. Units report their operational status, including In Betrieb (currently operational and grid-connected), In Planung (permitted or under development), Vorübergehend stillgelegt (temporarily mothballed), and Endgültig stillgelegt (decommissioned).

Can I filter by postal code prefixes? Yes. You can supply a specific 5-digit postal code (e.g., 80331 for central Munich) or enter postal codes through the API to pull localized clusters of energy generation.

Complement your European energy market intelligence with these scrapers:



🗺️ German Federal State Coverage & Regional Energy Profiles

Germany displays distinct geographic specializations across its 16 federal states (Bundesländer):

  • Northern Wind Hubs (Niedersachsen, Schleswig-Holstein, Mecklenburg-Vorpommern): Host Germany largest concentration of onshore and offshore wind parks, alongside growing green hydrogen electrolyzer projects and coastal battery storage installations.
  • Southern Solar Corridors (Bayern, Baden-Württemberg): Lead the nation in ground-mounted photovoltaic farms (Solarparks), agrivoltaics, and commercial rooftop solar systems, driven by high global solar irradiance.
  • Western Industrial Belts (Nordrhein-Westfalen, Hessen, Rheinland-Pfalz): Feature high densities of industrial combined heat and power (CHP), commercial battery peak-shaving systems, and industrial self-consumption installations.
  • Eastern Expansion Corridors (Brandenburg, Sachsen-Anhalt, Sachsen, Thüringen): Major regions for gigawatt-scale hybrid solar-wind parks developed on former lignite surface mining areas and agricultural land.

📏 Capacity Tiers & B2B Market Segmentation

When configuring minCapacityKw and maxCapacityKw, consider these key statutory thresholds under the German Renewable Energy Sources Act (EEG):

  • Small Commercial & Farm Systems (30 kW – 100 kW): Typical agricultural barns, commercial workshops, and SME rooftop PV installations with high self-consumption shares.
  • Mid-Sized Commercial Rooftops (100 kW – 750 kW): Supermarket logistics hubs, factory roofs, and commercial office buildings. Installations up to 750 kW often participate in direct marketing (Direktvermarktung) without mandatory public tenders.
  • Utility-Scale Ground Mounts (750 kW – 100+ MW): Large-scale solar parks and utility wind farms subject to Federal Network Agency EEG auctions or constructed under merchant corporate PPAs.
  • Commercial Battery Storage (50 kW – 10+ MW): Grid-scale BESS assets installed next to sub-stations or co-located with solar parks for frequency response and day-ahead market trading.

📋 Changelog

Version 1.2 (2026-11)

  • Unlocked 1,000+ Deep Pagination: Removed pagination bottlenecks, allowing multi-state and multi-technology runs to scale past 1,000 records seamlessly.
  • Fast Prefill Execution: Optimized default run parameters to deliver a rich 100-record mixed German energy sample in <30 seconds.
  • Enhanced Location Parsing: Improved coordinate normalization and district extraction across all 16 German federal states.
  • Improved Filter Combination Logic: Enhanced deduplication when querying Cartesian product combinations of energy types and states.

Version 1.1 (2026-07)

  • Added support for gas generation and consumption registry units.
  • Integrated onlyCommercial boolean filter to cleanly segment B2B commercial entities from residential systems.
  • Added sorting capabilities by capacity and commissioning dates.

Version 1.0 (2026-04)

  • Initial release covering official MaStR electricity generation units (Solar, Wind, Biomass, Storage, Hydro).
  • Support for municipal location enrichment, capacity filtering, and multi-format exports.
⌂ 换网址