spoke_list_plans
List plans
List route plans (a plan = one day's delivery job: date, depot, drivers, routes), newest first, in pages of up to 20. Filter with e.g. {"title":"Monday run"} or {"startsGte":"2026-10-01"}. GET /plans.
輸入參數titlefilterpage_tokenmax_page_sizestarts_on_or_after
One plan: title, start date, depot, driver ids, route ids, whether it is distributed/writable, optimization state and route overrides. GET /plans/{planId}.
輸入參數plan_id必填
spoke_list_plan_stops
List plan stops
List the stops of a plan, in pages of up to 10. Stops include recipient names, phones, e-mails and addresses (personal data): page only as far as needed. GET /plans/{planId}/stops.
輸入參數plan_id必填page_tokenmax_page_sizerecipient_external_id
One stop of a plan with address, recipient, timing, ETA, route and delivery outcome (attempted, succeeded, notes, photo/signature links). Contains personal data. GET /plans/{planId}/stops/{stopId}.
輸入參數plan_id必填stop_id必填
spoke_search_stops
Search stops
Search all stops of the team (planned, unassigned, past) by keyword and/or Spoke's filter language, up to 20 per page. Example filter: address.countryCode = "DE" and deliveryInfo.attempted = false. Filterable: planId, routeId, type, activity, notes, address.*, createdAt, recipient.name/email/phone/externalId, deliveryInfo.state/attempted/succeeded, orderInfo.*. Results include personal data. The search index lags real time by a short while. GET /stops:search.
輸入參數filterkeywordpage_tokensort_fieldsort_ordermax_page_size
spoke_list_unassigned_stops
List unassigned stops
List stops that are not on any plan yet (the inbox of imported orders), in pages of up to 20 (default 20). Contains personal data. GET /unassignedStops.
輸入參數page_tokenmax_page_size
spoke_get_unassigned_stop
Get unassigned stop
One unassigned stop by id. Contains personal data. GET /unassignedStops/{id}.
輸入參數unassigned_stop_id必填
spoke_list_drivers
List drivers
List the team's drivers (name, e-mail/phone, active flag, depots, route overrides), up to 50 per page. Contains personal data. GET /drivers.
輸入參數activepage_tokenmax_page_size
spoke_get_driver
Get driver
One driver by id. Contains personal data. GET /drivers/{driverId}.
輸入參數driver_id必填
spoke_list_depots
List depots
List depots (start/end addresses, working hours, vehicle type, max stops), up to 20 per page. Use the ids when creating plans. GET /depots.
輸入參數page_tokenmax_page_size
One depot by id. GET /depots/{depotId}.
輸入參數depot_id必填
spoke_list_routes
List routes
List routes (one driver's run of a plan: stop count, driver, distributed/started/completed state), up to 20 per page. GET /routes.
輸入參數page_tokenmax_page_sizestarts_on_or_after
One route: title, driver, stop count and state (distributed, started, completed, recipients notified). GET /routes/{routeId}.
輸入參數route_id必填
spoke_list_route_stops
List route stops
List the stops of one route in driving order, in pages of up to 10. Contains personal data: page only as far as needed. GET /routes/{routeId}/stops.
輸入參數route_id必填page_tokenmax_page_sizerecipient_external_id
spoke_list_operations
List operations
List long-running operations (plan optimizations): type, done flag, who started it, result (optimized and skipped stops), up to 20 per page. GET /operations.
輸入參數page_tokenmax_page_size
spoke_get_operation
Get operation
One operation, e.g. the optimization started by spoke_optimize_plan: poll until done is true. GET /operations/{operationId}.
輸入參數operation_id必填
spoke_list_custom_stop_properties
List custom stop properties
The team's custom stop property definitions (ids and names). Their ids are the keys of customProperties on stops. Needs a subscription that includes custom properties (HTTP 403 otherwise). GET /team/customStopProperties.
無需輸入參數。
spoke_create_plan
Create plan
WRITE: create a new route plan for a date (no stops yet, nothing is sent to drivers). Optionally assign drivers (up to 50, they must be active and share the plan's depot) and a depot (default: the team's main depot). Does not optimize or distribute. POST /plans.
輸入參數title必填depot_idstarts_on必填driver_ids
spoke_update_plan
Update plan
WRITE: change a plan's title, date, drivers and/or depot. Only the fields you pass change, but driver_ids REPLACES the plan's whole driver list. Fails if the plan is not writable (already distributed). Nothing is sent to drivers. PATCH /plans/{planId}.
輸入參數titleplan_id必填depot_idstarts_ondriver_ids
spoke_create_stop
Create stop
WRITE: add one stop to a writable (not yet distributed) plan. Needs an address (text fields or latitude+longitude). The recipient's phone/e-mail are stored on the stop and Spoke may contact the recipient later when the route runs; nothing is sent now. For many stops use spoke_import_stops. POST /plans/{planId}/stops.
輸入參數stop必填plan_id必填
spoke_import_stops
Import stops
WRITE: add up to 100 stops to a writable (not yet distributed) plan in one request (better geocoding than one at a time; Spoke limits imports to 30 requests a minute). Returns the created stop ids and any failures. Recipient contact data is stored on the stops; nothing is sent now. POST /plans/{planId}/stops:import.
輸入參數stops必填plan_id必填
spoke_optimize_plan
Optimize plan
WRITE: start the route optimization of a plan (orders and assigns its stops to its drivers). Rewrites the plan's routes if it was optimized before, and uses Spoke's optimization quota (30 per minute, 100 per 10 minutes). Does NOT send anything to drivers. Returns an operation: poll spoke_get_operation until done. Needs at least one driver and one stop. POST /plans/{planId}:optimize.
輸入參數plan_id必填
spoke_distribute_plan
Distribute plan to drivers
WRITE (SENDS TO REAL PEOPLE): distribute an optimized plan, which immediately sends each driver of the plan their route on their phone (push notification / message) and locks the plan for edits. Cannot be undone. Only for a plan with 1-10 drivers, and only after the user has explicitly said to send the routes: set confirm_send_to_drivers to true. POST /plans/{planId}:distribute.
輸入參數plan_id必填confirm_send_to_drivers必填