Introduction
This documentation aims to provide all the information you need to work with our API.
Authenticating requests
To authenticate requests, include an Authorization header with the value "Bearer {YOUR_AUTH_KEY}".
All authenticated endpoints are marked with a requires authentication badge in the documentation below.
Api Tokens can only be provided by a System Administrator. Please contact your administrator if you need an API token.
Basics
These endpoints provide basic information about address data by their keys.
GET city by key
The key is NOT the "AGS" but a unique key that is used in the address data. It consists of 8 numbers and can contain leading zeros (e.g. '00052500').
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/cities/58727000';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/cities/58727000" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/cities/58727000"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/cities/58727000'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET district by keys
The city key is a unique key that is used in the address data. It consists of 8 numbers and can contain leading zeros (e.g. '00052500').
The district key is an additional 3-digit key that is used to identify a specific district within a city. It can also contain leading zeros (e.g. '001').
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/cities/58727000/districts/051';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/cities/58727000/districts/051" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/cities/58727000/districts/051"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/cities/58727000/districts/051'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"key": "051",
"name": "Vaihingen",
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET zip area by keys
A Zip Area is a specific area defined by a zip code and a city. It is identifiable via a city key and the zip code. Multiple zip areas can share the same zip code but not within the same city.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/cities/58727000/zipAreas/70563" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/cities/58727000/zipAreas/70563"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"zip": "70563",
"zip_de": 70563,
"postbox_numbers_from": null,
"postbox_numbers_to": null,
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET streets in zip area
This endpoint retrieves all streets associated with a specific zip area within a city. It is used to provide detailed information about the streets in a given zip code, which can be useful for address validation and auto-completion features in forms.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563/streets';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'query' => 'meitnerstrasse',
'limit' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/cities/58727000/zipAreas/70563/streets?query=meitnerstrasse&limit=10" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/cities/58727000/zipAreas/70563/streets"
);
const params = {
"query": "meitnerstrasse",
"limit": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563/streets'
params = {
'query': 'meitnerstrasse',
'limit': '10',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"key": "07439100004",
"name": "Meitnerstr.",
"short_name": "Meitnerstr."
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET street by keys
This endpoint retrieves a specific street based on its unique identifier (key) within a zip area and city.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563/streets/07439100004';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/cities/58727000/zipAreas/70563/streets/07439100004" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/cities/58727000/zipAreas/70563/streets/07439100004"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/cities/58727000/zipAreas/70563/streets/07439100004'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": {
"key": "07439100004",
"name": "Meitnerstr.",
"short_name": "Meitnerstr.",
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
},
"zip": {
"zip": "70563",
"zip_de": 70563,
"postbox_numbers_from": null,
"postbox_numbers_to": null
}
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
Utils
These endpoints are utility functions for fetching address-related data based on incomplete information, such as a zip code. They are designed to assist in address validation and auto-completion features in forms.
POST check postbox validity
Checks the validity of a postbox number for a given zip area. If the zip area has no postboxes defined, all numbers are considered valid. Otherwise, the provided number must fall within the range of at least one defined postbox range for the zip area to be considered valid.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/utils/cities/58727000/zipAreas/70571/postboxes/check';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'number' => '700111',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"http://tekoa.test/api/utils/cities/58727000/zipAreas/70571/postboxes/check" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"number\": \"700111\"
}"
const url = new URL(
"http://tekoa.test/api/utils/cities/58727000/zipAreas/70571/postboxes/check"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"number": "700111"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/utils/cities/58727000/zipAreas/70571/postboxes/check'
payload = {
"number": "700111"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"valid": true
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
POST check house number validity
Checks the validity of a house number for a given street. The house number is valid if it falls within the range of the street's house numbers and matches the parity (odd/even) of the type.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/utils/cities/58727000/zipAreas/70563/streets/07439100004/numbers/check';
$response = $client->post(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'number' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request POST \
"http://tekoa.test/api/utils/cities/58727000/zipAreas/70563/streets/07439100004/numbers/check" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"number\": \"10\"
}"
const url = new URL(
"http://tekoa.test/api/utils/cities/58727000/zipAreas/70563/streets/07439100004/numbers/check"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"number": "10"
};
fetch(url, {
method: "POST",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/utils/cities/58727000/zipAreas/70563/streets/07439100004/numbers/check'
payload = {
"number": "10"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('POST', url, headers=headers, json=payload)
response.json()Example response (200):
{
"valid": true
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET suggested zip areas
This endpoint is used to retrieve all relevant information for a given zip code, which can be used for address validation and auto-completion in forms. The response includes the zip area details, associated streets, postboxes, and city information.
The data is cached for 24 hours to improve performance for frequently requested zip codes.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/utils/zipCodes/70563/zipAreas';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/utils/zipCodes/70563/zipAreas" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/utils/zipCodes/70563/zipAreas"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/utils/zipCodes/70563/zipAreas'
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers)
response.json()Example response (200):
{
"data": [
{
"zip": "70563",
"zip_de": 70563,
"postbox_numbers_from": null,
"postbox_numbers_to": null,
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
},
"streets": [
{
"key": "00046000005",
"name": "Ackermannstr.",
"short_name": "Ackermannstr."
},
{
"key": "00110200002",
"name": "Albblick",
"short_name": "Albblick"
},
{
"key": "00126600001",
"name": "Albigenserweg",
"short_name": "Albigenserweg"
},
{
"key": "00165700003",
"name": "Allmandstr.",
"short_name": "Allmandstr."
},
{
"key": "00176000009",
"name": "Alpenrosenstr.",
"short_name": "Alpenrosenstr."
},
{
"key": "00446900001",
"name": "Am Feldrand",
"short_name": "Am Feldrand"
},
{
"key": "00440100001",
"name": "Am Föhrenwald",
"short_name": "Am Föhrenwald"
},
{
"key": "00585000001",
"name": "Am Hopfenrain",
"short_name": "Am Hopfenrain"
},
{
"key": "01002100004",
"name": "Am Wallgraben",
"short_name": "Am Wallgraben"
},
{
"key": "01055200001",
"name": "Amadeusweg",
"short_name": "Amadeusweg"
},
{
"key": "01070700147",
"name": "Amselweg",
"short_name": "Amselweg"
},
{
"key": "01306300001",
"name": "Anweiler Weg",
"short_name": "Anweiler Weg"
},
{
"key": "01593100126",
"name": "Bachstr.",
"short_name": "Bachstr."
},
{
"key": "01616300001",
"name": "Bahnhof Vaihingen",
"short_name": "Bahnhof Vaihingen"
},
{
"key": "01672100004",
"name": "Bassermannstr.",
"short_name": "Bassermannstr."
},
{
"key": "01763300001",
"name": "Beim Römerhaus",
"short_name": "Beim Römerhaus"
},
{
"key": "01828000001",
"name": "Bergnelkenstr.",
"short_name": "Bergnelkenstr."
},
{
"key": "01879100001",
"name": "Betzweilerstr.",
"short_name": "Betzweilerstr."
},
{
"key": "01957600005",
"name": "Bischoffstr.",
"short_name": "Bischoffstr."
},
{
"key": "02012500001",
"name": "Blümleweg",
"short_name": "Blümleweg"
},
{
"key": "02209500001",
"name": "Brommerstr.",
"short_name": "Brommerstr."
},
{
"key": "02261500026",
"name": "Brühlstr.",
"short_name": "Brühlstr."
},
{
"key": "02276900018",
"name": "Buchfinkenweg",
"short_name": "Buchfinkenweg"
},
{
"key": "02400500001",
"name": "Büsnauer Str.",
"short_name": "Büsnauer Str."
},
{
"key": "02456200002",
"name": "Champignystr.",
"short_name": "Champignystr."
},
{
"key": "02535100012",
"name": "Curiestr.",
"short_name": "Curiestr."
},
{
"key": "02644900002",
"name": "Demetriusweg",
"short_name": "Demetriusweg"
},
{
"key": "02753000003",
"name": "Don-Carlos-Str.",
"short_name": "Don-Carlos-Str."
},
{
"key": "02551900004",
"name": "Döringstr.",
"short_name": "Döringstr."
},
{
"key": "02857100136",
"name": "Drosselweg",
"short_name": "Drosselweg"
},
{
"key": "02872600001",
"name": "Dumontweg",
"short_name": "Dumontweg"
},
{
"key": "02878600001",
"name": "Dusestr.",
"short_name": "Dusestr."
},
{
"key": "02971100001",
"name": "Egmontweg",
"short_name": "Egmontweg"
},
{
"key": "03030200001",
"name": "Eisbärenstr.",
"short_name": "Eisbärenstr."
},
{
"key": "03111200025",
"name": "Emilienstr.",
"short_name": "Emilienstr."
},
{
"key": "03128000013",
"name": "Enge Str.",
"short_name": "Enge Str."
},
{
"key": "03175400001",
"name": "Erich-Ponto-Weg",
"short_name": "Erich-Ponto-Weg"
},
{
"key": "03189600004",
"name": "Erlkönigstr.",
"short_name": "Erlkönigstr."
},
{
"key": "03205600001",
"name": "Ernst-Kachel-Str.",
"short_name": "Ernst-Kachel-Str."
},
{
"key": "03320500001",
"name": "Fanny-Leicht-Str.",
"short_name": "Fanny-Leicht-Str."
},
{
"key": "03333100008",
"name": "Fauststr.",
"short_name": "Fauststr."
},
{
"key": "03361500001",
"name": "Felldorfer Str.",
"short_name": "Felldorfer Str."
},
{
"key": "03396800001",
"name": "Filderhofstr.",
"short_name": "Filderhofstr."
},
{
"key": "03457200001",
"name": "Florathweg",
"short_name": "Florathweg"
},
{
"key": "03552600005",
"name": "Freibadstr.",
"short_name": "Freibadstr."
},
{
"key": "03563900001",
"name": "Fremdstr.",
"short_name": "Fremdstr."
},
{
"key": "03577700002",
"name": "Friedemannweg",
"short_name": "Friedemannweg"
},
{
"key": "03673100018",
"name": "Fuggerstr.",
"short_name": "Fuggerstr."
},
{
"key": "03762700202",
"name": "Gartenstr.",
"short_name": "Gartenstr."
},
{
"key": "03804500001",
"name": "Geiwitzstr.",
"short_name": "Geiwitzstr."
},
{
"key": "03866600018",
"name": "Germanenstr.",
"short_name": "Germanenstr."
},
{
"key": "03908600001",
"name": "Giesekingstr.",
"short_name": "Giesekingstr."
},
{
"key": "03943800002",
"name": "Glockenblumenstr.",
"short_name": "Glockenblumenstr."
},
{
"key": "41230300002",
"name": "Gropiusplatz",
"short_name": "Gropiusplatz"
},
{
"key": "04172700002",
"name": "Gründgensstr.",
"short_name": "Gründgensstr."
},
{
"key": "04185400001",
"name": "Grüntaler Weg",
"short_name": "Grüntaler Weg"
},
{
"key": "04248900003",
"name": "Gültsteiner Str.",
"short_name": "Gültsteiner Str."
},
{
"key": "04328000002",
"name": "Haeberlinstr.",
"short_name": "Haeberlinstr."
},
{
"key": "05176600006",
"name": "Häfnerstr.",
"short_name": "Häfnerstr."
},
{
"key": "04355600004",
"name": "Hahnenweg",
"short_name": "Hahnenweg"
},
{
"key": "04373300001",
"name": "Halde, Gewann",
"short_name": "Halde, Gewann"
},
{
"key": "04395500002",
"name": "Hamletstr.",
"short_name": "Hamletstr."
},
{
"key": "04524300001",
"name": "Haugstr.",
"short_name": "Haugstr."
},
{
"key": "04529200139",
"name": "Hauptstr.",
"short_name": "Hauptstr."
},
{
"key": "04575100026",
"name": "Heerstr.",
"short_name": "Heerstr."
},
{
"key": "04808500004",
"name": "Herrenberger Str.",
"short_name": "Herrenberger Str."
},
{
"key": "04271700001",
"name": "Höhenrandstr.",
"short_name": "Höhenrandstr."
},
{
"key": "05040300001",
"name": "Holderbuschweg",
"short_name": "Holderbuschweg"
},
{
"key": "05065100092",
"name": "Holunderweg",
"short_name": "Holunderweg"
},
{
"key": "05070700006",
"name": "Holzhauser Str.",
"short_name": "Holzhauser Str."
},
{
"key": "05086300001",
"name": "Honigwiesenstr.",
"short_name": "Honigwiesenstr."
},
{
"key": "05090400001",
"name": "Hopfauer Str.",
"short_name": "Hopfauer Str."
},
{
"key": "05132000001",
"name": "Huckebeinweg",
"short_name": "Huckebeinweg"
},
{
"key": "05222900008",
"name": "Ifflandstr.",
"short_name": "Ifflandstr."
},
{
"key": "05303800003",
"name": "Im Finkenschlag",
"short_name": "Im Finkenschlag"
},
{
"key": "05361200001",
"name": "Im Johannesgraben",
"short_name": "Im Johannesgraben"
},
{
"key": "05468200001",
"name": "Im Sommerwind",
"short_name": "Im Sommerwind"
},
{
"key": "05475100001",
"name": "Im Steinengarten",
"short_name": "Im Steinengarten"
},
{
"key": "05595200001",
"name": "In der Lüsse",
"short_name": "In der Lüsse"
},
{
"key": "05694100001",
"name": "Janningsstr.",
"short_name": "Janningsstr."
},
{
"key": "05885600001",
"name": "Kainzweg",
"short_name": "Kainzweg"
},
{
"key": "05911200001",
"name": "Kaltentaler Str.",
"short_name": "Kaltentaler Str."
},
{
"key": "06047000001",
"name": "Katzenbachstr.",
"short_name": "Katzenbachstr."
},
{
"key": "06076900001",
"name": "Kelterberg",
"short_name": "Kelterberg"
},
{
"key": "06175200001",
"name": "Klöpferweg",
"short_name": "Klöpferweg"
},
{
"key": "06471400001",
"name": "Koppenhöferweg",
"short_name": "Koppenhöferweg"
},
{
"key": "06529800001",
"name": "Krehlstr.",
"short_name": "Krehlstr."
},
{
"key": "06552600092",
"name": "Kreuzstr.",
"short_name": "Kreuzstr."
},
{
"key": "06633400001",
"name": "Kuppinger Str.",
"short_name": "Kuppinger Str."
},
{
"key": "06957500002",
"name": "Liasweg",
"short_name": "Liasweg"
},
{
"key": "07005000162",
"name": "Lindenstr.",
"short_name": "Lindenstr."
},
{
"key": "07072000001",
"name": "Lombacher Str.",
"short_name": "Lombacher Str."
},
{
"key": "07077800002",
"name": "Loosweg",
"short_name": "Loosweg"
},
{
"key": "07084400001",
"name": "Loßburger Str.",
"short_name": "Loßburger Str."
},
{
"key": "07147600003",
"name": "Lutherweg",
"short_name": "Lutherweg"
},
{
"key": "07149700001",
"name": "Lutzweg",
"short_name": "Lutzweg"
},
{
"key": "07259500025",
"name": "Malvenweg",
"short_name": "Malvenweg"
},
{
"key": "07283200009",
"name": "Margueritenweg",
"short_name": "Margueritenweg"
},
{
"key": "07294700001",
"name": "Marienau",
"short_name": "Marienau"
},
{
"key": "07439100004",
"name": "Meitnerstr.",
"short_name": "Meitnerstr."
},
{
"key": "07496200001",
"name": "Mezgerstr.",
"short_name": "Mezgerstr."
},
{
"key": "07541500001",
"name": "Mitterwurzerstr.",
"short_name": "Mitterwurzerstr."
},
{
"key": "07197900001",
"name": "Möhringer Landstr.",
"short_name": "Möhringer Landstr."
},
{
"key": "07213700001",
"name": "Mößnerstr.",
"short_name": "Mößnerstr."
},
{
"key": "07710300001",
"name": "Nathanstr.",
"short_name": "Nathanstr."
},
{
"key": "07744400002",
"name": "Nestroyweg",
"short_name": "Nestroyweg"
},
{
"key": "07912700001",
"name": "Nufringer Str.",
"short_name": "Nufringer Str."
},
{
"key": "07970400001",
"name": "Oberer Grundweg",
"short_name": "Oberer Grundweg"
},
{
"key": "58483500001",
"name": "Oscar-Schopp-Weg",
"short_name": "Oscar-Schopp-Weg"
},
{
"key": "09110500001",
"name": "Österfeld, Gewann",
"short_name": "Österfeld, Gewann"
},
{
"key": "09110600001",
"name": "Österfeldstr.",
"short_name": "Österfeldstr."
},
{
"key": "08154900002",
"name": "Othellostr.",
"short_name": "Othellostr."
},
{
"key": "08233200003",
"name": "Paradiesplatz",
"short_name": "Paradiesplatz"
},
{
"key": "08233300011",
"name": "Paradiesstr.",
"short_name": "Paradiesstr."
},
{
"key": "08315400119",
"name": "Pestalozzistr.",
"short_name": "Pestalozzistr."
},
{
"key": "08371600004",
"name": "Pfarrhausstr.",
"short_name": "Pfarrhausstr."
},
{
"key": "08374600010",
"name": "Pfauenstr.",
"short_name": "Pfauenstr."
},
{
"key": "08642000007",
"name": "Raimundstr.",
"short_name": "Raimundstr."
},
{
"key": "08668100040",
"name": "Rathausplatz",
"short_name": "Rathausplatz"
},
{
"key": "08807200001",
"name": "Rexinger Weg",
"short_name": "Rexinger Weg"
},
{
"key": "08905500121",
"name": "Robert-Koch-Str.",
"short_name": "Robert-Koch-Str."
},
{
"key": "08906400001",
"name": "Robert-Leicht-Str.",
"short_name": "Robert-Leicht-Str."
},
{
"key": "08985800005",
"name": "Rosentalstr.",
"short_name": "Rosentalstr."
},
{
"key": "09024200008",
"name": "Rottweiler Str.",
"short_name": "Rottweiler Str."
},
{
"key": "09213500002",
"name": "Sauerweg",
"short_name": "Sauerweg"
},
{
"key": "09244700002",
"name": "Schaberweg",
"short_name": "Schaberweg"
},
{
"key": "09580200001",
"name": "Schädleweg",
"short_name": "Schädleweg"
},
{
"key": "31672300006",
"name": "Schafsgasse",
"short_name": "Schafsgasse"
},
{
"key": "09273700001",
"name": "Scharrstr.",
"short_name": "Scharrstr."
},
{
"key": "09318900001",
"name": "Schexweg",
"short_name": "Schexweg"
},
{
"key": "09329200001",
"name": "Schießmauerstr.",
"short_name": "Schießmauerstr."
},
{
"key": "09342200001",
"name": "Schillerpassage",
"short_name": "Schillerpassage"
},
{
"key": "09476100002",
"name": "Schopflocher Str.",
"short_name": "Schopflocher Str."
},
{
"key": "46463700001",
"name": "Schwabenplatz",
"short_name": "Schwabenplatz"
},
{
"key": "09553700002",
"name": "Schwarzäckerstr.",
"short_name": "Schwarzäckerstr."
},
{
"key": "09566100003",
"name": "Schwenninger Str.",
"short_name": "Schwenninger Str."
},
{
"key": "09631400005",
"name": "Seerosenstr.",
"short_name": "Seerosenstr."
},
{
"key": "09703900028",
"name": "Siedlerstr.",
"short_name": "Siedlerstr."
},
{
"key": "09730400001",
"name": "Sigmundtstr.",
"short_name": "Sigmundtstr."
},
{
"key": "32850700005",
"name": "Sommerfeldweg",
"short_name": "Sommerfeldweg"
},
{
"key": "09806900001",
"name": "Sormaweg",
"short_name": "Sormaweg"
},
{
"key": "10016100001",
"name": "Stellaweg",
"short_name": "Stellaweg"
},
{
"key": "10035100001",
"name": "Sternecker Str.",
"short_name": "Sternecker Str."
},
{
"key": "10059200010",
"name": "Stiller Winkel",
"short_name": "Stiller Winkel"
},
{
"key": "10087400001",
"name": "Stoßäckerstr.",
"short_name": "Stoßäckerstr."
},
{
"key": "10197000001",
"name": "Sulzauer Str.",
"short_name": "Sulzauer Str."
},
{
"key": "10217400003",
"name": "Syringenweg",
"short_name": "Syringenweg"
},
{
"key": "10390900002",
"name": "Tigerstr.",
"short_name": "Tigerstr."
},
{
"key": "10604000001",
"name": "Unterer Grund",
"short_name": "Unterer Grund"
},
{
"key": "10659200001",
"name": "Vaihinger Markt",
"short_name": "Vaihinger Markt"
},
{
"key": "10676300074",
"name": "Veilchenweg",
"short_name": "Veilchenweg"
},
{
"key": "10731100004",
"name": "Vischerstr.",
"short_name": "Vischerstr."
},
{
"key": "10762000001",
"name": "Vollmoellerstr.",
"short_name": "Vollmoellerstr."
},
{
"key": "10893000003",
"name": "Waldburgstr.",
"short_name": "Waldburgstr."
},
{
"key": "10938900001",
"name": "Walter-Heller-Str.",
"short_name": "Walter-Heller-Str."
},
{
"key": "10959100025",
"name": "Wankelstr.",
"short_name": "Wankelstr."
},
{
"key": "11020000001",
"name": "Wegländerstr.",
"short_name": "Wegländerstr."
},
{
"key": "11403400001",
"name": "Wolfmahdenstr.",
"short_name": "Wolfmahdenstr."
},
{
"key": "10861600049",
"name": "Wörthstr.",
"short_name": "Wörthstr."
},
{
"key": "11519000010",
"name": "Zilleweg",
"short_name": "Zilleweg"
},
{
"key": "11550100004",
"name": "Zu den Tannen",
"short_name": "Zu den Tannen"
},
{
"key": "11608800001",
"name": "Zum Lauchwald",
"short_name": "Zum Lauchwald"
},
{
"key": "11716200003",
"name": "Zürnstr.",
"short_name": "Zürnstr."
}
],
"postboxes": []
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET suggested zip areas by search query
This endpoint allows you to fetch suggestions for zip areas based on a provided zip code and/or city name. It is useful for auto-completing address forms and validating user input.
The best way to use this endpoint is to provide autocompletion for a given zip code/city input and after selection of a specific zip area, use the api/cities/{city_key}/zipAreas/{zipArea_zip}/streets endpoint to fetch the streets for the selected zip area.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/utils/suggestions/zipAreas';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'query' => [
'query' => '70563 Stuttgart',
'mode' => 'streets',
'limit' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/utils/suggestions/zipAreas?query=70563+Stuttgart&mode=streets&limit=10" \
--header "Content-Type: application/json" \
--header "Accept: application/json"const url = new URL(
"http://tekoa.test/api/utils/suggestions/zipAreas"
);
const params = {
"query": "70563 Stuttgart",
"mode": "streets",
"limit": "10",
};
Object.keys(params)
.forEach(key => url.searchParams.append(key, params[key]));
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
fetch(url, {
method: "GET",
headers,
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/utils/suggestions/zipAreas'
params = {
'query': '70563 Stuttgart',
'mode': 'streets',
'limit': '10',
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, params=params)
response.json()Example response (200):
{
"data": [
{
"zip": "70563",
"zip_de": 70563,
"postbox_numbers_from": null,
"postbox_numbers_to": null,
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
}
}
]
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.
GET check complete address
This endpoint can determine if a given manually entered address is a valid street or postbox address based on the provided zip code, city name, street name, and house/postbox number.
If valid it will return the corresponding address details with their respective keys. These keys should be stored to make further requests for the same address more efficient, as they can be used to directly fetch the address without needing to match the input again.
Example request:
$client = new \GuzzleHttp\Client();
$url = 'http://tekoa.test/api/utils/suggestions/addresses';
$response = $client->get(
$url,
[
'headers' => [
'Content-Type' => 'application/json',
'Accept' => 'application/json',
],
'json' => [
'city' => 'Stuttgart',
'zip' => '70563',
'street' => 'Meitnerstraße',
'mode' => 'streets',
'number' => '10',
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));curl --request GET \
--get "http://tekoa.test/api/utils/suggestions/addresses" \
--header "Content-Type: application/json" \
--header "Accept: application/json" \
--data "{
\"city\": \"Stuttgart\",
\"zip\": \"70563\",
\"street\": \"Meitnerstraße\",
\"mode\": \"streets\",
\"number\": \"10\"
}"
const url = new URL(
"http://tekoa.test/api/utils/suggestions/addresses"
);
const headers = {
"Content-Type": "application/json",
"Accept": "application/json",
};
let body = {
"city": "Stuttgart",
"zip": "70563",
"street": "Meitnerstraße",
"mode": "streets",
"number": "10"
};
fetch(url, {
method: "GET",
headers,
body: JSON.stringify(body),
}).then(response => response.json());import requests
import json
url = 'http://tekoa.test/api/utils/suggestions/addresses'
payload = {
"city": "Stuttgart",
"zip": "70563",
"street": "Meitnerstraße",
"mode": "streets",
"number": "10"
}
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
response = requests.request('GET', url, headers=headers, json=payload)
response.json()Example response (200):
{
"data": {
"key": "07439100004",
"name": "Meitnerstr.",
"short_name": "Meitnerstr.",
"city": {
"key": "58727000",
"name": "Stuttgart",
"additional": null,
"ags": "08111000",
"short_name": "Stuttgart"
},
"zip": {
"zip": "70563",
"zip_de": 70563,
"postbox_numbers_from": null,
"postbox_numbers_to": null
},
"number": "10"
}
}
Received response:
Request failed with error:
Tip: Check that you're properly connected to the network.
If you're a maintainer of ths API, verify that your API is running and you've enabled CORS.
You can check the Dev Tools console for debugging information.