Skip to main content
PATCH
/
v1
/
optimization-strategies
/
{id}
Update Optimization Strategy
curl --request PATCH \
  --url https://api.sandbox.usenash.com/v1/optimization-strategies/{id} \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "optimizationSchedules": [
    {
      "cronExpression": "<string>",
      "startDate": "2023-11-07T05:31:56Z",
      "endDate": "2023-11-07T05:31:56Z",
      "inputTimezoneId": "<string>"
    }
  ],
  "contractIds": [
    "<string>"
  ],
  "shiftContractId": "<string>",
  "pickupServiceTimeSeconds": 123,
  "dropoffServiceTimeSeconds": 123,
  "incrementalServiceTimeSeconds": 123,
  "enableAutoDispatch": true,
  "autodispatchWithinXMinutesOfPickupTime": 123,
  "earliestDispatchMinutesBeforePickup": 123,
  "pickupTimeFromInMinutes": 123,
  "pickupTimeToInMinutes": 123,
  "contractOptimizationOverrideParameters": [
    {
      "contractId": "<string>",
      "vehicleCount": 123,
      "dispatchStrategyId": "<string>",
      "leadTimeMinutes": 123,
      "fixedCost": 123,
      "maxOrdersPerRoute": 123,
      "minOrdersPerRoute": 123,
      "useAllVehicles": true
    }
  ],
  "unassignedOrdersOptionsGroupId": "<string>",
  "defaultTrafficSource": "<string>",
  "trafficTimeOffsetWeeks": 123,
  "zones": [
    "<string>"
  ],
  "storeLocations": [
    "<string>"
  ],
  "softCapabilities": [
    "<string>"
  ],
  "searchLevel": 123,
  "clusteringLevel": 123,
  "softClusterLabel": true,
  "saveOptimizedRoutes": true,
  "dynamicCadenceConfig": {
    "tiersBeforeCutoff": [
      {
        "intervalMinutes": 123,
        "maxHours": 123
      }
    ]
  },
  "label": "<string>"
}
'
import requests

url = "https://api.sandbox.usenash.com/v1/optimization-strategies/{id}"

payload = {
"optimizationSchedules": [
{
"cronExpression": "<string>",
"startDate": "2023-11-07T05:31:56Z",
"endDate": "2023-11-07T05:31:56Z",
"inputTimezoneId": "<string>"
}
],
"contractIds": ["<string>"],
"shiftContractId": "<string>",
"pickupServiceTimeSeconds": 123,
"dropoffServiceTimeSeconds": 123,
"incrementalServiceTimeSeconds": 123,
"enableAutoDispatch": True,
"autodispatchWithinXMinutesOfPickupTime": 123,
"earliestDispatchMinutesBeforePickup": 123,
"pickupTimeFromInMinutes": 123,
"pickupTimeToInMinutes": 123,
"contractOptimizationOverrideParameters": [
{
"contractId": "<string>",
"vehicleCount": 123,
"dispatchStrategyId": "<string>",
"leadTimeMinutes": 123,
"fixedCost": 123,
"maxOrdersPerRoute": 123,
"minOrdersPerRoute": 123,
"useAllVehicles": True
}
],
"unassignedOrdersOptionsGroupId": "<string>",
"defaultTrafficSource": "<string>",
"trafficTimeOffsetWeeks": 123,
"zones": ["<string>"],
"storeLocations": ["<string>"],
"softCapabilities": ["<string>"],
"searchLevel": 123,
"clusteringLevel": 123,
"softClusterLabel": True,
"saveOptimizedRoutes": True,
"dynamicCadenceConfig": { "tiersBeforeCutoff": [
{
"intervalMinutes": 123,
"maxHours": 123
}
] },
"label": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
optimizationSchedules: [
{
cronExpression: '<string>',
startDate: '2023-11-07T05:31:56Z',
endDate: '2023-11-07T05:31:56Z',
inputTimezoneId: '<string>'
}
],
contractIds: ['<string>'],
shiftContractId: '<string>',
pickupServiceTimeSeconds: 123,
dropoffServiceTimeSeconds: 123,
incrementalServiceTimeSeconds: 123,
enableAutoDispatch: true,
autodispatchWithinXMinutesOfPickupTime: 123,
earliestDispatchMinutesBeforePickup: 123,
pickupTimeFromInMinutes: 123,
pickupTimeToInMinutes: 123,
contractOptimizationOverrideParameters: [
{
contractId: '<string>',
vehicleCount: 123,
dispatchStrategyId: '<string>',
leadTimeMinutes: 123,
fixedCost: 123,
maxOrdersPerRoute: 123,
minOrdersPerRoute: 123,
useAllVehicles: true
}
],
unassignedOrdersOptionsGroupId: '<string>',
defaultTrafficSource: '<string>',
trafficTimeOffsetWeeks: 123,
zones: ['<string>'],
storeLocations: ['<string>'],
softCapabilities: ['<string>'],
searchLevel: 123,
clusteringLevel: 123,
softClusterLabel: true,
saveOptimizedRoutes: true,
dynamicCadenceConfig: {tiersBeforeCutoff: [{intervalMinutes: 123, maxHours: 123}]},
label: '<string>'
})
};

fetch('https://api.sandbox.usenash.com/v1/optimization-strategies/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sandbox.usenash.com/v1/optimization-strategies/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'optimizationSchedules' => [
[
'cronExpression' => '<string>',
'startDate' => '2023-11-07T05:31:56Z',
'endDate' => '2023-11-07T05:31:56Z',
'inputTimezoneId' => '<string>'
]
],
'contractIds' => [
'<string>'
],
'shiftContractId' => '<string>',
'pickupServiceTimeSeconds' => 123,
'dropoffServiceTimeSeconds' => 123,
'incrementalServiceTimeSeconds' => 123,
'enableAutoDispatch' => true,
'autodispatchWithinXMinutesOfPickupTime' => 123,
'earliestDispatchMinutesBeforePickup' => 123,
'pickupTimeFromInMinutes' => 123,
'pickupTimeToInMinutes' => 123,
'contractOptimizationOverrideParameters' => [
[
'contractId' => '<string>',
'vehicleCount' => 123,
'dispatchStrategyId' => '<string>',
'leadTimeMinutes' => 123,
'fixedCost' => 123,
'maxOrdersPerRoute' => 123,
'minOrdersPerRoute' => 123,
'useAllVehicles' => true
]
],
'unassignedOrdersOptionsGroupId' => '<string>',
'defaultTrafficSource' => '<string>',
'trafficTimeOffsetWeeks' => 123,
'zones' => [
'<string>'
],
'storeLocations' => [
'<string>'
],
'softCapabilities' => [
'<string>'
],
'searchLevel' => 123,
'clusteringLevel' => 123,
'softClusterLabel' => true,
'saveOptimizedRoutes' => true,
'dynamicCadenceConfig' => [
'tiersBeforeCutoff' => [
[
'intervalMinutes' => 123,
'maxHours' => 123
]
]
],
'label' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.sandbox.usenash.com/v1/optimization-strategies/{id}"

payload := strings.NewReader("{\n \"optimizationSchedules\": [\n {\n \"cronExpression\": \"<string>\",\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"inputTimezoneId\": \"<string>\"\n }\n ],\n \"contractIds\": [\n \"<string>\"\n ],\n \"shiftContractId\": \"<string>\",\n \"pickupServiceTimeSeconds\": 123,\n \"dropoffServiceTimeSeconds\": 123,\n \"incrementalServiceTimeSeconds\": 123,\n \"enableAutoDispatch\": true,\n \"autodispatchWithinXMinutesOfPickupTime\": 123,\n \"earliestDispatchMinutesBeforePickup\": 123,\n \"pickupTimeFromInMinutes\": 123,\n \"pickupTimeToInMinutes\": 123,\n \"contractOptimizationOverrideParameters\": [\n {\n \"contractId\": \"<string>\",\n \"vehicleCount\": 123,\n \"dispatchStrategyId\": \"<string>\",\n \"leadTimeMinutes\": 123,\n \"fixedCost\": 123,\n \"maxOrdersPerRoute\": 123,\n \"minOrdersPerRoute\": 123,\n \"useAllVehicles\": true\n }\n ],\n \"unassignedOrdersOptionsGroupId\": \"<string>\",\n \"defaultTrafficSource\": \"<string>\",\n \"trafficTimeOffsetWeeks\": 123,\n \"zones\": [\n \"<string>\"\n ],\n \"storeLocations\": [\n \"<string>\"\n ],\n \"softCapabilities\": [\n \"<string>\"\n ],\n \"searchLevel\": 123,\n \"clusteringLevel\": 123,\n \"softClusterLabel\": true,\n \"saveOptimizedRoutes\": true,\n \"dynamicCadenceConfig\": {\n \"tiersBeforeCutoff\": [\n {\n \"intervalMinutes\": 123,\n \"maxHours\": 123\n }\n ]\n },\n \"label\": \"<string>\"\n}")

req, _ := http.NewRequest("PATCH", url, payload)

req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.patch("https://api.sandbox.usenash.com/v1/optimization-strategies/{id}")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"optimizationSchedules\": [\n {\n \"cronExpression\": \"<string>\",\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"inputTimezoneId\": \"<string>\"\n }\n ],\n \"contractIds\": [\n \"<string>\"\n ],\n \"shiftContractId\": \"<string>\",\n \"pickupServiceTimeSeconds\": 123,\n \"dropoffServiceTimeSeconds\": 123,\n \"incrementalServiceTimeSeconds\": 123,\n \"enableAutoDispatch\": true,\n \"autodispatchWithinXMinutesOfPickupTime\": 123,\n \"earliestDispatchMinutesBeforePickup\": 123,\n \"pickupTimeFromInMinutes\": 123,\n \"pickupTimeToInMinutes\": 123,\n \"contractOptimizationOverrideParameters\": [\n {\n \"contractId\": \"<string>\",\n \"vehicleCount\": 123,\n \"dispatchStrategyId\": \"<string>\",\n \"leadTimeMinutes\": 123,\n \"fixedCost\": 123,\n \"maxOrdersPerRoute\": 123,\n \"minOrdersPerRoute\": 123,\n \"useAllVehicles\": true\n }\n ],\n \"unassignedOrdersOptionsGroupId\": \"<string>\",\n \"defaultTrafficSource\": \"<string>\",\n \"trafficTimeOffsetWeeks\": 123,\n \"zones\": [\n \"<string>\"\n ],\n \"storeLocations\": [\n \"<string>\"\n ],\n \"softCapabilities\": [\n \"<string>\"\n ],\n \"searchLevel\": 123,\n \"clusteringLevel\": 123,\n \"softClusterLabel\": true,\n \"saveOptimizedRoutes\": true,\n \"dynamicCadenceConfig\": {\n \"tiersBeforeCutoff\": [\n {\n \"intervalMinutes\": 123,\n \"maxHours\": 123\n }\n ]\n },\n \"label\": \"<string>\"\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.sandbox.usenash.com/v1/optimization-strategies/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Patch.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"optimizationSchedules\": [\n {\n \"cronExpression\": \"<string>\",\n \"startDate\": \"2023-11-07T05:31:56Z\",\n \"endDate\": \"2023-11-07T05:31:56Z\",\n \"inputTimezoneId\": \"<string>\"\n }\n ],\n \"contractIds\": [\n \"<string>\"\n ],\n \"shiftContractId\": \"<string>\",\n \"pickupServiceTimeSeconds\": 123,\n \"dropoffServiceTimeSeconds\": 123,\n \"incrementalServiceTimeSeconds\": 123,\n \"enableAutoDispatch\": true,\n \"autodispatchWithinXMinutesOfPickupTime\": 123,\n \"earliestDispatchMinutesBeforePickup\": 123,\n \"pickupTimeFromInMinutes\": 123,\n \"pickupTimeToInMinutes\": 123,\n \"contractOptimizationOverrideParameters\": [\n {\n \"contractId\": \"<string>\",\n \"vehicleCount\": 123,\n \"dispatchStrategyId\": \"<string>\",\n \"leadTimeMinutes\": 123,\n \"fixedCost\": 123,\n \"maxOrdersPerRoute\": 123,\n \"minOrdersPerRoute\": 123,\n \"useAllVehicles\": true\n }\n ],\n \"unassignedOrdersOptionsGroupId\": \"<string>\",\n \"defaultTrafficSource\": \"<string>\",\n \"trafficTimeOffsetWeeks\": 123,\n \"zones\": [\n \"<string>\"\n ],\n \"storeLocations\": [\n \"<string>\"\n ],\n \"softCapabilities\": [\n \"<string>\"\n ],\n \"searchLevel\": 123,\n \"clusteringLevel\": 123,\n \"softClusterLabel\": true,\n \"saveOptimizedRoutes\": true,\n \"dynamicCadenceConfig\": {\n \"tiersBeforeCutoff\": [\n {\n \"intervalMinutes\": 123,\n \"maxHours\": 123\n }\n ]\n },\n \"label\": \"<string>\"\n}"

response = http.request(request)
puts response.read_body
[
  {
    "error": {
      "code": "<string>",
      "message": "<string>",
      "details": {}
    },
    "response_status": "<string>",
    "RequestID": "<string>"
  }
]

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Path Parameters

id
string
required

Body

application/json
optimizationSchedules
OptimizationScheduleInputSerializer · object[] | null
contractIds
string[] | null

Contracts considered during optimization.

shiftContractId
string | null

Contract id of the provider supplying shifts for this strategy.

pickupServiceTimeSeconds
integer | null
dropoffServiceTimeSeconds
integer | null
incrementalServiceTimeSeconds
integer | null
enableAutoDispatch
boolean | null
autodispatchWithinXMinutesOfPickupTime
integer | null

Deprecated. Use pickup_time_from_in_minutes / pickup_time_to_in_minutes.

earliestDispatchMinutesBeforePickup
integer | null

Deprecated. Use pickup_time_from_in_minutes / pickup_time_to_in_minutes.

pickupTimeFromInMinutes
integer | null

Lower bound (inclusive) of the pickup time window to optimize, in minutes from now.

pickupTimeToInMinutes
integer | null

Upper bound (exclusive) of the pickup time window to optimize, in minutes from now.

contractOptimizationOverrideParameters
ContractOverrideParametersSerializer · object[] | null
unassignedOrdersOptionsGroupId
string | null
defaultTrafficSource
string | null
trafficTimeOffsetWeeks
integer | null
zones
string[] | null

Zone ids assigned to this strategy.

storeLocations
string[] | null

Store location ids assigned to this strategy.

softCapabilities
string[] | null
searchLevel
integer | null
clusteringLevel
integer | null
softClusterLabel
boolean | null
balanceRoutes
enum<string> | null
Available options:
none,
same_vehicle_type,
all_vehicle_types
saveOptimizedRoutes
boolean | null
dynamicCadenceConfig
DynamicCadenceConfigInputSerializer · object | null
label
string | null

Response

422 - application/json

Unprocessable Content

error
NashErrorDetails · object
required
response_status
string
required
RequestID
string
required