Issue: External API Call to OpenStreetMap Nomination Fails with 400 in AppMaster (Works via CURL)
Problem Summary:
I’m trying to integrate OpenStreetMap’s geocoding API in AppMaster to convert addresses into latitude/longitude coordinates.
The API works perfectly via CURL in terminal, but fails with a 400 Bad Request when invoked from AppMaster as an External API call.
This Works via Terminal (CURL):
curl "https://nominatim.openstreetmap.org/search?q=Berlin&format=json"
This returns a proper JSON result with geolocation data for “Berlin”.
This Fails in AppMaster:
External API Configuration in AppMaster:
-
Base URL:
https://nominatim.openstreetmap.org/search
-
Method:
GET
-
Query Parameters:
q = Berlin
format = json
When I test this setup, I receive a 400 Bad Request response with a null or empty body.
Troubleshooting Tried So Far:
-
Checked Base URL — confirmed it’s correctly set to
https://nominatim.openstreetmap.org/search
. -
Added Required Headers — set
User-Agent: AppMaster-App
, which Nominatim requires. -
Tried URL Encoding — used
URLEncode(address)
in the Business Process before passing it to the External API. -
Tried passing full URL as a single variable — but AppMaster rejects dynamic full URLs in the base URL field.
-
Confirmed CURL works on the same address — indicating it is not a Nominatim problem, but likely an issue with how AppMaster formats the request or appends query parameters.
Observations:
- If I hardcode the entire query into the base URL (e.g.,
https://nominatim.openstreetmap.org/search?q=Berlin&format=json
), the call works — but this approach is not dynamic. - The failure seems tied to AppMaster’s query param serialization, header formatting, or encoding issues.
I have followed this documentation for creating External API integration
Request:
Can someone from the AppMaster team or community confirm:
- Whether External APIs with query parameters like this are reliably supported?
- If there’s a workaround or best practice for encoding parameters before they are appended?
- If there’s any known bug with GET method and query string variables?
Goal:
I want to dynamically call Nominatim like:
https://nominatim.openstreetmap.org/search?q={{ address }}&format=json
Inside AppMaster, and get back lat/lon results just like in CURL.
Any help is appreciated!