PLZ Suche
Die PLZ-Suche ermöglicht eine schnelle und präzise Abfrage von Postleitzahlen und zugehörigen Ortsinformationen per AJAX – ideal für Autocomplete-Felder oder Echtzeit-Validierungen. Bitte beachten Sie, dass der Referer der Domain mit dem API-Schlüssel übereinstimmen muss, wie es in den Backend-Einstellungen festgelegt wurde.
Endpunkt
https://api.gdpr-map.eu/plz/search?[PARAMETER]&key=[API_KEY]
Beispiel
https://api.gdpr-map.eu/plz/search?query=812&limit=25&skip=0&key=[API_KEY]
Parameter
| Parameter | Datentyp | Beschreibung |
|---|---|---|
| query | string | PLZ (z. B. „80333“) oder Orts-/PLZ-Name |
| limit | integer | Maximale Anzahl der zurückgegebenen Ergebnisse (mindestens 20 möglich) |
| skip | integer | Anzahl der Einträge, die übersprungen werden sollen (Pagination/Offset) |
-
query Der eigentliche Suchbegriff. Kann entweder eine Postleitzahl (z. B.
80331) oder ein Text sein (z. B.München,Freiburg,50667 Köln). Die API versucht, den Begriff auf PLZ oder PLZ+Ort zu matchen. -
limit Legt fest, wie viele Ergebnisse maximal zurückgegeben werden sollen. Empfohlener Bereich: 20–50. Die API erlaubt mindestens 20.
-
skip Überspringt die ersten X Ergebnisse. Wird zusammen mit
limitfür Pagination verwendet. Beispiel:skip=20&limit=20→ Seite 2 mit je 20 Einträgen.
API Call Beispiele
HTML/JS
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<title>PLZ-Suche</title>
<style>
body { font-family: Arial; padding: 40px; }
input { width: 100%; padding: 12px; font-size: 18px; }
ul { background: white; border: 1px solid #ccc; margin: 0; padding: 0; }
li { padding: 10px; cursor: pointer; }
li:hover { background: #e0f0ff; }
</style>
</head>
<body>
<h2>PLZ suchen</h2>
<input type="text" id="plz" placeholder="z. B. 812, 10, Berlin" autocomplete="off">
<ul id="ergebnis"></ul>
<script>
document.getElementById('plz').addEventListener('input', function() {
let q = this.value.trim();
let liste = document.getElementById('ergebnis');
if (q.length < 1) { liste.innerHTML = ''; return; }
fetch(`https://api.gdpr-map.eu/plz/search?query=${q}&limit=10&key=DEIN_API_KEY`)
.then(r => r.json())
.then(data => {
liste.innerHTML = '';
data.results.forEach(plz => {
let li = document.createElement('li');
li.textContent = `${plz.postcode} ${plz.municipality}${plz.district ? ' – ' + plz.district : ''}`;
li.onclick = () => {
document.getElementById('plz').value = plz.postcode;
liste.innerHTML = '';
};
liste.appendChild(li);
});
});
});
</script>
</body>
</html>
Antwort
{
"results": [
{
"id": 907,
"municipality": "Berlin",
"postcode": "10115",
"district": "Mitte",
"borough": null,
"longitude": 13.387831811466326,
"latitude": 52.531750536359766
}
],
"pagination": {
"total": 54,
"count": 25,
"limit": 25,
"skip": 0,
"has_more": true
},
"performance": {
"search_time_ms": 0,
"records_matched": 54
},
"query_info": {
"original_query": "10",
"processed_query": "10"
}
}