BeNomad BeMap REST API
Routing, search and electric mobility, through one REST API
Compute truck-aware routes and isochrones, geocode addresses, plan electric trips with the charging stops they need, and read live traffic and weather. Any language that speaks HTTP can call it.
curl -X POST 'https://bemap.benomad.com/bgis/service/routing/1.0' \
-u 'YOUR_ACCOUNT:YOUR_API_KEY' \
--fail-with-body \
-H 'Content-Type: application/json' \
-d '{
"routingMode": "MODE_VIAS",
"outputLanguage": "en",
"destinations": [
{
"coordinateSat": {
"lon": 2.32158,
"lat": 48.86533
}
},
{
"coordinateSat": {
"lon": 4.35655,
"lat": 50.8447
}
}
],
"routingCriterias": [
"FASTEST"
],
"options": [
"POLYLINE",
"EVENT",
"EVT_TOLL_COST"
],
"routingVehicleProfile": {
"transportMode": "TRUCK",
"routingVehicleFeature": {
"weight": 400,
"axleWeight": 115,
"height": 400,
"width": 255,
"length": 1650,
"nbVehAxles": 5,
"tollTransportCategory": "TRUCK"
}
}
}'const response = await fetch('https://bemap.benomad.com/bgis/service/routing/1.0', {
method: 'POST',
headers: {
Authorization: 'Basic ' + btoa('YOUR_ACCOUNT:YOUR_API_KEY'),
'Content-Type': 'application/json',
},
body: JSON.stringify({
"routingMode": "MODE_VIAS",
"outputLanguage": "en",
"destinations": [
{
"coordinateSat": {
"lon": 2.32158,
"lat": 48.86533
}
},
{
"coordinateSat": {
"lon": 4.35655,
"lat": 50.8447
}
}
],
"routingCriterias": [
"FASTEST"
],
"options": [
"POLYLINE",
"EVENT",
"EVT_TOLL_COST"
],
"routingVehicleProfile": {
"transportMode": "TRUCK",
"routingVehicleFeature": {
"weight": 400,
"axleWeight": 115,
"height": 400,
"width": 255,
"length": 1650,
"nbVehAxles": 5,
"tollTransportCategory": "TRUCK"
}
}
}),
redirect: 'manual', // a missing credential answers 302: never follow it
});
if (response.type === 'opaqueredirect' || (response.status >= 300 && response.status < 400)) throw new Error('BeMap redirected to its login page: no credentials reached it');
if (!response.ok) throw new Error(`BeMap answered ${response.status}: ${await response.text()}`);
const data = await response.json();import requests
response = requests.post(
"https://bemap.benomad.com/bgis/service/routing/1.0",
auth=("YOUR_ACCOUNT", "YOUR_API_KEY"),
json={
"routingMode": "MODE_VIAS",
"outputLanguage": "en",
"destinations": [
{
"coordinateSat": {
"lon": 2.32158,
"lat": 48.86533,
},
},
{
"coordinateSat": {
"lon": 4.35655,
"lat": 50.8447,
},
},
],
"routingCriterias": ["FASTEST"],
"options": ["POLYLINE", "EVENT", "EVT_TOLL_COST"],
"routingVehicleProfile": {
"transportMode": "TRUCK",
"routingVehicleFeature": {
"weight": 400,
"axleWeight": 115,
"height": 400,
"width": 255,
"length": 1650,
"nbVehAxles": 5,
"tollTransportCategory": "TRUCK",
},
},
},
allow_redirects=False, # a missing credential answers 302: never follow it
)
if response.is_redirect:
raise RuntimeError("BeMap redirected to its login page: no credentials reached it")
if response.status_code != 200:
raise RuntimeError(f"BeMap answered {response.status_code}: {response.text}")
data = response.json()In the spotlight
The services BeNomad builds its own products on.
What do you want to build?
Explore the API
Use it from your stack
Every operation comes with its request in cURL, JavaScript, Python, Java, PHP and C#, ready to run. The body is the same in each language: a request production answered, with its captured response.
Try it from the page
Open any operation, press Try it and send the request with your own account. Your key goes from your browser to BeMap only: signed in once, you stay signed in for the browser tab, never on disk.
Send your first requestAround the API
The tools that put BeMap in your application, and applications already built on it.