tread.io Equipment API
The Equipment API from tread.io — 13 operation(s) for equipment.
The Equipment API from tread.io — 13 operation(s) for equipment.
openapi: 3.0.3
info:
title: Horizon API V1 AccountExternalTruckIdentifier Equipment API
version: '1.0'
contact:
name: Tread
url: https://tread.io
email: developers@tread.io
description: 'This is the Version 1 implementation.
When in doubt we default to the practices outlined [here](https://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api#advanced-queries)'
license:
name: Private
url: https://tread.io
servers:
- description: production
url: https://api.tread-horizon.com
security:
- bearerAuth: []
tags:
- name: Equipment
paths:
/v1/companies/{company-id}/equipment:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Create an Equipment for a Company
operationId: post-v1-companies-company-id-equipment
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
x-stoplight:
id: pz7cbtd73nq8l
description: 'Create an `Equipment` for a `Company`
This endpoint requires the `create_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment-Create'
get:
summary: Retrieve Equipment that belong to a Company
tags:
- Equipment
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
properties:
data:
type: array
x-stoplight:
id: rfa42v76i9ehj
items:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-:id-equipment
x-stoplight:
id: dai5d8v300f37
description: Retrieve `Equipment` for a `Company`
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/filter-dispatchable'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/search-datagrid'
- $ref: '#/components/parameters/filter-equipment_type_ids'
- $ref: '#/components/parameters/filter-sender_company_ids'
/v1/companies/{company-id}/equipment/typeahead:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on Equipment for a Company
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Equipment-Read-Typeahead'
required:
- data
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-equipment-typeahead
description: Typeahead search against the `name` property on `Equipment` for a `Company`.
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/search-query'
- $ref: '#/components/parameters/filter-dispatchable'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/filter-equipment_type_ids'
- $ref: '#/components/parameters/filter-sender_company_ids'
x-stoplight:
id: 6u9sp57komhev
x-internal: true
/v1/companies/{company-id}/equipment/{id}:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
format: uuid
name: id
in: path
required: true
description: Equipment ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve Equipment by ID for a Company
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-equipment-id
x-stoplight:
id: n43u5p7ctgdj2
description: Retrieve `Equipment` by ID for a `Company`
/v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Managing Company ID
- schema:
type: string
name: managed-company-id
in: path
required: true
description: Managed Company ID
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Create Equipment for a Managed Company
operationId: post-v1-companies-company-id-managed_companies-managed-company-id-equipment
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
x-stoplight:
id: eq8mc9rq2w5xz
description: 'Create an `Equipment` for a Managed `Company`
This endpoint requires the `create_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment-Create'
get:
summary: Retrieve Equipment for a Managed Company
tags:
- Equipment
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
x-stoplight:
id: eq7xk2mn3r9pz
type: array
items:
$ref: '#/components/schemas/Equipment-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: get-v1-companies-company-id-managed_companies-managed-company-id-equipment
x-stoplight:
id: mg3ht5kp8w2nr
description: Retrieve `Equipment` for a managed company. This includes both equipment owned by the managed company and equipment shared with the managed company.
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/filter-dispatchable'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/search-datagrid'
- $ref: '#/components/parameters/filter-equipment_type_ids'
- $ref: '#/components/parameters/filter-sender_company_ids'
/v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/typeahead:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Managing Company ID
- schema:
type: string
name: managed-company-id
in: path
required: true
description: Managed Company ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on Equipment for a Managed Company
tags:
- Equipment
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
properties:
data:
type: array
x-stoplight:
id: eq8pm7nw4s1tx
items:
$ref: '#/components/schemas/Equipment-Read-Typeahead'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-managed_companies-managed-company-id-equipment-typeahead
x-stoplight:
id: eq9nh6tk2m4wz
description: Typeahead search against the `name` and `external_id` properties on `Equipment` for a managed company. This includes both equipment owned by the managed company and equipment shared with the managed company.
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/search-query'
x-internal: true
/v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/{id}:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Managing Company ID
- schema:
type: string
format: uuid
name: managed-company-id
in: path
required: true
description: Managed Company ID
- schema:
type: string
format: uuid
name: id
in: path
required: true
description: Equipment ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve Equipment by ID for a Managed Company
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-managed_companies-managed-company-id-equipment-id
x-stoplight:
id: eq8xk3mn4s0qa
description: Retrieve `Equipment` by ID for a Managed Company
patch:
summary: Update Equipment for a Managed Company
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: patch-v1-companies-company-id-managed_companies-managed-company-id-equipment-id
x-stoplight:
id: eq9yl4no5t1rb
description: 'Update `Equipment` by ID for a Managed Company
This endpoint requires the `edit_equipment` permission'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment-Update'
delete:
summary: Delete Equipment for a Managed Company
tags:
- Equipment
responses:
'204':
description: No Content
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: delete-v1-companies-company-id-managed_companies-managed-company-id-equipment-id
x-stoplight:
id: eq0zm5op6u2sc
description: 'Delete `Equipment` by ID for a Managed Company
This endpoint requires the `delete_equipment` permission'
/v1/equipment:
parameters:
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Create an Equipment in the current Company
operationId: post-v1-equipment
responses:
'201':
description: Created
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
x-stoplight:
id: ua1i3uzw7m2oh
description: 'Create an `Equipment` in the current `Company`
This endpoint requires the `create_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment-Create'
get:
summary: Retrieve a list of Equipment
tags:
- Equipment
responses:
'200':
description: OK
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
content:
application/json:
schema:
type: object
properties:
data:
type: array
x-stoplight:
id: gsyxnf632qz6r
items:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-equipment
x-stoplight:
id: 1qsr8l6g7yebg
description: "Retrieve `Equipment` visible to a `Company`\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `external_id`\n * `license_number`\n * `name`\n"
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/search-datagrid'
- $ref: '#/components/parameters/filter-dispatchable'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/filter-equipment_type_ids'
- $ref: '#/components/parameters/filter-label_ids'
deprecated: true
/v1/equipment/typeahead:
parameters:
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on Equipment
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Equipment-Read-Typeahead'
required:
- data
headers:
Link:
schema:
type: string
description: Contains prev and next links for pagination
'401':
$ref: '#/components/responses/UnauthenticatedError'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-equipment-typeahead
description: 'Typeahead search against the `name` property for `Equipment` visible to the currently authenticated `Company`.
'
x-internal: true
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/search-query'
- $ref: '#/components/parameters/filter-dispatchable'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/filter-equipment_type_ids'
x-stoplight:
id: d0zb2trrtqlx5
deprecated: true
/v1/equipment/{equipment-id}/activate:
parameters:
- schema:
type: string
name: equipment-id
in: path
required: true
description: Equipment ID
- $ref: '#/components/parameters/Accept-Language'
put:
summary: Activate an Equipment
operationId: put-v1-equipment-equipment-id-activate
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'409':
$ref: '#/components/responses/StateError'
'415':
$ref: '#/components/responses/Error'
x-stoplight:
id: af5z6dxvgjx9c
description: 'Activate an `Equipment`
This endpoint requires the `edit_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
type: object
properties: {}
/v1/equipment/{equipment-id}/deactivate:
parameters:
- schema:
type: string
name: equipment-id
in: path
required: true
description: Equipment ID
- $ref: '#/components/parameters/Accept-Language'
put:
summary: Deactivate an Equipment
operationId: put-v1-equipment-equipment-id-deactivate
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'409':
$ref: '#/components/responses/StateError'
'415':
$ref: '#/components/responses/Error'
x-stoplight:
id: mfzw7sn0rkveq
description: 'Deactivate an `Equipment`
This endpoint requires the `edit_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
type: object
properties: {}
/v1/equipment/{id}:
parameters:
- schema:
type: string
name: id
in: path
required: true
description: Equipment ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve a single Equipment
tags:
- Equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-equipment-id
x-stoplight:
id: i4t2xnzra6464
description: 'Deprecated in favor of "Retrieve `Equipment` by ID for a `Company`"
Retrieve an `Equipment` by ID'
deprecated: true
patch:
summary: Update an Equipment
operationId: patch-v1-equipment-id
responses:
'200':
description: OK
headers: {}
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
required:
- data
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
x-stoplight:
id: zrwuiu29hbut1
tags:
- Equipment
description: 'Update `Equipment` by ID
This endpoint required the `edit_equipment` permission'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Equipment-Update'
delete:
summary: Delete an Equipment
operationId: delete-v1-equipment-id
responses:
'204':
description: No Content
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
x-stoplight:
id: 0bvmojmgiys2o
description: 'Delete an `Equipment`
This endpoint required the `delete_equipment` permission'
tags:
- Equipment
/v1/jobs/{job-id}/additional_equipment:
parameters:
- schema:
type: string
name: job-id
in: path
required: true
description: Job Id
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Assign Equipment to a Job
operationId: post-v1-jobs-job-id-additional_equipment
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
x-stoplight:
id: ax8w576i4pazz
type: array
items:
$ref: '#/components/schemas/Equipment-Read'
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
description: 'Assign additional `Equipment` to a `Job`
This endpoint requires the `edit_job_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Job-AssignAdditionalEquipment'
x-stoplight:
id: x3mtqqavqzj00
x-internal: true
/v1/jobs/{job-id}/equipment:
parameters:
- schema:
type: string
name: job-id
in: path
required: true
description: Job Id
- $ref: '#/components/parameters/Accept-Language'
post:
summary: Assign Equipment to a Job
operationId: post-v1-jobs-job-id-equipment-assign
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Equipment-Read'
'400':
$ref: '#/components/responses/Error'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'415':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
description: 'Assign `Equipment` to a `Job`
This endpoint requires the `edit_job_equipment` permission'
tags:
- Equipment
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/Job-AssignEquipment'
x-stoplight:
id: ice4dlmyxxef7
x-internal: true
components:
responses:
ModelError:
description: ''
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/ModelError-Response'
Error:
description: Error response
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/Error-Response'
UnauthenticatedError:
description: Example response
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/UnauthenticatedError-Response'
StateError:
description: Example response
content:
application/json:
schema:
type: object
$ref: '#/components/schemas/StateError-Response'
schemas:
CompanyShare-Read-Nested:
title: CompanyShare-Read-Nested
x-stoplight:
id: makajouqsb7jq
allOf:
- $ref: '#/components/schemas/Identifier'
- type: object
x-stoplight:
id: s6h0nfzt2fjry
required:
- external_id
- ticket_match_id
- sender_company
- dispatchable
- schedule_on
- rate_override
- expires_at
properties:
external_id:
type: string
x-stoplight:
id: c9ls3nrhbih3v
nullable: true
ticket_match_id:
type: string
x-stoplight:
id: a1cd3nrhbih3v
nullable: true
sender_company:
$ref: '#/components/schemas/Company-Read-Nested'
dispatchable:
type: boolean
x-stoplight:
id: kd884ihz6qi6w
schedule_on:
type: boolean
x-stoplight:
id: kd884ihz61234
rate_override:
type: boolean
x-stoplight:
id: mq4osazzielxo
expires_at:
type: string
x-stoplight:
id: aaa111jpq0ga9
format: date-time
description: ISO8601 timestamp with local timezone
nullable: true
EquipmentState:
title: EquipmentState
x-stoplight:
id: eh1fgavft82kx
enum:
- active
- inactive
default: active
example: active
StateError-Response:
title: StateError-Response
x-stoplight:
id: i0wsk2gmnaqup
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/StateError'
additionalProperties: false
Error-Response:
title: Error-Response
x-stoplight:
id: 52cydhphee3qe
type: object
required:
- error
properties:
error:
$ref: '#/components/schemas/Error'
additionalProperties: false
GeofenceType:
title: GeofenceType
x-stoplight:
id: geahowr9r8ly1
nullable: true
enum:
- moving
- circle
- polygon
readOnly: true
NextBillionGeofence-Read:
title: NextBillionGeofence-Read
x-stoplight:
id: 60y0z4bb3pu6m
allOf:
- $ref: '#/components/schemas/Identifier'
- $ref: '#/components/schemas/Geofence-Data'
TreadId:
title: TreadId
x-stoplight:
id: 43k4t5tl359m4
type: object
required:
- tread_id
properties:
tread_id:
type: string
x-stoplight:
id: zi3ld7djflw6f
pattern: ^[0-9A-F]{6}$
minLength: 6
maxLength: 6
example: ABC123
description: Tread ID
additionalProperties: false
Label-Read-Nested:
title: Label-Read-Nested
x-stoplight:
id: lbl1readnest01
allOf:
- $ref: '#
# --- truncated at 32 KB (53 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treadio/refs/heads/main/openapi/treadio-equipment-api-openapi.yml