moovexDocs

API Reference

Complete Routing Engine API documentation

Overview

The Routing Engine API provides multi-stop route optimization for fleet operations.

Base URLs

EnvironmentURL
Productionhttps://routing.moovex.ai/api/v1
Staginghttps://routing.staging.moovex.ai/api/v1

Authentication

All requests require a Bearer token:

Authorization: Bearer YOUR_API_KEY

Endpoints

EndpointDescription
Create RoutesGenerate optimized trips from bookings
Get Route ResultRetrieve routing results
Single RouteCalculate route for a sequence of stops
Optimize Stop OrderFind optimal ordering for stops (TSP)
Distance MatrixCalculate distances between points

Data Types

Coordinates

FieldTypeDescription
latnumberLatitude
lngnumberLongitude

Job

FieldTypeRequiredDescription
idstringYesUnique job identifier
fromCoordinatesYesPickup location
fromAddrstringNoPickup address display name
toCoordinatesYesDrop-off location
toAddrstringNoDrop-off address display name
pickISO8601Yes*Requested pickup time
dropISO8601Yes*Requested drop-off time
seatsnumberYesNumber of seats required
passengerstringNoPassenger name/identifier
phonestringNoContact phone number
attrstring[]NoRequired attributes (wheelchair, child_seat, etc.)
unitstringNoSite/unit identifier for multi-tenant routing
privatebooleanNoIf true, job cannot be shared with others
forceJoinstringNoGroup ID - jobs with same value must route together
waitAndReturnIdstringNoLinks outbound and return legs
profileNamestringNoService profile name

*Either pick or drop must be provided.

Trip

FieldTypeDescription
idstringTrip identifier
jobIdsstring[]Jobs included in this trip
stopsStop[]Ordered sequence of stops
durationnumberTotal trip duration (seconds)
distancenumberTotal trip distance (meters)
seatsnumberTotal seats needed
attrstring[]Combined attributes from all jobs
areasstring[]Areas the trip passes through
routeTrajectoryRouteTrajectoryRoute geometry and leg details

Stop

FieldTypeDescription
locCoordinatesStop location
pickIdsstring[]Job IDs picking up at this stop
dropIdsstring[]Job IDs dropping off at this stop
dateISO8601Scheduled arrival time
namestringStop name/address
waitnumberWait time at stop (seconds)
durnumberDuration from previous stop (seconds)
disnumberDistance from previous stop (meters)

RouteTrajectory

FieldTypeDescription
geometrystringEncoded polyline of the route
distancenumberTotal distance (meters)
durationnumberTotal duration (seconds)
legsRouteLeg[]Per-segment details

RouteLeg

FieldTypeDescription
distancenumberSegment distance (meters)
durationnumberSegment duration (seconds)

RoutingSettings

SettingTypeDefaultDescription
maxSinglePassengerTimeRangeValue60Max passenger ride time (minutes)
maxTripDurationRangeValue120Max total trip duration (minutes)
maxTripStopsnumber10Maximum stops per trip
maxPickupStopsnumber-Maximum pickup stops per trip
maxDropoffStopsnumber-Maximum drop-off stops per trip
maxPassengersnumber8Maximum total passengers per trip
maxPassengersAtOncenumber4Max passengers at any point
maxReservationsAtOncenumber4Max jobs at any point
sharedRideRationumber1.5Max shared-ride vs direct ratio
sharedRideDifferenceLimitnumber15Max additional minutes vs direct
maxBoardingDelaynumber15How late driver can arrive (minutes)
maxBoardingEarlynumber15How early driver can arrive (minutes)
maxDropOffDelaynumber15How late for drop-off (minutes)
maxDropOffEarlynumber15How early for drop-off (minutes)
tripBoardingTimenumber120Time to complete pickup (seconds)
tripDropOffTimenumber60Time to complete drop-off (seconds)
waitForBoardingTimebooleanfalseWait until exact pickup time
onlyPrivatebooleanfalseDisable all ride sharing
isClusteringEnabledbooleantrueEnable stop clustering
clusterReservationsRadiusnumber200Cluster radius (meters)

RangeValue

For settings that vary by distance:

FieldTypeDescription
valuenumberDefault value
rangesRange[]Distance-based overrides
ranges[].fromnumberStart distance (meters)
ranges[].tonumberEnd distance (meters)
ranges[].valuenumberValue for this range

Example:

{
  "value": 60,
  "ranges": [
    { "from": 0, "to": 10000, "value": 45 },
    { "from": 10000, "to": 50000, "value": 60 }
  ]
}

Error Codes

CodeStatusDescription
invalid_job400Invalid job data
no_route400Cannot find route
timeout408Routing exceeded time limit
auth_failed401Invalid API key
rate_limited429Too many requests

On this page