tread.io Orders API

The Orders API from tread.io — 47 operation(s) for orders.

OpenAPI Specification

treadio-orders-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Horizon API V1 AccountExternalTruckIdentifier Orders 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: Orders
paths:
  /v1/companies/{company-id}/orders:
    parameters:
    - schema:
        type: string
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create an Order for a Company
      operationId: post-v1-companies-company-id-orders
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-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: jysplq1m6rd9f
      description: 'Create a new `Order`


        This endpoint requires the `create_order` permission'
      tags:
      - Orders
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order-Create'
    get:
      summary: Retrieve Orders that belong to a Company
      tags:
      - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: 8yf3sh1kx0p9d
                    items:
                      $ref: '#/components/schemas/Order-Read'
                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-orders
      x-stoplight:
        id: wyc94gcrgdvqo
      description: "Retrieve `Orders` for a `Company`.\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `company_name`\n * `account_name`\n * `project_name`\n * `order_id`\n * `project_external_id`\n * `dispatch_number`"
      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-states'
      - $ref: '#/components/parameters/filter-start_date'
      - $ref: '#/components/parameters/filter-end_date'
      - $ref: '#/components/parameters/filter-requester_ids'
      - $ref: '#/components/parameters/filter-foreman_ids'
      - $ref: '#/components/parameters/filter-collaborator_ids'
      - $ref: '#/components/parameters/filter-salesperson_ids'
      - $ref: '#/components/parameters/filter-department_ids'
  /v1/companies/{company-id}/orders/dispatch:
    parameters:
    - schema:
        type: string
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Orders based on Jobs that belong to a Company
      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: bcs7kxutifk8q
                    items:
                      $ref: '#/components/schemas/Order-Read'
        '400':
          $ref: '#/components/responses/Error'
        '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-dispatch
      x-stoplight:
        id: gvvtg8qn1vi61
      description: "Retrieve `Orders` based on `Jobs` grouped by `Orders` that belong to `Company`\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `company_name`\n * `account_name`\n * `project_name`\n * `order_id`\n * `project_external_id`"
      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-job-states'
      - $ref: '#/components/parameters/filter-job-start_date'
      - $ref: '#/components/parameters/filter-job-end_date'
      - $ref: '#/components/parameters/filter-job-customer_account_ids'
      - $ref: '#/components/parameters/filter-job-vendor_account_ids'
      - $ref: '#/components/parameters/filter-job-driver_ids'
      - $ref: '#/components/parameters/filter-job-pickup_site_ids'
      - $ref: '#/components/parameters/filter-job-dropoff_site_ids'
      - $ref: '#/components/parameters/filter-job-equipment_ids'
      - $ref: '#/components/parameters/filter-job-material_ids'
      - $ref: '#/components/parameters/filter-job-project_ids'
      - $ref: '#/components/parameters/filter-job-service_ids'
      - $ref: '#/components/parameters/filter-equipment_type_ids'
      - $ref: '#/components/parameters/filter-states'
      - $ref: '#/components/parameters/search-job-datagrid'
      - $ref: '#/components/parameters/filter-job-company_ids'
      - $ref: '#/components/parameters/filter-dispatch_number_ids'
      - $ref: '#/components/parameters/filter-job-external_ids'
      - $ref: '#/components/parameters/filter-requester_ids'
      - $ref: '#/components/parameters/filter-job-site_types'
      - $ref: '#/components/parameters/filter-job-foreman_ids'
      - $ref: '#/components/parameters/filter-job-collaborator_ids'
      - $ref: '#/components/parameters/filter-job-salesperson_ids'
      - $ref: '#/components/parameters/filter-department_ids'
      - $ref: '#/components/parameters/filter-collaborator_ids'
      - $ref: '#/components/parameters/filter-salesperson_ids'
      - $ref: '#/components/parameters/sort-created_at'
      - $ref: '#/components/parameters/sort-load_at'
      - $ref: '#/components/parameters/sort-friendly_order_id'
      - $ref: '#/components/parameters/sort-dispatch_number-name'
      - $ref: '#/components/parameters/sort-account-name'
      - $ref: '#/components/parameters/sort-company-legal_name'
      - $ref: '#/components/parameters/filter-job-receivable_invoice-states'
      - $ref: '#/components/parameters/filter-job-payable_invoice-states'
      x-internal: true
      tags:
      - Orders
  /v1/companies/{company-id}/orders/dispatch_numbers/faceted_search:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      description: Company ID
      required: true
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Search Dispatch Numbers based on the current Dispatch results
      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/DispatchNumber-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-dispatch_numbers-faceted_search
      description: Searches `DispatchNumbers` in a typeahead style but instead of all `DispatchNumbers` for a `Company` this returns all `DispatchNumbers` 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-job-company_ids'
      - $ref: '#/components/parameters/filter-job-customer_account_ids'
      - $ref: '#/components/parameters/filter-dispatch_number_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/page-after'
      - $ref: '#/components/parameters/page-before'
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/facet-search-query'
      tags:
      - Orders
      x-internal: false
      x-stoplight:
        id: fkv07xsabff5n
  /v1/companies/{company-id}/orders/dispatch_numbers/typeahead:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      description: Company ID
      required: true
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Typeahead search on Orders' Dispatch Number by Company
      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: myglff7zr8e8u
                    items:
                      $ref: '#/components/schemas/DispatchNumber-Read-Typeahead'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-orders-dispatch_numbers-typeahead
      x-stoplight:
        id: 2pdlcom6zn9kk
      description: Typeahead search against the `dispatch_number` property on `Orders` by current `Company`.
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - $ref: '#/components/parameters/search-query'
      tags:
      - Orders
      x-internal: false
  /v1/companies/{company-id}/orders/estimate:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Generate estimated Order values
      tags:
      - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/Order-Estimate-Read'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '406':
          $ref: '#/components/responses/Error'
        '415':
          $ref: '#/components/responses/Error'
        '422':
          $ref: '#/components/responses/ModelError'
      operationId: post-v1-companies-company-id-orders-estimate
      x-stoplight:
        id: wzev5ik9bzg0b
      x-internal: true
      description: 'Generates estimated `Order` values.


        One of `total_loads`, `total_units`, or `truck_quantity` must be set in the request.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              $ref: '#/components/schemas/Order-Estimate-Create'
  /v1/companies/{company-id}/orders/invoicing:
    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 Orders based on Invoices that belong to a Company
      tags:
      - Orders
      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/Order-Read'
        '400':
          $ref: '#/components/responses/Error'
        '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-invoicing
      x-stoplight:
        id: 4bpcs42vgctto
      description: "Retrieve `Orders` based on `Invoices` grouped by `Orders` that belong to `Company`\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `company_name`\n * `account_name`\n * `project_name`\n * `order_id`\n * `project_external_id`\n\nInvoice datagrid search (`search[invoice][datagrid]`) queries against the following properties:\n * `job_id`\n * `customer_account_name`\n * `vendor_account_name`\n * `driver_name`\n * `order_id`\n * `order_external_id`\n * `order_name`\n * `project_name`\n * `project_external_id`\n * `dispatch_number_name`"
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - $ref: '#/components/parameters/search-datagrid'
      - $ref: '#/components/parameters/search-invoice-datagrid'
      - $ref: '#/components/parameters/filter-states'
      - $ref: '#/components/parameters/filter-department_ids'
      - $ref: '#/components/parameters/filter-collaborator_ids'
      - $ref: '#/components/parameters/filter-salesperson_ids'
      - $ref: '#/components/parameters/filter-requester_ids'
      - $ref: '#/components/parameters/sort-created_at'
      - $ref: '#/components/parameters/sort-friendly_order_id'
      - $ref: '#/components/parameters/sort-account-name'
      - $ref: '#/components/parameters/sort-company-legal_name'
      - $ref: '#/components/parameters/filter-invoice-start_date'
      - $ref: '#/components/parameters/filter-invoice-end_date'
      - $ref: '#/components/parameters/filter-invoice-invoice_category'
      - $ref: '#/components/parameters/filter-invoice-grouped'
      - $ref: '#/components/parameters/filter-invoice-invoiceable_type'
      - $ref: '#/components/parameters/filter-invoice-states'
      - $ref: '#/components/parameters/filter-invoice-rate_types'
      - $ref: '#/components/parameters/filter-invoice-vendor_account_ids'
      - $ref: '#/components/parameters/filter-invoice-customer_account_ids'
      - $ref: '#/components/parameters/filter-invoice-pickup_site_ids'
      - $ref: '#/components/parameters/filter-invoice-dropoff_site_ids'
      - $ref: '#/components/parameters/filter-invoice-driver_ids'
      - $ref: '#/components/parameters/filter-invoice-company_id'
      - $ref: '#/components/parameters/filter-project_ids'
      x-internal: true
  /v1/companies/{company-id}/orders/simulate_order:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Simulate an Order
      tags:
      - Orders
      responses:
        '202':
          description: Accepted
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '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: post-v1-companies-company-id-orders-simulate_order
      x-stoplight:
        id: 4mg6ghr2wll4g
      description: Simulate an `Order` being dispatched and completed
      x-internal: true
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateOrder-Create'
  /v1/companies/{company-id}/orders/typeahead:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Typeahead search on Orders by Company
      tags:
      - Orders
      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/Order-Read-Typeahead'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-orders-typeahead
      x-stoplight:
        id: ordtypahead01
      description: Typeahead search against the `order_id` property for `Orders` 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'
  /v1/companies/{company-id}/orders/{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: Order ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve a single Order for a Company
      tags:
      - Orders
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-orders-id
      x-stoplight:
        id: ewtldxjec63ur
      description: Retrieve `Order` by ID
      parameters: []
    patch:
      summary: Update an Order for a Company
      operationId: patch-v1-companies-company-id-orders-id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-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: mwmh81jx8vehs
      description: 'Update `Order` by ID


        This endpoint requires the `edit_order` permission _or_ the `edit_order_pre_accept` permission, which only allows editing if the Order is in `created`, `pending_request` or `rejected` state'
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order-Update'
      tags:
      - Orders
  /v1/companies/{company-id}/orders/{order-id}/accept:
    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'
    put:
      summary: Accept an Order for a Company
      operationId: put-v1-companies-company-id-orders-order-id-accept
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-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'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: zrwyocm1ftz2d
      tags:
      - Orders
      description: 'Accept an `Order`.


        This endpoint requires the `edit_order` `IamPermission`.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
  /v1/companies/{company-id}/orders/{order-id}/cancel:
    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'
    put:
      summary: Cancel an Order for a Company
      operationId: put-v1-companies-company-id-orders-order-id-cancel
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-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'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: z5lfi0ikmrbq4
      description: 'Cancel an `Order`.


        This endpoint requires the `edit_order` `IamPermission`.'
      tags:
      - Orders
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
  /v1/companies/{company-id}/orders/{order-id}/complete:
    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'
    put:
      summary: Complete an Order for a Company
      operationId: put-v1-companies-company-id-orders-order-id-complete
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Order-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'
        '422':
          $ref: '#/components/responses/ModelError'
      x-stoplight:
        id: eba55f66t45l7
      description: 'Complete an `Order`.


        This endpoint requires the `edit_order` `IamPermission`.'
      tags:
      - Orders
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
  /v1/companies/{company-id}/orders/{order-id}/copy:
    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'
    post:
      summary: Copy an Order
      tags:
      - Orders
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    $ref: '#/components/schemas/Order-Read'
        '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: post-v1-companies-company-id-orders-order-id-copy
      x-stoplight:
        id: 9u270vs5ed4d7
      description: 'Copy an existing `Order`.


        This endpoint required the `create_order` `IamPermission`.'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Order-Copy'
  /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:
      - Orders
      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
      descr

# --- truncated at 32 KB (196 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/treadio/refs/heads/main/openapi/treadio-orders-api-openapi.yml