Skip to main content
Version: v0.2b

Plan Schema

Type Aliases

Plan

Ƭ Plan: Object

The plan data. All plans in the API will have this format.

Description

A plan is a collection of stops and drivers that when optimized will produce routes. A plan can be optimized multiple times and each optimization will produce a set of routes. A plan can also be distributed to drivers, which will produce a set of routes that are associated with drivers.

You cannot edit a plan after it has been optimized or distributed in the current version of the API. You can, however, edit a plan and its stops before it has been optimized or distributed. You can also edit a plan after it has been distributed if you are using the Web UI.

For your convenience you can check if a plan is writable by using the writable property before attempting to edit it.

Example

{
"id": "plans/zeOCJaJCzZhpKVCVAC9o",
"title": "Tue, Nov 22 Route 1",
"starts": {
"day": 22,
"month": 11,
"year": 2022,
},
"drivers": [
{
"id": "drivers/w8ZaNn3e5ZA8EQSABtca",
"name": null,
"email": "verygooddriver@getcircuit.com",
"phoneNumber": null
}
],
"routes": [
"routes/gjaqksJIa26qGPzsgBXT",
],
"depot": null,
"optimization": 'optimized',
"distributed": true,
"writable": false,
}

Type declaration

NameTypeDescription
idPlanIdThis plan's unique identifier in the API. this can be used directly in the URL to operate on this plan.
titlestringThe name of the plan. This is a human-readable name that is displayed in the UI.
startsDateThe day this plan starts at.
driversDriver[]The drivers that are part of this plan. See Driver
depotDepotId | nullThe depot that this plan is for. See Depot
routesRouteId[]The routes this plan has. Note that you cannot operate on routes directly via the API in this version.
optimization"creating" | "editing" | "preview" | "optimized" | "optimizing" | nullThe current optimization state of the plan.
  • creating: The plan is in draft mode and not yet optimized.
  • editing: The plan has been optimized and is currently being edited again.
  • preview: The plan has been edited and reoptimized, but it's changes have not been saved yet.
  • optimizing: The plan is currently being optimized.
  • optimized: The plan has been optimized and is not being edited.
distributedbooleanWhether the plan was distributed to drivers.
writablebooleanWhether this plan can be edited via the API or not. After some actions, a plan becomes read-only, always check this property before attempting to edit a plan via the API.

PlanId

Ƭ PlanId: `plans/${string}`

A plan id is a string that is unique for a plan. It is used to identify the plan in the API.

Example

"plans/0xBYy4MYt4piMCSQEsts"

Date

Ƭ Date: Object

A Date is an object representing a day in the year.

Example

{
"year": 2023,
"month": 2,
"day": 1
}

Type declaration

NameType
yearnumber
monthnumber
daynumber