External API Call to OpenStreetMap Nominatim Fails with 400 [APP-9532]

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:

  1. Checked Base URL — confirmed it’s correctly set to https://nominatim.openstreetmap.org/search.

  2. Added Required Headers — set User-Agent: AppMaster-App, which Nominatim requires.

  3. Tried URL Encoding — used URLEncode(address) in the Business Process before passing it to the External API.

  4. Tried passing full URL as a single variable — but AppMaster rejects dynamic full URLs in the base URL field.

  5. 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:

  1. Whether External APIs with query parameters like this are reliably supported?
  2. If there’s a workaround or best practice for encoding parameters before they are appended?
  3. 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!

Hello, thanks for the bug report. We’re working on resolving the issue with passing query parameters

@Jyoti_Deep Hello, the query parameters have been fixed