EV Route Optimization API

Route Optimization API For Electric Vehicles (EV) - PatherizerEV (a solution to electric vehicles routing problem) is a cross browsers REST API supporting now a maximum of 100 stops per route or request including the start destination and the end destination. Beeing a multi stop route optimization software, PatherizerEV may be used by multiple calls to calculate and optimize routes for multiple vehicles, each vehicle with its optimized route. If you need a route optimization API for normal vehicles which includes also driving, bycicling and walking travel modes, click here. The route optimization algorythm is based per TSP (travel salesman problem) and it always calculate the shortest route betwween current stop and the next stop until it reaches the end destination. The input addresses are geocoded, so the JSON response will include latitude and longitude of each stop. If the route optimization API cannot recognize one or more of the input addresses it will not geocode these inputs and the API request will return a JSON Error as specified in the errors table. The JSON response also includes distances between each stops along the optimized route (in miles or km) and most important, the durration (in seconds) and durration in real traffic conditions (in seconds) at the time you make the request. A total distance of the optimized route is computed and also a total time. Available Travel Mode is only driving.

For each segment of the optimized multi stop route, depending of the vehicle's autonomy, EV Recharging Points data are calculated and if exist between the each segment's start point and destination point, it will be attached to that segment of the optimized route.

Useful data like address, latitude and longitude, usage costs, number of charging points/location, type of connections, power, amps, voltage and other are available on each charging point. However we do not charge a fee for the details of EV Charging Points, all the details referring EV charging points are made by Open Charge Map which has terms and conditions. We only charge the calculation of the optimized route according to our PRICING packages.Allthough this Route Optimization API For Electric Vehicles is intended for software development and therefore developers, we have also here an online application that may be used to get listed the optimized route from the input text basically you input start address, end address and multi stop addresses (no matter the order) along the route separated by ";" Basically for Route Optimization API you send an authorized POST request in JSON format to the API endpoint and you get as JSON response a representing the optimized route in segments as you need to go. You may use it for commercial purposes for paid packages.

Route Optimization APP or API For Electric Vehicles is useful for a large number of domains like: driving route optimizer EV, delivery routing software EV, EV vehicle routing problem, EV fleet routing software etc.

For using our API and/or APP you must create an account (free of charge, no card required), activate it from your received email, login and then start your TRIAL package with no fees as you can see at our pricing packages. After you have tested the EV Route Optimization API and/or APP and if you are satisfied, you may buy a paid package. You will always see at your Admin Console page the real resources consumption in real time, your invoices, you may see/edit/delete your profile or export log consents as GDPR instructed, you may read our FAQs.

EV Route Optimization APP

 
 
 
Autonomy:
Distance Units:
Travel Mode:



API Endpoint (method POST):
https://gatiosoft.ro/roaev.aspx
Headers:
Authorization: Basic //Your username:password are base64 encoded string
Content-Type: application/json
Accept: application/json
JSON Request Body (change inputs here and see in real time below):
{
"start_address":"Washington, DC",
"end_address":"Philadelphia",
"addresses":"Baltimore;Allentown;Harrisburg, Pennsylvania",
"autonomy":100,
"units":"km",
"travel_mode":"driving"
}
JSON Response From API (change inputs here and see in real time below):
{
  "segments": [
    {
      "origin": "Washington, DC, USA",
      "destination": "Baltimore, MD, USA",
      "origin_latitude": 38.9071922,
      "origin_longitude": -77.03687,
      "destination_latitude": 39.2903862,
      "destination_longitude": -76.61219,
      "distance": 61951.0,
      "time": 3634,
      "time_in_traffic": 3293,
      "toll": "",
      "evplist": "Charging Not Necessary!",
      "charging_points": null
    },
    {
      "origin": "Baltimore, MD, USA",
      "destination": "Harrisburg, PA, USA",
      "origin_latitude": 39.2903862,
      "origin_longitude": -76.61219,
      "destination_latitude": 40.27319,
      "destination_longitude": -76.8867,
      "distance": 127528.0,
      "time": 5022,
      "time_in_traffic": 5247,
      "toll": "",
      "evplist": "You Must Recharge But No Charging Points Nearby!",
      "charging_points": null
    },
    {
      "origin": "Harrisburg, PA, USA",
      "destination": "Allentown, PA, USA",
      "origin_latitude": 40.27319,
      "origin_longitude": -76.8867,
      "destination_latitude": 40.6022949,
      "destination_longitude": -75.47141,
      "distance": 133398.0,
      "time": 5223,
      "time_in_traffic": 5264,
      "toll": "",
      "evplist": "Charging Points Found!",
      "charging_points": [
        {
          "IsRecentlyVerified": false,
          "ID": 96702,
          "UUID": "EA94841D-4A2A-45B9-B5F6-BB6055341DB9",
          "DataProviderID": 2,
          "OperatorID": 5,
          "UsageTypeID": 1,
          "UsageCost": "",
          "AddressInfo": {
            "ID": 97048,
            "Title": "WHOLE FOODS ALN",
            "AddressLine1": "735 KROCKS CT",
            "Town": "Allentown",
            "Postcode": "18106",
            "CountryID": 2,
            "Latitude": 40.5642242,
            "Longitude": -75.566124,
            "ContactTelephone1": "888-758-4389",
            "ContactEmail": "",
            "AccessComments": "24 hours daily",
            "RelatedURL": "http://www.chargepoint.com",
            "Distance": 9.656093,
            "DistanceUnit": 1
          },
          "Connections": [
            {
              "ID": 136976,
              "ConnectionTypeID": 1,
              "StatusTypeID": 0,
              "LevelID": 2,
              "Amps": 16,
              "Voltage": 230,
              "PowerKW": 3.0,
              "CurrentTypeID": 10,
              "Quantity": 2
            }
          ],
          "NumberOfPoints": 0,
          "GeneralComments": "",
          "StatusTypeID": 0,
          "DateLastStatusUpdate": "2019-12-24T11:17:00+02:00",
          "DataQualityLevel": 3,
          "DateCreated": "2017-12-29T23:01:00+02:00",
          "SubmissionStatusTypeID": 100
        },
        {
          "IsRecentlyVerified": false,
          "ID": 28487,
          "UUID": "F88FB5BE-9F58-4684-AFD1-F34ED6135F6F",
          "DataProviderID": 2,
          "OperatorID": 0,
          "UsageTypeID": 7,
          "UsageCost": "",
          "AddressInfo": {
            "ID": 28833,
            "Title": "Route 23 Nissan",
            "AddressLine1": "1301 Route 23",
            "Town": "Butler",
            "Postcode": "07405",
            "CountryID": 2,
            "Latitude": 40.9912567,
            "Longitude": -74.3473358,
            "ContactTelephone1": "973-838-0800",
            "ContactEmail": "",
            "AccessComments": "Dealership business hours\\r\\nPublic - Call ahead",
            "RelatedURL": "",
            "Distance": 9.741318,
            "DistanceUnit": 1
          },
          "Connections": [
            {
              "ID": 31306,
              "ConnectionTypeID": 1,
              "StatusTypeID": 0,
              "LevelID": 2,
              "Amps": 16,
              "Voltage": 230,
              "PowerKW": 3.0,
              "CurrentTypeID": 10,
              "Quantity": 1
            }
          ],
          "NumberOfPoints": 0,
          "GeneralComments": "",
          "StatusTypeID": 0,
          "DateLastStatusUpdate": "2019-12-24T11:18:00+02:00",
          "DataQualityLevel": 3,
          "DateCreated": "2014-11-28T05:38:00+02:00",
          "SubmissionStatusTypeID": 100
        }
      ]
    },
    {
      "origin": "Allentown, PA, USA",
      "destination": "Philadelphia, PA, USA",
      "origin_latitude": 40.6022949,
      "origin_longitude": -75.47141,
      "destination_latitude": 39.9525833,
      "destination_longitude": -75.16522,
      "distance": 102705.0,
      "time": 4316,
      "time_in_traffic": 4247,
      "toll": "",
      "evplist": "Charging Points Found!",
      "charging_points": [
        {
          "IsRecentlyVerified": false,
          "ID": 12925,
          "UUID": "CA46BAB3-C923-46CA-B046-484973CC127D",
          "DataProviderID": 15,
          "OperatorID": 5,
          "UsageTypeID": 0,
          "UsageCost": "",
          "AddressInfo": {
            "ID": 12822,
            "Title": "801 Bethlehem Pike",
            "AddressLine1": "801 Bethlehem Pike",
            "Town": "Sellersville",
            "Postcode": "18960",
            "CountryID": 2,
            "Latitude": 40.3437157,
            "Longitude": -75.30325,
            "ContactTelephone1": "(267)354-4081",
            "ContactEmail": "",
            "AccessComments": "",
            "RelatedURL": "http://www.carstations.com/21411",
            "Distance": 7.111848,
            "DistanceUnit": 1
          },
          "Connections": [
            {
              "ID": 10358,
              "ConnectionTypeID": 1,
              "StatusTypeID": 0,
              "LevelID": 2,
              "Amps": 0,
              "Voltage": 0,
              "PowerKW": 0.0,
              "CurrentTypeID": 0,
              "Quantity": 0
            }
          ],
          "NumberOfPoints": 0,
          "GeneralComments": "",
          "StatusTypeID": 0,
          "DateLastStatusUpdate": "2017-11-04T16:04:00+02:00",
          "DataQualityLevel": 2,
          "DateCreated": "2012-09-07T22:25:00+03:00",
          "SubmissionStatusTypeID": 100
        }
      ]
    }
  ],
  "total_distance": 425582.0,
  "total_time": 18195,
  "total_time_in_traffic": 18051,
  "totals_summary": "Total Distance [km]=425.582; Total time [hh:mm]=5:3; Total time in traffic [hh:mm]=5:1"
}
JSON Response (Example) From API in case of ERROR:

 {
  "cd": "1001",
  "description": "The authorization header is either empty or isn't Basic"
}

Optimized Route Sorted Segments

Origin
Washington, DC, USA
Destination
Baltimore, MD, USA
Distance
61.95 km
Duration
01:00:34
Duration in Traffic
00:54:53
Tolls
null

Origin
Baltimore, MD, USA
Destination
Harrisburg, PA, USA
Distance
127.528 km
Duration
01:23:42
Duration in Traffic
01:27:27
Tolls
null

Origin
Harrisburg, PA, USA
Destination
Allentown, PA, USA
Distance
133.398 km
Duration
01:27:03
Duration in Traffic
01:27:44
Tolls
null

Origin
Allentown, PA, USA
Destination
Philadelphia, PA, USA
Distance
102.705 km
Duration
01:11:56
Duration in Traffic
01:10:47
Tolls
null

Request Parameters Table

Parameter Name
Parameter Description
start_address
This is the input start address [string] typed in plain text that will be used as the first point of the optimized route. Example:  38 Woodley Road Northwest, Washington DC
end_address
This is the input end address [string] typed in plain text that will be used as the last point of the optimized route. If you want to return to the start point you may input the same address as the start address. You cannot leave this field empty, but if you do not need to type an end address for your optimized route just put an arbitrary valid end address because the algorythm calculates the optimized route without the end address. It just connects the last address of the optimized route with the end address, so this is not really an issue. Example:  5051 Klingle Street Northwest, Washington, DC
addresses
These are all the addresses [string] along the route separated by ";" Maximum 98 addresses, so that means a maximum of 100 addresses per request per route if we consider also the start and the end addresses. Don't type here start address and end address, only addresses between, no matter the order. Example:
2700 Wisconsin Avenue Northwest, Washington DC;3601 Macomb Street Northwest, Washington DC; 3511 Lowell Street Northwest, Washington
autonomy
This parameter defines which is the autonomy [real] of the vehicle that will be considered calculating the distance between each EV charging Point on the route. Its values may be between 100 and 1000 where the unit of measure is specified by the parameter units.
units
This parameter defines which unit [string] will be considered calculating the distance between each route segment origin and destination. Its values may be km or mi so it means kilometers or miles.
travel_mode
This parameter defines which travel_mode [string] will be used for calculating the distance between each route segment origin and destination. Its value may be only driving.

Response Parameter Table

Parameter Name
Parameter Description
optimized_route
This is the RootObject (not a parameter) that includes an array field called segments and four other fields total_distance (in km or mi), total_time (in seconds), total_time_in_traffic (in seconds) and totals_summary (string). These fields will be detailed below.
segments
This is an array containing each segment of the optimized route. The segments are sorted from the first to the last in the order the optimized route must be passed. The array contains the following fields: origin, origin_latitude, origin_longitude, destination, destination_latitude, destination_longitude, distance, time, time_in_traffic, toll, evplist each of the fields is explained below.
origin
This is the origin address [string] of the segment. Example: 2700 Wisconsin Avenue Northwest, Washington DC
destination
This is the destination address [string] of the segment. Example: 3511 Lowell Street Northwest, Washington
origin_latitude
This is the origin latitude of the segment as [real] number. It may be a negative number. Example: 40.243587
origin_longitude
This is the origin longitude of the segment as [real] number. It may be a negative number. Example: 20.293886
destination_latitude
This is the destination latitude of the segment as [real] number. It may be a negative number. Example: 41.549527
destination_longitude
This is the destination longitude of the segment as [real] number. It may be a negative number. Example: 21.847597
distance
This is the distance as [real] number between origin and destination of the segment as [meters]. Example: 5678
time
This is the average time in [seconds] as [integer] number necessary to go from origin to destination of the segment. Example: 1227
time_in_traffic
This is the real time in traffic conditions at the time the request has been made in [seconds] as [integer] number necessary to go from the origin to the destination of the segment. Example: 1325
toll
This is the toll cost for travelling the segment as [string] number. If not present it will be null. Example: 5.84 USD
evplist
This is the EV Charging Points sorted addresses list between the start and the end of the segment as [string] type. If not present, some other info messages will be returned. Example: You Must Recharge But No Charging Points Nearby!
charging_points
This is a sorted list of EV Charging Points with full details between the start and the end of the segment as [List(Of EVPoint)] type. If no charging points are present, it will be null. As example you may look at JSON response above.
total_distance
This is the total distance of the optimized route as [real] number in [meters]. Example: 5843
total_time
This is the total average time to travel the optimized route as [real] number in [seconds]. Example: 57643
total_time_in_traffic
This is the total time in real traffic conditions at the moment you make the request to travel the optimized route as [real] number in [seconds]. Example: 55893
totals_summary
This is a summarizing field [string] for total distance (in [km] or [mi]) depending of the value of the units parameter from request, total average time as [hh:mm] and total time in real traffic conditions [hh:mm] at the moment you make the request to travel the optimized route. Example: Total Distance [km]=5,078; Total time [hh:mm]=0:14; Total time in traffic [hh:mm]=0:12

Response Error Codes Tablee Error Codes Table

Parameter Name
Parameter Description
cd

This is the error code which may be:

  • 1001
  • 1002
  • 1003
  • 1004
  • 1005
  • 1006
  • 1007
  • 1008
  • 1009
  • 1010
  • 1011
  • 1012
  • 1013
  • 1014
  • 1015
  • 2001
description

This is the description of the error code which may be:

  • 1001 - The authorization header is either empty or isn't Basic.
  • 1002 - Daily requests number exceeded in TRIAL mode!
  • 1003 - Trial expired!
  • 1004 - Addresses number exceeded!
  • 1005 - Package expired!
  • 1006 - No invoice!
  • 1007 - Reader is NULL for TRIAL!
  • 1008 - Cannot Read if TRIAL exists!
  • 1009 - Error connecting to database looking for TRIAL! (and a detailed description message of the encountered error)
  • 1010 - Reader is NULL for Invoice!
  • 1011 - Cannot Read if Invoice exists!
  • 1012 - Error connecting to database! (and a detailed description message of the encountered error)
  • 1013 - Input request string too long! Maximum 100 addresses per request are allowed
  • 1014 - Invalid request data! (and a detailed description message of the encountered error)
  • 1015 - The request cannot exceed 100 addresses!
  • 2001 - Invalid request data after passing to the API (and a detailed description message of the encountered error)

Source Code Examples for Using Our EV Route Optimization API

                       
Imports System
Imports System.Text
Imports System.Net
Imports Newtonsoft.Json
Imports System.Collections.Generic

Public Class route_optimization_api_ev
    Public Class RequestFields
        Public Property start_address As String
        Public Property end_address As String
        Public Property addresses As String
        Public Property units As String
        Public Property autonomy As Single
        Public Property travel_mode As String
    End Class

    Public Class ResponseFields
	Public Property segments As New List(Of Segment_ev)
        Public Property total_distance As Single
        Public Property total_time As Integer
        Public Property total_time_in_traffic As Integer
        Public Property totals_summary As String
    End Class

    Public Class Segment_ev
        Public Property origin As String
        Public Property destination As String
        Public Property origin_latitude As Single
        Public Property origin_longitude As Single
        Public Property destination_latitude As Single
        Public Property destination_longitude As Single
        Public Property distance As Single
        Public Property time As Integer
        Public Property time_in_traffic As Integer
        Public Property toll As String
        Public Property evplist As String
	Public Property charging_points As New List(Of EVPoint)
    End Class

    Public Class EVPoint
        Public Property IsRecentlyVerified As Boolean
        Public Property ID As Integer
        Public Property UUID As String
        Public Property DataProviderID As Integer
        Public Property OperatorID As Integer
        Public Property UsageTypeID As Integer
        Public Property UsageCost As String
        Public Property AddressInfo As New Addressinfo
	Public Property Connections As New List(Of Connection)
        Public Property NumberOfPoints As Integer
        Public Property GeneralComments As String
        Public Property StatusTypeID As Integer
        Public Property DateLastStatusUpdate As DateTime
        Public Property DataQualityLevel As Integer
        Public Property DateCreated As DateTime
        Public Property SubmissionStatusTypeID As Integer
    End Class

    Public Class Addressinfo
        Public Property ID As Integer
        Public Property Title As String
        Public Property AddressLine1 As String
        Public Property Town As String
        Public Property Postcode As String
        Public Property CountryID As Integer
        Public Property Latitude As Single
        Public Property Longitude As Single
        Public Property ContactTelephone1 As String
        Public Property ContactEmail As String
        Public Property AccessComments As String
        Public Property RelatedURL As String
        Public Property Distance As Single
        Public Property DistanceUnit As Integer
    End Class

    Public Class Connection
        Public Property ID As Integer
        Public Property ConnectionTypeID As Integer
        Public Property StatusTypeID As Integer
        Public Property LevelID As Integer
        Public Property Amps As Integer
        Public Property Voltage As Integer
        Public Property PowerKW As Single
        Public Property CurrentTypeID As Integer
        Public Property Quantity As Integer
    End Class

    Public Class ErrorFields
        Public Property cd As String
        Public Property description As String
    End Class

    Protected Sub SendRequest()
        Dim Client As WebClient = New WebClient()
        Dim credentials As String = Convert.ToBase64String(Encoding.ASCII.GetBytes("your_username:your_password"))
        Client.Headers(HttpRequestHeader.Authorization) = String.Format("Basic {0}", credentials)
        Client.Headers(HttpRequestHeader.Accept) = "application/json"
        Client.Headers(HttpRequestHeader.ContentType) = "application/json"
        Client.BaseAddress = "https://gatiosoft.ro/roaev.aspx"
        Dim resString As String = ""
        Dim j As RequestFields = New RequestFields()
        j.start_address = "Washington DC"
        j.end_address = "Philadelphia"
        j.addresses = "Baltimore;Allentown;Harrisburg, Pennsylvania"
        j.autonomy = 100
        j.units = "km"

        Try
            Dim js As String = JsonConvert.SerializeObject(j)
            Dim reqString As Byte() = Encoding.[Default].GetBytes(js)
            Dim url As Uri = New Uri(Client.BaseAddress)
            Dim resByte As Byte() = Client.UploadData(url, "post", reqString)
            resString = Encoding.[Default].GetString(resByte)

            If resString.IndexOf("total_distance") > 0 Then
                Dim r As ResponseFields = New ResponseFields()
                r = JsonConvert.DeserializeObject(Of ResponseFields)(resString)
                Console.Write(resString)
            Else
                Dim e As ErrorFields = New ErrorFields()
                e = JsonConvert.DeserializeObject(Of ErrorFields)(resString)
                Console.Write(e.cd)
                Console.Write(e.description)
            End If

            Client.Dispose()
        Catch exception As Exception
            Dim ex As System.Exception = exception
            Console.Write("ERROR: " & resString & ex.Message)
        End Try
    End Sub

    Public Shared Sub Main()
        Dim b As route_optimization_api_ev = New route_optimization_api_ev()
        b.SendRequest()
    End Sub
End Class



EV Vehicle Routing Problem Video Presentation

EV Vehicle Routing Problem solved by Delivery Routing Software - Patherizer - is in the video presentation below. Our driving EV route optimizer or multi stop route optimizer is a very useful tool for any kind of activity that implies EV route optimization. You can use it as a standalone EV route optimization app or, as a developer, you can access it from your own app or apps.

 



Pricing Packages

Please choose one of the below pricing packages for start using our EV Route Optimization API and online APP!

Start TRIAL
No catches

  • 7 days TRIAL
  • Use our cloud REST API and online APP with travel modes like driving, bicycling or walking(*)
  • Maximum 10 addresses(**) per each request
  • Maximum 10 requests per DAY in trial period
  • You do NOT own the commercial copyright in trial period.
  • Get Optimized Route for input addresses and selected travel mode
  • Get Geocoding(***) data (latitude and longitude) for each address
  • Get Distance [m] between each segment's origin and destination of the optimized route
  • Get Average Time [seconds] between each segment's origin and destination of the optimized route
  • Get Real Time In Traffic Conditions [seconds] (where available) at the moment you make the request between each segment's origin and destination of the optimized route
  • Get Tolls for each segment of the optimized route (where available)
  • Get EV Charging Points for each segment of the optimized route (where available)
  • Get Total Distance (km or mi) of the optimized route
  • Get Total Average Time (hh:mm) of the optimized route
  • Get Total Time In Real Traffic Conditions (hh:mm) of the optimized route
  • For Fleet Vehicles Routing you may make requests for each vehicle, so each vehicle will get its optimized route
  • Administration console
  • Support through online chat and/or tickets
  • We do NOT allow spam accounts for TRIAL



Monthly TIER
Popular

  • 90 USD per month
  • Use our cloud REST API and online APP with travel modes like driving, bicycling or walking(*)
  • Maximum 100 addresses(**) per each route / request
  • Maximum 50 requests per MINUTE
  • You own the commercial copyright with NO additional fee.
  • Maximum 3000 input addresses(*) per MONTH (same requested addresses will be counted also)
  • Get Optimized Route for input addresses and selected travel mode
  • Get Geocoding(***) data (latitude and longitude) for each address
  • Get Distance [m] between each segment's origin and destination of the optimized route
  • Get Average Time [seconds] between each segment's origin and destination of the optimized route
  • Get Real Time In Traffic Conditions [seconds] (where available) at the moment you make the request between each segment's origin and destination of the optimized route
  • Get Tolls for each segment of the optimized route (where available)
  • Get EV Charging Points for each segment of the optimized route (where available)
  • Get Total Distance (km or mi) of the optimized route
  • Get Total Average Time (hh:mm) of the optimized route
  • Get Total Time In Real Traffic Conditions (hh:mm) of the optimized route
  • For Fleet Vehicles Routing you may make requests for each vehicle, so each vehicle will get its optimized route
  • Administration console
  • Support through online chat and/or tickets



Yearly TIER
(15% Discount)

  • 918 USD per year
  • Use our cloud REST API and online APP with travel modes like driving, bicycling or walking(*)
  • Maximum 100 addresses(**) per each route / request
  • Maximum 50 requests per MINUTE
  • You own the commercial copyright with NO additional fee.
  • Maximum 3000 input addresses(*) per MONTH (same requested addresses will be counted also)
  • Get Optimized Route for input addresses and selected travel mode
  • Get Geocoding(***) data (latitude and longitude) for each address
  • Get Distance [m] between each segment's origin and destination of the optimized route
  • Get Average Time [seconds] between each segment's origin and destination of the optimized route
  • Get Real Time In Traffic Conditions [seconds] (where available) at the moment you make the request between each segment's origin and destination of the optimized route
  • Get Tolls for each segment of the optimized route (where available)
  • Get EV Charging Points for each segment of the optimized route (where available)
  • Get Total Distance (km or mi) of the optimized route
  • Get Total Average Time (hh:mm) of the optimized route
  • Get Total Time In Real Traffic Conditions (hh:mm) of the optimized route
  • For Fleet Vehicles Routing you may make requests for each vehicle, so each vehicle will get its optimized route
  • Administration console
  • Support through online chat and/or tickets



Notes:
VAT rate may be added or not, function to your country and/or if you are a taxable person or company.
* If you select different travel mode and calculate the route (even for the same input addresses) these addresses are counted also for each selected travel mode.
** Address - may be an exact address (recommended), a street address without number, a city, even a country.
*** Geocoding - if for one or more input addresses the API cannot geocode it, meaning the API cannot get the latitude and the longitude, then the optimized route will not be calculated and you will not be charged. If all the input addresses will be geocoded but calculating one or more segments of the optimized route cannot be done (for example there are no routes betwwen origin and destination) then the optimized route cannot be calculated and you will be charged.