tread.io Sites API
The Sites API from tread.io — 28 operation(s) for sites.
The Sites API from tread.io — 28 operation(s) for sites.
openapi: 3.0.3
info:
title: Horizon API V1 AccountExternalTruckIdentifier Sites 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: Sites
paths:
/v1/companies/{company-id}/orders/{order-id}/default_sites/{waypoint-type}:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
format: uuid
name: order-id
in: path
required: true
description: Order ID
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve default sites for an order, given a waypoint type.
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/Site-Read-Nested'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-orders-order-id-default-sites
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
description: 'Retrieve the `Sites` that belong to the default list of an `Order`, given a particular ''WaypointType''.
'
x-internal: true
x-stoplight:
id: ol22e12bbdlir
/v1/companies/{company-id}/orders/{order-id}/default_sites/{waypoint-type}/{site-id}:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
format: uuid
name: order-id
in: path
required: true
description: Order ID
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- schema:
type: string
format: uuid
name: site-id
in: path
required: true
description: Site ID
- $ref: '#/components/parameters/Accept-Language'
put:
summary: Add a site to default site list on order
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Site-Read-Nested'
'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'
'422':
$ref: '#/components/responses/ModelError'
operationId: put-v1-companies-company-id-orders-order-id-default_sites-waypoint-type-site-id
x-stoplight:
id: 3dklcp6i2iauu
description: "Add a `Site` to the default_site list for an `Order`, given a particular 'WaypointType'.\n\nNote: The underlying site grouping will be created automatically when the first \nsite is added for a given order. "
x-internal: true
delete:
summary: Delete a single site from a default list of an order.
tags:
- Sites
responses:
'204':
description: Shared Response
'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'
operationId: delete-v1-companies-company-id-orders-order-id-default_sites-waypoint-type-site-id
x-stoplight:
id: 4ge4go0471034
description: Delete a `Site` to the default_site list for an `Order`, given a particular 'WaypointType'.
x-internal: true
/v1/companies/{company-id}/orders/{order-id}/sites/typeahead:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
format: uuid
name: order-id
in: path
required: true
description: Order ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on Sites that belong to Order's Company
tags:
- Sites
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:
type: array
x-stoplight:
id: kiktkjftpqqlc
items:
$ref: '#/components/schemas/Site-Read-Typeahead'
'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-orders-order-id-sites-typeahead
x-stoplight:
id: mi17lfpvzrzfk
description: Typeahead search against the `name`, or `external_id` property for `Sites` that belong to the `Order`'s `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-states'
/v1/companies/{company-id}/sites:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve Sites that belong to a Company
tags:
- Sites
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
items:
$ref: '#/components/schemas/Site-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-sites
x-stoplight:
id: 9awynfd74xo81
description: Retrieve `Sites` for a `Company`.
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/filter-department_ids'
- $ref: '#/components/parameters/filter-site_types'
- $ref: '#/components/parameters/filter-shared'
- $ref: '#/components/parameters/filter-sender_company_ids'
/v1/companies/{company-id}/sites/dispatch:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- name: Accept-Language
in: header
schema:
type: string
default: en
example: en
description: 'The Accept-Language request HTTP header indicates the natural language and locale that the client prefers. '
get:
summary: Retrieve Sites based on the current Dispatch results for a Company
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/Site-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-sites-dispatch-index
description: Returns `Sites`, but instead of all `Sites` for a `Company` this returns all `Sites` that are associated to the dispatch list, where the dispatch list is defined by the `filter` and `search` inputs that belong to a `Company`.
parameters:
- $ref: '#/components/parameters/filter-dispatch_number_ids'
- $ref: '#/components/parameters/filter-job-company_ids'
- $ref: '#/components/parameters/filter-job-customer_account_ids'
- $ref: '#/components/parameters/filter-job-driver_ids'
- $ref: '#/components/parameters/filter-job-dropoff_site_ids'
- $ref: '#/components/parameters/filter-job-end_date'
- $ref: '#/components/parameters/filter-job-equipment_ids'
- $ref: '#/components/parameters/filter-job-external_ids'
- $ref: '#/components/parameters/filter-job-material_ids'
- $ref: '#/components/parameters/filter-job-pickup_site_ids'
- $ref: '#/components/parameters/filter-job-project_ids'
- $ref: '#/components/parameters/filter-job-service_ids'
- $ref: '#/components/parameters/filter-job-site_types'
- $ref: '#/components/parameters/filter-job-start_date'
- $ref: '#/components/parameters/filter-job-states'
- $ref: '#/components/parameters/filter-job-vendor_account_ids'
- $ref: '#/components/parameters/search-job-datagrid'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/facet-search-query'
- $ref: '#/components/parameters/facet-filter-waypoint-type'
x-stoplight:
id: 4sw2sqdp0ofig
/v1/companies/{company-id}/sites/dispatch/typeahead:
parameters:
- schema:
type: string
format: uuid
name: company-id
in: path
required: true
description: Company ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve Sites based on the current Dispatch results for a Company
tags:
- Sites
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:
type: array
x-stoplight:
id: 8y3ie0nhvchzr
items:
$ref: '#/components/schemas/Site-Read-Typeahead'
'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-sites-dispatch-typeahead
x-stoplight:
id: ln1vlnl01hf87
description: Returns `Sites` in a typeahead style but instead of all `Sites` for a `Company` this returns all `Sites` that are associated to the dispatch list, where the dispatch list is defined by the `filter` and `search` inputs that belong to a `Company`.
parameters:
- $ref: '#/components/parameters/filter-dispatch_number_ids'
- $ref: '#/components/parameters/filter-job-company_ids'
- $ref: '#/components/parameters/filter-job-customer_account_ids'
- $ref: '#/components/parameters/filter-job-driver_ids'
- $ref: '#/components/parameters/filter-job-dropoff_site_ids'
- $ref: '#/components/parameters/filter-job-end_date'
- $ref: '#/components/parameters/filter-job-equipment_ids'
- $ref: '#/components/parameters/filter-job-external_ids'
- $ref: '#/components/parameters/filter-job-material_ids'
- $ref: '#/components/parameters/filter-job-pickup_site_ids'
- $ref: '#/components/parameters/filter-job-project_ids'
- $ref: '#/components/parameters/filter-job-service_ids'
- $ref: '#/components/parameters/filter-job-site_types'
- $ref: '#/components/parameters/filter-job-start_date'
- $ref: '#/components/parameters/filter-job-states'
- $ref: '#/components/parameters/filter-job-vendor_account_ids'
- $ref: '#/components/parameters/search-job-datagrid'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/facet-search-query'
- $ref: '#/components/parameters/facet-filter-waypoint-type'
/v1/companies/{company-id}/sites/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 Sites for a Company
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/Site-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'
'422':
$ref: '#/components/responses/ModelError'
operationId: get-v1-companies-company-id-site-typeahead
description: Typeahead search against the `name`, or `external_id` property on `Sites` 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-states'
- $ref: '#/components/parameters/filter-site_types'
x-stoplight:
id: xbth42mtawc3k
x-internal: true
/v1/companies/{company-id}/sites/{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: Site ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve a single Site for a Company
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/Site-Read'
required:
- data
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-sites-id
description: Retrieve a `Site` by ID for a `Company`
/v1/companies/{company-id}/sites/{site-id}/additional_geofences:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
name: site-id
in: path
required: true
description: Site ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve additional geofences for a Site
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/NextBillionGeofence-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-sites-site_id-additional_geofences
description: Retrieve additional `geofences` for a `Site` by `site_id`
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
/v1/companies/{company-id}/sites/{site-id}/contacts:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
name: site-id
in: path
required: true
description: Site ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve Contacts for a Site within a Company
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/Contact-Read-Nested'
'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-sites-site-id-contacts
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
description: Retrieve all `Contacts` for a `Site` within a specific `Company`. This endpoint includes explicit company-level authorization to ensure the site belongs to the specified company.
/v1/companies/{company-id}/sites/{site-id}/stats:
parameters:
- schema:
type: string
name: company-id
in: path
required: true
description: Company ID
- schema:
type: string
name: site-id
in: path
required: true
description: Site ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve SiteEquipmentStats for given Site
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/SiteEquipmentStats-Read'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-companies-company-id-site-id-stats
x-stoplight:
id: qh30wcbj1agpo
description: Retrieve `SiteEquipmentStats` for given `Site` by `ID`.
/v1/orders/{order-id}/default_sites/{waypoint-type}:
parameters:
- schema:
type: string
name: order-id
in: path
required: true
description: Order ID
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve default sites for an order, given a waypoint type.
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/Site-Read-Nested'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-orders-order-id-default-sites
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
description: 'Retrieve the `Sites` that belong to the default list of an `Order`, given a particular ''WaypointType''.
'
x-internal: true
x-stoplight:
id: wguhj02d3b7rh
deprecated: true
/v1/orders/{order-id}/default_sites/{waypoint-type}/{site-id}:
parameters:
- schema:
type: string
name: order-id
in: path
required: true
description: Order id
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- schema:
type: string
name: site-id
in: path
required: true
description: Site id
- $ref: '#/components/parameters/Accept-Language'
put:
summary: Add a site to default site list on order
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Site-Read-Nested'
'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'
'422':
$ref: '#/components/responses/ModelError'
operationId: put-v1-orders-order-id-default_sites-waypoint-type-site-id
x-stoplight:
id: bgblx8ozfx49v
description: "Add a `Site` to the default_site list for an `Order`, given a particular 'WaypointType'.\n\nNote: The underlying site grouping will be created automatically when the first \nsite is added for a given order. "
x-internal: true
deprecated: true
delete:
summary: Delete a single site from a default list of an order.
tags:
- Sites
responses:
'204':
description: Shared Response
'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'
operationId: delete-v1-orders-order-id-default_sites-waypoint-type-site-id
x-stoplight:
id: 0xv7jo7tt2k44
description: Delete a `Site` to the default_site list for an `Order`, given a particular 'WaypointType'.
x-internal: true
deprecated: true
/v1/orders/{order-id}/sites/typeahead:
parameters:
- schema:
type: string
name: order-id
in: path
required: true
description: Order ID
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Typeahead search on Sites that belong to Order's Company
tags:
- Sites
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:
type: array
x-stoplight:
id: kiktkjftpqqlc
items:
$ref: '#/components/schemas/Site-Read-Typeahead'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
'422':
$ref: '#/components/responses/ModelError'
operationId: get-v1-orders-order-id-sites-typeahead
x-stoplight:
id: g8ff3h891sb9p
description: Typeahead search against the `name`, or `external_id` property for `Sites` that belong to the `Order`'s `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-states'
deprecated: true
/v1/projects/{project-id}/default_sites/{waypoint-type}:
parameters:
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- schema:
type: string
name: project-id
in: path
required: true
description: Project Id
- $ref: '#/components/parameters/Accept-Language'
get:
summary: Retrieve default sites for a project, given a waypoint type.
tags:
- Sites
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:
type: array
items:
$ref: '#/components/schemas/Site-Read-Nested'
'401':
$ref: '#/components/responses/UnauthenticatedError'
'403':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
'406':
$ref: '#/components/responses/Error'
operationId: get-v1-projects-project-id-default-sites
parameters:
- $ref: '#/components/parameters/page-limit'
- $ref: '#/components/parameters/page-after'
- $ref: '#/components/parameters/page-before'
description: 'Retrieve the `Sites` that belong to the default list of an `Project`, given a particular ''WaypointType''.
'
x-stoplight:
id: x9tdnf2b680k9
x-internal: true
/v1/projects/{project-id}/default_sites/{waypoint-type}/{site-id}:
parameters:
- schema:
type: string
enum:
- pickup
- drop_off
name: waypoint-type
in: path
required: true
description: Waypoint type
- schema:
type: string
name: site-id
in: path
required: true
description: Site id
- schema:
type: string
name: project-id
in: path
required: true
description: Project id
- $ref: '#/components/parameters/Accept-Language'
put:
summary: Add a site to default site list on order
tags:
- Sites
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
required:
- data
properties:
data:
$ref: '#/components/schemas/Site-Read-Nested'
'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'
'422':
$ref: '#/components/responses/ModelError'
operationId: put-v1-projects-project-id-default_sites-waypoint-type-site-id
description: "Add a `Site` to the default_site list for an `Project`, given a particular 'WaypointType'.\n\nNote: The underlying site grouping will be created automatically when the first \nsite is added for a given project. "
x-internal: true
x-stoplight:
id: ucjvqgmfu1q80
delete:
summary: Delete a single site from a default list of an order.
tags:
- Sites
responses:
'204':
description: Shared Response
'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'
operationId: delete-v1-projects-project-id-default_sites-waypoint-type-site-id
description: Delete a `Site` to the default_site list for an `Order`, given a particular 'WaypointType'.
x-internal: true
x-stoplight:
id: kpx387ps3xdlg
/v1/sites:
# --- truncated at 32 KB (94 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treadio/refs/heads/main/openapi/treadio-sites-api-openapi.yml