1. A non-transitory computer-readable medium storing instructions that implement an application programming interface for providing a navigation service as part of a software application executed on a computing device, the computing device having one or more processors and a display device, the computing device configured to communicate with a navigation data provider via a communication network, the application programming interface comprising: a first set of instructions specifying one or more first parameters to control the implementation of a navigation service by the software application, the navigation service operable to provide navigation information to a user of the software application, the first set of instructions implemented as a class; a second set of instructions specifying logic to control interaction with a routing engine provided by the navigation data provider based at least in part on the one or more first parameters specified in the first set of instructions; and a multi-waypoint function specified as part of the first instructions implemented as a class operable to set a plurality of waypoints for a navigation route input via a list, the waypoint function comprising one or more parameters specifiable by a developer as part of the first set of instructions to control operability of multi-waypoint navigation; wherein the application programming interface is operable to receive a multi-waypoint navigation route determined based on the plurality of waypoints, the multi-waypoint navigation route comprising a plurality of route segments.