ParseForge Scrapers

Destatis GENESIS Scraper

parseforge/destatis-genesis-scraper

BusinessDeveloper toolsAutomation

Scrapes statistical tables from Destatis GENESIS, the German Federal Statistical Office database. Returns each observation as a flat row with dimension values, time period, and measured value. Supports dataset codes, search queries, and filters for geography, time, and other dimensions.

Run this scraper See the API call
Total users
2
Monthly active
0
Total runs
115
Bookmarked
0
Rating
Not rated yet
Last modified
12 days ago

Overview

ParseForge

Destatis GENESIS Scraper

Scrape German federal statistics from Destatis GENESIS by dataset code or search term, up to a million rows per run. Every row comes with its dimension values, time period, and measured value. No login or API key. Export to CSV, JSON, Excel, or XML.

Destatis GENESIS is the official database of Germany's Federal Statistical Office, holding thousands of tables on population, economy, environment, and more. The official API requires registration and has strict query limits. This Actor reads the public GENESIS-Online interface directly, so you can pull any dataset by its code or discover tables with a keyword search, then filter by geography, time, and other dimensions before the data reaches your dataset.

Who uses it What they scrape Destatis GENESIS for
Market researchers Tracking German demographic and economic indicators for reports
Data journalists Pulling official statistics for news stories and fact-checking
Policy analysts Monitoring labor, health, or environmental trends across German regions
Academic researchers Building time series datasets for econometric or social science studies
Business intelligence teams Feeding German federal statistics into dashboards and models

What it does

This Actor collects statistical tables from Destatis GENESIS by dataset code or search query, and returns each observation as a flat row with dimension values, time period, and measured value.

  • 📊 Data mode: fetch the full table for a dataset code, with optional filters for geography, time, and extra dimensions.
  • 🔍 Catalogue mode: search dataset titles by keyword and get a list of matching codes and descriptions.
  • 🌍 Geographic filter: limit results to specific German states, regions, or all of Germany.
  • 📅 Time filter: request specific years, quarters, or months, or leave empty for the latest available.
  • 🧩 Extra dimension filters: narrow by sex, age, economic sector, or any other dimension in the table.
  • 📦 Flexible output: export to CSV, JSON, Excel, or XML, with up to 1,000,000 rows for paid users.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

What you can do with Destatis GENESIS data

📈 Track regional economic trends.

A policy analyst pulls quarterly GDP by German state to compare recovery rates after a downturn.

📰 Fact-check population claims.

A journalist searches for 'Bevölkerung' in catalogue mode, then fetches the latest population table by age and sex.

🔬 Build a research dataset.

An academic researcher collects annual unemployment rates by region and gender for a labor economics paper.

📊 Monitor environmental indicators.

An NGO data team downloads air quality and waste statistics by year to track progress toward climate goals.

💼 Feed a business dashboard.

A BI analyst schedules weekly runs of retail trade turnover data to update a market intelligence dashboard.

Why choose this scraper

What you get
Official source Data comes directly from Destatis GENESIS, the authoritative German federal statistics database.
No API key No registration or OAuth needed, the Actor reads the public interface.
Filter before export Apply geography, time, and dimension filters to keep only the rows you need.
Scalable Fetch up to 1,000,000 rows per run for paid users, 10 rows for free preview.

How it compares

No other Store actor targets Destatis GENESIS the same way, so the honest comparison is with the alternatives teams actually weigh.

Destatis GENESIS Scraper Build it in-house By hand
Setup Run it now, zero config Days of engineering None, but hours per pull
When Destatis GENESIS changes Maintained for you You fix it You re-learn the page
Proxies, retries, anti-bot Built in Your problem Browser only
Output Fixed JSON schema, CSV/Excel export Whatever you build Copy-paste
Cost Pay per result Engineering time Analyst hours

Configure the run

Drive the Actor from dataset codes and search queries, alone or together, and filters run as each table is read so only matching observations reach your dataset. The Input tab lists every parameter.

A first run with the defaults:

{
  "mode": "data",
  "datasetId": "demo_pjan",
  "maxItems": 10
}

A larger pull:

{
  "mode": "data",
  "datasetId": "demo_pjan",
  "maxItems": 200
}

Pricing

Pay-per-result: $0.0355 per result collected. You pay only for the results written to your dataset.

Results collected Approximate cost
100 results $3.55
1,000 results $35.50
10,000 results $355.00

New Apify accounts start with $5 in free credit.

Free users

Free-plan runs return up to 10 results as a preview. Upgrade your Apify plan to collect up to 1,000,000 results per run.

Run it

  1. Create a free Apify account with $5 in credit.
  2. Open the Destatis GENESIS Scraper.
  3. Set your inputs and any filters, then click Start.
  4. Export the results as CSV, Excel, JSON, or XML from the Dataset tab.

Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python.

Use with AI agents (MCP)

Give an AI agent live access to Destatis GENESIS 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/destatis-genesis-scraper"

Then prompt it in plain language to run the scraper and read back the results.

Troubleshooting

Why am I getting no results?

Check that your dataset code is valid and spelled correctly. In catalogue mode, try a broader search term. Also ensure your filters are not too restrictive; for example, a geo code that does not exist in the table will return nothing.

The run returns only 10 rows even though I need more.

Free users are limited to 10 rows as a preview. Upgrade to a paid Apify plan to increase the limit up to 1,000,000 rows.

I get an error about invalid extraFilters.

The 'extraFilters' input must be a valid JSON object. For example: {"sex":["M","F"]}. Check for missing quotes or commas.

The dataset code I found in catalogue mode does not work in data mode.

Some codes may require additional dimension filters to return data. Try leaving filters empty first, then add them one by one to see which dimension is causing the issue.

The run takes a long time or times out.

Large tables with many dimensions can take a while. Reduce the number of rows by applying filters, or split the request into smaller time periods.

FAQ

Question Answer
What is Destatis GENESIS? Destatis GENESIS is the official statistics database of the German Federal Statistical Office (Statistisches Bundesamt). It contains thousands of tables on population, economy, environment, and many other topics.
Do I need an API key or registration? No. This Actor reads the public GENESIS-Online interface directly, so no API key or registration is required.
How do I find the dataset code I need? Use catalogue mode with a search term like 'inflation' or 'Bevölkerung'. The Actor returns matching dataset codes and titles, which you can then use in data mode.
Can I filter by German state or region? Yes. Use the 'geo' input to specify ISO country codes or German regional codes. Leave it empty to get all of Germany.
What time periods can I request? You can specify years, quarters (e.g. 2024-Q1), or months (e.g. 2024-12). Leave the time field empty to get the latest available data.
How many rows can I scrape? Free users are limited to 10 rows as a preview. Paid users can fetch up to 1,000,000 rows per run.
What export formats are supported? You can export the results as CSV, JSON, Excel, or XML.
Can I filter by dimensions like sex or age? Yes. Use the 'extraFilters' input to pass a JSON object mapping dimension codes to values, for example {"sex":["M","F"]}.
Is the data in German or English? The underlying data is from Destatis, which provides labels in German and sometimes English. The Actor returns the raw values as provided by the source.
Can I schedule regular runs? Yes, you can schedule the Actor on Apify to run daily, weekly, or at any interval, and receive updated statistics automatically.

Related actors

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 Statistisches Bundesamt (Destatis). It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

Input

FieldTypeWhat it doesDefault
mode string (2 options) What to scrape data
datasetId string (8218 options) Eurostat dataset code (e.g. demo_pjan = Population, prc_hicp_manr = HICP inflation, namq_10_gdp = Quarterly GDP). Browse codes in catalogue mode. demo_pjan
geo array ISO country codes (DE, FR, IT, ES, EU27_2020, EA). Leave empty for all countries. []
time array Specific time periods (e.g. 2023, 2024, 2026-Q1, 2024-12). Leave empty for the latest available. []
extraFilters object Map of dimension code -> array of values, e.g. {"sex":["M","F"], "age":["TOTAL"]} {}
searchQuery string Filter catalogue entries whose title contains this keyword (case-insensitive) not set
maxItems integer Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000 10

Pricing

from $26.62 per 1,000 results

Charged forWhat it isPrice each
result Single result in the default dataset. $0.02662 to $0.0355

Tiered: the lower figure is the price on a higher Apify plan. Billing and the free credit live on Apify.

API

One POST returns the dataset directly. Same shape for every scraper in the library, so swapping the slug is the only change.

POST · run and get results
curl -X POST "https://api.apify.com/v2/acts/parseforge~destatis-genesis-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "helloWorld": 123
  }'

Examples

Input that runs as-is.

input.json
{
  "helloWorld": 123
}

Reviews

No reviews yet. Be the first.

Issues

We build and maintain this scraper, so a problem with it comes to us. Report it on the Apify listing and the thread stays attached to the scraper where the next person can find it: open an issue.

Broken and urgent, or you would rather not post in public? Write to parseforge@protonmail.com and it reaches the people who wrote it.

Related scrapers

Run Destatis GENESIS Scraper on Apify All scrapers