BYTETOOLS

GovData (Germany) API

Free German open data API with no key: 156,000+ datasets harvested from all 16 federal states plus federal bodies, through the standard CKAN interface. Live example included.

No API key requiredCORS enabledHTTPSFree tier

Endpoint tested and returned HTTP 200 on 2026-08-21

What is the GovData (Germany) API?

GovData is Germany's national open data portal, exposing a free, key-free CKAN API at ckan.govdata.de. It aggregates more than 156,000 datasets harvested from the sixteen Länder, federal ministries and municipal portals, which makes it the single largest German-language dataset index available without registration.

GovData is a metadata broker rather than a data host. Almost nothing is published to it directly: the portal harvests from Länder portals such as Berlin's Datenregister, Hamburg's Transparenzportal and NRW's Open.NRW, then normalises the results into one CKAN index. That is why the count sits at 156,181 while Germany's individual state portals hold a few thousand each, and it is why `organization.title` reads "Land Schleswig-Holstein" rather than the name of the statistics office that actually produced the file.

The harvesting model has a practical consequence you should plan for: licence metadata is inconsistent. Records arrive with `license_id` and `license_title` as empty strings surprisingly often, because the upstream portal did not populate them in a form GovData could map. Do not treat a missing licence as permission — follow the resource URL back to the publishing portal and check there before reusing anything commercially.

Quick facts

Base URL
https://ckan.govdata.de/api/3/action
Authentication
No API key for reads. GovData harvests rather than hosts, so write access is not offered to the public at all.
Rate limit
No published limit. Be considerate — this is a shared federal service.
Pricing
Free. Licences vary widely and are frequently blank; verify at the source portal.
CORS
Enabled — callable directly from browser JavaScript
Official docs
Read the docs

How to use the GovData (Germany) API

Every request below was executed against the live API on 2026-08-21, and the response shown is the real body it returned — not an illustration.

1. Search German government datasets

GET https://ckan.govdata.de/api/3/action/package_search?rows=1

curl
curl 'https://ckan.govdata.de/api/3/action/package_search?rows=1'
JavaScript (fetch)
const res = await fetch("https://ckan.govdata.de/api/3/action/package_search?rows=1");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);
Python (requests)
import requests

res = requests.get("https://ckan.govdata.de/api/3/action/package_search?rows=1", timeout=20)
res.raise_for_status()
print(res.json())
Response — HTTP 200 (truncated)
{
  "help": "https://ckan.govdata.de/api/3/action/help_show?name=package_search",
  "success": true,
  "result": {
    "count": 156181,
    "facets": {},
    "results": [
      {
        "author": null,
        "author_email": null,
        "creator_user_id": "f512f73d-bed2-439d-8f6f-3fbc6048b24e",
        "id": "02ec9037-ebad-46df-b577-fea4bfb6f179",
        "isopen": false,
        "license_id": "",
        "license_title": "",
        "maintainer": null,
        "maintainer_email": null,
        "metadata_created": "2025-08-19T07:39:47.954380",
        "metadata_modified": "2026-08-21T08:00:28.732787",
        "name": "transformingantiquity",
        "notes": "Das Datenset der Antikensammlung Kiel besteht aus 36 einzelnen, fotogrammetrisch hergestellten 3D-Modellen unterschiedlicher Ausstellungsobjekte (Statuen, Vasen, Reliefs usf.) in Form von .obj, .mtl und .jpg, sowie den dazugehörigen Beschriftungen, bzw. Kurzbeschreibungen der Exponate im .txt und .docx-Format. Darüberhinaus beinhaltet unser Datenset mp3-Tonspuren vom Audioguide der Antikensammlung in deutscher und englischer Sprache, welche durch ihre Dateinamen (oder mittels der Exel-Tabelle) neun der Modelle zu geordnet werden können. Zurzeit publizieren wir unsere 3D-Digitalisate auf der Plattform sketchfab.",
        "num_resources": 5,
        "num_tags": 16,
        "organization": {
          "id": "81b1a55a-02f7-42a5-a2b9-85698c6888c4",
          "name": "land-schleswig-holstein",
          "title": "Land Schleswig-Holstein",
          "type": "organization",
          "description": "",
          "image_ur

Parameters

ParameterTypeRequiredDescription
qqueryOptionalFree-text Solr query. German compound nouns matter — search `Binnenschifffahrt`, not `inland shipping`. Verkehr
rowsqueryOptionalDatasets per page. Defaults to 20. 1
startqueryOptionalPagination offset. 0
fqqueryOptionalFilter query, most usefully by the harvesting organisation. organization:land-schleswig-holstein
sortqueryOptionalSort order such as newest first. metadata_modified desc

Response fields

successboolean
CKAN's own success flag, independent of the HTTP status.
result.countinteger
Total matching datasets — 156,181 unfiltered at the time of testing.
results[].author / author_emailstring
The originating body, for example a Land statistics office. Often more precise than `organization`.
results[].organization.titleobject
The harvesting source, typically a Land rather than the producing agency.
results[].license_id / license_titlestring
Frequently an empty string. Treat blank as unknown, never as open.
results[].notesstring
German-language description. There is no English translation field.
results[].metadata_modifiedstring
Timestamp of the last harvest, which changes even when the underlying data did not.
results[].num_resourcesinteger
How many downloadable files or services the record points at.

What you can build with the GovData (Germany) API

  • Search across every German state's open data from one endpoint
  • Monitor a specific Land for newly harvested datasets
  • Build a German-language dataset discovery tool
  • Cross-reference federal statistics with state-level publications
  • Assemble a licence audit by following blank `license_id` records to source

Common errors and how to fix them

HTTP 200 with success false

The action ran but your parameters were rejected.

Fix: Read `error.message` in the body rather than relying on the status code.

Empty results for English queries

The catalogue is indexed in German.

Fix: Search German terms. `Bevölkerung` returns results where `population` returns nothing.

Blank licence on an otherwise complete record

The upstream portal did not supply mappable licence metadata.

Fix: Open the record's source URL and read the licence at the publishing portal before reusing the data.

Stale-looking `metadata_modified`

Harvest timestamps move even when the data does not.

Fix: Compare the resource's own last-modified header if you need true data freshness.

GovData (Germany) API — frequently asked questions

Is the GovData API free?

Yes — reads need no key and no registration. GovData is a federal metadata broker, so there is no public write access to request either.

Why does GovData list so many more datasets than data.gv.at or opendata.swiss?

Because it harvests all sixteen Länder plus federal and municipal portals into one index instead of hosting a curated catalogue. A single state statistics office can contribute tens of thousands of small tabular releases.

Can I use German open data commercially?

Often yes, typically under Datenlizenz Deutschland or a Creative Commons licence, but GovData's licence fields are unreliable. Follow the record back to the publishing portal and confirm there.

Is there an English version of the metadata?

No. Titles and descriptions are German only, so search with German vocabulary and translate on your side if you need an English interface.

Tools that pair with this API

GovData (Germany) is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-21; always check the official documentation before relying on this API in production, as terms and limits can change.