openapi: 3.2.0
info:
title: HyperTrack Workers API
version: '1.0'
description: HyperTrack API Reference — Orders, Workers, Places, Routes, and more.
contact:
name: HyperTrack support
url: https://hypertrack.com/contact
email: help@hypertrack.com
servers:
- url: https://v3.api.hypertrack.com
tags:
- name: Workers
paths:
/workers/:
get:
parameters:
- in: query
name: from_date
description: 'ISO 8601 date format (''yyyy-MM-dd'') indicating the start date to be used for the summary computation.
Default: Current date in UTC.'
schema:
type:
- string
- 'null'
required: false
- in: query
name: to_date
description: 'ISO 8601 date format (''yyyy-MM-dd'') indicating the end date to be used for the summary computation.
Default: Current date in UTC.'
schema:
type:
- string
- 'null'
required: false
- in: query
name: limit
description: Number of workers to be sent in response
schema:
type:
- integer
- 'null'
default: 25
required: false
- in: query
name: include_schedule
description: Flag to include worker's schedule in the response.
schema:
type: boolean
default: true
required: false
- in: query
name: include_summary
description: Flag to include worker's summary stats in the response.
schema:
type: boolean
default: true
required: false
- in: query
name: ops_group_handle
description: List of ops group handles as comma separated strings used to filter workers.
schema:
type:
- string
- 'null'
required: false
- in: query
name: profile
description: Profile filter to be applied on the list of workers
schema:
type:
- string
- 'null'
required: false
- in: query
name: worker_handle
description: List of worker handles as comma separated strings used for fetching associated workers
schema:
type:
- string
- 'null'
required: false
- in: query
name: search_term
description: Keyword to match against worker handle, name, or profile
schema:
type:
- string
- 'null'
required: false
- in: query
name: pagination_token
description: Identifier used to fetch the next page of data
schema:
type:
- string
- 'null'
required: false
- in: query
name: device_id
description: Unique identifier for a worker's device. This field is present in case the worker is currently linked with a device
schema:
type:
- string
- 'null'
format: uuid
required: false
- in: query
name: include_deleted
description: Flag to include deleted workers
schema:
type: boolean
default: false
required: false
- in: query
name: from_time
description: ISO 8601 datetime indicating the start time to be used for computing summary, status.
schema:
type:
- string
- 'null'
format: date-time
deprecated: true
required: false
- in: query
name: to_time
description: ISO 8601 datetime indicating the end time to be used for computing summary, status.
schema:
type:
- string
- 'null'
format: date-time
deprecated: true
required: false
- in: query
name: filter_outage
description: Filter workers on a particular outage code.
schema:
type:
- string
- 'null'
required: false
- in: query
name: filter_outage_category
description: 'List of comma separated outage categories to be used for filtering workers. Valid categories: `behavioural`,`adversarial`,`reachability`,`os`,`sporadic`'
schema:
type:
- string
- 'null'
required: false
- in: query
name: filter_geofence_metadata
description: geofence_metadata filter for aggregate response
schema:
type:
- string
- 'null'
required: false
- in: query
name: aggregate
description: Flag set to retrieve aggregated data over the provided time range
schema:
type: boolean
default: false
required: false
- in: query
name: work_status
description: URL-encoded json string specifying filters on availability or tracking.
schema:
type:
- string
- 'null'
required: false
- in: query
name: filter_status
description: Only list workers that are currently active/inactive/disconnected.
schema:
type:
- string
- 'null'
enum:
- active
- inactive
- disconnected
required: false
- in: query
name: tracked
description: If set to true, only shows workers that were actually tracked during the specified period.
schema:
type:
- boolean
- 'null'
required: false
- in: query
name: worked
description: If set to true, only shows workers that actually during the specified period.
schema:
type:
- boolean
- 'null'
required: false
- in: query
name: intended_to_track
description: If set to true, only shows workers that was supposed to be tracked during the specified period.
schema:
type:
- boolean
- 'null'
required: false
- in: query
name: include_lp
description: Flag to include location permission stats in response (only applicable when `aggregate=True`).
schema:
type:
- boolean
- 'null'
default: false
required: false
- in: query
name: region_filter
description: URL-encoded JSON string used to filter workers from a particular region. Ex `{"city":"Detroit"}`
schema:
type:
- string
- 'null'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetWorkersResponse'
examples:
Filter on profile:
summary: Filter on profile
value:
workers:
- created_at: 2023-10-18 12:41:59.865000+00:00
device_id: 7B252163-BC27-46B2-8BFD-FFB87D633602
device_info:
device_brand: OnePlus
device_model: DN2111
network_operator: JIO 4G
os_hardware_identifier: 10b653a2c0a09e77
os_name: Android
os_version: '11'
sdk_version: 7.0.9+a5a509f3
timezone: Asia/Kolkata
device_status:
data:
activity: drive
recorded_at: 2023-10-24 16:27:52.768000+00:00
value: active
devices:
- device_id: 7B252163-BC27-46B2-8BFD-FFB87D633602
start_time: 2023-10-183T20:42:38Z
- device_id: 7B252163-BC27-46B2-8BFD-FFB87D633602
start_time: 2023-10-183T16:02:38Z
end_time: 2023-10-183T20:41:38Z
worker_handle: james@ht.com
location:
accuracy: 19.35
bearing: 352.97
geometry:
coordinates:
- -121.94186
- 37.3570492
- -44.01
type: Point
speed: 20.2
name: James
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
profile:
zoneId: '4'
schedule:
- day_of_week: MONDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: TUESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: WEDNESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: THURSDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: FRIDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SATURDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SUNDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
work_status:
available: false
tracking: true
location_permission:
recorded_at: 2023-12-19 12:29:54.321000+00:00
state: always
unavailable_on:
- 2023-12-15
summary:
orders:
completed: 4
cancelled: 1
assigned: 0
tracked: 5
total: 6
geotags: 4
visits: 4
distance: null
duration: null
tracking_rate: null
- created_at: 2023-10-06 12:00:45.221000+00:00
device_id: 71284FFE-D949-4FF7-B238-44C667BE8EF4
device_status:
data:
recorded_at: 2023-10-24 12:51:25.995000+00:00
value: disconnected
worker_handle: smith@ht.com
location:
accuracy: 35
bearing: 280.3
geometry:
coordinates:
- 20.016091
- 50.103046
- 250.59
type: Point
speed: 0
name: fero
ops_group_handle: store-sjc
profile:
zoneId: '4'
work_status:
available: false
tracking: true
- created_at: 2023-07-13 15:05:31.341000+00:00
worker_handle: rick@ht.com
ops_group_handle: store-okl
profile:
zoneId: '4'
schedule:
- day_of_week: MONDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: TUESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: WEDNESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: THURSDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: FRIDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SATURDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SUNDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
work_status:
available: false
tracking: false
pagination_token: eyJwYWdlX251bWJlciI6IDIzLCJsYXN0X2l0ZW1faWQiOiAxMjM0NQ==
Filter on ops group:
summary: Filter on ops group
value:
workers:
- created_at: 2023-07-13 15:05:31.341000+00:00
worker_handle: rick@ht.com
ops_group_handle: store-okl
profile:
zoneId: '4'
schedule:
- day_of_week: MONDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: TUESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: WEDNESDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: THURSDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: FRIDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SATURDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
- day_of_week: SUNDAY
end_time: 1080
ops_group_handle: store-sf
priority: null
start_time: 09:00
work_status:
available: false
tracking: false
pagination_token: eyJwYWdlX251bWJlciI6IDIzLCJsYXN0X2l0ZW1faWQiOiAxMjM0NQ==
Filter on worker handle:
summary: Filter on worker handle
value:
workers:
- created_at: 2023-10-18 12:41:59.865000+00:00
device_id: 7B252163-BC27-46B2-8BFD-FFB87D633602
device_status:
data:
activity: drive
recorded_at: 2023-10-24 16:27:52.768000+00:00
value: active
worker_handle: james@ht.com
location:
accuracy: 19.35
bearing: 352.97
geometry:
coordinates:
- -121.94186
- 37.3570492
- -44.01
type: Point
speed: 20.2
name: James
ops_group_handle: store-sf
profile:
zoneId: '4'
work_status:
available: false
tracking: true
Filter on work status:
summary: Filter on work status
value:
workers:
- created_at: 2023-10-18 12:41:59.865000+00:00
device_id: 7B252163-BC27-46B2-8BFD-FFB87D633602
device_status:
data:
activity: drive
recorded_at: 2023-10-24 16:27:52.768000+00:00
value: active
worker_handle: james@ht.com
location:
accuracy: 19.35
bearing: 352.97
geometry:
coordinates:
- -121.94186
- 37.3570492
- -44.01
type: Point
speed: 20.2
name: James
ops_group_handle: store-sf
profile:
zoneId: '4'
work_status:
available: true
tracking: false
- created_at: 2023-10-06 12:00:45.221000+00:00
device_id: 71284FFE-D949-4FF7-B238-44C667BE8EF4
device_status:
data:
recorded_at: 2023-10-24 12:51:25.995000+00:00
value: disconnected
worker_handle: smith@ht.com
location:
accuracy: 35
bearing: 280.3
geometry:
coordinates:
- 20.016091
- 50.103046
- 250.59
type: Point
speed: 0
name: fero
ops_group_handle: store-sjc
profile:
zoneId: '4'
work_status:
available: true
tracking: false
pagination_token: eyJwYWdlX251bWJlciI6IDIzLCJsYXN0X2l0ZW1faWQiOiAxMjM0NQ==
Fetch aggregate:
summary: Fetch aggregate
value:
aggregate:
geotags:
count: 107
deviation: 2300
distance: 8035
duration: 14583
orders:
count:
assigned: 22
cancelled: 516
completed: 634
ongoing: 8
total: 1261
deviation: 365
distance: 8035
duration: 18374
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Get Workers
description: Fetch workers in a paginated list
security:
- BasicAuth: []
- TokenAuth: []
post:
parameters: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/PostWorkerResponse'
example:
worker_handle: james@ht.com
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
status:
available: false
working: false
schedule:
- start_time: 09:00
end_time: 1080
day_of_week: MONDAY
- start_time: 09:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 09:00
end_time: 1080
day_of_week: WEDNESDAY
- start_time: 09:00
end_time: 1080
day_of_week: THURSDAY
- start_time: 09:00
end_time: 1080
day_of_week: FRIDAY
created_at: 2023-06-01 02:00:00+00:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
device_status:
value: unavailable
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Create Worker
description: Create a worker
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostWorkerRequest'
example:
worker_handle: james@ht.com
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
schedule:
- start_time: 09:00
end_time: 1080
day_of_week: MONDAY
- start_time: 09:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 09:00
end_time: 1080
day_of_week: WEDNESDAY
- start_time: 09:00
end_time: 1080
day_of_week: THURSDAY
- start_time: 09:00
end_time: 1080
day_of_week: FRIDAY
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
security:
- BasicAuth: []
- TokenAuth: []
/workers/locate:
get:
parameters:
- in: query
name: request_id
description: Unique identifier returned by POST /workers/{worker_handle}/locate.
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/LocateResponse'
examples:
locate_completed_location_response_example:
summary: 'Completed: a device returned a fresh location.'
value:
request_id: 00000000-aaaa-bbbb-cccc-111122223333
worker_handle: worker001
status: completed
created_at: 2026-06-03 05:46:57.096000+00:00
updated_at: 2026-06-03 05:47:10.780000+00:00
completed_at: 2026-06-03 05:47:10.780000+00:00
devices:
- device_id: AAA11111-BBBB-2222-CCCC-3333DDDD4444
status: completed
completed_at: 2026-06-03 05:47:10.744000+00:00
location:
geometry:
type: Point
coordinates:
- -119.60121
- 34.4225
locate_completed_outage_response_example:
summary: 'Completed with an outage: location permission denied and imprecise.'
value:
request_id: 00000000-aaaa-bbbb-cccc-111122223333
worker_handle: worker001
status: completed
created_at: 2026-06-03 05:16:03.109000+00:00
updated_at: 2026-06-03 05:16:17.146000+00:00
completed_at: 2026-06-03 05:16:17.146000+00:00
devices:
- device_id: AAA11111-BBBB-2222-CCCC-3333DDDD4444
status: completed
completed_at: 2026-06-03 05:16:17.114000+00:00
outage_reasons:
- code: location_permissions_denied
label: Location permission denied
category: behavioural
description: Location permission is denied by the worker. The worker should grant it in Settings > Apps > [App name] > Permissions > Location
duration: 0
distance: 0
- code: location_permission_imprecise
label: Location imprecise
category: behavioural
description: The worker did not grant precise location permissions or downgraded permissions to imprecise. The worker should grant precise location permission in Settings > Apps > [App name] > Permissions > Location > Use precise location
duration: 0
distance: 0
locate_completed_disconnected_response_example:
summary: Completed but the SDK did not wake within budget (device disconnected).
value:
request_id: 00000000-aaaa-bbbb-cccc-111122223333
worker_handle: worker001
status: completed
created_at: 2026-06-03 00:00:00+00:00
updated_at: 2026-06-03 00:05:00+00:00
completed_at: 2026-06-03 00:05:00+00:00
devices:
- device_id: AAA11111-BBBB-2222-CCCC-3333DDDD4444
status: completed
completed_at: 2026-06-03 00:05:00+00:00
device_status:
value: disconnected
data:
reason: sdk_did_not_respond_within_budget
budget_seconds: 300
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Poll the state of a worker locate request
description: 'Returns the current state of a locate request. The response shape matches both the POST response and the `locate` webhook payload. Once `status` is `completed`, inspect each `devices[]` entry for its outcome: a fresh `location`, `outage_reasons` when the SDK reported outages, or a `device_status` of `disconnected` when the SDK did not wake within the budget.'
security:
- BasicAuth: []
- TokenAuth: []
/workers/export:
post:
parameters: []
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkerExportResponse'
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Create a worker export job
description: Creates an asynchronous job to export workers to CSV.gz file. Returns a job_id that can be used to check status. Download link will be sent via email when ready.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/WorkerExportRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/ops-groups/:
get:
parameters:
- in: query
name: pagination_token
description: Identifier used to fetch the next page of data
schema:
type:
- string
- 'null'
required: false
- in: query
name: include_deleted
description: Flag to include deleted ops groups
schema:
type: boolean
default: false
required: false
- in: query
name: include_schedule
description: Flag to include ops group's schedule in the response.
schema:
type: boolean
default: true
required: false
- in: query
name: limit
description: Number of ops groups to be sent in the response.
schema:
type:
- integer
- 'null'
default: 100
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetOpsGroupsResponse'
example:
ops_groups:
- ops_group_handle: san-jose-store
ops_group_label: store
timezone: America/Los_Angeles
route_start_location: ops_group_home
route_completion_type: manual
ops_group_home:
geometry:
type: Point
coordinates:
- -121.94186
- 37.3570534
address: 1709 Automation Pkwy, San Jose, CA 95101
objective_fn: minimise_time
route_capacity: 10
route_max_distance: 20000
default_shift_start_time: 07:00
default_shift_end_time: 1140
order_tracking_mode: auto
shift_availability_mode: auto
order_tracking_automation:
type: manual
- ops_group_handle: santa-clara-store
ops_group_label: store
timezone: America/Los_Angeles
route_start_location: ops_group_home
route_completion_type: manual
ops_group_home:
geometry:
type: Point
coordinates:
- -121.8871193
- 37.3906152
address: 1601 Coleman Ave, Santa Clara, CA 95050
objective_fn: minimise_time
route_capacity: 10
route_max_distance: 25000
default_shift_start_time: 07:00
default_shift_end_time: 1140
order_tracking_mode: manual
shift_availability_mode: manual
order_tracking_automation:
type: manual
pagination_token: cGFnaW5hdGlvbl90b2tlbg==
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: List Ops Groups
description: Fetch all ops groups
security:
- BasicAuth: []
- TokenAuth: []
post:
parameters: []
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PostOpsGroupResponse'
example:
ops_group_handle: san-jose-store
ops_group_label: store
timezone: America/Los_Angeles
route_start_location: ops_group_home
route_completion_type: manual
ops_group_home:
geometry:
type: Point
coordinates:
- -121.93186
- 36.3570534
address: 1709 Automation Pkwy, San Jose, CA 95101
objective_fn: minimise_time
route_capacity: 10
route_max_distance: 20000
default_shift_start_time: 07:00
default_shift_end_time: 1140
order_tracking_mode: manual
shift_availability_mode: auto
order_tracking_automation:
type: shift
mode: auto
lead_time: 3600
lag_time: 0
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Create Ops Group
description: Create an ops group to manage your workforce and orders
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostOpsGroupRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}:
get:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
- in: query
name: include_deleted
description: Flag to fetch deleted worker
schema:
type: boolean
default: false
required: false
- in: query
name: from_time
description: 'ISO 8601 datetime indicating the start time. Default time range 24 hours. '
schema:
type:
- string
- 'null'
format: date-time
required: false
- in: query
name: to_time
description: ISO 8601 datetime indicating the end time. Default time range 24 hours.
schema:
type:
- string
- 'null'
format: date-time
required: false
- in: query
name: date
description: 'ISO 8601 date format (''yyyy-MM-dd'') indicating date to be used for the summary computation.
Default: current date in worker''s timezone.'
schema:
type:
- string
- 'null'
required: false
- in: query
name: include_summary
description: Flag to include worker summary. Default true.
schema:
type: boolean
default: true
required: false
- in: query
name: include_schedule
description: Flag to include worker schedule. Default true.
schema:
type: boolean
default: true
required: false
- in: query
name: include_timeline
description: Flag to include worker timeline. Default false.
schema:
type: boolean
default: false
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetWorkerTimelineResponse'
example:
worker_handle: james@ht.com
name: James
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
status:
available: false
working: false
schedule:
- start_time: 02:00
end_time: 1080
day_of_week: MONDAY
- start_time: 02:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 02:00
end_time: 1080
day_of_week: WEDNESDAY
created_at: 2023-06-01 02:00:00+00:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
location:
accuracy: 17.47
geometry:
coordinates:
- -121.877304
- 37.371943
- 29.26
type: Point
speed: 0
device_status:
data:
activity: drive
recorded_at: 2023-10-03 20:42:44.969000+00:00
value: active
devices:
- device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
start_time: 2023-10-03 20:42:38+00:00
summary:
orders:
completed: 4
cancelled: 1
assigned: 0
ongoing: 2
geotags: 4
visits: 4
distance: 3000
duration: 120
tracking_rate: 92.8
work_started_at: 2023-06-06 14:00:00+00:00
timeline:
- type: route_started
recorded_at: 2023-06-06 14:00:00+00:00
route_handle: route_1
data: {}
location:
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
- type: order_completed
recorded_at: 2023-06-06 14:15:00+00:00
order_handle: order_1
data: {}
location:
geometry:
type: Point
coordinates:
- -121.8624389
- 37.3304522
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Get Worker By Handle
description: Fetch the details for a worker using the worker_handle
security:
- BasicAuth: []
- TokenAuth: []
patch:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PatchWorkerResponse'
example:
worker_handle: james@ht.com
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
status:
available: false
working: false
schedule:
- start_time: 02:00
end_time: 1080
day_of_week: MONDAY
- start_time: 02:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 02:00
end_time: 1080
day_of_week: WEDNESDAY
created_at: 2023-06-01 02:00:00+00:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
device_status:
data:
activity: drive
recorded_at: 2023-10-03 20:42:44.969000+00:00
value: active
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Patch Worker
description: Update worker information using the worker_handle
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchWorkerRequest'
example:
schedule:
- start_time: 02:00
end_time: 1080
day_of_week: MONDAY
- start_time: 02:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 02:00
end_time: 1080
day_of_week: WEDNESDAY
security:
- BasicAuth: []
- TokenAuth: []
delete:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'204':
description: Worker deleted successfully
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
tags:
- Workers
summary: Delete Worker
description: Delete a worker
security:
- BasicAuth: []
- TokenAuth: []
/workers/export/{job_id}:
get:
parameters:
- in: path
name: job_id
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkerExportStatusResponse'
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
tags:
- Workers
summary: Get worker export job status
description: Check the status of a worker export job by job_id. Returns current status, progress, and download URL when completed.
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/invite:
post:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PostWorkerInviteResponse'
example:
worker_handle: james@ht.com
link: https://hypertrack-logistics.app.link/wqepoifv8f34c
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Invite Worker
description: Generate a HyperTrack app (`ORDERS` or `VISITS`) installation link to be shared with the worker
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PostWorkerInviteRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/locate:
post:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/LocateResponse'
examples:
locate_pending_response_example:
summary: Locate accepted; request is pending while the SDK is woken and devices are polled.
value:
request_id: 00000000-aaaa-bbbb-cccc-111122223333
worker_handle: worker001
status: pending
created_at: 2026-06-03 05:46:57.096000+00:00
updated_at: 2026-06-03 05:46:57.096000+00:00
devices:
- device_id: AAA11111-BBBB-2222-CCCC-3333DDDD4444
status: pending
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Locate a worker
description: Initiates an async worker locate. The implementation sets the worker's availability=true (waking the SDK), pulls a fresh location from each currently-linked device, then sets availability back to false. Returns immediately with a request_id; poll the GET endpoint or listen for the `locate` webhook for the final result.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateLocateRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/history:
get:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
- in: query
name: from_time
description: ISO 8601 datetime indicating the start time
schema:
type:
- string
- 'null'
format: date-time
required: false
- in: query
name: to_time
description: ISO 8601 datetime indicating the end time
schema:
type:
- string
- 'null'
format: date-time
required: false
- in: query
name: date
description: Date in ISO 8601 format ('yyyy-MM-dd').
schema:
type:
- string
- 'null'
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetWorkerHistoryResponse'
example:
worker_handle: james@ht.com
locations:
type: LineString
coordinates:
- - -118.460831
- 34.032051
- 13.2
- 2023-07-15 00:10:48.972000+00:00
- - -118.460821
- 34.032056
- 13.2
- 2023-07-15 01:44:14.028000+00:00
- - -118.460828
- 34.032056
- 13.2
- 2023-07-15 04:44:19.203000+00:00
markers:
- device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
timestamp: 2023-04-24 19:19:59.569000+00:00
type: device_linked
- type: device_status
data:
start:
recorded_at: 2023-07-15 00:00:00+00:00
location:
recorded_at: 2023-07-15 00:10:48.972000+00:00
geometry:
type: Point
coordinates:
- -118.460831
- 34.032051
end:
recorded_at: 2023-07-16 17:51:30.068000+00:00
location:
recorded_at: 2023-07-16 17:51:30.068000+00:00
geometry:
type: Point
coordinates:
- -118.460847
- 34.032045
duration: 150690
value: active
address: 12511 Venice Blvd., Los Angeles, CA 90066
activity: stop
steps: 10
bubble:
centroid:
- -118.4372615
- 34.0033542
radius: 5
marker_id: c067c38c-e9a9-4fb2-b304-f8682ed3ad6b
- type: device_status
data:
start:
recorded_at: 2023-07-16 17:51:30.068000+00:00
location:
recorded_at: 2023-07-16 17:51:30.068000+00:00
geometry:
type: Point
coordinates:
- -118.460847
- 34.032045
end:
recorded_at: 2023-07-16 18:07:14.320000+00:00
location:
recorded_at: 2023-07-16 18:07:14.320000+00:00
geometry:
type: Point
coordinates:
- -118.517871
- 34.034686
duration: 944
value: active
activity: drive
distance: 8311
marker_id: 3329f37e-cc88-4631-ac7b-1652d1cf2eea
- type: device_status
data:
start:
recorded_at: 2023-07-16 18:07:14.320000+00:00
location:
recorded_at: 2023-07-16 18:07:14.320000+00:00
geometry:
type: Point
coordinates:
- -118.517871
- 34.034686
end:
recorded_at: 2023-07-16 18:17:17.487000+00:00
location:
recorded_at: 2023-07-16 18:17:17.487000+00:00
geometry:
type: Point
coordinates:
- -118.517892
- 34.034684
duration: 603
value: active
address: East Rustic Road, Pacific Palisades, LA, Los Angeles, California, 90402, United States of America
activity: stop
steps: 179
bubble:
centroid:
- -118.517875
- 34.034703
radius: 6
marker_id: fe82c586-295a-406a-8b5a-63e1b4e9bb44
- type: device_status
data:
start:
recorded_at: 2023-07-16 18:17:17.487000+00:00
location:
recorded_at: 2023-07-16 18:17:17.487000+00:00
geometry:
type: Point
coordinates:
- -118.517892
- 34.034684
end:
recorded_at: 2023-07-16 18:20:43.427000+00:00
location:
recorded_at: 2023-07-16 18:20:43.427000+00:00
geometry:
type: Point
coordinates:
- -118.516617
- 34.032466
duration: 206
value: active
activity: drive
distance: 837
marker_id: de4882aa-4a93-4614-a15f-844eb4987370
started_at: 2023-07-15 00:00:00+00:00
completed_at: 2023-07-17 00:00:00+00:00
distance: 66410
duration: 172799
steps: 423
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Get Worker History
description: Generate and fetch the worker history for the provided time range
deprecated: true
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/undelete:
post:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UndeleteWorkerResponse'
example:
worker_handle: james@ht.com
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
status:
available: false
working: false
schedule:
- start_time: 02:00
end_time: 1080
day_of_week: MONDAY
- start_time: 02:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 02:00
end_time: 1080
day_of_week: WEDNESDAY
created_at: 2023-06-01 02:00:00+00:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
device_status:
data:
activity: drive
recorded_at: 2023-10-03 20:42:44.969000+00:00
value: active
deleted: false
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
tags:
- Workers
summary: Undelete Worker
description: Undelete a previously deleted worker identified by the worker_handle
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/approvers:
get:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
- in: query
name: limit
description: Maximum number of approvers to return
schema:
type:
- integer
- 'null'
default: 100
required: false
- in: query
name: pagination_token
description: Token for pagination to get next page of results
schema:
type:
- string
- 'null'
required: false
- in: query
name: approver_type
description: Filter by approver type
schema:
enum:
- worker
- dashboard_user
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkerApproverListResponse'
example:
approvers:
- worker_handle: worker_456
approver_id: user_123
approver_type: worker
created_at: 2025-01-15 10:30:00+00:00
updated_at: null
- worker_handle: worker_456
approver_id: manager_789
approver_type: dashboard_user
created_at: 2025-01-15 09:15:00+00:00
updated_at: null
total_count: 2
limit: 100
pagination_token: eyJsYXN0X2NyZWF0ZWRfYXQiOiIyMDI1LTAxLTE1VDA5OjE1OjAwWiIsImxhc3RfYXBwcm92ZXJfaWQiOiJtYW5hZ2VyXzc4OSJ9
description: List of worker approvers retrieved successfully
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
worker_not_found:
summary: driver_not_found
value:
code: driver_not_found
title: Worker Not Found
detail:
description: Worker not found for handle worker_456
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: List Worker Approvers
description: Get a list of all approvers for a specific worker with optional filtering and token-based pagination.
security:
- BasicAuth: []
- TokenAuth: []
post:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/WorkerApproverResponse'
example:
worker_handle: worker_456
approver_id: user_123
approver_type: worker
created_at: 2025-01-15 10:30:00+00:00
updated_at: null
description: Worker approver created successfully
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
invalid_approver_type:
summary: validation_error
value:
code: validation_error
title: Validation Error
detail: 'Invalid approver_type: invalid_type. Must be one of [''worker'', ''dashboard_user'']'
approver_already_exists:
summary: approver_already_exists
value:
code: approver_already_exists
title: Validation Error
detail: Approver user_123 already exists for worker worker_456
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
worker_not_found:
summary: driver_not_found
value:
code: driver_not_found
title: Worker Not Found
detail:
description: Worker not found for handle worker_456
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Create Worker Approver
description: Create a new approver for a worker. The approver can be either a worker or a dashboard user.
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWorkerApproverRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/work_status:
post:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/SetWorkerStatusResponse'
example:
worker_handle: james@ht.com
ops_group_handle: store-sf
product_types:
- plumbing
- hardware
device_id: 00000000-4636-461C-B5F6-7E4BEFC09575
profile:
workerId: '0012244'
vehicle: Ford F-150
zoneId: '4'
status:
available: true
working: false
schedule:
- start_time: 02:00
end_time: 1080
day_of_week: MONDAY
- start_time: 02:00
end_time: 1080
day_of_week: TUESDAY
- start_time: 02:00
end_time: 1080
day_of_week: WEDNESDAY
created_at: 2023-06-01 02:00:00+00:00
home:
address: 777 Story Rd, San Jose, CA 95122
geometry:
type: Point
coordinates:
- -121.8624398
- 37.3304521
radius: 100
device_status:
data:
activity: drive
recorded_at: 2023-10-03 20:42:44.969000+00:00
value: active
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Set Worker Work Status
description: Set the work status of a worker identified by the worker_handle
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SetWorkerStatusRequest'
example:
available: true
security:
- BasicAuth: []
- TokenAuth: []
/workers/ops-groups/{ops_group_handle}:
get:
parameters:
- in: path
name: ops_group_handle
schema:
type: string
required: true
- in: query
name: include_schedule
description: Flag to include ops group's schedule in the response.
schema:
type: boolean
default: true
required: false
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/GetOpsGroupResponse'
example:
ops_group_handle: san-jose-store
ops_group_label: store
timezone: America/Los_Angeles
route_start_location: ops_group_home
route_completion_type: manual
ops_group_home:
geometry:
type: Point
coordinates:
- -121.94186
- 37.3570534
address: 1709 Automation Pkwy, San Jose, CA 95101
objective_fn: minimise_time
route_capacity: 10
route_max_distance: 20000
default_shift_start_time: 07:00
default_shift_end_time: 1140
order_tracking_mode: manual
shift_availability_mode: manual
order_tracking_automation:
type: manual
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Get Ops Group by Handle
description: Fetch ops group by ops_group_handle
security:
- BasicAuth: []
- TokenAuth: []
patch:
parameters:
- in: path
name: ops_group_handle
schema:
type: string
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PatchOpsGroupResponse'
example:
ops_group_handle: san-jose-store
ops_group_label: store
timezone: America/Los_Angeles
route_start_location: ops_group_home
route_completion_type: manual
ops_group_home:
geometry:
type: Point
coordinates:
- -121.93186
- 36.3570534
address: 1709 Automation Pkwy, San Jose, CA 95101
objective_fn: minimise_time
route_capacity: 10
route_max_distance: 20000
default_shift_start_time: 07:00
default_shift_end_time: 1140
order_tracking_mode: manual
shift_availability_mode: manual
order_tracking_automation:
type: manual
description: Successful response
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Not found
'422':
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
description: Validation error
tags:
- Workers
summary: Update Ops Group
description: Update Ops Group by ops_group_handle
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/PatchOpsGroupRequest'
security:
- BasicAuth: []
- TokenAuth: []
/workers/{worker_handle}/approvers/{approver_id}:
delete:
parameters:
- in: path
name: worker_handle
schema:
type: string
required: true
- in: path
name: approver_id
schema:
type: string
required: true
responses:
'204':
description: Worker approver deleted successfully
'401':
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPError'
description: Authentication error
'404':
description: Not Found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
worker_not_found:
summary: driver_not_found
value:
code: driver_not_found
title: Worker Not Found
detail:
description: Worker not found for handle worker_456
approver_not_found:
summary: worker_approver_not_found
value:
code: worker_approver_not_found
title: Worker Approver Not Found
detail:
description: 'Worker approver not found for worker_handle: worker_456, approver_id: user_123'
tags:
- Workers
summary: Delete Worker Approver
description: Remove a specific approver from a worker.
security:
- BasicAuth: []
- TokenAuth: []
components:
schemas:
DriverOutageSummary:
type: object
properties:
code:
type: string
description: Code indicating the type of outage
label:
type: string
description: Text indicating the type of outage
description:
type: string
description: Text describing the outage.
category:
type: string
enum:
- behavioural
- adversarial
- reachability
- os
- sporadic
description: String indicating the category of outage
duration:
type: integer
description: Sum total duration of all outages experienced with this `code` in the specified time range.
distance:
type: integer
description: Sum total (estimated) distance covered during all outages experienced with this `code` in the specified time range.
required:
- category
- code
- description
- distance
- duration
- label
GetWorkerHistoryResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
locations:
description: List of locations for the worker's device
allOf:
- $ref: '#/components/schemas/LineStringLocation1'
markers:
type: array
description: List of markers summarising the history of the worker
items:
type: object
additionalProperties: {}
started_at:
type: string
description: Time from where the history is requested from
completed_at:
type: string
description: Time to where the history is requested to
distance:
type: integer
description: Distance tracked during the duration of history
duration:
type: integer
description: Duration tracked during the duration of history
steps:
type: integer
description: Number of steps taken by worker during the duration of history
required:
- completed_at
- distance
- duration
- locations
- markers
- started_at
- steps
- worker_handle
PatchWorkerRequest:
type: object
properties:
device_id:
type:
- string
- 'null'
format: uuid
description: Unique ID representing the worker's device
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type:
- string
- 'null'
description: Unique identifier for an Ops Group to which the worker belongs
home:
description: Worker's home location
anyOf:
- $ref: '#/components/schemas/LocationWithoutRadius1'
product_types:
type:
- array
- 'null'
description: List of product types used for worker matching during order planning
items:
type: string
schedule:
type:
- array
- 'null'
description: List of schedules used for worker matching during order planning and auto start/stop of availability or tracking of the worker
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
profile:
type:
- object
- 'null'
description: Additional customer provided data associated with a worker
additionalProperties: {}
unavailable_on:
type:
- array
- 'null'
description: List of dates (YYYY-MM-DD) on which the worker is unavailable
items:
type: string
transfer_existing_work:
type:
- boolean
- 'null'
default: true
description: Flag to indicate whether existing work of the worker is to be transferred to the newly linked device.Only applicable at the time of linking worker with a device.
SetWorkerStatusResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type: array
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
profile:
type: object
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
allOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type: array
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
summary:
description: Summary of work done by the worker during the specified time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_info:
description: Information of the Device associated with Worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
battery:
description: Information of the battery status.
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
description: Timezone of the worker
required:
- created_at
- home
- ops_group_handle
- product_types
- profile
- unavailable_on
- work_status
- worker_handle
PolygonGeometry:
type: object
properties:
type:
type: string
enum:
- Polygon
description: Geometry type
coordinates:
type: array
description: Location coordinates represented as [[[longitude, latitude], [lon, lat]...]]
items:
type: array
items:
type: array
items:
type: number
required:
- coordinates
- type
PointGeometry:
type: object
properties:
coordinates:
type: array
description: Location coordinates represented as [longitude, latitude]
items:
type: number
type:
type: string
default: Point
enum:
- Point
description: Geometry type
required:
- coordinates
Error:
type: object
properties:
code:
type: string
description: error code for the type of error
title:
type: string
description: error title
detail:
type: string
description: error detail
DriverDeviceLinkedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_device_linked_event
description: String indicating the type of timeline event.
recorded_at:
type: string
description: Timestamp indicating the beginning of the device session.
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
location_recorded_at:
type:
- string
- 'null'
description: Timestamp when the location was recorded.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type: string
description: Unique ID of device
device_info:
description: Device information
anyOf:
- $ref: '#/components/schemas/DeviceInfo2'
former_associated_workers:
type:
- array
- 'null'
description: List of workers connected to this device in the last 2 days
items: {}
required:
- device_id
- recorded_at
- type
OrderCompletedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_order_completed
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
order_handle:
type:
- string
- 'null'
description: Order handle
route_handle:
type:
- string
- 'null'
description: Route handle
order_type:
type:
- string
- 'null'
description: Order type
destination_address:
type:
- string
- 'null'
description: Address of the intended order destination.
destination_location:
description: Intended order destination in coordinates.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
fulfillment_attempt:
type:
- integer
- 'null'
description: Number of fulfillment attempts made.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
deviation_from_destination:
type:
- integer
- 'null'
description: Distance in meters between the actual completion location to the order location
completed_at_destination:
type:
- boolean
- 'null'
description: Indicates whether the order was completed at destination
required:
- type
DeviceStatus:
type: object
properties:
value:
type: string
description: Status of the driver's device - `active` `disconnected` `inactive` `available` `unavailable`
data:
type: object
description: Data associated with the driver's device status - `reason`, `activity`
additionalProperties: {}
required:
- data
- value
PolylineProperties:
type: object
properties:
timestamps:
type:
- array
- 'null'
description: list of timestamps, one for each location in polyline.
items:
type: string
ValidationError:
properties:
detail:
type: object
properties:
:
type: object
properties:
:
type: array
items:
type: string
message:
type: string
type: object
PolylineGeometry:
type: object
properties:
type:
type: string
description: geometry type
coordinates:
type:
- array
- 'null'
description: 'centre coordinates: lon, lat'
items:
type: array
items:
type: number
required:
- type
DeviceDisconnectedEvent2:
type: object
properties:
type:
type: string
enum:
- device_disconnected_event
description: String indicating the type of timeline event.
recorded_at_start:
type:
- string
- 'null'
description: Timestamp indicating the beginning of the event.
recorded_at_end:
type:
- string
- 'null'
description: Timestamp indicating the end of the event
location_start:
description: Location of the device at the beginning of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
location_end:
description: Location of the device at the end of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type: string
description: Unique ID of device
marker_id:
type:
- string
- 'null'
description: unique id
split_marker_id:
type:
- string
- 'null'
description: marker id if the marker is split
disconnected_code:
type: string
description: Code indicating the type of event
disconnected_label:
type: string
description: Text indicating the type of event
disconnected_description:
type: string
description: Text describing the detail description.
detail:
description: 'Details associated with stats: distance/duration etc.'
anyOf:
- $ref: '#/components/schemas/ActivityDetail'
is_partial:
type: boolean
description: flag indicating if the outage is partial.
is_ongoing:
type: boolean
description: flag indicating if the activity is ongoing.
required:
- device_id
- disconnected_code
- disconnected_description
- disconnected_label
- is_ongoing
- is_partial
- type
LocationGeometry:
type: object
properties:
type:
type: string
enum:
- Point
description: Geometry type
coordinates:
type: array
description: Location coordinates represented as [longitude, latitude]
items:
type: number
required:
- coordinates
- type
DriverStatusUpdatedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_status_updated
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
detail:
description: Details of the status update.
anyOf:
- $ref: '#/components/schemas/StatusDetail2'
tracking:
type:
- boolean
- 'null'
description: Boolean flag indicating tracking status.
available:
type:
- boolean
- 'null'
description: Boolean flag indicating availability status.
marker_id:
type:
- string
- 'null'
description: unique id
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
required:
- type
PostWorkerInviteRequest:
type: object
properties:
app:
type:
- string
- 'null'
default: ORDERS
enum:
- ORDERS
- VISITS
description: Value indicating the HyperTrack app for which the invite should be generated. `ORDERS` or `VISITS`.
PatchOpsGroupResponse:
type: object
properties:
ops_group_handle:
type: string
description: Unique identifier for an Ops Group
ops_group_label:
type: string
description: Identifier label for an Ops Group
timezone:
type: string
description: IANA timezone of the Ops Group
route_start_location:
type: string
description: Configuration to identify where routes are expected to start
route_completion_type:
type: string
description: Configuration to identify where routes are expected to end
objective_fn:
type: string
description: Configuration to identify the metric used by the solver when generating optimized routes
ops_group_home:
description: Location of the Ops Group
allOf:
- $ref: '#/components/schemas/OpsGroupHome'
default_shift_start_time:
type: string
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type: string
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type: integer
description: Maximum number of orders in a route
route_max_distance:
type: integer
description: Maximum distance in meters used by the resolver to constrain each route distance
deleted:
type: boolean
description: Flag to include deleted ops groups
deleted_at:
type: string
description: Timestamp at which the OpsGroup was deleted
shift_availability_mode:
type: string
description: Flag to start/stop availability of all drivers based on the ops group shift
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers for work assignment and shift tracking
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
order_tracking_automation:
description: A configuration object to enable/disable and customize automatic order tracking.
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
required:
- ops_group_handle
- ops_group_label
- route_capacity
- route_max_distance
- shift_availability_mode
- timezone
DriverActivityEvent2:
type: object
properties:
type:
type: string
enum:
- driver_activity_event
description: String indicating the type of timeline event.
recorded_at_start:
type:
- string
- 'null'
description: Timestamp indicating the beginning of the event.
recorded_at_end:
type:
- string
- 'null'
description: Timestamp indicating the end of the event
location_start:
description: Location of the device at the beginning of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel2'
location_end:
description: Location of the device at the end of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
detail:
description: Details of activity ex. distance (metres), duration (seconds), steps (number)
anyOf:
- $ref: '#/components/schemas/ActivityDetail2'
activity:
type:
- string
- 'null'
description: 'type of activity: drive/stop/walk'
marker_id:
type:
- string
- 'null'
description: event id
split_marker_id:
type:
- string
- 'null'
description: marker id if the marker is split
is_partial:
type: boolean
description: flag indicating if the activity is trimmed.
is_ongoing:
type: boolean
description: flag indicating if the activity is ongoing.
polyline:
description: polyline associated with the activity
anyOf:
- $ref: '#/components/schemas/PolylineGeoJSON2'
address:
type:
- string
- 'null'
description: address associated with activity
source_locations:
type:
- string
- 'null'
writeOnly: true
description: source locations
hex_map:
type:
- array
- 'null'
description: location heatmap for stop activity
items:
$ref: '#/components/schemas/PolygonHeatMap'
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
battery_details:
description: Details of battery usage during the event.
anyOf:
- $ref: '#/components/schemas/ActivityBatteryDetails1'
required:
- is_ongoing
- is_partial
- type
PolylineGeoJSON:
type: object
properties:
type:
type: string
description: type
geometry:
description: geojson geometry
allOf:
- $ref: '#/components/schemas/PolylineGeometry'
properties:
description: geojson properties
allOf:
- $ref: '#/components/schemas/PolylineProperties'
required:
- geometry
- properties
- type
GetOpsGroupResponse:
type: object
properties:
ops_group_handle:
type: string
description: Unique identifier for an Ops Group
ops_group_label:
type: string
description: Identifier label for an Ops Group
timezone:
type: string
description: IANA timezone of the Ops Group
route_start_location:
type: string
description: Configuration to identify where routes are expected to start
route_completion_type:
type: string
description: Configuration to identify where routes are expected to end
objective_fn:
type: string
description: Configuration to identify the metric used by the solver when generating optimized routes
ops_group_home:
description: Location of the Ops Group
allOf:
- $ref: '#/components/schemas/OpsGroupHome'
default_shift_start_time:
type: string
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type: string
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type: integer
description: Maximum number of orders in a route
route_max_distance:
type: integer
description: Maximum distance in meters used by the resolver to constrain each route distance
deleted:
type: boolean
description: Flag to include deleted ops groups
deleted_at:
type: string
description: Timestamp at which the OpsGroup was deleted
shift_availability_mode:
type: string
description: Flag to start/stop availability of all drivers based on the ops group shift
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers for work assignment and shift tracking
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
order_tracking_automation:
description: A configuration object to enable/disable and customize automatic order tracking.
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
required:
- ops_group_handle
- ops_group_label
- route_capacity
- route_max_distance
- shift_availability_mode
- timezone
WorkStatusAutomation:
type: object
properties:
mode:
type:
- string
- 'null'
enum:
- auto
- auto_start
- auto_stop
description: "Controls what automation should occur.\n \n - `\"auto\"`: Automatically toggle and work status based on the `type`.
\n - `\"auto_start\"`: Only automatically set start work status based on the `type`.
\n - `\"auto_stop\"`: Only automatically reset stop work status based on the `type`.
\n
\n "
type:
type: string
enum:
- manual
- tracking
- available
description: "Defines the basis for automation. The value of this field determines how the rest of the configuration is interpreted.\n \n - `\"manual\"`: No Automation. Work status to be managed manually.
\n - `\"tracking\"`: Automate tracking controls based on worker/ops-group schedule.
\n - `\"available\"`: Automate availability controls based on worker/ops-group schedule.
\n
\n "
required:
- type
GetWorkerTimelineResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
current_date:
type: string
description: Current date in the timezone of the worker.
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type:
- array
- 'null'
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
device_info:
description: Information of the Device associated with worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
profile:
type:
- object
- 'null'
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
anyOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type:
- array
- 'null'
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
devices:
type:
- array
- 'null'
description: List of devices that were linked to the worker
items:
$ref: '#/components/schemas/DriverDevice1'
summary:
description: Summary of work for the worker
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
timeline:
type:
- array
- 'null'
description: Worker timeline events highlighting the work and relevant events during specified time range.
items:
oneOf:
- $ref: '#/components/schemas/DriverActivityEvent2'
- $ref: '#/components/schemas/DriverOutageEvent2'
- $ref: '#/components/schemas/DriverStatusUpdatedEvent2'
- $ref: '#/components/schemas/GeotagEvent1'
- $ref: '#/components/schemas/OrderAssignedEvent2'
- $ref: '#/components/schemas/OrderStartedEvent2'
- $ref: '#/components/schemas/OrderCompletedEvent2'
- $ref: '#/components/schemas/OrderCancelledEvent2'
- $ref: '#/components/schemas/OrderRescheduledEvent'
- $ref: '#/components/schemas/DriverVisitEvent1'
- $ref: '#/components/schemas/DriverDeviceLinkedEvent2'
- $ref: '#/components/schemas/DriverDeviceUnlinkedEvent2'
- $ref: '#/components/schemas/DeviceDisconnectedEvent2'
battery:
description: Information of the battery status
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
default: UTC
description: Timezone of the worker
required:
- created_at
- current_date
- ops_group_handle
- work_status
- worker_handle
OrderAssignedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_order_assigned
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
order_handle:
type:
- string
- 'null'
description: Order handle
route_handle:
type:
- string
- 'null'
description: Route handle
order_type:
type:
- string
- 'null'
description: Order type
destination_address:
type:
- string
- 'null'
description: Address of the intended order destination.
destination_location:
description: Intended order destination in coordinates.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
fulfillment_attempt:
type:
- integer
- 'null'
description: Number of fulfillment attempts made.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
required:
- type
DriverOutageSummary1:
type: object
properties:
code:
type: string
description: Code indicating the type of outage
label:
type: string
description: Text indicating the type of outage
description:
type: string
description: Text describing the outage.
category:
type: string
enum:
- behavioural
- adversarial
- reachability
- os
- sporadic
description: String indicating the category of outage
duration:
type: integer
description: Sum total duration of all outages experienced with this `code` in the specified time range.
distance:
type: integer
description: Sum total (estimated) distance covered during all outages experienced with this `code` in the specified time range.
required:
- category
- code
- description
- distance
- duration
- label
LocationGeometryResponse:
type: object
properties:
type:
type: string
description: Geometry type
coordinates:
type: array
description: Location coordinates represented as list of [longitude, latitude].
items: {}
required:
- coordinates
- type
DriverDateSchedule:
type: object
properties:
start_time:
type: string
description: Start time represented by HH:mm of the worker's day schedule
end_time:
type: string
description: End time represented by HH:mm of the worker's day schedule
date:
type: string
description: Date on which the worker is available for work
ops_group_handle:
type:
- string
- 'null'
description: Unique identifier for an Ops Group
priority:
type:
- integer
- 'null'
description: Priority of schedule of a worker
required:
- date
- end_time
- start_time
WorkerApproverResponse:
type: object
properties:
worker_handle:
type: string
description: Handle of the worker
approver_id:
type: string
description: ID of the approver
approver_type:
type: string
description: 'Type of approver: ''worker'' or ''dashboard_user'''
created_at:
type:
- string
- 'null'
description: When the approver was created
updated_at:
type:
- string
- 'null'
description: When the approver was last updated
required:
- approver_id
- approver_type
- worker_handle
ActivityBatteryDetails1:
type: object
properties:
battery_used:
type:
- number
- 'null'
description: Battery percentage used during event.
is_battery_usage_high:
type:
- boolean
- 'null'
description: Boolean flag indicating if battery usage during the event was high.
DeviceInfo:
type: object
properties:
timezone:
type: string
description: Timezone of the device
os_name:
type: string
description: Operating system running on the device
device_brand:
type: string
description: Brand of the device
sdk_version:
type: string
description: HyperTrack SDK version used on the device
device_model:
type: string
description: Model of the device
network_operator:
type:
- string
- 'null'
description: Network operator used by the device
os_version:
type: string
description: Operating system version on the device
os_hardware_identifier:
type: string
description: Hardware identification number for the device
app_name:
type: string
description: App name on the device
app_version_string:
type:
- string
- 'null'
description: App version used on the device
app_version_number:
type:
- string
- 'null'
description: App version number used on the device
required:
- app_name
- device_brand
- device_model
- os_hardware_identifier
- os_name
- os_version
- sdk_version
- timezone
WorkerExportResponse:
type: object
properties:
job_id:
type: string
description: Unique identifier for the export job
status:
type: string
description: 'Current status of the export job: pending, processing, completed, failed'
message:
type: string
description: Human-readable message about the job
required:
- job_id
- message
- status
PolylineGeoJSON2:
type: object
properties:
type:
type: string
description: type
geometry:
description: geojson geometry
allOf:
- $ref: '#/components/schemas/PolylineGeometry2'
properties:
description: geojson properties
allOf:
- $ref: '#/components/schemas/PolylineProperties2'
required:
- geometry
- properties
- type
PostWorkerInviteResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
invite_link:
type: string
description: App link to be shared with the worker
required:
- invite_link
- worker_handle
PolylineProperties2:
type: object
properties:
timestamps:
type:
- array
- 'null'
description: list of timestamps, one for each location in polyline.
items:
type: string
LocationPermissionStateCounts:
type: object
properties:
always:
type: integer
foreground_only:
type: integer
never:
type: integer
unknown:
type: integer
required:
- always
- foreground_only
- never
- unknown
SetWorkerStatusRequest:
type: object
properties:
tracking:
type:
- boolean
- 'null'
description: Flag set to indicate that the worker is being tracked while working
available:
type:
- boolean
- 'null'
description: Flag set to indicate that the worker is available for work
OpsGroupHome:
type: object
properties:
geometry:
description: Location of the Ops Group home
allOf:
- $ref: '#/components/schemas/LocationGeometry'
address:
type:
- string
- 'null'
description: Address for the Ops Group home
required:
- geometry
WorkerAggregate:
type: object
properties:
geotags:
description: Aggregate information of geotags in the specified time range
allOf:
- $ref: '#/components/schemas/GeotagsAggregate'
orders:
description: Aggregate information of orders in the specified time range
allOf:
- $ref: '#/components/schemas/OrdersAggregate'
workers:
description: Aggregate information of workers in the specified time range
allOf:
- $ref: '#/components/schemas/DriversAggregate1'
summary:
description: Aggregate information of worker activities in the specified time range
allOf:
- $ref: '#/components/schemas/SummaryAggregate'
tracking_rate:
type:
- number
- 'null'
description: Tracking Rate
outage_summary:
type:
- array
- 'null'
description: Aggregate information of worker outage summaries in the specified time range
items:
$ref: '#/components/schemas/DriverOutageSummaryAggregate'
location_permission_state_counts:
description: Counts of location permission states for the last known device of workers.
allOf:
- $ref: '#/components/schemas/LocationPermissionStateCounts'
visits:
description: Aggregate information of visits in the specified time range
allOf:
- $ref: '#/components/schemas/VisitAggregateModel'
GeotagsAggregate:
type: object
properties:
count:
type: integer
description: Number of geotags generated in the given time range
distance:
description: Stats related to workers' distance
anyOf:
- $ref: '#/components/schemas/GeotagStats'
duration:
description: Stats related to workers' duration
anyOf:
- $ref: '#/components/schemas/GeotagStats'
deviation:
description: Stats related to the geotag deviation
anyOf:
- $ref: '#/components/schemas/GeotagStats'
required:
- count
LocationWithoutRadius1:
type: object
properties:
address:
type:
- string
- 'null'
description: Address for the location
geometry:
description: Location geometry
anyOf:
- $ref: '#/components/schemas/LocationGeometry'
GeotagEvent1:
type: object
properties:
type:
type: string
enum:
- geotag_event
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
geotag_id:
type:
- string
- 'null'
description: id of geotag
address:
type:
- string
- 'null'
description: Address of the device when the geotag was created.
order_handle:
type:
- string
- 'null'
description: Order handle associated with the geotag.
metadata:
type:
- object
- 'null'
description: metadata of geotag
additionalProperties: {}
geotag_type:
type:
- string
- 'null'
description: Type of geotag.
deviation:
type:
- integer
- 'null'
description: Deviation of geotag.
expected_location:
description: Expected Location.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
place_handle:
type:
- string
- 'null'
description: handle of the place
device_id:
type:
- string
- 'null'
description: Unique ID of device
accuracy:
type:
- integer
- 'null'
description: Error margin of location reading associated with the geotag
attachments:
type:
- array
- 'null'
description: Attachments associated with the event
items:
oneOf:
- $ref: '#/components/schemas/ImageAttachment3'
- $ref: '#/components/schemas/NoteAttachment3'
- $ref: '#/components/schemas/SignatureAttachment3'
required:
- type
LocationGeometryModel2:
type: object
properties:
type:
type: string
description: Geometry type.
coordinates:
description: Geo coordinates (lon, lat)
oneOf:
- type: array
items:
type: number
- type: array
items:
type: array
items:
type: array
items:
type: number
required:
- coordinates
- type
HTTPError:
properties:
detail:
type: object
message:
type: string
type: object
PolylineGeometry2:
type: object
properties:
type:
type: string
description: geometry type
coordinates:
type:
- array
- 'null'
description: 'centre coordinates: lon, lat'
items:
type: array
items:
type: number
required:
- type
PostWorkerRequest:
type: object
properties:
profile:
type:
- object
- 'null'
description: Additional customer provided data associated with a worker
additionalProperties: {}
name:
type:
- string
- 'null'
description: Name of the worker
home:
description: Worker's home location
anyOf:
- $ref: '#/components/schemas/LocationWithoutRadius1'
product_types:
type:
- array
- 'null'
description: List of product types used for worker matching during order planning
items:
type: string
unavailable_on:
type:
- array
- 'null'
description: List of dates (YYYY-MM-DD) on which the worker is unavailable
items:
type: string
worker_handle:
type: string
description: Unique customer provided identifier for a worker
device_id:
type:
- string
- 'null'
format: uuid
description: Unique ID representing the worker's device
schedule:
type:
- array
- 'null'
description: List of schedules used for worker matching during order planning and auto start/stop of availability or tracking of the worker
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
ops_group_handle:
type:
- string
- 'null'
default: default
description: Unique identifier for an Ops Group to which the worker belongs
required:
- worker_handle
GetWorkersResponse:
type: object
properties:
workers:
type:
- array
- 'null'
description: List of workers
items:
$ref: '#/components/schemas/Worker'
pagination_token:
type:
- string
- 'null'
description: Identifier used to fetch the next page of data
aggregate:
description: Combined aggregate work metrics for workers in the given time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/WorkerAggregate'
OrdersAggregate:
type: object
properties:
count:
description: Count related to the orders
allOf:
- $ref: '#/components/schemas/CountGroup'
distance:
description: Stats related to workers' distance
anyOf:
- $ref: '#/components/schemas/OrderStats'
duration:
description: Stats related to workers' duration
anyOf:
- $ref: '#/components/schemas/OrderStats'
deviation:
description: Stats related to the geotag deviation
anyOf:
- $ref: '#/components/schemas/OrderStats'
required:
- count
DriverStatus1:
type: object
properties:
tracking:
type: boolean
description: Flag indicating whether the worker is currently on work
available:
type: boolean
description: Flag indicating if the worker is available for work
required:
- available
- tracking
CreateLocateRequest:
type: object
properties: {}
ApprovalAutomation:
type: object
properties:
auto_cancel:
type: boolean
description: Whether to auto-cancel unapproved approvals
cancel_before_scheduled_in_seconds:
type:
- integer
- 'null'
description: Time before scheduled at of order to cancel approvals automatically
required:
- auto_cancel
ActivityDetail2:
type: object
properties:
steps:
type:
- integer
- 'null'
description: Number of steps
distance:
type:
- integer
- 'null'
description: Distance in metres
duration:
type:
- integer
- 'null'
description: Duration in seconds
DeviceStatus1:
type: object
properties:
value:
type: string
description: Status of the worker's device - `active` `disconnected` `inactive`
data:
type: object
description: Data associated with the worker's device status - `reason`, `activity`
additionalProperties: {}
required:
- data
- value
BatteryStatus1:
type: object
properties:
battery_percent:
type: integer
description: Integer indicating the percent of charge on the battery.
recorded_at:
type: string
description: Timestamp of the reading
required:
- battery_percent
- recorded_at
OpsGroupHomeRequest:
type: object
properties:
geometry:
description: Location of the Ops Group home
allOf:
- $ref: '#/components/schemas/LocationGeometry'
address:
type:
- string
- 'null'
description: Address of the Ops Group home
required:
- geometry
ActivityDetail:
type: object
properties:
steps:
type:
- integer
- 'null'
description: Number of steps
distance:
type:
- integer
- 'null'
description: Distance in metres
duration:
type:
- integer
- 'null'
description: Duration in seconds
DriverSummary1:
type: object
properties:
orders:
description: Summary of orders fulfilled by the worker in the specified time range.
allOf:
- $ref: '#/components/schemas/OrderSummary1'
geotags:
type:
- integer
- 'null'
description: Number of Geotags created by the worker in the specified time range.
visits:
type:
- integer
- 'null'
description: Number of Visits made by the worker during the specified time range.
intended_track_duration:
type: integer
description: Total duration (in seconds) for which the worker was supposed to be tracked during the specified time range.
outage_duration:
type: integer
description: Total duration (in seconds) for which the worker could not be tracked (in outage) during the specified time range.
outage_distance:
type: integer
description: Total estimated distance (in meters) covered by the worker while he/she could not be tracked during the specified time range.
outage_summary:
type: array
description: List of outages experienced by the worker during the specified time range.
items:
$ref: '#/components/schemas/DriverOutageSummary1'
tracked_duration:
type: integer
description: Total duration (in seconds) for which the worker was actually tracked during the specified time range.
tracked_distance:
type: integer
description: Total distance (in meters) driven by the worker while the worker was actually tracked during the specified time range.
avg_distance_per_visit:
type: number
description: Average distance (in meters) driven by the worker per visit while the worker was actually tracked during the specified time range.
drive_duration:
type: integer
description: Total duration (seconds) for which the worker was driving during the specified time range.
walk_duration:
type: integer
description: Total duration (seconds) for which the worker was walking during the specified time range.
stop_duration:
type: integer
description: Total duration (seconds) for which the worker had stopped during the specified time range.
order_duration:
type: integer
description: Total duration (seconds) which the worker had spent delivering orders.
visit_duration:
type: integer
description: Total duration (seconds) which the worker had spent doing visits.
geotag_duration:
type: integer
description: Total duration (seconds) which the worker had spent creating geotags.
tracking_rate:
type:
- number
- 'null'
description: Average tracking rate of the worker during the specified time range.
stop_count:
type:
- integer
- 'null'
description: Number of stops.
walk_count:
type:
- integer
- 'null'
description: Number of walks.
drive_count:
type:
- integer
- 'null'
description: Number of drives.
distance:
type:
- integer
- 'null'
description: Total distance (tracked + outage) in meters covered by the worker during the specified time range.
available_duration:
type:
- integer
- 'null'
description: 'Total duration (in seconds) for which the worker was actually tracked during the specified time range.
__Please use the field `tracked_duration` instead.__ '
deprecated: false
work_duration:
type:
- integer
- 'null'
description: Total duration (seconds) spent on work by the worker in the specified time range.
deprecated: true
disconnected_duration:
type:
- integer
- 'null'
description: Total duration (in seconds) for which the worker was supposed to be tracked, but actually in a disconnected state.
deprecated: false
status:
description: Flags indicating worker's work status during the specified time range.
allOf:
- $ref: '#/components/schemas/DriverSummaryStatus1'
required:
- avg_distance_per_visit
- drive_duration
- geotag_duration
- intended_track_duration
- order_duration
- orders
- outage_distance
- outage_duration
- outage_summary
- status
- stop_duration
- tracked_distance
- tracked_duration
- visit_duration
- walk_duration
OpsGroup:
type: object
properties:
ops_group_handle:
type: string
description: Unique identifier for an Ops Group
ops_group_label:
type: string
description: Identifier label for an Ops Group
timezone:
type: string
description: IANA timezone of the Ops Group
route_start_location:
type: string
description: Configuration to identify where routes are expected to start
route_completion_type:
type: string
description: Configuration to identify where routes are expected to end
objective_fn:
type: string
description: Configuration to identify the metric used by the solver when generating optimized routes
ops_group_home:
description: Location of the Ops Group
allOf:
- $ref: '#/components/schemas/OpsGroupHome'
default_shift_start_time:
type: string
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type: string
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type: integer
description: Maximum number of orders in a route
route_max_distance:
type: integer
description: Maximum distance in meters used by the resolver to constrain each route distance
deleted:
type: boolean
description: Flag to include deleted ops groups
deleted_at:
type: string
description: Timestamp at which the OpsGroup was deleted
shift_availability_mode:
type: string
description: Flag to start/stop availability of all drivers based on the ops group shift
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers for work assignment and shift tracking
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
order_tracking_automation:
description: A configuration object to enable/disable and customize automatic order tracking.
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
required:
- ops_group_handle
- ops_group_label
- route_capacity
- route_max_distance
- shift_availability_mode
- timezone
ImageAttachment3:
type: object
properties:
type:
enum:
- image
description: Type of attachment
url:
type: string
description: Image link
caption:
type:
- string
- 'null'
description: Caption for the image
required:
- type
- url
LocationPermission1:
type: object
properties:
state:
type: string
enum:
- always
- foreground_only
- never
- location_imprecise
- unknown
description: State of location permission
recorded_at:
type:
- string
- 'null'
description: Time stamp of the last known location permission
required:
- state
DriverSummaryStatus1:
type: object
properties:
intended_to_track:
type: boolean
description: Boolean flag indicating whether worker was supposed to be tracked during the specified period.
tracked:
type: boolean
description: Boolean flag indicating whether worker was actually tracked during the specified period.
worked:
type: boolean
description: Boolean flag indicating whether worker had worked during the specified period.
available:
type: boolean
description: Boolean flag indicating whether worker was marked available during the specified period.
required:
- available
- intended_to_track
- tracked
- worked
PatchWorkerResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type: array
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
profile:
type: object
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
allOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type: array
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
summary:
description: Summary of work done by the worker during the specified time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_info:
description: Information of the Device associated with Worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
battery:
description: Information of the battery status.
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
description: Timezone of the worker
required:
- created_at
- home
- ops_group_handle
- product_types
- profile
- unavailable_on
- work_status
- worker_handle
LocateDeviceResultResponse:
type: object
properties:
device_id:
type: string
description: Unique ID representing the device that was located.
status:
type: string
enum:
- pending
- completed
- error
description: 'Per-device locate status: `pending` while async work is in flight, `completed` once the async work for this device is done (inspect `location` / `outage_reasons` / `device_status` for the outcome), `error` on unexpected processing failure.'
location:
description: Location pulled from this device, if any.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
location_permission:
description: Last known location permission for this device.
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_status:
description: Connection-level outcome for this locate attempt. Populated when the SDK didn't come back online within the wake-and-wait budget (`value` = `disconnected`). Same shape as `worker.device_status`.
anyOf:
- $ref: '#/components/schemas/DeviceStatus'
outage_reasons:
type:
- array
- 'null'
description: Outage details reported by the SDK; same shape as `worker.summary.outages`.
items:
$ref: '#/components/schemas/DriverOutageSummary'
completed_at:
type:
- string
- 'null'
description: Timestamp at which this device's locate reached terminal state.
required:
- device_id
- status
DeviceInfo2:
type: object
properties:
timezone:
type: string
description: Timezone of the device
os_name:
type: string
description: Operating system running on the device
device_brand:
type: string
description: Brand of the device
sdk_version:
type: string
description: HyperTrack SDK version used on the device
device_model:
type: string
description: Model of the device
network_operator:
type:
- string
- 'null'
description: Network operator used by the device
os_version:
type: string
description: Operating system version on the device
os_hardware_identifier:
type: string
description: Hardware identification number for the device
app_name:
type: string
description: App name on the device
app_version_string:
type:
- string
- 'null'
description: App version used on the device
app_version_number:
type:
- string
- 'null'
description: App version number used on the device
required:
- app_name
- device_brand
- device_model
- os_hardware_identifier
- os_name
- os_version
- sdk_version
- timezone
GeotagStats:
type: object
properties:
mean:
type:
- number
- 'null'
description: Average value for the metric
min:
type:
- number
- 'null'
description: Minimum value for the metric
max:
type:
- number
- 'null'
description: Maximum value for the metric
stdev:
type:
- number
- 'null'
description: Standard deviation for the metric
mean_by_driver:
type:
- number
- 'null'
description: Average value per worker for the metric
sum:
type: number
description: Total value of the metric
required:
- sum
OpsGroupRecurringSchedule:
type: object
properties:
start_time:
type: string
description: Start time of day represented by HH:mm for all the workers belonging to ops group
end_time:
type: string
description: End time of day represented by HH:mm for all the workers belonging to ops group
day_of_week:
type: string
enum:
- SUNDAY
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
description: Day of the week when ops group workers are available for work
priority:
type:
- integer
- 'null'
description: Priority of schedule
required:
- day_of_week
- end_time
- start_time
PostWorkerResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type: array
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
profile:
type: object
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
allOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type: array
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
summary:
description: Summary of work done by the worker during the specified time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_info:
description: Information of the Device associated with Worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
battery:
description: Information of the battery status.
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
description: Timezone of the worker
required:
- created_at
- home
- ops_group_handle
- product_types
- profile
- unavailable_on
- work_status
- worker_handle
OpsGroupDateSchedule:
type: object
properties:
start_time:
type: string
description: Start time of day represented by HH:mm for all the workers belonging to ops group
end_time:
type: string
description: End time of day represented by HH:mm for all the workers belonging to ops group
date:
type: string
description: Date for which for all the workers belonging to ops group are available for work
priority:
type:
- integer
- 'null'
description: Priority of schedule
required:
- date
- end_time
- start_time
DriversAggregate1:
type: object
properties:
total:
type:
- integer
- 'null'
description: Total number of workers matching applied filters
total_intended_to_track:
type:
- integer
- 'null'
description: Workers expected to be tracked during the period
worked:
type:
- integer
- 'null'
description: Workers who performed work (orders, geotags, or visits)
tracked:
type:
- integer
- 'null'
description: Workers successfully tracked during the period
untracked:
type:
- integer
- 'null'
description: Workers with tracking intent but failed due to actionable outage
disconnected:
type:
- integer
- 'null'
description: Workers with tracking intent but failed without actionable outage
tracked_not_worked:
type:
- integer
- 'null'
description: Workers tracked but with no work activity
OrderSummary1:
type: object
properties:
total:
type: integer
description: Total orders
completed:
type: integer
description: Orders completed
cancelled:
type: integer
description: Orders cancelled
tracked:
type: integer
description: Orders currently being tracked
assigned:
type: integer
description: Orders assigned
completed_tasks:
type: integer
description: Order tasks completed
required:
- assigned
- cancelled
- completed
- completed_tasks
- total
- tracked
GetOpsGroupsResponse:
type: object
properties:
pagination_token:
type: string
description: Identifier used to fetch the next page of data
ops_groups:
type: array
description: List of Ops Groups
items:
$ref: '#/components/schemas/OpsGroup'
LocationGeometryModel:
type: object
properties:
type:
type: string
description: Geometry type.
coordinates:
description: Geo coordinates (lon, lat)
oneOf:
- type: array
items:
type: number
- type: array
items:
type: array
items:
type: array
items:
type: number
required:
- coordinates
- type
PostOpsGroupResponse:
type: object
properties:
ops_group_handle:
type: string
description: Unique identifier for an Ops Group
ops_group_label:
type: string
description: Identifier label for an Ops Group
timezone:
type: string
description: IANA timezone of the Ops Group
route_start_location:
type: string
description: Configuration to identify where routes are expected to start
route_completion_type:
type: string
description: Configuration to identify where routes are expected to end
objective_fn:
type: string
description: Configuration to identify the metric used by the solver when generating optimized routes
ops_group_home:
description: Location of the Ops Group
allOf:
- $ref: '#/components/schemas/OpsGroupHome'
default_shift_start_time:
type: string
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type: string
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type: integer
description: Maximum number of orders in a route
route_max_distance:
type: integer
description: Maximum distance in meters used by the resolver to constrain each route distance
deleted:
type: boolean
description: Flag to include deleted ops groups
deleted_at:
type: string
description: Timestamp at which the OpsGroup was deleted
shift_availability_mode:
type: string
description: Flag to start/stop availability of all drivers based on the ops group shift
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers for work assignment and shift tracking
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
order_tracking_automation:
description: A configuration object to enable/disable and customize automatic order tracking.
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
required:
- ops_group_handle
- ops_group_label
- route_capacity
- route_max_distance
- shift_availability_mode
- timezone
LocationWithoutRadiusResponse:
type: object
properties:
address:
type:
- string
- 'null'
description: Address for the location
geometry:
description: Location geometry
allOf:
- $ref: '#/components/schemas/LocationGeometryResponse'
required:
- geometry
OrderRescheduledEvent:
type: object
properties:
type:
type: string
enum:
- driver_order_rescheduled
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
order_handle:
type:
- string
- 'null'
description: Order handle
route_handle:
type:
- string
- 'null'
description: Route handle
order_type:
type:
- string
- 'null'
description: Order type
destination_address:
type:
- string
- 'null'
description: Address of the intended order destination.
destination_location:
description: Intended order destination in coordinates.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
fulfillment_attempt:
type:
- integer
- 'null'
description: Number of fulfillment attempts made.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
required:
- type
SummaryAggregate:
type: object
properties:
tracked_duration:
type:
- integer
- 'null'
description: Total tracked duration of all workers.
tracked_distance:
type:
- integer
- 'null'
description: Total tracked distance of all workers.
outage_duration:
type:
- integer
- 'null'
description: Total outage duration of all workers.
outage_distance:
type:
- integer
- 'null'
description: Total outage distance of all workers.
drive_duration:
type:
- integer
- 'null'
description: Total drive duration of all workers.
stop_duration:
type:
- integer
- 'null'
description: Total stop duration of all workers.
walk_duration:
type:
- integer
- 'null'
description: Total walk duration of all workers.
GeofenceGeometry1:
type: object
properties:
type:
type: string
description: type
geometry:
description: geometry of geofence
oneOf:
- $ref: '#/components/schemas/PointGeometry'
- $ref: '#/components/schemas/PolylineGeometry'
properties:
type:
- object
- 'null'
description: properties
additionalProperties: {}
required:
- geometry
- type
LineStringLocation1:
type: object
properties:
type:
type: string
description: Type of location object
coordinates:
type: array
description: Array of coordinates and the recorded_at timestamp
items:
type: array
items: {}
required:
- coordinates
- type
CreateWorkerApproverRequest:
type: object
properties:
approver_id:
type: string
description: ID of the approver
approver_type:
enum:
- worker
- dashboard_user
description: 'Type of approver: ''worker'' or ''dashboard_user'''
required:
- approver_id
- approver_type
SignatureAttachment3:
type: object
properties:
type:
enum:
- signature
description: Type of attachment
url:
type: string
description: Signature image link
required:
- type
- url
PatchOpsGroupRequest:
type: object
properties:
ops_group_label:
type:
- string
- 'null'
description: Display name for an Ops Group
route_start_location:
type:
- string
- 'null'
enum:
- driver_home
- ops_group_home
- live_location
description: Configuration to identify where routes are expected to start
route_completion_type:
type:
- string
- 'null'
enum:
- end_at_last_order
- return_to_start_location
- manual
description: Configuration to identify where routes are expected to end
objective_fn:
type:
- string
- 'null'
enum:
- minimise_time
- minimise_distance
description: Configuration to identify the metric used by the solver when generating optimized routes
ops_group_home:
description: Location of the Ops Group
anyOf:
- $ref: '#/components/schemas/OpsGroupHomeRequest'
default_shift_start_time:
type:
- string
- 'null'
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type:
- string
- 'null'
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type:
- integer
- 'null'
description: Maximum number of orders in a route
route_max_distance:
type:
- integer
- 'null'
description: Maximum distance in meters used by the resolver to constrain each route distance
timezone:
type:
- string
- 'null'
description: IANA timezone of the Ops Group
shift_availability_mode:
type:
- string
- 'null'
enum:
- auto
- manual
description: Flag to start/stop availability of all drivers based on the ops group shift
deprecated: true
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
order_tracking_automation:
description: A configuration object to enable/disable and customize automatic order tracking.
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers matching during order planning and auto start/stop of availability or tracking of the workers
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
WorkerExportStatusResponse:
type: object
properties:
job_id:
type: string
description: Unique identifier for the export job
status:
type: string
description: 'Current status: pending, processing, completed, failed'
rows_processed:
type: integer
default: 0
description: Number of rows processed so far
presigned_url:
type:
- string
- 'null'
description: Presigned S3 URL to download the export (available when completed)
error_message:
type:
- string
- 'null'
description: Error message if job failed
created_at:
type:
- string
- 'null'
description: Job creation timestamp (ISO 8601)
started_at:
type:
- string
- 'null'
description: Job start timestamp (ISO 8601)
completed_at:
type:
- string
- 'null'
description: Job completion timestamp (ISO 8601)
required:
- job_id
- status
DriverDeviceUnlinkedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_device_unlinked_event
description: String indicating the type of timeline event.
recorded_at:
type: string
description: Timestamp indicating the end of the device session.
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
location_recorded_at:
type:
- string
- 'null'
description: Timestamp when the location was recorded.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type: string
description: Unique ID of device
device_info:
description: Device information
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
unlink_duration:
type:
- integer
- 'null'
description: Duration in seconds indicating how long the worker remained unlinked from the device.
unlinked_due_to_logout:
type:
- boolean
- 'null'
description: Flag indicating whether the device was unlinked as a result of a logout event.
required:
- device_id
- recorded_at
- type
PolygonHeatMap:
type: object
properties:
geometry:
description: polygon geometry
allOf:
- $ref: '#/components/schemas/PolygonGeometry'
time_spent:
type: number
description: time spent at the polygon
required:
- geometry
- time_spent
NoteAttachment3:
type: object
properties:
type:
enum:
- note
description: Type of attachment
data:
type: string
description: Text for the note
required:
- data
- type
DriverRecurringSchedule:
type: object
properties:
start_time:
type: string
description: Start time represented by HH:mm of the worker's day schedule
end_time:
type: string
description: End time represented by HH:mm of the worker's day schedule
day_of_week:
type: string
enum:
- SUNDAY
- MONDAY
- TUESDAY
- WEDNESDAY
- THURSDAY
- FRIDAY
- SATURDAY
description: Day of the week when the worker is available for work
ops_group_handle:
type:
- string
- 'null'
description: Unique identifier for an Ops Group
priority:
type:
- integer
- 'null'
description: Priority of schedule of a worker
required:
- day_of_week
- end_time
- start_time
DriverDevice1:
type: object
properties:
device_id:
type: string
description: Unique ID representing the worker's device
start_time:
type: string
description: Timestamp of when the device was linked to the worker
end_time:
type:
- string
- 'null'
description: Timestamp of when the device was unlinked to the worker
required:
- device_id
- start_time
WorkerApproverListResponse:
type: object
properties:
approvers:
type: array
description: List of worker approvers
items:
$ref: '#/components/schemas/WorkerApproverResponse'
total_count:
type: integer
description: Total number of approvers
limit:
type: integer
description: Maximum number of approvers returned
pagination_token:
type:
- string
- 'null'
description: Token for next page of results
required:
- approvers
- limit
- total_count
OrderStartedEvent2:
type: object
properties:
type:
type: string
enum:
- driver_order_started
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
order_handle:
type:
- string
- 'null'
description: Order handle
route_handle:
type:
- string
- 'null'
description: Route handle
order_type:
type:
- string
- 'null'
description: Order type
destination_address:
type:
- string
- 'null'
description: Address of the intended order destination.
destination_location:
description: Intended order destination in coordinates.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
fulfillment_attempt:
type:
- integer
- 'null'
description: Number of fulfillment attempts made.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
required:
- type
DriverOutageEvent2:
type: object
properties:
type:
type: string
enum:
- driver_outage_event
description: String indicating the type of timeline event.
recorded_at_start:
type:
- string
- 'null'
description: Timestamp indicating the beginning of the event.
recorded_at_end:
type:
- string
- 'null'
description: Timestamp indicating the end of the event
location_start:
description: Location of the device at the beginning of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
location_end:
description: Location of the device at the end of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
marker_id:
type:
- string
- 'null'
description: unique id
split_marker_id:
type:
- string
- 'null'
description: marker id if the marker is split
outage_code:
type: string
description: Code indicating the type of outage
outage_label:
type: string
description: Text indicating the type of outage
outage_is_user_generated:
type: boolean
description: Flag indicating if the outage is user generated.
outage_description:
type: string
description: Text describing the outage and resolution.
outage_category:
type: string
enum:
- behavioural
- adversarial
- reachability
- os
- sporadic
description: String indicating the category of outage
detail:
description: 'Details associated with outage: distance/duration etc.'
anyOf:
- $ref: '#/components/schemas/ActivityDetail'
is_partial:
type: boolean
description: flag indicating if the outage is partial.
is_ongoing:
type: boolean
description: flag indicating if the activity is ongoing.
polyline:
description: estimated polyline associated with the outage
anyOf:
- $ref: '#/components/schemas/PolylineGeoJSON'
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
required:
- is_ongoing
- is_partial
- outage_category
- outage_code
- outage_description
- outage_is_user_generated
- outage_label
- type
CountGroup:
type: object
properties:
total:
type: integer
description: Total number of orders
completed:
type:
- integer
- 'null'
description: Total number of completed orders
cancelled:
type:
- integer
- 'null'
description: Total number of cancelled orders
assigned:
type:
- integer
- 'null'
description: Total number of assigned orders
tracked:
type:
- integer
- 'null'
description: Total number of tracked orders
required:
- total
DriverOutageSummaryAggregate:
type: object
properties:
code:
type: string
description: Code indicating the type of outage
label:
type: string
description: Text indicating the type of outage
description:
type: string
description: Text describing the outage.
category:
type: string
enum:
- behavioural
- adversarial
- reachability
- os
- sporadic
description: String indicating the category of outage
duration:
type: integer
description: Total duration of all instances of concerned outage.
duration_untracked:
type: integer
description: Total duration of all instances of concerned outage observed for untracked workers.
duration_tracked:
type: integer
description: Total duration of all instances of concerned outage observed for tracked workers.
distance:
type: integer
description: Estimated distance covered during all instances of concerned outage.
required:
- category
- code
- description
- distance
- duration
- duration_tracked
- duration_untracked
- label
StatusDetail2:
type: object
properties:
actor:
enum:
- business
- hypertrack
description: Source of the action that updated the status.
DriverVisitEvent1:
type: object
properties:
type:
type: string
enum:
- driver_visit_event
description: String indicating the type of timeline event.
recorded_at_start:
type:
- string
- 'null'
description: Timestamp indicating the beginning of the event.
recorded_at_end:
type:
- string
- 'null'
description: Timestamp indicating the end of the event
location_start:
description: Location of the device at the beginning of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
location_end:
description: Location of the device at the end of the event.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
marker_id:
type:
- string
- 'null'
description: unique id
geofence_id:
type: string
description: ID of the visited geofence.
geofence_label:
type:
- string
- 'null'
description: Name of the visited geofence.
geofence_geometry:
description: Geometry of the visited geofence in geojson format
anyOf:
- $ref: '#/components/schemas/GeofenceGeometry1'
geofence_metadata:
type:
- object
- 'null'
description: metadata of geofence
additionalProperties: {}
address:
type:
- string
- 'null'
description: Human friendly address of the visit.
duration:
type:
- integer
- 'null'
description: Duration of visit in seconds.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
order_handle:
type:
- string
- 'null'
description: Unique handle of the order
enroute_distance:
type:
- integer
- 'null'
description: Distance travelled on route to the visit
enroute_duration:
type:
- integer
- 'null'
description: Duration spent on route to visit
required:
- geofence_id
- type
OpsGroupOrderTrackingAutomation:
type: object
properties:
mode:
type:
- string
- 'null'
enum:
- auto
- auto_start
- auto_stop
description: "Controls what automation should occur.\n \n - `\"auto\"`: Automatically start and stop tracking based on the `type`.
\n - `\"auto_start\"`: Only automatically start tracking.
\n - `\"auto_stop\"`: Only automatically stop tracking.
\n
\n "
lead_time:
type:
- integer
- 'null'
default: 0
minimum: 0
maximum: 86399
description: "Defines how early tracking should begin, relative to a key event.\n \n - If `type` is `\"shift\"`: Starts `lead_time` seconds before the driver's schedule `start_time`.
\n - If `type` is `\"order\"`: Starts `lead_time` seconds before the driver's first assigned order's `scheduled_at` time.
\n - If `type` is `\"route\"` or `\"order_and_route\"`: Starts `lead_time` seconds before the driver's assigned route's `scheduled_start_at` time.
\n
\n "
lag_time:
type:
- integer
- 'null'
default: 0
minimum: 0
maximum: 86399
description: "Defines how late tracking should stop, relative to a key event.\n \n - If `type` is `\"shift\"`: Stops `lag_time` seconds after the driver's schedule `end_time`.
\n - If `type` is `\"order\"`: Stops `lag_time` seconds after the driver's last order is completed.
\n
\n Important: Tracking will not automatically stop if the driver still has active orders.\n "
type:
type: string
enum:
- manual
- shift
- order
- route
- order_and_route
description: "Defines the basis for automation. The value of this field determines how the rest of the configuration is interpreted.\n \n - `\"manual\"`: No automation. Tracking must be manually started and stopped. All other fields are ignored.
\n - `\"shift\"`: Automation is based on the driver's scheduled shift times.
\n - `\"order\"`: Automation is based on the driver's assigned order times.
\n - `\"route\"`: Automation is based on the driver's assigned route scheduled start times.
\n - `\"order_and_route\"`: Automation is based on the driver's assigned order and route scheduled start times.
\n
\n "
approval:
description: Approval automation settings.
anyOf:
- $ref: '#/components/schemas/ApprovalAutomation'
acceptance:
description: Acceptance automation settings.
anyOf:
- $ref: '#/components/schemas/AcceptanceAutomation'
required:
- type
OrderCancelledEvent2:
type: object
properties:
type:
type: string
enum:
- driver_order_cancelled
description: String indicating the type of timeline event.
recorded_at:
type:
- string
- 'null'
description: Timestamp when the event was recorded
location:
description: Location of the device when the event was recorded
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
order_handle:
type:
- string
- 'null'
description: Order handle
route_handle:
type:
- string
- 'null'
description: Route handle
order_type:
type:
- string
- 'null'
description: Order type
destination_address:
type:
- string
- 'null'
description: Address of the intended order destination.
destination_location:
description: Intended order destination in coordinates.
anyOf:
- $ref: '#/components/schemas/LocationGeometryModel'
fulfillment_attempt:
type:
- integer
- 'null'
description: Number of fulfillment attempts made.
driver_handle:
type:
- string
- 'null'
deprecated: true
description: handle of the driver
worker_handle:
type:
- string
- 'null'
description: handle of the worker
device_id:
type:
- string
- 'null'
description: Unique ID of device
cancellation_source:
type:
- object
- 'null'
description: Detail about how order got cancelled
additionalProperties: {}
required:
- type
WorkerExportRequest:
type: object
properties:
from_date:
type:
- string
- 'null'
description: 'ISO 8601 date format (''yyyy-MM-dd'') indicating the start date to be used for the summary computation.
Default: Current date in UTC.'
to_date:
type:
- string
- 'null'
description: 'ISO 8601 date format (''yyyy-MM-dd'') indicating the end date to be used for the summary computation.
Default: Current date in UTC.'
limit:
type:
- integer
- 'null'
default: 25
description: Number of workers to be sent in response
include_schedule:
type: boolean
default: true
description: Flag to include worker's schedule in the response.
include_summary:
type: boolean
default: true
description: Flag to include worker's summary stats in the response.
ops_group_handle:
type:
- string
- 'null'
description: List of ops group handles as comma separated strings used to filter workers.
profile:
type:
- string
- 'null'
description: Profile filter to be applied on the list of workers
worker_handle:
type:
- string
- 'null'
description: List of worker handles as comma separated strings used for fetching associated workers
search_term:
type:
- string
- 'null'
description: Keyword to match against worker handle, name, or profile
pagination_token:
type:
- string
- 'null'
description: Identifier used to fetch the next page of data
device_id:
type:
- string
- 'null'
format: uuid
description: Unique identifier for a worker's device. This field is present in case the worker is currently linked with a device
include_deleted:
type: boolean
default: false
description: Flag to include deleted workers
from_time:
type:
- string
- 'null'
format: date-time
description: ISO 8601 datetime indicating the start time to be used for computing summary, status.
deprecated: true
to_time:
type:
- string
- 'null'
format: date-time
description: ISO 8601 datetime indicating the end time to be used for computing summary, status.
deprecated: true
filter_outage:
type:
- string
- 'null'
description: Filter workers on a particular outage code.
filter_outage_category:
type:
- string
- 'null'
description: 'List of comma separated outage categories to be used for filtering workers. Valid categories: `behavioural`,`adversarial`,`reachability`,`os`,`sporadic`'
filter_geofence_metadata:
type:
- string
- 'null'
description: geofence_metadata filter for aggregate response
aggregate:
type: boolean
default: false
description: Flag set to retrieve aggregated data over the provided time range
work_status:
type:
- string
- 'null'
description: URL-encoded json string specifying filters on availability or tracking.
filter_status:
type:
- string
- 'null'
enum:
- active
- inactive
- disconnected
description: Only list workers that are currently active/inactive/disconnected.
tracked:
type:
- boolean
- 'null'
description: If set to true, only shows workers that were actually tracked during the specified period.
worked:
type:
- boolean
- 'null'
description: If set to true, only shows workers that actually during the specified period.
intended_to_track:
type:
- boolean
- 'null'
description: If set to true, only shows workers that was supposed to be tracked during the specified period.
include_lp:
type:
- boolean
- 'null'
default: false
description: Flag to include location permission stats in response (only applicable when `aggregate=True`).
region_filter:
type:
- string
- 'null'
description: URL-encoded JSON string used to filter workers from a particular region. Ex `{"city":"Detroit"}`
email_recipients:
type: array
description: Optional list of email addresses to send the export download link. Falls back to the account email when omitted.
items:
type: string
LocateResponse:
type: object
properties:
request_id:
type: string
description: Unique identifier for the locate request.
worker_handle:
type: string
description: Unique customer provided identifier for a worker.
status:
type: string
enum:
- pending
- completed
- error
description: 'Worker-level rollup: `pending` while async work is in flight, `completed` once the async work is done (introspect `devices[]` for per-device outcomes — connection state lives on `device_status`, outage detail on `outage_reasons`), `error` on unexpected internal failure.'
devices:
type:
- array
- 'null'
description: Per-device locate results, newest session first. Empty array when the worker has no active device sessions; see each entry's `outage_reasons` for per-device outages.
items:
$ref: '#/components/schemas/LocateDeviceResultResponse'
created_at:
type:
- string
- 'null'
description: Timestamp at which the locate request was created.
updated_at:
type:
- string
- 'null'
description: Timestamp of last update to the locate request.
completed_at:
type:
- string
- 'null'
description: Timestamp at which the locate request reached a terminal state.
required:
- request_id
- status
- worker_handle
OrderStats:
type: object
properties:
mean:
type:
- number
- 'null'
description: Average value for the metric
min:
type:
- number
- 'null'
description: Minimum value for the metric
max:
type:
- number
- 'null'
description: Maximum value for the metric
stdev:
type:
- number
- 'null'
description: Standard deviation for the metric
mean_by_driver:
type:
- number
- 'null'
description: Average value per worker for the metric
sum:
type: number
description: Total value of the metric
required:
- sum
UndeleteWorkerResponse:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type: array
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
profile:
type: object
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
allOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type: array
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
summary:
description: Summary of work done by the worker during the specified time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_info:
description: Information of the Device associated with Worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
battery:
description: Information of the battery status.
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
description: Timezone of the worker
required:
- created_at
- home
- ops_group_handle
- product_types
- profile
- unavailable_on
- work_status
- worker_handle
PostOpsGroupRequest:
type: object
properties:
ops_group_handle:
type: string
description: Unique identifier for an Ops Group
ops_group_label:
type: string
description: Display name for an Ops Group
route_start_location:
type: string
default: live_location
enum:
- driver_home
- ops_group_home
- live_location
description: Configuration to identify where routes are expected to start
route_completion_type:
type: string
default: end_at_last_order
enum:
- end_at_last_order
- return_to_start_location
- manual
description: Configuration to identify where routes are expected to end
objective_fn:
type:
- string
- 'null'
default: minimise_time
enum:
- minimise_time
- minimise_distance
description: Configuration to identify the metric used by the solver when generating optimized routes
order_tracking_mode:
type:
- string
- 'null'
description: Order tracking mode associated with the ops-group
deprecated: true
order_tracking_automation:
description: 'Controls how and when worker tracking is automatically started and stopped. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
anyOf:
- $ref: '#/components/schemas/OpsGroupOrderTrackingAutomation'
work_status_automation:
type:
- array
- 'null'
description: 'List of configuration object to enable/disable and customize automatic work status updation. If `null`, the default behavior is equivalent to: `{"type": "manual"}`.'
items:
$ref: '#/components/schemas/WorkStatusAutomation'
ops_group_home:
description: Location of the Ops Group
anyOf:
- $ref: '#/components/schemas/OpsGroupHomeRequest'
default_shift_start_time:
type:
- string
- 'null'
description: Default time HH:mm when the shift starts for drivers
default_shift_end_time:
type:
- string
- 'null'
description: Default time HH:mm when the shift ends for drivers
route_capacity:
type:
- integer
- 'null'
description: Maximum number of orders in a route
route_max_distance:
type:
- integer
- 'null'
description: Maximum distance in meters used by the route solver to constrain each route distance
operations_radius:
type:
- integer
- 'null'
description: Maximum distance in meters from the ops group home within which order destinations are allowed
enforce_operations_radius:
type:
- boolean
- 'null'
description: Whether to enforce operations_radius validation at order creation time
timezone:
type: string
default: UTC
description: IANA timezone of the Ops Group
shift_availability_mode:
type:
- string
- 'null'
default: manual
enum:
- auto
- manual
description: Flag to start/stop availability of all drivers based on the ops group shift
deprecated: true
schedule:
type:
- array
- 'null'
description: List of schedules used for ops group workers matching during order planning and auto start/stop of availability or tracking of the workers
items:
oneOf:
- $ref: '#/components/schemas/OpsGroupDateSchedule'
- $ref: '#/components/schemas/OpsGroupRecurringSchedule'
app_config:
type:
- object
- 'null'
description: Configuration specific to order's app
additionalProperties: {}
required:
- ops_group_handle
- ops_group_label
Worker:
type: object
properties:
worker_handle:
type: string
description: Unique customer provided identifier for a worker
name:
type:
- string
- 'null'
description: Name of the worker
ops_group_handle:
type: string
description: Unique identifier for an Ops Group to which the worker belongs
product_types:
type: array
description: List of product types used for worker matching during order planning
items:
type: string
device_id:
type:
- string
- 'null'
description: Unique ID representing the worker's device
profile:
type: object
description: Metadata associated with a worker
additionalProperties: {}
work_status:
description: work_status of the worker with respect to availability and on order fulfilment
allOf:
- $ref: '#/components/schemas/DriverStatus1'
schedule:
type:
- array
- 'null'
description: List indicating the schedule of a worker for work assignment
items:
oneOf:
- $ref: '#/components/schemas/DriverDateSchedule'
- $ref: '#/components/schemas/DriverRecurringSchedule'
deleted:
type:
- boolean
- 'null'
description: Flag indicating whether the worker was deleted
created_at:
type: string
description: Timestamp at which the worker was created
home:
description: Worker home
allOf:
- $ref: '#/components/schemas/LocationWithoutRadiusResponse'
deleted_at:
type:
- string
- 'null'
description: Timestamp at which the worker was deleted
location:
description: Last known location of the worker.
anyOf:
- $ref: '#/components/schemas/MovementLocationResponse'
device_status:
description: Current status of the device used by the worker
anyOf:
- $ref: '#/components/schemas/DeviceStatus1'
unavailable_on:
type: array
description: List of dates (YYYY-MM-DD) on which the worker is not available
items:
type: string
summary:
description: Summary of work done by the worker during the specified time range. Default last 24 hours.
anyOf:
- $ref: '#/components/schemas/DriverSummary1'
location_permission:
description: Last known location permission on the worker's device
anyOf:
- $ref: '#/components/schemas/LocationPermission1'
device_info:
description: Information of the Device associated with Worker
anyOf:
- $ref: '#/components/schemas/DeviceInfo'
battery:
description: Information of the battery status.
anyOf:
- $ref: '#/components/schemas/BatteryStatus1'
timezone:
type:
- string
- 'null'
description: Timezone of the worker
required:
- created_at
- home
- ops_group_handle
- product_types
- profile
- unavailable_on
- work_status
- worker_handle
AcceptanceAutomation:
type: object
properties:
auto_cancel:
type: boolean
description: Whether to auto-cancel unaccepted acceptances
cancel_before_scheduled_in_seconds:
type:
- integer
- 'null'
description: Time before scheduled event to cancel acceptances automatically
required:
- auto_cancel
MovementLocationResponse:
type: object
properties:
geometry:
description: Location geometry
allOf:
- $ref: '#/components/schemas/LocationGeometryResponse'
accuracy:
type:
- number
- 'null'
description: Accuracy in meters for the location
bearing:
type:
- number
- 'null'
description: Directional position in degrees for the location
speed:
type:
- number
- 'null'
description: Speed in meters per second at this location
recorded_at:
type:
- string
- 'null'
description: Timestamp associated with the last known location of the worker.
required:
- geometry
VisitAggregateModel:
type: object
properties:
count:
type: integer
description: Number of visits in the given time range
required:
- count
securitySchemes:
BasicAuth:
type: http
scheme: basic
TokenAuth:
type: http
scheme: bearer
BearerAuth:
type: http
scheme: bearer