Marktstammdatenregister (MaStR) Scraper – Solar, Wind & Storage avatar

Marktstammdatenregister (MaStR) Scraper – Solar, Wind & Storage

Pricing

from $0.04 / actor start

Go to Apify Store
Marktstammdatenregister (MaStR) Scraper – Solar, Wind & Storage

Marktstammdatenregister (MaStR) Scraper – Solar, Wind & Storage

Export solar parks, wind farms, battery storage and CHP plants from Germany's public Marktstammdatenregister: operator name, capacity in kW, commissioning date, full address, district, grid operator. 9.6 million registered units, filterable by source, state, power and age.

Pricing

from $0.04 / actor start

Rating

0.0

(0)

Developer

Perceptron Data

Perceptron Data

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

18 hours ago

Last modified

Categories

Share

MaStR Energy Assets

Set filters, get one row per power unit from Germany's Marktstammdatenregister: operator, capacity in kW, commissioning date, address, grid operator. Solar, wind, storage and CHP; by default only units with a named operator – the register anonymises private persons.

Limits: no contact details – the register publishes operator names, not emails or phones. Coordinates are missing for many small units; private operators are anonymised by the register. A run with the default input stops after 100 units.

MaStR Energy Assets output: five wind units of 5,000 kW or more with operator, unit, capacity, city, state, commissioning date, status and MaStR number – run of 12 October 2026

The Marktstammdatenregister (MaStR) is the Bundesnetzagentur's public register of power units in Germany – solar parks, wind farms, battery storage, CHP plants. 9.6 million registered units (12 Oct 2026). Filter them down to exactly the segment you sell into.

How to use – step by step

  1. Click Try for free on this page (a free Apify account is enough) – the form opens with solar units of 100 kW or more in all of Germany, 100 units.
  2. Choose the Energy source, the Federal state, Minimum gross power (kW) and Maximum gross power (kW), Commissioned after / Commissioned before and the Operating status.
  3. Keep Only units with a named operator on; switch it off only for statistics.
  4. Set Maximum units (default 100) and click Start. Five wind units of 5,000 kW or more (3,441 matches) took 3.5 seconds in a local test run on 12 October 2026.
  5. Open the Output tab: the Energy assets view shows operator, unit, energy source, capacity, place, commissioning date, grid operator, status and the register link. Export as CSV, Excel or JSON, or read the rows through the API. The free COVERAGE record says how many units matched and why the run stopped.

What you can ask for

QuestionFilterResult
Solar parks in Bavaria over 750 kW built before 2012 (repowering leads)solar · BY · min 750 kW · before 2012named operators, 15–20 year old plants
Every wind turbine of 2 MW or more in operationwind · min 2,000 kW21,606 units
Commercial battery storage of 100 kW or more in operationstorage · min 100 kW2,139 units
New commercial PV since January (fresh installations)solar · min 100 kW · after 2026-01-01this year's market
Everything a specific grid operator connectsany · filter the export by gridOperatorportfolio view

What you get per unit

FieldExample
operatorNameAquila SolarINVEST II GmbH & Co. KG
unitName, mastrNumberSolarpark Bergrheinfeld · SEE900...
energySource, grossPowerKw, netPowerKwSolare Strahlungsenergie · 2,239.08 kW
commissionedOn, ageYears2010-12-30 · 15.6
status, shutDownOnIn Betrieb
street, postalCode, city, municipality, district, federalStatefull address
latitude, longitudewhere available, for mapping
gridOperator, gridOperatorMastrNumber, voltageLevelN-ERGIE Netz GmbH · SNB… · Mittelspannung
gridOperatorCheckchecked or in progress — the grid operator's review of the entry
usableStorageCapacityKwh, storageTechnologybattery storage: capacity in kWh, Batterie / Pumpspeicher
turbineManufacturer, turbineModel, hubHeightM, rotorDiameterM, windLocationwind: ENERCON GmbH · E-115 · 149.08 · 115.71 · Windenergie an Land
parkName, eegMastrNumber, operatorPersonTypeWindpark Kreuzstein · EEG… · organisation
registeredOn, lastUpdated, registryUrlprovenance and a link to the entry in the register
checkedAt, query, dataSource, dataLicensewhen the register was asked, the effective filter, source and licence

Values are passed on in the register's own wording (German), so they can be matched against the register itself.

Who buys this

  • Solar and wind service companies — plants commissioned 15+ years ago are the repowering, module-replacement and O&M market, and every one of them has to be registered here
  • Battery storage and PPA developers — find commercial sites with existing generation and grid connection
  • Grid and energy consultants — asset inventories per district or grid operator
  • Component suppliers — who operates what capacity, where
  • Research and journalism — the energy transition in numbers, by municipality
  • AI agents — clean schema, plain filters, callable via MCP

Data protection – what the register publishes

The Marktstammdatenregister anonymises private individuals at the source: their operator name is returned as "natürliche Person (…)", never as a real name. This actor keeps only units with a named operator by default.

Named operators are not always companies in the narrow sense, though: partnerships (GbR) and sole traders (e. K., "… Inh. …") are registered as organisations, and their trading names often contain a person's name (measured: 147 of the first 1,000 rows of the default filters). Treat those rows as personal data under GDPR.

Input example

{
"energy_source": "solar",
"federal_state": "BY",
"min_power_kw": 750,
"commissioned_before": "2012-01-01",
"status": "in_operation",
"only_named_operators": true,
"max_items": 5000
}

Output example

{
"operatorName": "Aquila SolarINVEST II GmbH & Co. KG",
"unitName": "SOLAR 2 - BERGRHEINFELD",
"energySource": "Solare Strahlungsenergie",
"grossPowerKw": 2239.08,
"commissionedOn": "2010-12-30",
"ageYears": 15.8,
"status": "In Betrieb",
"city": "Bergrheinfeld",
"district": "Schweinfurt",
"federalState": "Bayern",
"gridOperator": "ÜZ Mainfranken eG (SNB929185184919)",
"gridOperatorMastrNumber": "SNB929185184919",
"gridOperatorCheck": "in progress",
"registryUrl": "https://www.marktstammdatenregister.de/MaStR/Einheit/Detail/IndexOeffentlich/1820884",
"checkedAt": "2026-10-12T12:58:54Z",
"query": "energy_source=solar; federal_state=BY; status=in_operation; gross power >= 750 kW; commissioned_before=2012-01-01; only named operators"
}

Every row is checked against your filter

The register's endpoint has two silent failure modes, both measured: an invalid filter is answered with "success" and no data, and a filter field it does not recognise is silently ignored — the register then returns unfiltered rows. This actor therefore checks every row against your filter before delivering it and stops with an explanation instead of selling rows you did not ask for. Power limits are inclusive (100 kW keeps units of exactly 100 kW).

Every run also writes a free COVERAGE record to its key-value store: the effective filter, how many units matched in the register, how many were delivered or skipped (anonymised private operators), and why the run stopped — all delivered, your maximum reached, your maximum cost per run reached, the run timeout near, or the register not answering. The status message says the same in one line; a run never claims more than it stored.

What does a run cost?

$0.04 per run start plus a price per unit that drops with your Apify plan:

Your Apify planPer unit1,000 units10,000 units
Free$0.004$4.04$40.04
Starter$0.003$3.04$30.04
Scale$0.0024$2.44$24.04
Business & Enterprise$0.002$2.04$20.04

A run with the default input stops after 100 units: $0.44 on the Free plan. Raise max_items for a full export. You pay only for units actually delivered. Filters (min_power_kw, federal state, commissioning date) keep large exports to the segment you need.

Why not just use the register's own website

The register's export is capped, its filter syntax is a grid dialect with numeric German code lists (Energieträger~eq~'2495'), and dates come back as /Date(1699999999999)/. This actor gives you plain filters, ISO dates, a computed plant age, resolved code lists and one flat row per unit — plus pagination past the point where the website stops.

Limitations – stated honestly

  • Coordinates are not filled for every unit. The register carries them for larger installations far more often than for small ones.
  • Private operators are anonymous. That is the register's decision, not a gap in this actor — and only_named_operators: false returns those rows if you want them for statistics.
  • Very broad queries are large: "all solar in Germany" is 6.57 million rows. Use min_power_kw and a federal state to stay in a sensible range. Long exports stop cleanly before the run timeout and keep everything already delivered.

Source and licence

Data comes from the Marktstammdatenregister of the Bundesnetzagentur, the German federal network agency. The register's data is published under the Datenlizenz Deutschland – Namensnennung – Version 2.0 (dl-de/by-2-0), which permits commercial use, modification and redistribution with attribution.

Every exported record carries dataSource and dataLicense fields, so the attribution travels with the data into your system. When you republish figures derived from it, name the source: Marktstammdatenregister, Bundesnetzagentur, dl-de/by-2-0.

Requests are paced so the register's website stays responsive for everyone else.

Changelog

  • 12 October 2026 – The default run exports 100 units instead of 1,000 ($0.44 instead of $4.04 on the Free plan). Called through the API without a power filter, all sizes are returned; the 100 kW in the form is an example.
  • 12 October 2026 – Every row is checked against your filter before it is delivered and carries checkedAt and the effective filter (query); a free COVERAGE record per run. New fields: storage capacity, wind turbine data, voltage level and the grid operator's check. At your cost limit or near the timeout the run stops cleanly and says how much it stored.

Auf Deutsch: Daten aus dem Marktstammdatenregister exportieren

Filter rein, je Anlage eine Zeile raus: Solarparks, Windenergieanlagen, Batteriespeicher und BHKW aus dem Marktstammdatenregister mit Betreiber, Leistung in kW, Inbetriebnahme, Anschrift und Netzbetreiber. Standardmäßig nur Anlagen mit benanntem Betreiber – Privatpersonen anonymisiert das Register selbst; Lizenz dl-de/by-2-0.

Im Einzelnen: Solarparks, Windenergieanlagen, Batteriespeicher, Biomasse-, Wasserkraft- und Gasanlagen aus dem Marktstammdatenregister (MaStR) der Bundesnetzagentur mit Betreiber, Brutto- und Nettoleistung in kW, Inbetriebnahmedatum und Anlagenalter, Status, Anschrift mit Gemeinde, Landkreis und Bundesland, Koordinaten (wo vorhanden) und Netzbetreiber.

Filter: Energieträger, Bundesland, Mindest- und Höchstleistung (jeweils einschließlich), Inbetriebnahme vor oder nach einem Datum, Betriebsstatus. Achtung: GbR und Einzelkaufleute stehen unter ihrem Firmennamen im Register, der oft den Namen einer Person enthält. Jede Zeile wird vor der Lieferung gegen den Filter geprüft und trägt Prüfzeitpunkt und Abfrage; neu sind Speicherkapazität (kWh), Windtechnik (Hersteller, Typ, Nabenhöhe, Rotordurchmesser), Spannungsebene und der Stand der Netzbetreiberprüfung.

Typische Anwendungsfälle: Repowering- und Wartungsmärkte (Anlagen älter als 15 Jahre), Speicher- und PPA-Projektentwicklung, Netz- und Energieberatung. Lizenz: Datenlizenz Deutschland – Namensnennung 2.0.

FAQ

What is the Marktstammdatenregister (MaStR)? The register of the Bundesnetzagentur in which every electricity generating unit in Germany must be registered — from utility-scale wind farms down to rooftop solar and home batteries.

Isn't there an official download? There is a full XML dump of several gigabytes and a SOAP web service that requires a registered account. This actor gives you filtered, flat, ready-to-use rows instead — no account, no XML parsing.

How current is the data? Live: every run queries the register at that moment. Operators must register new units shortly after commissioning, so new installations appear within weeks.

Do I get e-mail addresses or phone numbers of operators? No — the register does not publish contact details, only the operator's name and the unit's location. To enrich operators with company data, look up their websites and run them through the Imprint & VAT Check.

Why are private operators left out? The register anonymises private individuals. Their rows carry no usable name, so they are skipped by default; only_named_operators: false includes them for statistics.

Can I use the data commercially? Yes. The licence (dl-de/by-2-0) allows commercial use with attribution, and every record carries the attribution fields with it.

Does it need a proxy or login? No. Requests are paced politely and need no proxy, cookies or account.

More from Perceptron Data

ActorWhat it does
Advertiser Check (Google & Bing)Company list in, one row per company out: Google ads, Bing ads, ad counts, accounts
Imprint & VAT CheckDomains in, company rows out: legal name, address, register number and EU VAT ID checked against VIES (Swiss UIDs excluded)
Free Imprint & Contact CheckThe same company row, free, for up to 10 websites per run
PDF to MarkdownPDF, Word, Excel and PowerPoint to Markdown for AI – tables as JSON, OCR for scans
Research AgentA question in, cited passages out – every source graded by evidence level
App Store & Google Play DataApp IDs or App Store keywords in, one row per app out, plus App Store reviews
Arbeitsagentur JobsGerman job listings from the Jobbörse of the Bundesagentur für Arbeit
kununu Employer DataEmployer score vs. industry, salary ranges, benefits and reviews for DACH companies
Messe München ExhibitorsExhibitor lists of bauma, IFAT, BAU and more
Koelnmesse ExhibitorsExhibitor lists of Anuga, ISM, imm cologne and more
TED TendersEU public tenders and contract awards from TED
EUDAMED Medical DevicesEU medical devices, manufacturers and certificates
Data Source FinderFree: tells you which ready-made scraper covers your data source

Support

Bug reports are welcome in the Issues tab.