InfraNode.dev
MCP InfraNode is also available as an MCP server for AI assistants like Claude and ChatGPT.

Crime statistics API for German cities (PKS)

A bare case count says little as long as the population next to it is missing. This API therefore returns three figures per main offence group: cases, frequency per 100,000 inhabitants and clearance rate, straight from the police crime statistics of the German Federal Criminal Police Office. Key-free, with reference year and version in every response.

What data you get

Per city the endpoint returns the reference year, the version of the statistic and, per main offence group, the number of cases, the frequency per 100,000 inhabitants and the clearance rate in percent. The group for all offences is included, so the total and its parts come in the same response.

  • Reference year
  • Version of the statistic
  • Main offence group with label
  • Number of cases
  • Frequency per 100,000 inhabitants
  • Clearance rate in percent

Source: Police crime statistics (PKS) - Bundeskriminalamt. License: DL-DE/BY 2.0. Source, license URL and timestamp are included in every API response in the meta and attribution block.

How to fetch it

A simple GET request, no key and no sign-up:

curl https://infranode.dev/api/v1/cities/koeln/crime-stats

For another city, just put the slug from the cities list into the path.

No key, no sign-up, free.

Covered cities

All cities in the register. The PKS is published per district and district-free city: if a city is not a district of its own, the value applies to the surrounding district, not to the city boundary. Reference year and version are part of every response because the Federal Criminal Police Office requires both in the attribution.

Available for all 84 covered cities. The exact per-city status is on the coverage and status page, the full list of cities on the cities overview.

Straight to the largest covered cities: Berlin , Hamburg , München , Köln , Frankfurt am Main , Stuttgart , Düsseldorf , Leipzig , Dortmund , Essen .

Endpoint reference

All parameters, fields and response examples are in the API reference for this endpoint. InfraNode is also available as an MCP server for AI assistants.

Frequently asked questions

What is the frequency figure?
The number of cases per 100,000 inhabitants. It makes regions of different size comparable, whereas the raw case count mostly mirrors population size.
Does the value apply to the city or to the district?
For a district-free city it applies to the city itself. If the city sits inside a rural district, the reported value is the district value because the PKS is not published at a finer resolution. The response names the region openly.
Are years directly comparable?
Only with care. Recording rules and offence groups can change, which is why every response carries the version of the statistic. A comparison should use the same version and the same group.
Are crime scenes available at street level?
No. The PKS is published per district and the source provides no finer geodata. Anything that looked like it would be an estimate.

More data types