Optimizes the order of one member’s jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker’s route that was optimized in the last 3 hours is returned unchanged.
true runs the full solver (time windows, working hours, skills, capacity; jobs that do not fit come back in unassigned). false only reorders the stops.
{"docsConfig":{"$schema":"https://mintlify.com/docs.json","theme":"mint","name":"Hellotracks developer docs","colors":{"primary":"#22C328","light":"#FFFFFF","dark":"#333333"},"favicon":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/favicon.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=4e8e85079ee3de8a26be874f20121f8a","logo":{"light":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/light.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=3402609a99cee9b7f7698ffe4729c386","dark":"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/dark.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=cdd51138facbdd7cf7c929d073805a3a"},"api":{"mdx":{"server":"https://api.hellotracks.com/api","auth":{"method":"key","name":"API-Key"}}},"background":{"decoration":null,"color":{"light":null,"dark":"#090014"}},"navbar":{"links":[],"primary":{"type":"button","label":"Back to Website","href":"https://hellotracks.com"}},"footer":{"socials":{}},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"hellotracks","hasAudioNarration":false,"actualSubdomain":"hellotracks","customDomains":["api-docs.hellotracks.com"],"gitSource":{"type":"github","owner":"hellotracks","repo":"api-docs","deployBranch":"main","contentDirectory":"","isPrivate":false,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae89276883d97e41aaefb51","collectionId":"a125913e-8abd-4296-9de2-499e8390fa79","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae89276883d97e41aaefb51"},"entitlements":{},"buildId":"6ae89a94eb73d12669c29c07","clientVersion":"0.0.4044","searchFilterCounts":[{"language":"default","tag":"REST API","count":92},{"language":"default","tag":"JSON API","count":26},{"language":"default","tag":"Reports","count":19},{"language":"default","tag":"Forms","count":12},{"language":"default","tag":"Get Started","count":11},{"language":"default","tag":"Alerts","count":10},{"language":"default","tag":"Jobs","count":8},{"language":"default","tag":"ETA pages","count":7},{"language":"default","tag":"Job Management","count":6},{"language":"default","tag":"Maps","count":6}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"v1/reference/routing/optimize-route","slug":"/v1/reference/routing/optimize-route","pageMetadata":{"title":"Optimize a route","openapi":"v1/openapi.json POST /routing/optimize","description":"Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.","href":"/v1/reference/routing/optimize-route"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Optimizes the order of one member’s jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker’s route that was optimized in the last 3 hours is returned unchanged.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){return _jsx(_Fragment,{})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Optimize a route","openapi":"v1/openapi.json POST /routing/optimize","description":"Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.","href":"/v1/reference/routing/optimize-route"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[],"codeExamples":{}},"jsLinks":[],"openApiReferenceData":{"operation":{"operationId":"optimizeRoute","tags":["Routing"],"summary":"Optimize a route","description":"Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.","requestBody":"da2648c6-5394-4d63-847f-86c35921ebc1","responses":{"200":"1c9fd344-9e5e-4322-82e6-7aa7b09bffb2","400":"03ab875a-08c9-45f7-aeed-bd741ffc1186","401":"d88c167d-f64d-4f72-8146-3a6f972532c0","403":"aeb9ac5e-807b-4b7f-9df0-948e2ecf0109","429":"43822c21-41e8-48f0-ad7e-eeeccd770fd0","500":"27aca492-5591-4546-8b59-737b4c9d15ff"},"method":"post","type":"path","servers":["58bcea14-c37e-4bbc-bd59-e61bb9978210"],"security":["82c7e45e-4c5c-4eb3-8d32-71a74101e06c"],"path":"/routing/optimize","baseUrlOptions":["https://api.hellotracks.com/v1"],"title":"Optimize a route","codeSamples":[],"requiredOnlyExamples":false,"requestExampleType":"generated","responseExampleType":"generated"},"dependencies":{"parameters":{},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["date"],"properties":{"date":{"type":"string","format":"date","description":"Route day, YYYY-MM-DD. Required.","isRequired":true,"uniqueKey":"date","typeLabel":"string\u003cdate>"},"accountId":{"type":"string","description":"Member id or username whose route to optimize. Required unless account is sent.","uniqueKey":"accountId","typeLabel":"string"},"account":{"type":"string","description":"Same as accountId (member id or username). Wins when both are sent.","uniqueKey":"account","typeLabel":"string"},"solve":{"type":"boolean","default":false,"description":"true runs the full solver (time windows, working hours, skills, capacity; jobs that do not fit come back in unassigned). false only reorders the stops.","uniqueKey":"solve","typeLabel":"boolean"},"index":{"type":"integer","description":"With count: optimize only the stops from this position on.","uniqueKey":"index","typeLabel":"integer"},"count":{"type":"integer","description":"With index: number of stops to optimize.","uniqueKey":"count","typeLabel":"integer"},"constraints":{"type":"object","description":"Solver constraints (with solve=true). Keys are snake_case. Each defaults to on.","properties":{"working_hours":{"type":"boolean","default":true,"uniqueKey":"constraints.working_hours","typeLabel":"boolean"},"time_window":{"type":"boolean","default":true,"uniqueKey":"constraints.time_window","typeLabel":"boolean"},"skills":{"type":"boolean","default":true,"uniqueKey":"constraints.skills","typeLabel":"boolean"},"capacity":{"type":"boolean","default":true,"uniqueKey":"constraints.capacity","typeLabel":"boolean"},"max_jobs":{"type":"integer","default":1000,"uniqueKey":"constraints.max_jobs","typeLabel":"integer"}},"uniqueKey":"constraints","typeLabel":"object"}},"example":{"accountId":"a1b2c3","date":"2026-11-02","solve":true,"constraints":{"time_window":true,"working_hours":true}},"uniqueKey":"","typeLabel":"object"},"example":{"accountId":"a1b2c3","date":"2026-11-02","solve":true,"constraints":{"time_window":true,"working_hours":true}},"examples":{"Example":{"title":"Example","value":{"accountId":"a1b2c3","date":"2026-11-02","solve":true,"constraints":{"time_window":true,"working_hours":true}}}},"exampleType":"examples"}},"exampleType":"examples"},"responses":{"1c9fd344-9e5e-4322-82e6-7aa7b09bffb2":{"description":"Success","content":{"application/json":{"schema":{"type":"object","required":["data","error","meta"],"properties":{"data":{"type":"object","required":["routeUpdated","originalOrder","unassigned","items"],"properties":{"routeUpdated":{"type":"boolean","description":"true when a new route was calculated and saved.","isRequired":true,"uniqueKey":"data.routeUpdated","typeLabel":"boolean"},"originalOrder":{"type":"array","items":{"type":"string","uniqueKey":"data.originalOrder.items.[INDEX]","typeLabel":"string"},"description":"Job ids in the order before optimizing.","isRequired":true,"uniqueKey":"data.originalOrder","typeLabel":"string[]"},"unassigned":{"type":"array","items":{"type":"string","uniqueKey":"data.unassigned.items.[INDEX]","typeLabel":"string"},"description":"Job ids the solver could not fit.","isRequired":true,"uniqueKey":"data.unassigned","typeLabel":"string[]"},"items":{"type":"array","items":{"type":"object","required":["id","progress","timeWindow","location","assignee","contact","customFields","linkedForms"],"properties":{"id":{"type":"string","description":"Job id (24 hex characters).","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].id","typeLabel":"string"},"progress":{"type":"string","enum":["unassigned","scheduled","accepted","in_progress","success","failed"],"description":"Derived from the job's timestamps: success when completed, failed when marked failed, in_progress when accepted and checked in, accepted when accepted, unassigned when nobody is assigned, otherwise scheduled (assigned, not yet accepted).","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].progress","typeLabel":"enum\u003cstring>"},"timeWindow":{"type":"object","description":"Time window on the job's date, local time of the company, as HH:mm strings (24:00 allowed as the end).","properties":{"start":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:mm. 00:00 when not set.","example":"09:00","uniqueKey":"data.\\items.items.[INDEX].timeWindow.start","typeLabel":"string"},"end":{"type":"string","pattern":"^\\d{2}:\\d{2}$","description":"HH:mm. 24:00 when not set.","example":"12:00","uniqueKey":"data.\\items.items.[INDEX].timeWindow.end","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].timeWindow","typeLabel":"object"},"location":{"type":"object","description":"Destination coordinates. 0/0 when the job has no location yet (for example while its address is still being geocoded).","properties":{"lat":{"type":"number","format":"double","example":37.7897,"uniqueKey":"data.\\items.items.[INDEX].location.lat","typeLabel":"number\u003cdouble>"},"lng":{"type":"number","format":"double","example":-122.4,"uniqueKey":"data.\\items.items.[INDEX].location.lng","typeLabel":"number\u003cdouble>"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].location","typeLabel":"object"},"assignee":{"type":"object","description":"The assigned member. Empty object when the job is unassigned.","properties":{"id":{"type":"string","description":"Member id.","uniqueKey":"data.\\items.items.[INDEX].assignee.id","typeLabel":"string"},"username":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.username","typeLabel":"string"},"name":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.name","typeLabel":"string"},"email":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.email","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].assignee.phone","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].assignee","typeLabel":"object"},"contact":{"type":"object","description":"On-site contact. Fields that are not set are left out.","properties":{"name":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.name","typeLabel":"string"},"phone":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.phone","typeLabel":"string"},"email":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].contact.email","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].contact","typeLabel":"object"},"customFields":{"type":"object","additionalProperties":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].customFields.additionalProperties","typeLabel":"string"},"description":"Custom field names and values.","isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].customFields","typeLabel":"object"},"linkedForms":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","description":"Form template id.","uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX].id","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX].title","typeLabel":"string"}},"uniqueKey":"data.\\items.items.[INDEX].linkedForms.items.[INDEX]","typeLabel":"object"},"isRequired":true,"uniqueKey":"data.\\items.items.[INDEX].linkedForms","typeLabel":"object[]"},"externalId":{"type":"string","description":"Your own id for the job; left out when not set.","uniqueKey":"data.\\items.items.[INDEX].externalId","typeLabel":"string"},"title":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].title","typeLabel":"string"},"address":{"type":"string","uniqueKey":"data.\\items.items.[INDEX].address","typeLabel":"string"},"notes":{"type":"string","description":"Notes from the dispatcher to the worker.","uniqueKey":"data.\\items.items.[INDEX].notes","typeLabel":"string"},"issueText":{"type":"string","description":"Text the worker entered on the job.","uniqueKey":"data.\\items.items.[INDEX].issueText","typeLabel":"string"},"createdAt":{"type":"integer","format":"int64","description":"ms timestamp.","uniqueKey":"data.\\items.items.[INDEX].createdAt","typeLabel":"integer\u003cint64>"},"updatedAt":{"type":"integer","format":"int64","description":"ms timestamp: the latest of saved, created, assigned, accepted, scheduled, check-in, check-out, failed and completed.","uniqueKey":"data.\\items.items.[INDEX].updatedAt","typeLabel":"integer\u003cint64>"},"scheduledAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not set.","uniqueKey":"data.\\items.items.[INDEX].scheduledAt","typeLabel":"integer\u003cint64>"},"assignedAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not set.","uniqueKey":"data.\\items.items.[INDEX].assignedAt","typeLabel":"integer\u003cint64>"},"acceptedAt":{"type":"integer","format":"int64","description":"ms timestamp, 0 when not accepted.","uniqueKey":"data.\\items.items.[INDEX].acceptedAt","typeLabel":"integer\u003cint64>"},"completedAt":{"type":"integer","format":"int64","description":"ms timestamp of success, 0 when not completed.","uniqueKey":"data.\\items.items.[INDEX].completedAt","typeLabel":"integer\u003cint64>"},"failedAt":{"type":"integer","format":"int64","description":"ms timestamp of failure, 0 when not failed.","uniqueKey":"data.\\items.items.[INDEX].failedAt","typeLabel":"integer\u003cint64>"},"status":{"type":"string","enum":["archived","deleted"],"description":"Only on archived or deleted jobs; normal jobs have no status. A deleted job only shows up in the answer to a create whose externalId matches it.","uniqueKey":"data.\\items.items.[INDEX].status","typeLabel":"enum\u003cstring>"},"date":{"oneOf":[{"type":"string","format":"date","description":"YYYY-MM-DD, null when the job has no date.","uniqueKey":"data.\\items.items.[INDEX].date.oneOf.0","typeLabel":"string\u003cdate>"},{"type":"null","format":"date","description":"YYYY-MM-DD, null when the job has no date.","uniqueKey":"data.\\items.items.[INDEX].date.oneOf.1","typeLabel":"null"}],"uniqueKey":"data.\\items.items.[INDEX].date","typeLabel":"string\u003cdate> | null"},"priority":{"type":"integer","minimum":0,"maximum":10,"uniqueKey":"data.\\items.items.[INDEX].priority","typeLabel":"integer"},"onSiteDurationSeconds":{"type":"integer","minimum":0,"uniqueKey":"data.\\items.items.[INDEX].onSiteDurationSeconds","typeLabel":"integer"},"placeId":{"type":"string","description":"The place the job belongs to; left out when none.","uniqueKey":"data.\\items.items.[INDEX].placeId","typeLabel":"string"},"etaSessionId":{"type":"string","description":"Id of the job's active ETA session (not revoked, not expired); left out when there is none.","uniqueKey":"data.\\items.items.[INDEX].etaSessionId","typeLabel":"string"},"etaUrl":{"type":"string","format":"uri","description":"Public eta.page link of that session; left out when there is none.","uniqueKey":"data.\\items.items.[INDEX].etaUrl","typeLabel":"string\u003curi>"}},"example":{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"},"uniqueKey":"data.\\items.items.[INDEX]","typeLabel":"object"},"description":"The day's jobs in the new order, followed by the unassigned ones. Empty when the route was not updated.","isRequired":true,"uniqueKey":"data.\\items","typeLabel":"object[]"},"abortReason":{"type":"string","description":"Why the solver stopped: no_region, impossible_route, internal_error, input_error: \u003cdetail>, routing_error: \u003cdetail>, unknown_code_\u003cn>.","uniqueKey":"data.abortReason","typeLabel":"string"},"routeReason":{"type":"string","description":"Why the route was not updated, when there is no abortReason.","uniqueKey":"data.routeReason","typeLabel":"string"}},"isRequired":true,"uniqueKey":"data","typeLabel":"object"},"error":{"type":"null","isRequired":true,"uniqueKey":"error","typeLabel":"null"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"isRequired":true,"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":{"routeUpdated":true,"originalOrder":["650000000000000000000002","650000000000000000000001"],"unassigned":[],"items":[{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"}]},"error":null,"meta":{"path":"/v1/routing/optimize","method":"POST"}},"examples":{"Example":{"title":"Example","value":{"data":{"routeUpdated":true,"originalOrder":["650000000000000000000002","650000000000000000000001"],"unassigned":[],"items":[{"id":"650000000000000000000001","externalId":"ORDER-1001","title":"Install water heater","address":"500 Market St, San Francisco, CA 94105","notes":"Ring at the side door.","issueText":"","createdAt":1793520000000,"updatedAt":1793523600000,"scheduledAt":0,"assignedAt":1793520000000,"acceptedAt":0,"completedAt":0,"failedAt":0,"progress":"scheduled","date":"2026-11-02","priority":2,"timeWindow":{"start":"09:00","end":"12:00"},"onSiteDurationSeconds":3600,"location":{"lat":37.7897,"lng":-122.4},"assignee":{"id":"a1b2c3","username":"alex@example.com","name":"Alex Rivera","email":"alex@example.com","phone":"+14155550101"},"placeId":"p1q2r3","contact":{"name":"Sam Lee","phone":"+14155550102","email":"sam@example.com"},"customFields":{"PO":"4711"},"linkedForms":[{"id":"f1a2b3","title":"Install checklist"}],"etaSessionId":"eta_k7m2p9x4q8r3","etaUrl":"https://eta.page/K7M2-P9X4-Q8R3"}]},"error":null,"meta":{"path":"/v1/routing/optimize","method":"POST"}}}},"exampleType":"examples"}},"exampleType":"examples"},"03ab875a-08c9-45f7-aeed-bd741ffc1186":{"description":"The request is invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"invalid_request","message":"date must be YYYY-MM-DD"},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"invalid_request","message":"date must be YYYY-MM-DD"},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"d88c167d-f64d-4f72-8146-3a6f972532c0":{"description":"The API key is missing or invalid.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"invalid_api_key","message":"Invalid Hellotracks API key."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"invalid_api_key","message":"Invalid Hellotracks API key."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"aeb9ac5e-807b-4b7f-9df0-948e2ecf0109":{"description":"The key may not do this.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"forbidden","message":"No permission."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"forbidden","message":"No permission."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"43822c21-41e8-48f0-ad7e-eeeccd770fd0":{"description":"Too many requests; slow down.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"throttled","message":"Too many requests."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"throttled","message":"Too many requests."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"},"27aca492-5591-4546-8b59-737b4c9d15ff":{"description":"Hellotracks failed; retry later.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"null","uniqueKey":"data","typeLabel":"null"},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","description":"Stable error code for programs.","enum":["invalid_request","invalid_format","invalid_data","invalid_api_key","unknown_user","authentication_failed","forbidden","not_found","already_exists","throttled","not_ready","clock_invalid","force_logout","internal_error","unknown_error"],"isRequired":true,"uniqueKey":"error.code","typeLabel":"enum\u003cstring>"},"message":{"type":"string","description":"Why it failed, for people.","isRequired":true,"uniqueKey":"error.message","typeLabel":"string"}},"uniqueKey":"error","typeLabel":"object"},"meta":{"type":"object","properties":{"path":{"type":"string","description":"The request path, without /v1.","example":"/jobs","uniqueKey":"meta.path","typeLabel":"string"},"method":{"type":"string","example":"GET","uniqueKey":"meta.method","typeLabel":"string"}},"uniqueKey":"meta","typeLabel":"object"}},"uniqueKey":"","typeLabel":"object"},"example":{"data":null,"error":{"code":"internal_error","message":"Hellotracks API is temporarily unavailable."},"meta":{"path":"/jobs","method":"GET"}},"examples":{"Example":{"title":"Example","value":{"data":null,"error":{"code":"internal_error","message":"Hellotracks API is temporarily unavailable."},"meta":{"path":"/jobs","method":"GET"}}}},"exampleType":"examples"}},"exampleType":"examples"}},"security":{"82c7e45e-4c5c-4eb3-8d32-71a74101e06c":{"ApiKey":{"type":"apiKey","in":"header","name":"API-Key","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","scopes":[],"schemeName":"ApiKey"}}},"servers":{"58bcea14-c37e-4bbc-bd59-e61bb9978210":{"url":"https://api.hellotracks.com/v1"}},"processedSecurityOptions":[{"schemes":[{"scheme":{"type":"apiKey","in":"header","name":"API-Key","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","scopes":[],"schemeName":"ApiKey"},"schema":{"title":"API-Key","type":"string","description":"Your API key, from More → API \u0026 Integrations in the dashboard, or from ht signup / ht auth login.","isRequired":true,"typeLabel":"string","deprecated":false},"schemeName":"ApiKey","name":"API-Key"}],"title":"ApiKey"}]},"originalFileLocation":"v1/openapi.json"},"subdomain":"hellotracks","siteName":"Hellotracks developer docs","title":"Optimize a route - Hellotracks developer docs","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-02T13:39:17.240Z","originalFileLocation":"v1/reference/routing/optimize-route.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Optimizes the order of one member\u0026#x27;s jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker\u0026#x27;s route that was optimized in the last 3 hours is returned unchanged.\">\u003cmeta data-mint-head name=\"application-name\" content=\"Hellotracks developer docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Optimize a route - Hellotracks developer docs\">\u003cmeta data-mint-head property=\"og:description\" content=\"Optimizes the order of one member\u0026#x27;s jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker\u0026#x27;s route that was optimized in the last 3 hours is returned unchanged.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Hellotracks developer docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://hellotracks.mintlify.app/_mintlify/api/og/v2?division=Routing\u0026amp;title=Optimize+a+route\u0026amp;description=Optimizes+the+order+of+one+member%27s+jobs+on+one+day+and+saves+the+route.+Allowed+for+admins%2C+dispatchers+and+the+company%3B+workers+only+when+the+company+allows+w\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=7f4578a410de17be13fe6ed74b0e7357cc3c2985678b50f019089ea24a71a8de\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Optimize a route - Hellotracks developer docs\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Optimizes the order of one member\u0026#x27;s jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker\u0026#x27;s route that was optimized in the last 3 hours is returned unchanged.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://hellotracks.mintlify.app/_mintlify/api/og/v2?division=Routing\u0026amp;title=Optimize+a+route\u0026amp;description=Optimizes+the+order+of+one+member%27s+jobs+on+one+day+and+saves+the+route.+Allowed+for+admins%2C+dispatchers+and+the+company%3B+workers+only+when+the+company+allows+w\u0026amp;theme=8e96cdb371124c7fdc0c80f1\u0026amp;signature=7f4578a410de17be13fe6ed74b0e7357cc3c2985678b50f019089ea24a71a8de\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/hellotracks/Mukku1hgsB6vFQWq/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Hellotracks developer docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#22C328\">\u003clink data-mint-head rel=\"canonical\" href=\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/v1/reference/routing/optimize-route.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://api-docs.hellotracks.com/#organization\",\"name\":\"Hellotracks developer docs\",\"url\":\"https://api-docs.hellotracks.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/hellotracks/Ef0Eqx61i3dR12gk/logo/light.svg?fit=max\u0026auto=format\u0026n=Ef0Eqx61i3dR12gk\u0026q=85\u0026s=3402609a99cee9b7f7698ffe4729c386\"}},{\"@type\":\"WebSite\",\"@id\":\"https://api-docs.hellotracks.com#website\",\"name\":\"Hellotracks developer docs\",\"url\":\"https://api-docs.hellotracks.com\",\"publisher\":{\"@id\":\"https://api-docs.hellotracks.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route#webpage\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route\",\"name\":\"Optimize a route\",\"description\":\"Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.\",\"dateModified\":\"2026-11-02T13:39:17.240Z\",\"isPartOf\":{\"@id\":\"https://api-docs.hellotracks.com#website\"},\"breadcrumb\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Hellotracks developer docs\",\"item\":\"https://api-docs.hellotracks.com\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Optimize a route\",\"item\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route\"}]},{\"@type\":[\"TechArticle\",\"APIReference\"],\"@id\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route#apireference\",\"headline\":\"Optimize a route\",\"name\":\"Optimize a route\",\"description\":\"Optimizes the order of one member's jobs on one day and saves the route. Allowed for admins, dispatchers and the company; workers only when the company allows workersOptimizeRoute (403 otherwise, also for a member the caller cannot see). With solve=false a worker's route that was optimized in the last 3 hours is returned unchanged.\",\"url\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route\",\"mainEntityOfPage\":{\"@id\":\"https://api-docs.hellotracks.com/v1/reference/routing/optimize-route#webpage\"},\"dateModified\":\"2026-11-02T13:39:17.240Z\",\"publisher\":{\"@id\":\"https://api-docs.hellotracks.com/#organization\"},\"isPartOf\":{\"@id\":\"https://api-docs.hellotracks.com#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Hellotracks developer docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Hellotracks developer docs","nav":{"global":null,"tabs":[{"tab":"Overview","pages":[{"title":"Overview","href":"/introduction"}]},{"tab":"JSON API","pages":[{"title":"JSON API","href":"/api-reference/overview"}]},{"tab":"REST API","groups":[{"group":"Get Started","pages":[{"title":"REST API overview","href":"/v1/overview"},{"title":"No-code connectors","href":"/v1/no-code-connectors"}]},{"group":"Sign-up and sign-in","pages":[{"title":"Start a sign-up","openapi":"v1/openapi.json POST /signup","href":"/v1/reference/sign-up-and-sign-in/create-signup"},{"title":"Finish a sign-up","openapi":"v1/openapi.json POST /signup/verify","href":"/v1/reference/sign-up-and-sign-in/verify-signup"},{"title":"Email a sign-in code","openapi":"v1/openapi.json POST /auth/email-code","href":"/v1/reference/sign-up-and-sign-in/request-email-code"},{"title":"Sign in with the code","openapi":"v1/openapi.json POST /auth/email-code/verify","href":"/v1/reference/sign-up-and-sign-in/verify-email-code"},{"title":"Show the key's account","openapi":"v1/openapi.json GET /auth/whoami","href":"/v1/reference/sign-up-and-sign-in/get-who-am-i"}]},{"group":"Company","pages":[{"title":"Get the company","openapi":"v1/openapi.json GET /company","href":"/v1/reference/company/get-company"},{"title":"Change the company","openapi":"v1/openapi.json PATCH /company","href":"/v1/reference/company/update-company"}]},{"group":"Members","pages":[{"title":"List members","openapi":"v1/openapi.json GET /members","href":"/v1/reference/members/list-members"},{"title":"Add a member","openapi":"v1/openapi.json POST /members","href":"/v1/reference/members/create-member"},{"title":"Get a member","openapi":"v1/openapi.json GET /members/{id}","href":"/v1/reference/members/get-member"},{"title":"Change a member","openapi":"v1/openapi.json PATCH /members/{id}","href":"/v1/reference/members/update-member"},{"title":"Remove a member","openapi":"v1/openapi.json DELETE /members/{id}","href":"/v1/reference/members/delete-member"}]},{"group":"API keys","pages":[{"title":"List API keys","openapi":"v1/openapi.json GET /apikeys","href":"/v1/reference/api-keys/list-api-keys"},{"title":"Create an API key","openapi":"v1/openapi.json POST /apikeys","href":"/v1/reference/api-keys/create-api-key"},{"title":"Revoke an API key","openapi":"v1/openapi.json POST /apikeys/{id}/revoke","href":"/v1/reference/api-keys/revoke-api-key"},{"title":"Delete an API key","openapi":"v1/openapi.json DELETE /apikeys/{id}","href":"/v1/reference/api-keys/delete-api-key"}]},{"group":"Jobs","pages":[{"title":"List jobs","openapi":"v1/openapi.json GET /jobs","href":"/v1/reference/jobs/list-jobs"},{"title":"Create jobs","openapi":"v1/openapi.json POST /jobs","href":"/v1/reference/jobs/create-jobs"},{"title":"Update jobs","openapi":"v1/openapi.json PATCH /jobs","href":"/v1/reference/jobs/update-jobs"},{"title":"Get a job","openapi":"v1/openapi.json GET /jobs/{id}","href":"/v1/reference/jobs/get-job"},{"title":"Update a job","openapi":"v1/openapi.json PATCH /jobs/{id}","href":"/v1/reference/jobs/update-job"},{"title":"Delete a job","openapi":"v1/openapi.json DELETE /jobs/{id}","href":"/v1/reference/jobs/delete-job"},{"title":"Archive a job","openapi":"v1/openapi.json POST /jobs/{id}/archive","href":"/v1/reference/jobs/archive-job"},{"title":"Restore a job","openapi":"v1/openapi.json POST /jobs/{id}/restore","href":"/v1/reference/jobs/restore-job"}]},{"group":"Places","pages":[{"title":"List places","openapi":"v1/openapi.json GET /places","href":"/v1/reference/places/list-places"},{"title":"Create a place","openapi":"v1/openapi.json POST /places","href":"/v1/reference/places/create-place"},{"title":"Get a place","openapi":"v1/openapi.json GET /places/{id}","href":"/v1/reference/places/get-place"},{"title":"Update a place","openapi":"v1/openapi.json PATCH /places/{id}","href":"/v1/reference/places/update-place"},{"title":"Delete a place","openapi":"v1/openapi.json DELETE /places/{id}","href":"/v1/reference/places/delete-place"}]},{"group":"Zones","pages":[{"title":"List zones","openapi":"v1/openapi.json GET /zones","description":"Lists the company's zones (geofences). Workers are refused with 403 (code permission_denied).","href":"/v1/reference/zones/list-zones"}]},{"group":"Routing","pages":[{"title":"Optimize a route","openapi":"v1/openapi.json POST /routing/optimize","href":"/v1/reference/routing/optimize-route"}]},{"group":"ETA pages","pages":[{"title":"List ETA sessions","openapi":"v1/openapi.json GET /eta/sessions","description":"Lists the company's ETA sessions, newest first, revoked ones included; expired ones are removed from time to time. Each session's status is recalculated on read. Workers are refused with 403 (code permission_denied).","href":"/v1/reference/eta-pages/list-eta-sessions"},{"title":"Create an ETA session","openapi":"v1/openapi.json POST /eta/sessions","href":"/v1/reference/eta-pages/create-eta-session"},{"title":"Get an ETA session","openapi":"v1/openapi.json GET /eta/sessions/{id}","href":"/v1/reference/eta-pages/get-eta-session"},{"title":"Update an ETA session","openapi":"v1/openapi.json PATCH /eta/sessions/{id}","href":"/v1/reference/eta-pages/update-eta-session"},{"title":"Revoke an ETA session","openapi":"v1/openapi.json DELETE /eta/sessions/{id}","href":"/v1/reference/eta-pages/revoke-eta-session"},{"title":"Refresh an ETA session","openapi":"v1/openapi.json POST /eta/sessions/{id}/refresh","href":"/v1/reference/eta-pages/refresh-eta-session"},{"title":"List ETA session events","openapi":"v1/openapi.json GET /eta/sessions/{id}/events","href":"/v1/reference/eta-pages/list-eta-session-events"}]},{"group":"Maps","pages":[{"title":"List map layers","openapi":"v1/openapi.json GET /maps/layers","href":"/v1/reference/maps/list-map-layers"},{"title":"Render a map","openapi":"v1/openapi.json POST /maps/render","href":"/v1/reference/maps/render-map"},{"title":"List map shares","openapi":"v1/openapi.json GET /maps/shares","href":"/v1/reference/maps/list-map-shares"},{"title":"Create a map share","openapi":"v1/openapi.json POST /maps/shares","href":"/v1/reference/maps/create-map-share"},{"title":"Get a map share","openapi":"v1/openapi.json GET /maps/shares/{token}","href":"/v1/reference/maps/get-map-share"},{"title":"Revoke a map share","openapi":"v1/openapi.json DELETE /maps/shares/{token}","href":"/v1/reference/maps/revoke-map-share"}]},{"group":"Timesheets","pages":[{"title":"List timesheet entries","openapi":"v1/openapi.json GET /timesheets","href":"/v1/reference/timesheets/list-timesheets"},{"title":"Add a timesheet entry","openapi":"v1/openapi.json POST /timesheets/entries","href":"/v1/reference/timesheets/create-timesheet-entry"},{"title":"Change a timesheet entry","openapi":"v1/openapi.json PATCH /timesheets/entries/{id}","href":"/v1/reference/timesheets/update-timesheet-entry"},{"title":"Delete a timesheet entry","openapi":"v1/openapi.json DELETE /timesheets/entries/{id}","href":"/v1/reference/timesheets/delete-timesheet-entry"}]},{"group":"Forms","pages":[{"title":"List form templates","openapi":"v1/openapi.json GET /forms/templates","href":"/v1/reference/forms/list-form-templates"},{"title":"Create a form template","openapi":"v1/openapi.json POST /forms/templates","href":"/v1/reference/forms/create-form-template"},{"title":"Get a form template","openapi":"v1/openapi.json GET /forms/templates/{id}","href":"/v1/reference/forms/get-form-template"},{"title":"Update a form template","openapi":"v1/openapi.json PATCH /forms/templates/{id}","href":"/v1/reference/forms/update-form-template"},{"title":"Delete a form template","openapi":"v1/openapi.json DELETE /forms/templates/{id}","href":"/v1/reference/forms/delete-form-template"},{"title":"List form submissions","openapi":"v1/openapi.json GET /forms/submissions","href":"/v1/reference/forms/list-form-submissions"},{"title":"Submit a form","openapi":"v1/openapi.json POST /forms/submissions","href":"/v1/reference/forms/create-form-submission"},{"title":"Get a form submission","openapi":"v1/openapi.json GET /forms/submissions/{id}","href":"/v1/reference/forms/get-form-submission"},{"title":"Upload a form attachment","openapi":"v1/openapi.json POST /forms/attachments","href":"/v1/reference/forms/upload-form-attachment"},{"title":"List linked forms","openapi":"v1/openapi.json GET /forms/links","href":"/v1/reference/forms/list-form-links"},{"title":"Link a form","openapi":"v1/openapi.json POST /forms/links","href":"/v1/reference/forms/link-form"},{"title":"Unlink a form","openapi":"v1/openapi.json DELETE /forms/links","href":"/v1/reference/forms/unlink-form"}]},{"group":"Alerts","pages":[{"title":"List alert actions","openapi":"v1/openapi.json GET /alerts/actions","href":"/v1/reference/alerts/list-alert-actions"},{"title":"List alert rules","openapi":"v1/openapi.json GET /alerts/configs","href":"/v1/reference/alerts/list-alert-configs"},{"title":"Create an alert rule","openapi":"v1/openapi.json POST /alerts/configs","href":"/v1/reference/alerts/create-alert-config"},{"title":"Get an alert rule","openapi":"v1/openapi.json GET /alerts/configs/{id}","href":"/v1/reference/alerts/get-alert-config"},{"title":"Update an alert rule","openapi":"v1/openapi.json PATCH /alerts/configs/{id}","href":"/v1/reference/alerts/update-alert-config"},{"title":"Delete an alert rule","openapi":"v1/openapi.json DELETE /alerts/configs/{id}","href":"/v1/reference/alerts/delete-alert-config"},{"title":"List alerts","openapi":"v1/openapi.json GET /alerts/instances","href":"/v1/reference/alerts/list-alert-instances"},{"title":"Get an alert","openapi":"v1/openapi.json GET /alerts/instances/{id}","href":"/v1/reference/alerts/get-alert-instance"},{"title":"Update an alert","openapi":"v1/openapi.json PATCH /alerts/instances/{id}","href":"/v1/reference/alerts/update-alert-instance"},{"title":"Delete an alert","openapi":"v1/openapi.json DELETE /alerts/instances/{id}","href":"/v1/reference/alerts/delete-alert-instance"}]},{"group":"Reports","pages":[{"title":"List newer reports","openapi":"v1/openapi.json GET /reports/catalog","href":"/v1/reference/reports/list-report-catalog"},{"title":"Preview a report","openapi":"v1/openapi.json POST /reports/preview","href":"/v1/reference/reports/preview-report"},{"title":"Start a report run","openapi":"v1/openapi.json POST /reports/run","href":"/v1/reference/reports/run-report"},{"title":"Get a report run","openapi":"v1/openapi.json GET /reports/run/{id}","href":"/v1/reference/reports/get-report-run"},{"title":"List saved reports","openapi":"v1/openapi.json GET /reports/saved","href":"/v1/reference/reports/list-saved-reports"},{"title":"Save a report","openapi":"v1/openapi.json POST /reports/saved","href":"/v1/reference/reports/create-saved-report"},{"title":"Replace a saved report","openapi":"v1/openapi.json PATCH /reports/saved/{id}","href":"/v1/reference/reports/update-saved-report"},{"title":"Delete a saved report","openapi":"v1/openapi.json DELETE /reports/saved/{id}","href":"/v1/reference/reports/delete-saved-report"},{"title":"Send a saved report now","openapi":"v1/openapi.json POST /reports/saved/{id}/send","href":"/v1/reference/reports/send-saved-report"},{"title":"List older report types","openapi":"v1/openapi.json GET /reports/types","href":"/v1/reference/reports/list-report-types"},{"title":"Generate an older report","openapi":"v1/openapi.json POST /reports/generate","href":"/v1/reference/reports/generate-report"},{"title":"List open report jobs","openapi":"v1/openapi.json GET /reports/jobs","href":"/v1/reference/reports/list-report-jobs"},{"title":"Get a report job","openapi":"v1/openapi.json GET /reports/jobs/{id}","href":"/v1/reference/reports/get-report-job"},{"title":"List report files","openapi":"v1/openapi.json GET /reports/uploads","href":"/v1/reference/reports/list-report-uploads"},{"title":"List recurring reports","openapi":"v1/openapi.json GET /reports/recurring","href":"/v1/reference/reports/list-recurring-reports"},{"title":"Create a recurring report","openapi":"v1/openapi.json POST /reports/recurring","href":"/v1/reference/reports/create-recurring-report"},{"title":"Update a recurring report","openapi":"v1/openapi.json PATCH /reports/recurring/{id}","href":"/v1/reference/reports/update-recurring-report"},{"title":"Delete a recurring report","openapi":"v1/openapi.json DELETE /reports/recurring/{id}","href":"/v1/reference/reports/delete-recurring-report"}]},{"group":"Webhooks","pages":[{"title":"List webhooks","openapi":"v1/openapi.json GET /webhooks","href":"/v1/reference/webhooks/list-webhooks"},{"title":"Set webhooks","openapi":"v1/openapi.json PUT /webhooks","href":"/v1/reference/webhooks/set-webhooks"}]}]},{"tab":"CLI","pages":[{"title":"CLI","href":"/cli/overview"}]}]},"basePath":"","title":"Optimize a route - Hellotracks developer docs","buildId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","deploymentId":"dpl_DeHjVRGfFnhYQwHnfC2pjeXXv8h9","dynamics":["c2aa737661","2b790eda92","b0f84f53ff","a9bb46feb3"],"chunks":["OpenApiReferenceProvider-CS552b7R.js","utils-DDTCYAF2.js","cloneDeep-izs3Hzxb.js","_Uint8Array-BVIqJ90l.js","isObjectLike-C8vmzPEN.js","isArray-Dcu1dQ5t.js","utils-De8ttokP.js","toString-BX-iyh8G.js","isSymbol-CSH9U2Gm.js","addUniqueKeysToSchema-DrwRDvAh.js","snippetPresets-DtAN0nWx.js","style-to-object-BY3JEAdk.js","v4-DIgz8zy6.js","ApiExamples-D5rWArI6.js","isEqual-BfaiBbcl.js","usePlaygroundInputsStore-O2i12wsz.js","shallow-DV8xABTt.js","getApiPlaygroundDisplay-DBZ0B5Jx.js","CodeSnippet-BVi0tPUX.js","CodeSnippets-CqASbIwY.js","Page-m07pfKpT.js","getPastedJson-DG9vsMS8.js","icon-CXzRSCr8.js","MethodPill-BdKVtEuX.js","DuplicateIcon-CZlmBrJI.js","createIcon-biFEUKPL.js","DynamicMarkdown-B54_zNBF.js","SectionHeading-DwwHK3Pt.js","axios-vUo_bRtp.js","Markdown-DfhCTwyA.js","clsx-xpJZXxdP.js","lib-DuNMoZ05.js","lib-B8HbPgcC.js","html-void-elements-mCSPHezU.js","dist-BTZUMDnx.js","katex-YMM-FMeD.js","marked.esm-CZWythHk.js","AssistantPageLink-DqdKa2R4.js"]}