# Overpass wants a user agent that identifies you; keep the box small
curl -A "your-project (you@example.org)" -G "https://overpass-api.de/api/interpreter" \
--data-urlencode 'data=[out:json][timeout:90];way["waterway"~"^(river|stream|canal)$"](-20,-75,5,-50);out geom;' \
-o waterways.json
import requests
query = """[out:json][timeout:90];
way["waterway"~"^(river|stream|canal)$"](-20,-75,5,-50);
out geom;"""
r = requests.post("https://overpass-api.de/api/interpreter", data={"data": query},
headers={"User-Agent": "your-project (you@example.org)"})
ways = r.json()["elements"]
lines = [[(p["lon"], p["lat"]) for p in w["geometry"]] for w in ways]
print(len(lines), "waterways")
const query = `[out:json][timeout:90];
way["waterway"~"^(river|stream|canal)$"](-20,-75,5,-50);
out geom;`;
const res = await fetch("https://overpass-api.de/api/interpreter", {
method: "POST",
body: new URLSearchParams({ data: query }),
});
const { elements } = await res.json();
console.log(elements.length, "waterways");