Address API - Autovervollständigung aus einer Postleitzahl (Classic)

Support DQE
Support DQE
  • Aktualisiert
Trichter-Autovervollständigung - Standard-API

Erstellen Sie ein postleitzahlbasiertes Adressformular mit den klassischen Endpunkten CP/ADR/COMPL: Ermitteln Sie die Stadt anhand einer Postleitzahl oder eines Namens, listen Sie deren Straßen auf und zeigen Sie dann Gebäudeteil-Optionen an, sobald eine Straße ausgewählt wurde.

Groß-/Kleinschreibung der Ausgabe - Die Schreibweise folgt der Postnorm des jeweiligen Landes.

Stadtsuche (CP)

Erster Schritt des Trichter-Ansatzes. Gibt passende Städte und Postleitzahlen anhand einer teilweisen oder vollständigen Postleitzahl- oder Ortsnamenseingabe zurück. Das Feld IDLocalite aus jedem Ergebnis dient als Eingabe für den nächsten Schritt: ADR.

Anfrage

CP unterstützt sowohl GET als auch POST.

{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/CP/?CodePostal={POSTAL_CODE}&Alpha=True&Pays={COUNTRY_CODE}&Licence={LICENCE_CODE}

cURL-Beispiel

Frankreich - Suche nach Postleitzahl

curl "https://{SERVER_ADDRESS}/CP/?CodePostal=75008&Alpha=True&Pays=FRA&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/CP/?" + new URLSearchParams({ CodePostal: "75008", Alpha: "True", Pays: "FRA", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/CP/", params={ "CodePostal": "75008", "Alpha": "True", "Pays": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'CodePostal' => '75008', 'Alpha' => 'True', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/CP/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/CP/', { params: { CodePostal: '75008', Alpha: 'True', Pays: 'FRA', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/CP/" + "?CodePostal=75008&Alpha=True&Pays=FRA&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/CP/" + "?CodePostal=75008&Alpha=True&Pays=FRA&Licence={LICENCE_CODE}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/CP/" + "?CodePostal=75008&Alpha=True&Pays=FRA&Licence={LICENCE_CODE}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/CP/

Senden Sie alle Parameter im Anfrage-Body mit Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

cURL-Beispiel

curl -X POST "https://{SERVER_ADDRESS}/CP/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "CodePostal=75008" \ -d "Alpha=True" \ -d "Pays=FRA" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/CP/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ CodePostal: "75008", Alpha: "True", Pays: "FRA", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/CP/", data={ "CodePostal": "75008", "Alpha": "True", "Pays": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/CP/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'CodePostal' => '75008', 'Alpha' => 'True', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/CP/', qs.stringify({ CodePostal: '75008', Alpha: 'True', Pays: 'FRA', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "CodePostal=75008&Alpha=True&Pays=FRA&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/CP/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["CodePostal"] = "75008", ["Alpha"] = "True", ["Pays"] = "FRA", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/CP/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Werts{} form.Set("CodePostal", "75008") form.Set("Alpha", "True") form.Set("Pays", "FRA") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/CP/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Wert Beschreibung Pflicht/Optional
Licence {LICENCE_CODE} Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. Pflicht
CodePostal {POSTAL_CODE} Eingabe der Postleitzahl oder des Ortsnamens. Pflicht
Pays {COUNTRY_CODE} ISO-3166-1-Alpha-3-Ländercode für den Suchbereich der Adresse. Beispiel: FRA oder GBR. Pflicht
Alpha True Immer True senden. Erforderlicher Parameter. Pflicht
Instance {INSTANCE} Wird in den Ergebnissen dieses Endpunkts nicht zurückgegeben - kann weggelassen werden. Optional
Etendue Y or N Ermöglicht die Suche ab nur 2 Zeichen in der Postleitzahleingabe. Standard: N. Optional
NbMax {NB} Maximale Anzahl der zurückgegebenen Ortsvorschläge. Optional
Filter {FILTER} Steuert die Art der zurückgegebenen Ergebnisse. Wird er weggelassen, enthält die Antwort Postleitzahlen, Straßen (sofern verfügbar) und CEDEX-Einträge.
1 = nur Postleitzahl & CEDEX · 2 = Postleitzahl & Straße (ohne CEDEX) · 3 = nur Postleitzahl · 4 = ein Vorschlag pro Postleitzahl & Ort (nur Malaysia)
Optional
Langue {LANGUAGE} Filtert Ergebnisse nach Sprache/Schriftsystem. JPN: JP = Kanji · JK = Katakana · EN = Romanisiert. HKG: EN · ZH. THA: EN · TH. Siehe Sprachleitfaden. Optional
Frankreich & Belgien: Postleitzahlen können mehreren Gemeinden zugeordnet sein (fragmentierte Gruppierung). CP gibt pro Gemeinde eine Ergebniszeile zurück.

Antwort

Bei Erfolg gibt die API ein JSON-Objekt zurück. Die Schlüssel sind Rangnummern von "1" bis "n", die jeweils einem Wörterbuch mit Adressfeldern zugeordnet sind.

Variables Antwortschema - Wenn IDVoie befüllt ist, erscheint Voie im JSON. Wird nur eine Stadt zurückgegeben, fehlt Voie. Verwenden Sie ein nicht leeres IDVoie, um zu erkennen, welches Schema zutrifft.
Reihenfolge der Ergebnisse - Die Ergebnisse werden nach Relevanz gereiht, nicht nach aufsteigender Postleitzahl. Wird eine exakte Postleitzahl eingegeben, die einer einzigen Stadt entspricht, wird ein Ergebnis zurückgegeben. Wird eine unvollständige Postleitzahl mit Etendue=Y eingegeben, werden die Ergebnisse nach Bevölkerungsdichte sortiert (größte Stadt zuerst). Wird ein Ortsname eingegeben (vollständig oder teilweise), erscheinen exakte Treffer zuerst, gefolgt von einer Relevanzreihung nach Schlüsselwörtern.
Feld Beschreibung Frankreich International
Province ISO-Code des Bundeslands bzw. der Verwaltungsregion (z. B. 17 für Japan). String (50) String (50)
IDLocalite Eindeutige Stadtkennung (INSEE-Code für Frankreich). String (20) String (20)
Pays ISO-3166-1-Alpha-3-Ländercode. String (3) String (3)
Instance Internes Feld. String String
CodePostal Postleitzahl der Adresse. String (10) String (10)
SousLocalite Unterort (Bezirk, Stadtteil, Vorort). Empty String (50)
LieuDit Benannter Ortsteil oder Weiler (Frankreich) bzw. entsprechendes Feld auf Bezirksebene (international). Die Verfügbarkeit variiert je nach Land. String (38) String (50)
Localite Stadtname. String (38) String (50)
Latitude Geokoordinaten des gefundenen Orts. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
Longitude Geokoordinaten des gefundenen Orts. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
IDVoie Eindeutige Straßenkennung. Wird nur befüllt, wenn die Postleitzahl einer bestimmten Straße zugeordnet ist. Ist sie vorhanden, können Sie ADR überspringen und IDVoie direkt an COMPL übergeben. String (20) String (20)
Voie Straßenname. Only present in the response when IDVoie is populated. String (38) String (150)
NbNumero
also: Nbnumero
Total number of house numbers on the matched street. Populated only when IDVoie is present; empty otherwise. Both keys (NbNumero / Nbnumero) refer to the same value. String String
ListeNumero Semicolon-separated list of valid street numbers for the matched street. Always contains all numbers when present; empty when IDVoie is absent. String (1024) String (1024)
Numero Vollständige Hausnummer einschließlich etwaiger Zusätze (bis, ter usw.). String (38) String (38)
TypeVoie Straßentyp (z. B. RUE, AVENUE, BOULEVARD). Wird nicht für alle internationalen Datensätze zurückgegeben. String (20) String (20)
Complement Zusätzliche Adressinformationen. Empty String (50)
Entreprise Firmenname, der der Adresse zugeordnet ist. String (38) String (38)
Cedex CEDEX-Indikator: 1 = CEDEX-Adresse, 0 = keine CEDEX-Adresse. String (1) String (1)
Region1 ISO-Bezeichnung des Bundeslands bzw. der Verwaltungsregion (z. B. ISHIKAWA für Japan). Not available String (50)
Region2 Landkreis oder entsprechende Verwaltungsebene. Not available String (50)
Region3 Landkreis oder entsprechend (alternative Ebene). Not available String (50)
Region4 Zusätzliche regionale oder administrative Informationen. Not available String (50)

Antwort example

Antwortbeispiel - Frankreich (75008 Paris)
{ "1": { "Province": "*", "IDLocalite": "75108", "NbNumero": "", "Pays": "FRA", "IDVoie": "", "Cedex": "0", "Numero": "", "TypeVoie": "", "Instance": "", "ListeNumero": "", "CodePostal": "75008", "SousLocalite": "", "LieuDit": "", "Latitude": "48.8775112171854", "Localite": "PARIS", "Longitude": "2.31760169076841", "Complement": "", "Entreprise": "" } }
Antwortbeispiel - Japan (108-6390)
{ "1": { "Cedex": "0", "CodePostal": "108-6390", "Complement": "", "Entreprise": "", "IDLocalite": "402574_1086390", "IDVoie": "", "Instance": "0", "Latitude": "", "LieuDit": "", "ListeNumero": "", "Localite": "ミナトク", "Longitude": "", "NbNumero": "", "Numero": "", "Pays": "JPN", "Province": "13", "SousLocalite": "", "TypeVoie": "", "Region1": "トウキョウト" } }

Fehler

HTTP Fehlertyp Antworttext
200 Fehlende oder leere Licence {} - leeres Ergebnis, kein Fehler ausgelöst
401 Falsche oder abgelaufene Licence unauthorized_client
400 Fehlender Parameter CodePostal Bad Request Parameters * not allowed
400 Tippfehler im Parameternamen (z. B. codepostal statt CodePostal) Bad Request Parameters * not allowed
200 Nicht erkannter ISO-Code für Pays (z. B. AAA) {} - leeres Ergebnis, kein Fehler ausgelöst
401 Ungültiges Länderformat (z. B. FRAN statt FRA) unauthorized_country

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Straßensuche (ADR)

Zweiter Schritt des Trichter-Ansatzes. Anhand eines IDLocalite von CP und eines teilweisen Straßennamens werden passende Straßen zurückgegeben. Das Feld IDVoie aus jedem Ergebnis dient als Eingabe für den letzten Schritt: COMPL.

Anfrage

ADR unterstützt sowohl GET als auch POST.

{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. {CITY_ID} stammt aus dem Feld IDLocalite der CP-Antwort, wenn der Nutzer eine Stadt auswählt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
Der Wert von Adresse muss URL-codiert sein - z. B. l'église → l%27%C3%A9glise.
GEThttps://{SERVER_ADDRESS}/ADR/?IDLocalite={CITY_ID}&Adresse={INPUT}&Pays={COUNTRY_CODE}&Licence={LICENCE_CODE}

cURL-Beispiel

Frankreich - IDLocalite aus dem vorherigen CP-Schritt

curl "https://{SERVER_ADDRESS}/ADR/?IDLocalite=75108&Adresse=bienfaisance&Pays=FRA&Licence={LICENCE_CODE}&Taille=38&Version=1.1"
fetch("https://{SERVER_ADDRESS}/ADR/?" + new URLSearchParams({ IDLocalite: "75108", Adresse: "bienfaisance", Pays: "FRA", Licence: "{LICENCE_CODE}", Taille: "38", Version: "1.1" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/ADR/", params={ "IDLocalite": "75108", "Adresse": "bienfaisance", "Pays": "FRA", "Licence": "{LICENCE_CODE}", "Taille": "38", "Version": "1.1", }, ) print(response.json())
<?php $params = http_build_query([ 'IDLocalite' => '75108', 'Adresse' => 'bienfaisance', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', 'Taille' => '38', 'Version' => '1.1', ]); $ch = curl_init("https://{SERVER_ADDRESS}/ADR/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/ADR/', { params: { IDLocalite: '75108', Adresse: 'bienfaisance', Pays: 'FRA', Licence: '{LICENCE_CODE}', Taille: '38', Version: '1.1' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/ADR/" + "?IDLocalite=75108&Adresse=bienfaisance&Pays=FRA&Licence={LICENCE_CODE}&Taille=38&Version=1.1"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/ADR/" + "?IDLocalite=75108&Adresse=bienfaisance&Pays=FRA&Licence={LICENCE_CODE}&Taille=38&Version=1.1"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/ADR/" + "?IDLocalite=75108&Adresse=bienfaisance&Pays=FRA&Licence={LICENCE_CODE}&Taille=38&Version=1.1" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }
POSThttps://{SERVER_ADDRESS}/ADR/

Senden Sie alle Parameter im Anfrage-Body mit Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

cURL-Beispiel

curl -X POST "https://{SERVER_ADDRESS}/ADR/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "IDLocalite=75108" \ -d "Adresse=bienfaisance" \ -d "Pays=FRA" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/ADR/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ IDLocalite: "75108", Adresse: "bienfaisance", Pays: "FRA", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/ADR/", data={ "IDLocalite": "75108", "Adresse": "bienfaisance", "Pays": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/ADR/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'IDLocalite' => '75108', 'Adresse' => 'bienfaisance', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/ADR/', qs.stringify({ IDLocalite: '75108', Adresse: 'bienfaisance', Pays: 'FRA', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "IDLocalite=75108&Adresse=bienfaisance&Pays=FRA&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/ADR/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["IDLocalite"] = "75108", ["Adresse"] = "bienfaisance", ["Pays"] = "FRA", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/ADR/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Werts{} form.Set("IDLocalite", "75108") form.Set("Adresse", "bienfaisance") form.Set("Pays", "FRA") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/ADR/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Wert Beschreibung Pflicht/Optional
Licence {LICENCE_CODE} Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. Pflicht
IDLocalite {CITY_ID} Stadtkennung, die von CP im Feld IDLocalite zurückgegeben wird. Grenzt die Straßensuche auf die ausgewählte Stadt ein. Pflicht
Adresse {INPUT} Vom Nutzer eingegebener Teil-Straßenname. Pflicht
Pays {COUNTRY_CODE} ISO-3166-1-Alpha-3-Ländercode für den Suchbereich der Adresse. Beispiel: FRA oder GBR. Pflicht
Taille {LENGTH} Maximale Zeichenlänge für zurückgegebene Adressfelder. Gilt nur für Adressen mit lateinischen Zeichen. Standard: 38. Empfohlenes Minimum: 32. Optional
Instance {INSTANCE} Wird in den Ergebnissen dieses Endpunkts nicht zurückgegeben - kann weggelassen werden. Optional
Version=1.1 1.1 Bei 1.1 wird das Feld LieuDit für kleine Orte befüllt. Ohne diesen Wert erscheinen die Namen kleiner Orte stattdessen in eckigen Klammern im Feld Localite. Optional
Langue {LANGUAGE} Filtert Ergebnisse nach Sprache/Schriftsystem. JPN: JP = Kanji · JK = Katakana · EN = Romanisiert. HKG: EN · ZH. THA: EN · TH. Siehe Sprachleitfaden. Optional

Antwort

Bei Erfolg gibt die API ein JSON-Objekt zurück. Die Schlüssel sind Rangnummern von "1" bis "n", die jeweils einem Wörterbuch mit Straßenfeldern zugeordnet sind.

Feld Beschreibung Frankreich International
label Anzeigefertige Zeichenkette für ein Autovervollständigungs-Dropdown. Zahlen in [eckigen Klammern] zeigen an, dass die Nummer in den Referenzdaten nicht gefunden wurde. Siehe Feld Label - nur zur Anzeige für Hinweise zur Verwendung.
Verwenden Sie label nur zum Befüllen des Vorschlags-Dropdowns - speichern Sie damit niemals die Adresse.Siehe Integrationsleitfaden →
Not available String (255)
IDVoie
also: CodeVoie
Eindeutige Straßenkennung. Wird als Eingabe für COMPL verwendet. String (20) String (20)
Voie Straßenname. String (38) String (150)
Saisie Normalisierte Form der eingegebenen Straße. Kann sich von der ursprünglichen Eingabe in Groß-/Kleinschreibung oder Formatierung unterscheiden. String (255) String (255)
TypeVoie Straßentyp (z. B. RUE, AVENUE, BOULEVARD). Wird nicht für alle internationalen Datensätze zurückgegeben. String (20) String (20)
Numero
also: Num
Vollständige Hausnummer einschließlich etwaiger Zusätze (bis, ter usw.). String (38) String (38)
NumSeul Nur die Hausnummer, ohne etwaige Zusätze (bis, ter usw.). Not available String (4)
NbNumero
also: Nbnumero
Wenn die abgefragte Hausnummer nicht gefunden wird oder fehlt, wird die Gesamtzahl der gültigen Hausnummern für diese Straße zurückgegeben. Beide Schlüssel (NbNumero / Nbnumero) beziehen sich auf denselben Wert. Kann eine leere Zeichenkette sein, wenn nicht zutreffend. String String
ListeNumero Durch Semikolon getrennte Liste gültiger Hausnummern. Enthält alle Nummern, wenn keine Nummer eingegeben wurde oder die eingegebene Nummer nicht gefunden wurde; andernfalls nur die gefundene Nummer. String (1024) String (1024)
valid_num Indikator für die Gültigkeit der Hausnummer. 1, wenn die Nummer in den Referenzdaten existiert, sonst 0. Gibt bei manchen internationalen Adressen eine leere Zeichenkette zurück, wenn keine Validierung auf Hausnummernebene verfügbar ist. Not available Integer
CodePostal Postleitzahl der Adresse. String (10) String (10)
Localite Stadtname. String (38) String (50)
IDLocalite Eindeutige Stadtkennung (INSEE-Code für Frankreich). String (20) String (20)
SousLocalite Unterort (Bezirk, Stadtteil, Vorort). Not available String (50)
LieuDit Named locality. Populated when Version=1.1 is set in the request. May be populated for international addresses. String (38) String (50)
Province ISO-Code des Bundeslands bzw. der Verwaltungsregion (z. B. 17 für Japan). Not available String (50)
Region1 ISO-Bezeichnung des Bundeslands bzw. der Verwaltungsregion (z. B. ISHIKAWA für Japan). Not available String (50)
Region2 Landkreis oder entsprechende Verwaltungsebene. Not available String (50)
Region3 Landkreis oder entsprechend (alternative Ebene). Not available String (50)
Region4 Zusätzliche regionale oder administrative Informationen. Not available String (50)
Suburb Vorort oder Stadtteil. Not available String (50)
Thoroughfare Untergeordnete Straße. Not available UK only
Complement Zusätzliche Adressinformationen (Gebäudename, Stockwerk usw.). Die Verfügbarkeit variiert je nach Land - siehe Integrationsleitfaden. Empty String (50)
Complement2 Zweite Gebäudeteil-Zeile. Wird bei bestimmten internationalen Adressen befüllt, wenn sowohl eine Gebäudekennung als auch eine Untergebäudekennung (Stockwerk, Wohnung, Suite) als separate Angaben verfügbar sind, sowie bei bestimmten organisatorischen CEDEX-Adressen. Not available String (50)
Entreprise Firmenname, der der Adresse zugeordnet ist. String (38) String (38)
Cedex CEDEX-Indikator: 1 = CEDEX-Adresse, 0 = keine CEDEX-Adresse. String (1) String (1)
Latitude Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
Longitude Geokoordinaten der gefundenen Adresse. Nicht für alle Länder verfügbar - siehe Abdeckung. String String
Roudis Roudis-Code. String Not available
Pays ISO-3166-1-Alpha-3-Ländercode. String (3) String (3)
Instance Internes Feld. String String

Zurückgegeben bei Version=1.1

Straße ohne Hausnummer ausgewählt?  Siehe Integrationsleitfaden →

Antwort example

Antwortbeispiel - Frankreich (Rue de la Bienfaisance, 75008 Paris)
{ "1": { "IDLocalite": "75108", "Saisie": "bienfaisance", "Pays": "FRA", "IDVoie": "1454259", "Voie": "RUE DE LA BIENFAISANCE", "Roudis": "", "ListeNumero": "1;2;3;3B;4;6;7;7B;8;9;10;12;12B;15;16;17;19;20;21;23;25;26;27;28;29;30;32;33;34;35;36;37;39;40;41;42;43;44;45;46;47;48;50;51;52;52B;54", "Numero": "", "TypeVoie": "RUE", "Instance": "", "Cedex": "0", "Num": "", "CodePostal": "75008", "NbNumero": "47", "Longitude": "2.316451", "LieuDit": "", "Latitude": "48.876526", "Localite": "PARIS", "CodeVoie": "1454259", "Complement": "", "Entreprise": "" } }
Antwortbeispiel - Japan (三田, 108-6390)
{ "1": { "label": "〒108-6390 東京都港区三田", "valid_num": 1, "Num": "", "Numero": "", "ListeNumero": "", "Nbnumero": 0, "NbNumero": 0, "NumSeul": "", "Saisie": "三田", "Pays": "JPN", "Complement": "", "Voie": "三田", "CodeVoie": "558203", "IDVoie": "558203", "IDLocalite": "402573", "Instance": 1, "CodePostal": "108-6390", "Localite": "港区", "Province": "13", "LieuDit": "", "Longitude": "", "Latitude": "", "Region1": "東京都", "Region2": "港区", "Region3": "", "Suburb": "", "TypeVoie": "" } }

Fehler

HTTP Fehlertyp Antworttext
200 Fehlende oder leere Licence {} - leeres Ergebnis, kein Fehler ausgelöst
401 Falsche oder abgelaufene Licence unauthorized_client
400 Fehlendes IDLocalite Bad Request Parameters * not allowed
400 Fehlendes Adresse Bad Request Parameters * not allowed
400 Fehlendes Pays Bad Request Parameters * not allowed
400 Tippfehler im Parameternamen (z. B. Falschschreibung von Adresse oder IDLocalite) Bad Request Parameters * not allowed

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Gebäude (COMPL)

Letzter Schritt des Trichter-Ansatzes. Anhand von IDVoie und Numero aus ADR wird eine Liste von Gebäudeteil-Vorschlägen zurückgegeben: Gebäudenamen, Stockwerksnummern, Firmennamen, Wohnungsnummern.

Anfrage

COMPL unterstützt sowohl GET als auch POST.

{SERVER_ADDRESS} und {LICENCE_CODE} werden von DQE bei der Kontoerstellung bereitgestellt. {STREET_ID} stammt aus dem Feld IDVoie der ADR-Antwort, wenn der Nutzer eine Straße auswählt. Wenden Sie sich an Ihren DQE-Kundenbetreuer, um diese Zugangsdaten zu erhalten.
GEThttps://{SERVER_ADDRESS}/COMPL/?IDVoie={STREET_ID}&IDNum={NUM}&Pays={COUNTRY_CODE}&Licence={LICENCE_CODE}

cURL-Beispiel

Frankreich - IDVoie aus dem vorherigen ADR-Schritt

curl "https://{SERVER_ADDRESS}/COMPL/?IDVoie=2408474&IDNum=1&Pays=FRA&Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/COMPL/?" + new URLSearchParams({ IDVoie: "2408474", IDNum: "1", Pays: "FRA", Licence: "{LICENCE_CODE}" })) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.get( "https://{SERVER_ADDRESS}/COMPL/", params={ "IDVoie": "2408474", "IDNum": "1", "Pays": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $params = http_build_query([ 'IDVoie' => '2408474', 'IDNum' => '1', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', ]); $ch = curl_init("https://{SERVER_ADDRESS}/COMPL/?{$params}"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); axios.get('https://{SERVER_ADDRESS}/COMPL/', { params: { IDVoie: '2408474', IDNum: '1', Pays: 'FRA', Licence: '{LICENCE_CODE}' } }) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String url = "https://{SERVER_ADDRESS}/COMPL/" + "?IDVoie=2408474&IDNum=1&Pays=FRA&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .GET() .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var url = "https://{SERVER_ADDRESS}/COMPL/" + "?IDVoie=2408474&IDNum=1&Pays=FRA&Licence={LICENCE_CODE}"; var response = await client.GetAsync(url); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" ) func main() { url := "https://{SERVER_ADDRESS}/COMPL/" + "?IDVoie=2408474&IDNum=1&Pays=FRA&Licence={LICENCE_CODE}" resp, err := http.Get(url) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Wenn der Nutzer keine Hausnummer eingegeben hat, übergeben Sie einen leeren Parameter IDNum: &IDNum=

POSThttps://{SERVER_ADDRESS}/COMPL/

Senden Sie alle Parameter im Anfrage-Body mit Content-Type: application/x-www-form-urlencoded. Die Serveradresse bleibt in der URL.

cURL-Beispiel

curl -X POST "https://{SERVER_ADDRESS}/COMPL/" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "IDVoie=2408474" \ -d "IDNum=1" \ -d "Pays=FRA" \ -d "Licence={LICENCE_CODE}"
fetch("https://{SERVER_ADDRESS}/COMPL/", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ IDVoie: "2408474", IDNum: "1", Pays: "FRA", Licence: "{LICENCE_CODE}" }) }) .then(r => r.json()) .then(data => console.log(data));
import requests response = requests.post( "https://{SERVER_ADDRESS}/COMPL/", data={ "IDVoie": "2408474", "IDNum": "1", "Pays": "FRA", "Licence": "{LICENCE_CODE}", }, ) print(response.json())
<?php $ch = curl_init("https://{SERVER_ADDRESS}/COMPL/"); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query([ 'IDVoie' => '2408474', 'IDNum' => '1', 'Pays' => 'FRA', 'Licence' => '{LICENCE_CODE}', ])); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); $data = json_decode($response, true);
const axios = require('axios'); const qs = require('querystring'); axios.post('https://{SERVER_ADDRESS}/COMPL/', qs.stringify({ IDVoie: '2408474', IDNum: '1', Pays: 'FRA', Licence: '{LICENCE_CODE}' })) .then(response => console.log(response.data));
HttpClient client = HttpClient.newHttpClient(); String form = "IDVoie=2408474&IDNum=1&Pays=FRA&Licence={LICENCE_CODE}"; HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("https://{SERVER_ADDRESS}/COMPL/")) .header("Content-Type", "application/x-www-form-urlencoded") .POST(HttpRequest.BodyPublishers.ofString(form)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body());
using var client = new HttpClient(); var form = new Dictionary<string, string> { ["IDVoie"] = "2408474", ["IDNum"] = "1", ["Pays"] = "FRA", ["Licence"] = "{LICENCE_CODE}" }; var response = await client.PostAsync( "https://{SERVER_ADDRESS}/COMPL/", new FormUrlEncodedContent(form)); var body = await response.Content.ReadAsStringAsync(); Console.WriteLine(body);
package main import ( "fmt" "io" "net/http" "net/url" ) func main() { form := url.Werts{} form.Set("IDVoie", "2408474") form.Set("IDNum", "1") form.Set("Pays", "FRA") form.Set("Licence", "{LICENCE_CODE}") resp, err := http.PostForm("https://{SERVER_ADDRESS}/COMPL/", form) if err != nil { panic(err) } defer resp.Body.Close() body, _ := io.ReadAll(resp.Body) fmt.Println(string(body)) }

Parameter

Parameter Wert Beschreibung Pflicht/Optional
Licence {LICENCE_CODE} Ihr DQE-Lizenzschlüssel oder OAuth2-Token. Wenden Sie sich an den Support, falls Sie noch keinen haben. Pflicht
IDVoie {STREETID} Eindeutige Straßenkennung, die von ADR im Feld IDVoie zurückgegeben wird. Pflicht
IDNum {STREETNUMBER} Vom Nutzer ausgewählte Hausnummer - entspricht dem Feld Numero aus der ADR-Antwort. Pflicht
Pays {COUNTRY_CODE} ISO-3166-1-Alpha-3-Ländercode für den Suchbereich der Adresse. Beispiel: FRA oder GBR. Pflicht
Taille {LENGTH} Maximale Zeichenlänge für zurückgegebene Adressfelder. Gilt nur für Adressen mit lateinischen Zeichen. Ein zu niedriger Wert kann Ergebnisse abschneiden. Standard: 38. Empfohlenes Minimum: 32. Optional
Instance {INSTANCE} Wird in den Ergebnissen dieses Endpunkts nicht zurückgegeben - kann weggelassen werden. Optional

Antwort

Die JSON-Antwort ist ein Wörterbuch, dessen Schlüssel von "1" bis "n" nummeriert sind. Jeder Eintrag enthält einen Adresszusatz.

Fehlende Gebäudeteil-Daten sind kein Fehler.Siehe Integrationsleitfaden →
Feld Beschreibung Frankreich International
Batiment Bezeichnung des Gebäude- oder Wohnungszusatzes. String (38) String (150)
CodePostal Postleitzahl, die dem Gebäudeteil zugeordnet ist. Not available String (10)

Antwort example

Antwortbeispiel - Frankreich (1 Rue de la Louisiane, 31200 Toulouse)
{ "1": { "Batiment": "BATIMENT D RESIDENCE ALLEE DES CEDRES" }, "2": { "Batiment": "BATIMENT A RESIDENCE ALLEE DES CEDRES" }, "3": { "Batiment": "BATIMENT B RESIDENCE ALLEE DES CEDRES" }, "4": { "Batiment": "BATIMENT C RESIDENCE ALLEE DES CEDRES" } }
Antwortbeispiel - International (GBR)
{ "1": { "Batiment": "Town Hall, Tameside Metropolitan Borough Council", "CodePostal": "M34 2AP" }, "2": { "Batiment": "Victoria Park Community Association", "CodePostal": "M34 2AP" } }

Fehler

HTTP Fehlertyp Antworttext
401 Fehlende oder leere Licence parameter unauthorized_client
401 Falscher oder abgelaufener Lizenzschlüssel unauthorized_client
400 Fehlender Parameter IDVoie Bad Request Parameters empty fields
400 Fehlender Parameter IDNum Bad Request Parameters empty fields
400 Fehlendes Pays parameter Bad Request Parameters empty fields
400 Tippfehler im Parameternamen (z. B. IdVoie statt IDVoie) Bad Request Parameters empty fields

API testen

Klicken Sie auf die Schaltfläche unten, um diesen Endpunkt live in Ihrem Browser zu testen.

Konsole öffnen

Siehe auch

Verknüpfung mit

War dieser Beitrag hilfreich?

0 von 0 fanden dies hilfreich