GraphHopper Directions API provides enterprise-grade routing services, including route planning, optimization, geocoding, and more, for various vehicle types.
GraphHopper Directions API provides enterprise-grade routing services, including route planning, optimization, geocoding, and more, for various vehicle types. On Nagent, Graphhopper is exposed as a fully-configurable developer tools integration that any agent can call — 13 actions, and API key authentication. No code is required to wire Graphhopper into your workflow — connect it once via the External Integrations panel and reuse it across every agent you build.
Agent builders use Graphhopper to automate the kinds of tasks developer tools teams previously handled manually. Concrete examples — each one is a single agent step in Nagent — include:
Every action and trigger is paired with a structured input/output schema (visible in the sections below), so when you wire Graphhopper into Helix — our agentic agent builder — the editor knows exactly what each step expects and produces. Configure once, deploy anywhere across your Nagent agents.
Every operation an agent can call against Graphhopper, with input parameters and output schema. Drop these into any step of an agent built in Helix.
GRAPHHOPPER_CLUSTER_POSTSolve capacity-constrained clustering problems by assigning customers to clusters while minimizing total travel distance. Useful for delivery zone planning, sales territory optimization, and workload balancing. Supports car, bike, and foot routing profiles. Note: Free tier limited to 5 customers per request.
Input parameters
Optional pre-defined cluster centers. If omitted, cluster centers are computed automatically. Length must equal num_clusters if provided.
List of customers to assign to clusters. Free tier limited to 5 customers.
Routing profile and clustering constraints configuration.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_GEOCODE_GETTool to perform forward or reverse geocoding. Use when converting between textual addresses and latitude/longitude coordinates.
Input parameters
Text to geocode (forward geocoding). Required when reverse=false; must be omitted if reverse=true.
Your GraphHopper API key. If not provided, it will be automatically injected from the connection.
Bounding box 'minLon,minLat,maxLon,maxLat'. Requires reverse=false. Only provider=default.
Map-like zoom level controlling focus radius. Only provider=default.
Pretty-print the output. Default false.
Maximum number of results. Default 5.
Coordinate 'lat,lon'. Required when reverse=true; for forward geocoding, acts as location bias.
Bounds 'minLon,minLat,maxLon,maxLat'. For nominatim or opencagedata.
Locale of results. Default 'en'.
Search radius. Default: km for provider=default when reverse=true; meters for provider=gisgraphy.
OSM tags to filter/include or exclude, e.g., 'tourism:museum' or '!tourism:museum'. Only provider=default.
Set to true for reverse geocoding. Default false.
Alternative geocoding provider.
ISO 3166-1 alpha-2 country filter. For nominatim, gisgraphy, or opencagedata.
Enable autocomplete (only for provider=gisgraphy and reverse=false).
Location bias scale between 0.0 and 1.0. Only provider=default.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_GET_CLUSTER_SOLUTIONTool to retrieve the solution of an asynchronous clustering job. Use when you have a job ID from a previous cluster calculation request and need to fetch the results.
Input parameters
Job ID returned from the cluster calculation endpoint. Use this to retrieve the clustering solution.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_GET_MATRIXTool to compute a distance and/or time matrix using GET request with query parameters. Use for simpler matrix requests with query parameters instead of POST body.
Input parameters
Specify multiple points in 'latitude,longitude' format for which the matrix should be calculated. The starts are identical to the destinations. If there are N points, then NxN entries will be calculated. Specify at least three points. Cannot be used together with from_point or to_point.
The routing profile. It determines the network, speed and other physical attributes used when computing the route. Valid values include 'car', 'bike', 'foot', 'hike', 'mtb', 'racingbike', 'scooter', 'truck', and 'small_truck'.
Optional parameter. Specifies on which side a point should be relative to the driver when she leaves/arrives at a start/target/via point. Must be 'any', 'left', or 'right'. Specify for either none or all points.
The destination points for the routes in 'latitude,longitude' format. Use together with from_point for asymmetric matrices.
Specifies whether or not the matrix calculation should return with an error as soon as possible in case some points cannot be found or some points are not connected. If set to false, the matrix will be calculated for all valid points and contain null values for entries that could not be calculated.
Specifies which arrays should be included in the response. Specify one or more of 'weights', 'times', 'distances'. The units of distances are meters, times are seconds, and weights are arbitrary.
The origin points for the routes in 'latitude,longitude' format. Use together with to_point for asymmetric matrices.
Optional parameter. Specifies a hint for each point parameter to prefer a certain street for the closest location lookup.
Curbside setting for the to_point parameter. Must be 'any', 'left', or 'right'.
Curbside setting for the from_point parameter. Must be 'any', 'left', or 'right'.
For the to_point parameter. Specifies a hint to prefer a certain street for the closest location lookup.
For the from_point parameter. Specifies a hint to prefer a certain street for the closest location lookup.
Optional parameter to prevent snapping to specific types of roads. Supported values: 'motorway', 'trunk', 'ferry', 'tunnel', 'bridge', 'ford'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_GET_MATRIX_SOLUTIONTool to retrieve the result of an asynchronous matrix computation job. Use when you have a job ID from a previous matrix calculation request and need to check if it's finished and get the results.
Input parameters
The job ID returned when you submitted the matrix calculation job.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_GET_ROUTETool to calculate the best path connecting two or more points using simple GET request. Use when you need basic routing with query parameters.
Input parameters
Enable formatted output for debugging.
Route waypoints as 'latitude,longitude' strings. Specify at least origin and destination. Via points are possible. Example: \['51.131,12.414', '48.224,3.867'\]
Locale for turn instructions. Examples: 'en', 'de', 'fr', 'pt_PT'
Path detail types to include. Available: 'street_name', 'street_ref', 'street_destination', 'leg_time', 'leg_distance', 'roundabout', 'country', 'time', 'distance', 'max_speed', 'max_weight', 'max_width', 'toll', 'road_class', 'road_class_link', 'road_access', 'road_environment', 'hazmat', 'hazmat_tunnel', 'hazmat_water', 'lanes', 'surface', 'smoothness', 'hike_rating', 'mtb_rating', 'foot_network', 'bike_network'
Preferred heading direction for each point in degrees (0-360, north-based clockwise). Specify one for start or one per point. Requires ch.disable=true.
The routing profile determining network, speed, and physical attributes. Common values: 'car', 'bike', 'foot', 'motorcycle', 'mtb', 'racingbike', 'hike'. Default: 'car'
Side of the road for leaving/arriving at each point. Specify for all points or none. Only for motor vehicles.
If 'true', reorders points to minimize total travel time. Applies route optimization limits and costs more credits.
Special routing algorithm. 'round_trip': returns to start with randomness. 'alternative_route': provides multiple route options.
Include altitude as third coordinate in response. Changes format of points and snapped_waypoints fields.
Enable flexible mode to use custom_model or advanced options below. Set to true for heading, algorithm, etc.
Optional road name hints for snapping each point. Specify none or the same number as points.
Whether to calculate route geometry points.
Whether to calculate and return turn-by-turn instructions.
Avoid u-turns at via-points with regard to heading_penalty. Requires ch.disable=true.
Use polyline encoding for geometry (true) or simple coordinate pairs (false).
Time penalty in seconds for not obeying specified heading. Requires ch.disable=true.
Random seed for deterministic round trip results. Requires algorithm='round_trip'.
Prevent snapping to specific road types. Values: 'motorway', 'trunk', 'ferry', 'tunnel', 'bridge', 'ford'
Approximate round trip length in meters. Requires algorithm='round_trip'.
Maximum number of alternative paths. Requires algorithm='alternative_route'.
Maximum similarity factor between alternative and optimal route. Requires algorithm='alternative_route'.
Maximum factor by which alternatives can be longer than optimal route. Requires algorithm='alternative_route'.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_ISOCHRONE_GETTool to compute isochrone polygons for a given point. Use when you need to determine areas reachable within time or distance constraints.
Input parameters
Start location as 'latitude,longitude', e.g., '52.529407,13.397634'. Must be a valid coordinate string.
Number of isochrone rings/buckets to return. Divides time_limit/distance_limit into intervals to create nested isochrones. Default is 1.
Routing profile to use for calculation. Valid options: 'car', 'bike', 'foot', 'pt' (public transit). Required.
Maximum travel time in seconds from the start point. Either time_limit or distance_limit must be provided. Default is 600 seconds if neither is specified by the API.
Direction of reachability calculation. False (default): areas reachable FROM the point. True: areas FROM which the point can be reached.
Maximum travel distance in meters from the start point. Either time_limit or distance_limit must be provided.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_MATRIX_POSTTool to calculate distance, time, or weight matrices via POST. Use when you have multiple origins/destinations or a symmetric point set and need a single batch request.
Input parameters
Coordinates for symmetric matrix as \[longitude, latitude\].
Routing profile ID (e.g. 'car', 'bike', 'foot').
Curbside per point ('any','left','right') for symmetrical.
If false, return null for unreachable entries and include hints.
Destination coordinates as \[longitude, latitude\]. Provide with from_points.
Which matrices to include.
Origin coordinates as \[longitude, latitude\]. Provide with to_points.
Hint per point for snapping preference (symmetrical).
Curbside per destination ('any','left','right').
Curbside per origin ('any','left','right').
Hint per destination for snapping preference.
Hint per origin for snapping preference.
Feature types to avoid for snapping (e.g. 'toll', 'ferry').
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_PROFILES_GETRetrieve all custom routing profiles for your GraphHopper account. Custom profiles allow you to customize routing behavior (e.g., avoid certain roads, limit speeds, prefer certain road types). Use this tool to list available custom profiles that can be used with the Routing, Matrix, and Route Optimization APIs. Note: Custom profiles feature requires a premium GraphHopper package. If not enabled on your account, this returns an empty list.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_ROUTE_POSTTool to calculate complex routes via POST /route. Use when you need advanced route planning with custom parameters.
Input parameters
Enable formatted debug output
Locale for turn instructions
Ordered list of \[lon, lat\] pairs for route waypoints; at least two points required
List of path detail keys (e.g., 'street_name','surface','max_speed')
Vehicle profile (e.g., 'car', 'bike', 'foot')
Preferred headings in degrees; requires ch.disable=true
Reorder points to minimize travel time
Special routing mode; requires ch.disable=true
Curbside to approach/leave each point
Include altitude in geometry
Enable flexible mode for custom_model and advanced options
Parameters for round trip; requires algorithm='round_trip'
Include full route geometry
Optional street hints; one per point
Custom routing rules; requires ch.disable=true
Include turn-by-turn instructions
Avoid u-turns at via points; requires ch.disable=true
Use polyline encoding for geometry
Penalty (s) for deviating from heading; requires ch.disable=true
Road types to avoid during snapping
Parameters for alternative routes; requires algorithm='alternative_route'
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_SUBMIT_MATRIX_JOBTool to submit a matrix computation job for asynchronous processing. Use for large matrices that exceed synchronous limits. Returns a job ID to retrieve results later.
Input parameters
Coordinates for symmetric matrix as \[longitude, latitude\].
Routing profile ID (e.g. 'car', 'bike', 'foot').
Curbside per point ('any','left','right') for symmetrical.
If false, return null for unreachable entries and include hints.
Destination coordinates as \[longitude, latitude\]. Provide with from_points.
Which matrices to include in the result.
Origin coordinates as \[longitude, latitude\]. Provide with to_points.
Hint per point for snapping preference (symmetrical).
Curbside per destination ('any','left','right').
Curbside per origin ('any','left','right').
Hint per destination for snapping preference.
Hint per origin for snapping preference.
Feature types to avoid for snapping (e.g. 'toll', 'ferry').
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_UPLOAD_GPX_FILEMap-match a GPX track using GraphHopper's Map Matching API. This tool takes GPS track points in GPX format and snaps them to the digital road network. It's useful for: - Cleaning noisy GPS data by aligning points to actual roads - Getting accurate route distances and travel times from recorded GPS tracks - Attaching road information (street names, surfaces) to GPS traces - Generating turn-by-turn instructions for recorded trips The API uses the Viterbi algorithm to find the most likely sequence of road segments that match the input GPS points, accounting for GPS measurement noise.
Input parameters
Locale for turn instructions. Examples: 'en' (English), 'de' (German), 'pt_PT' (Portuguese), 'fr' (French).
Routing profile for map matching. Determines which road network and speed attributes are used. Common values: 'car' (default), 'foot', 'bike', 'motorcycle'.
If true, include altitude (elevation) as a third coordinate in the response geometry.
GPX XML content containing GPS track points. Must be valid GPX format with at least one track segment (<trkseg>) containing track points (<trkpt> with lat/lon attributes).
If true (default), coordinates are encoded using Google's polyline algorithm. Set to false for plain GeoJSON-style coordinates.
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
GRAPHHOPPER_VRP_POSTTool to initiate VRP optimization. Use when you need to solve vehicle routing problems synchronously.
Input parameters
One-location service orders (pickup/delivery stops)
List of at least one vehicle definition
Deprecated – use `objectives` instead (legacy algorithms)
Custom relationships (e.g., same-route grouping)
Two-location shipments with pickup and delivery
Objective functions to minimize
Routing and optimization configuration
Custom time/distance matrices
Definitions of vehicle types assignable via type_id
Output
Data from the action execution
Error if any occurred during the execution of the action
Whether or not the action execution was successful or not
No publicly available marketplace agent is found using this tool yet. There are 94 agents privately built on Nagent that already use Graphhopper.
Build on Nagent
Connect Graphhopper to any Nagent agent in minutes — no API key management, no boilerplate. Just configure and deploy.
The five questions agent builders ask before adopting a new integration.
Open the External Integrations panel inside Nagent (app.nagent.ai/externalIntegration), find Graphhopper, and click "Connect Now." You'll authenticate with an API key — Nagent handles credential storage and refresh automatically. Once connected, Graphhopper is available to any agent in your workspace.
No. Nagent provides no-code integration for every tool. Once Graphhopper is connected, you configure its 13 actions directly in the agent builder UI — no API calls, no boilerplate, no schema management.
Helix — Nagent's agentic agent builder — lets you drop Graphhopper steps into any workflow visually. Pick an action (e.g., one of those listed above), fill in the inputs (Helix knows the required vs. optional schema for each parameter), and connect it to upstream/downstream steps. Triggers run as the entry point of an agent, so when a Graphhopper event fires, the agent kicks off automatically.
Every Graphhopper action and trigger ships with a fully-typed schema — input parameters with name, type, required flag, and description, plus the output payload shape. The schemas are documented in the sections above. Helix uses these schemas to validate your configuration at build time and to type-check the data flowing between steps.
Yes. While Graphhopper ships with 13 pre-built developer tools actions, you can layer custom logic around them inside Helix — pre/post-processing steps, conditional branches, retries, or stitching Graphhopper together with other connected tools. For deeper customization, talk to our team about Nagent's Agentic AI Lab — forward-deployed engineers who build Graphhopper-based workflows tailored to your business.