Schnellstart

In 30 Sekunden zum ersten Treffer — keine Registrierung, kein API-Key, einfach loslegen.

Reverse-Geocoding (Koordinate → Ort)

curl -s 'https://geoapi.world/api/lookup.php?lat=48.137&lon=11.575'
<?php
$json = file_get_contents("https://geoapi.world/api/lookup.php?lat=48.137&lon=11.575");
$data = json_decode($json, true);
echo $data["hit"]["name"];   // "Munich" — mit ?lang=de: "München"
const r = await fetch("https://geoapi.world/api/lookup.php?lat=48.137&lon=11.575");
const d = await r.json();
console.log(d.hit.name);
import requests
r = requests.get("https://geoapi.world/api/lookup.php",
                 params={"lat": 48.137, "lon": 11.575})
print(r.json()["hit"]["name"])

Liefert Name, Land, Zeitzone, Einwohner, Distanz und mehr — als JSON.

Ortssuche (Substring → Trefferliste)

curl -s 'https://geoapi.world/api/search.php?q=M%C3%BCnch&limit=5'
<?php
$url  = "https://geoapi.world/api/search.php?" . http_build_query(["q" => "Münch", "limit" => 5]);
$data = json_decode(file_get_contents($url), true);
foreach ($data["results"] as $p) {
    echo $p["name"] . " (" . $p["country_code"] . ")\n";
}
const r = await fetch("https://geoapi.world/api/search.php?q=Münch&limit=5");
const d = await r.json();
d.results.forEach(p => console.log(p.name, p.country_code));
import requests
r = requests.get("https://geoapi.world/api/search.php",
                 params={"q": "Münch", "limit": 5})
for p in r.json()["results"]:
    print(p["name"], p["country_code"])

Mindestens 2 Zeichen, sortiert nach Einwohnerzahl absteigend, max. 30 Treffer (limit).

Country-Picker (alle Länder)

curl -s 'https://geoapi.world/api/countries.php?lang=de'
<?php
$json = file_get_contents("https://geoapi.world/api/countries.php?lang=de");
$data = json_decode($json, true);
foreach ($data["results"] as $c) {
    printf('<option value="%s">%s</option>', $c["iso2"], htmlspecialchars($c["name"]));
}
const r = await fetch("https://geoapi.world/api/countries.php?lang=de");
const d = await r.json();
d.results.forEach(c => {
  select.appendChild(new Option(c.name, c.iso2));
});
import requests
r = requests.get("https://geoapi.world/api/countries.php", params={"lang": "de"})
country_map = {c["iso2"]: c["name"] for c in r.json()["results"]}

Liefert alle 252 Länder mit deutschem Namen — perfekt für Registrierungs-Dropdowns.