The primary purpose of this API is to enhance route planning and safety protocols by providing accurate, real-time clearance data. By integrating this API, users can access up-to-date information about potential low-clearance obstacles along their planned routes, allowing for adjustments before commencing travel.
Explore belowAPI
The primary purpose of this API is to enhance route planning and safety protocols by providing accurate, real-time clearance data. By integrating this API, users can access up-to-date information about potential low-clearance obstacles along their planned routes, allowing for adjustments before commencing travel.
API
API
Optimize route planning to avoid low-clearance bridges that could impede large vehicle transport.
Enhance app capabilities by incorporating bridge clearance data, improving route suggestions for users.
Monitor and manage clearance information to aid in infrastructure development and maintenance planning.
Access to the Low Clearance Map API is controlled through API keys, which are issued on a case-by-case basis. Potential users must provide justification for API access as part of the application process to ensure data is used responsibly. Usage might be subject to quotas and restrictions to maintain server performance and data integrity.
If you require assistance with the API or need to report an issue, please do not hesitate to contact our support team. Additionally, if you are interested in obtaining an API key to access the Low Clearance Map API, please send us an email with your request and a brief description of how you plan to use the API.
Email for Support and API Key Requests: info@lowclearancemap.com
We aim to respond to all inquiries promptly and assist you in getting started with our API or resolving any issues you may encounter. Your feedback is also invaluable to us as it helps improve the API and the services we offer.
The Hazard Heading feature of the Low Clearance Map API enhances the reliability of low-clearance data by providing the precise compass headings required for a vehicle to pass underneath a bridge or tunnel. This feature helps distinguish whether a vehicle is approaching a bridge from an overpass or underpass, addressing a common issue where latitude and longitude coordinates alone cannot clarify the exact travel context. For example, if the API returns hazard headings of 90 and 270, this means that the directions for a vehicle to travel under the bridge are either heading 90 degrees (due east) or 270 degrees (due west). If GeoJSON format is selected, this Hazard Heading is converted into a LineString.
Headers:
Accept: application/json
X-Api-Secret: {api_key} (your API key for authentication)
Query Parameters:
geojson (optional)
true → returns a GeoJSON FeatureCollection
default (false) → returns regular JSON
Request Body (JSON):
{
"start": { "lat": 43.1566, "lng": -77.6088 },
"end": { "lat": 42.3601, "lng": -71.0589 },
"stops": [
{ "lat": 41.8781, "lng": -87.6298 }
],
"avoid_tolls": true,
"avoid_highways": false,
"clearance_feet": 13,
"clearance_inches": 0
}
Example Request (cURL):
curl -X POST "https://www.lowclearancemap.com/api/saferoute?geojson=false" -H "Accept: application/json" -H "X-Api-Secret: your_api_key" -H "Content-Type: application/json" -d '{
"start": { "lat": 43.1566, "lng": -77.6088 },
"end": { "lat": 42.3601, "lng": -71.0589 },
"stops": [],
"avoid_tolls": true,
"avoid_highways": true,
"clearance_feet": 13,
"clearance_inches": 0
}'
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/saferoute"
params = { "geojson": "false" }
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
payload = {
"start": { "lat": 43.1566, "lng": -77.6088 },
"end": { "lat": 42.3601, "lng": -71.0589 },
"stops": [],
"avoid_tolls": True,
"avoid_highways": True,
"clearance_feet": 13,
"clearance_inches": 0
}
response = requests.post(url, params=params, headers=headers, json=payload)
data = response.json()
print(data)
Example Response (JSON)
{
"message": "safe route found",
"metadata": {
"distance_miles": 345.12,
"duration_seconds": 15234,
"hazards_count": 0
},
"route": {
"type": "LineString",
"coordinates": [
[-77.6088, 43.1566],
[-75.1652, 39.9526],
[-71.0589, 42.3601]
]
}
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"distance_miles": 345.12,
"duration_seconds": 15234,
"hazards_count": 0
},
"geometry": {
"type": "LineString",
"coordinates": [
[-77.6088, 43.1566],
[-75.1652, 39.9526],
[-71.0589, 42.3601]
]
}
}
]
}
Query Parameters:
- `vehicle_clearance`: A single value or a JSON object to filter bridges based on clearance height. - Can be a float representing a maximum clearance (e.g., `15`). - Can also be a JSON object with `min` and/or `max` values to define a clearance range. Example: `{"min": 10.0, "max": 11.0}`. - `geojson`: Set to true to get the output in GeoJSON format.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/all_bridges?vehicle_clearance=15&geojson=true" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/all_bridges"
params = {
"vehicle_clearance": "15",
"geojson": "true"
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"number_of_bridges": 50,
"vehicle_clearance": 15.0,
"bridges": [
{
"Structure_ID": 12345,
"Clearance": 12.0,
"Country": "United States",
"Latitude": 43.24788611,
"Longitude": -76.35176111,
"Hazard_Headings": [315,135],
"Name": "'OSWEGO RIVER'",
"State": "NY"
},
{
"Structure_ID": 12345,
"Clearance": 9.0,
"Country": "United States",
"Latitude": 43.02063889,
"Longitude": -76.79888889,
"Hazard_Headings": [92,272],
"Name": "'ERIE CANAL/CLYDE RIVER'",
"State": "NY"
},
{
"Structure_ID": 12345,
"Clearance": 12.0,
"Country": "United States",
"Latitude": 42.90917778,
"Longitude": -76.80073611,
"Hazard_Headings": [45,125],
"Name": "'SENECA RIVER'",
"State": "NY"
}
// Additional bridges listed here...
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "all_bridges"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "USA",
"State": "NV",
"Clearance": 13.0,
"Heading": 0,
"Feature_Type": "all_bridges"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-115.139832, 36.169941],
[-115.139832, 36.169942]
]
}
}
// Additional bridges listed here...
]
}
Query Parameters:
- `structure_ids`: A single structure ID or a comma-separated list of structure IDs (e.g., `12345` or `12345,67890`).
- `geojson`: Set to true to get the output in GeoJSON format. Default is false.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/bridges_by_id?structure_ids=12345,67890" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/bridges_by_id"
params = {
"structure_ids": [1234, 18051],
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"structure_ids_given": [1234, 18051],
"number_of_bridges": 2,
"bridges": [
{
"Structure_ID": 12345,
"Latitude": 34.052235,
"Longitude": -118.243683,
"Name": "Bridge 1",
"Hazard_Headings": [315,135],
"Clearance": 13.5
},
{
"Structure_ID": 12345,
"Latitude": 36.169941,
"Longitude": -115.139832,
"Name": "Bridge 2",
"Hazard_Headings": [315,135],
"Clearance": 13.0
}
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "by_state"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "USA",
"State": "NV",
"Clearance": 13.0,
"Heading": 0,
"Feature_Type": "by_state"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-115.139832, 36.169941],
[-115.139832, 36.169942]
]
}
}
]
}
Query Parameters:
- `states`: A comma-separated list of state/province abbreviations (e.g., `CA,NY`). These two-letter abbreviations can be found at https://www.ncbi.nlm.nih.gov/books/NBK7254/.
- `vehicle_clearance`: A single value or a JSON object to filter bridges based on clearance height.
- Can be a float representing a maximum clearance (e.g., `15`).
- Can also be a JSON object with `min` and/or `max` values to define a clearance range. Example: `{"min": 10.0, "max": 11.0}`.
- `geojson`: Set to true to get the output in GeoJSON format.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/bridges_by_state?states=CA,NY&vehicle_clearance=12&geojson=true" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/bridges_by_state"
params = {
"states": "CA,NY",
"vehicle_clearance": "12",
"geojson": "true"
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"states_given": ["CA", "NY"],
"number_of_bridges": 2,
"vehicle_clearance": 12.0,
"bridges": [
{
"Structure_ID": 12345,
"Latitude": 34.052235,
"Longitude": -118.243683,
"Name": "Bridge 1",
"Hazard_Headings": [315,135],
"Clearance": 13.5
},
{
"Structure_ID": 12345,
"Latitude": 36.169941,
"Longitude": -115.139832,
"Name": "Bridge 2",
"Hazard_Headings": [315,135],
"Clearance": 13.0
}
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "by_state"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "USA",
"State": "NV",
"Clearance": 13.0,
"Heading": 0,
"Feature_Type": "by_state"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-115.139832, 36.169941],
[-115.139832, 36.169942]
]
}
}
]
}
Query Parameters:
- `countries`: A comma-separated list of country names (e.g., `United States,Canada`).
- `vehicle_clearance`: A single value or a JSON object to filter bridges based on clearance height.
- Can be a float representing a maximum clearance (e.g., `15`).
- Can also be a JSON object with `min` and/or `max` values to define a clearance range. Example: `{"min": 10.0, "max": 11.0}`.
- `geojson`: Set to true to get the output in GeoJSON format.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/bridges_by_country?countries=United States,Canada&vehicle_clearance=12&geojson=true" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/bridges_by_country"
params = {
"countries": "United States,Canada",
"vehicle_clearance": "12",
"geojson": "true"
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"countries_given": ["United States", "Canada"],
"number_of_bridges": 2,
"vehicle_clearance": 12.0,
"bridges": [
{
"Structure_ID": 12345,
"Latitude": 34.052235,
"Longitude": -118.243683,
"Name": "Bridge 1",
"Hazard_Headings": [315,135],
"Clearance": 13.5
},
{
"Structure_ID": 12345,
"Latitude": 45.421532,
"Longitude": -75.697189,
"Hazard_Headings": [315,135],
"Name": "Bridge 2",
"Clearance": 13.0
}
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "by_country"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "CAN",
"State": "ON",
"Clearance": 13.0,
"Heading": 0,
"Feature_Type": "by_country"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-75.697189, 45.421532],
[-75.697189, 45.421533]
]
}
}
]
}
Query Parameters:
- `latitude`: Latitude of the center point (e.g., `34.052235`).
- `longitude`: Longitude of the center point (e.g., `-118.243683`).
- `radius`: Radius in miles around the center point within which to search (e.g., `10`).
- `vehicle_clearance`: A single value or a JSON object to filter bridges based on clearance height.
- Can be a float representing a maximum clearance (e.g., `15`).
- Can also be a JSON object with `min` and/or `max` values to define a clearance range. Example: `{"min": 10.0, "max": 11.0}`.
- `geojson`: Set to true to get the output in GeoJSON format.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/bridges_within_radius?latitude=34.052235&longitude=-118.243683&radius=10&vehicle_clearance=15&geojson=true" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/bridges_within_radius"
params = {
"latitude": 34.052235,
"longitude": -118.243683,
"radius": "10",
"vehicle_clearance": "15",
"geojson": "true"
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"center": {"latitude": 34.052235, "longitude": -118.243683},
"radius": 10,
"number_of_bridges": 3,
"vehicle_clearance": 15.0,
"bridges": [
{
"Structure_ID": 12345,
"Latitude": 34.052235,
"Longitude": -118.243683,
"Name": "Bridge 1",
"Hazard_Headings": [315,135],
"Clearance": 13.5
},
{
"Structure_ID": 12345,
"Latitude": 34.062235,
"Longitude": -118.253683,
"Name": "Bridge 2",
"Hazard_Headings": [20,200],
"Clearance": 12.0
},
{
"Structure_ID": 12345,
"Latitude": 34.072235,
"Longitude": -118.263683,
"Name": "Bridge 3",
"Hazard_Headings": [50,230],
"Clearance": 14.0
}
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "within_radius"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "USA",
"State": "CA",
"Clearance": 12.0,
"Heading": 0,
"Feature_Type": "within_radius"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.253683, 34.062235],
[-118.253683, 34.062236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 3",
"Country": "USA",
"State": "CA",
"Clearance": 14.0,
"Heading": 0,
"Feature_Type": "within_radius"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.263683, 34.072235],
[-118.263683, 34.072236]
]
}
}
]
}
Query Parameters:
`start_latitude`: Starting point latitude (e.g., `34.052235`).
- `start_longitude`: Starting point longitude (e.g., `-118.243683`).
- `end_latitude`: Ending point latitude (e.g., `36.162664`).
- `end_longitude`: Ending point longitude (e.g., `-86.781602`).
- `vehicle_clearance`: A single value or a JSON object to filter bridges based on clearance height.
- Can be a float representing a maximum clearance (e.g., `15`).
- Can also be a JSON object with `min` and/or `max` values to define a clearance range. Example: `{"min": 10.0, "max": 11.0}`.
- `geojson`: Set to true to get the output in GeoJSON format.
Example Request (cURL):
curl -X GET "https://www.lowclearancemap.com/api/bridges_along_route?start_latitude=34.052235&start_longitude=-118.243683&end_latitude=36.162664&end_longitude=-86.781602&vehicle_clearance=15&geojson=true" -H "Accept: application/json" -H "X-Api-Secret: {api_key}"
Example Request (Python):
import requests
url = "https://www.lowclearancemap.com/api/bridges_along_route"
params = {
"start_latitude": 34.052235,
"start_longitude": -118.243683,
"end_latitude": 36.162664,
"end_longitude": -86.781602,
"vehicle_clearance": "15",
"geojson": "true"
}
headers = {
"Accept": "application/json",
"X-Api-Secret": "your_api_key"
}
response = requests.get(url, params=params, headers=headers)
data = response.json()
print(data)
Example Response (JSON):
{
"api_key_used": "your_api_key",
"start_coordinates": {"latitude": 34.052235, "longitude": -118.243683},
"end_coordinates": {"latitude": 36.162664, "longitude": -86.781602},
"number_of_bridges_on_route": 1,
"number_of_bridges_50_miles_along_route": 1,
"bridges_50miles_along_route": [
{
"Structure_ID": 12345,
"Latitude": 34.052235,
"Longitude": -118.243683,
"Name": "Bridge 1",
"Hazard_Headings": [315,135],
"Clearance": 13.5
}
],
"bridges_on_route": [
{
"Structure_ID": 12345,
"Latitude": 36.169941,
"Longitude": -115.139832,
"Hazard_Headings": [20,200],
"Name": "Bridge 2",
"Clearance": 13.0
}
]
}
Example Response (GeoJSON):
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 1",
"Country": "USA",
"State": "CA",
"Clearance": 13.5,
"Heading": 0,
"Feature_Type": "on_route"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-118.243683, 34.052235],
[-118.243683, 34.052236]
]
}
},
{
"type": "Feature",
"properties": {
"Structure_ID": 12345,
"Name": "Bridge 2",
"Country": "USA",
"State": "NV",
"Clearance": 13.0,
"Heading": 0,
"Feature_Type": "50miles_along_route"
},
"geometry": {
"type": "LineString",
"coordinates": [
[-115.139832, 36.169941],
[-115.139832, 36.169942]
]
}
}
]
}