tread.io Equipment API

The Equipment API from tread.io — 13 operation(s) for equipment.

Operations 20

POST /v1/companies/{company-id}/equipment Create an Equipment for a Company #
GET /v1/companies/{company-id}/equipment Retrieve Equipment that belong to a Company #
GET /v1/companies/{company-id}/equipment/typeahead Typeahead search on Equipment for a Company #
GET /v1/companies/{company-id}/equipment/{id} Retrieve Equipment by ID for a Company #
POST /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment Create Equipment for a Managed Company #
GET /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment Retrieve Equipment for a Managed Company #
GET /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/typeahead Typeahead search on Equipment for a Managed Company #
GET /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/{id} Retrieve Equipment by ID for a Managed Company #
PATCH /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/{id} Update Equipment for a Managed Company #
DELETE /v1/companies/{company-id}/managed_companies/{managed-company-id}/equipment/{id} Delete Equipment for a Managed Company #
POST /v1/equipment Create an Equipment in the current Company #
GET /v1/equipment Retrieve a list of Equipment #
GET /v1/equipment/typeahead Typeahead search on Equipment #
PUT /v1/equipment/{equipment-id}/activate Activate an Equipment #
PUT /v1/equipment/{equipment-id}/deactivate Deactivate an Equipment #
GET /v1/equipment/{id} Retrieve a single Equipment #
PATCH /v1/equipment/{id} Update an Equipment #
DELETE /v1/equipment/{id} Delete an Equipment #
POST /v1/jobs/{job-id}/additional_equipment Assign Equipment to a Job #
POST /v1/jobs/{job-id}/equipment Assign Equipment to a Job #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/treadio-equipment-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

treadio-equipment-api-openapi.yml Raw ↑
openapi: 3.2.0
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:
  schemas:
    StateError:
      title: StateError
      x-stoplight:
        id: zgcsl4t8bsn3c
      allOf:
      - $ref: '#/components/schemas/Error'
      - type: object
        x-stoplight:
          id: ntvt2atfotcge
        required:
        - errors
        properties:
          errors:
            type: array
            x-stoplight:
              id: noi1jg6o8psl7
            items:
              $ref: '#/components/schemas/StateError-Item'
    Job-AssignAdditionalEquipment:
      title: Job-AssignAdditionalEquipment
      x-stoplight:
        id: 11lrma4qj612o
      type: object
      properties:
        additional_equipment_ids:
          type: array
          minItems: 0
          items:
            type: string
            format: uuid
      x-internal: true
      additionalProperties: false
    GeofenceType:
      title: GeofenceType
      x-stoplight:
        id: geahowr9r8ly1
      enum:
      - moving
      - circle
      - polygon
      readOnly: true
    Address-Read:
      title: Address-Read
      x-stoplight:
        id: v1mcd2qgns2tf
      type: object
      required:
      - thoroughfare
      - premise
      - locality
      - administrative_area
      - postal_code
      - country
      - lat
      - lon
      - place_id
      properties:
        thoroughfare:
          type: string
          x-stoplight:
            id: 8wrr7qkc9ilqn
        premise:
          type:
          - string
          - 'null'
          x-stoplight:
            id: z4jth408out1q
        locality:
          type: string
          x-stoplight:
            id: kfby6wqpgvxbz
        administrative_area:
          type: string
          x-stoplight:
            id: c9bkrloxf4t8d
        postal_code:
          type: string
          x-stoplight:
            id: 7zq51k1mof3o3
        country:
          type: string
          x-stoplight:
            id: iydw9q619ya01
          pattern: ^[A-Z]{2}
          example: US
          minLength: 2
          maxLength: 2
        lat:
          type:
          - string
          - 'null'
          x-stoplight:
            id: kqu1qtf9rivh1
          description: "latitude of the `Address`. \n\nMust be a stringified number between -90 and 90 inclusive.\n\nRequired if `lon` is present."
        lon:
          type:
          - string
          - 'null'
          x-stoplight:
            id: oly2yabkzpk9g
          description: "longitude of the `Address`. \n\nMust be a stringified number between -180 and 180 inclusive.\n\nRequired if `lat` is present."
        place_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: im1fdq7qqxdij
          description: NextBillion placeID
      additionalProperties: false
    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
    CompanyType:
      title: CompanyType
      x-stoplight:
        id: dkzo7gjbtb1b3
      enum:
      - broker
      - contractor
      - hauler
      - owner_operator
      - producer
      - super
      example: hauler
      description: Company Type
    EquipmentType-Read-Nested:
      title: EquipmentType-Read-Nested
      x-stoplight:
        id: em46i5kysysdh
      type: object
      required:
      - id
      - name
      - system
      - external_id
      - accounting_id
      properties:
        id:
          type: string
          x-stoplight:
            id: 835oy22o6h24z
          format: uuid
        name:
          type: string
          x

# --- 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