tread.io Projects API

The Projects API from tread.io — 10 operation(s) for projects.

Operations 13

GET /v1/companies/{company-id}/projects Retrieve Projects that belong to a Company #
GET /v1/companies/{company-id}/projects/salesperson Retrieve Projects where the current User is a Salesperson #
GET /v1/companies/{company-id}/projects/typeahead Typeahead search on Projects for a Company #
POST /v1/projects Create a Project in the current Company #
GET /v1/projects Retrieve Projects that belong to the current Company #
GET /v1/projects/external_ids/typeahead Typeahead search on Projects for a Company #
GET /v1/projects/typeahead Typeahead search on Projects #
GET /v1/projects/{id} Retrieve Project #
PATCH /v1/projects/{id} Update Project #
DELETE /v1/projects/{id} Delete Project #
PUT /v1/projects/{project-id}/activate Activate a Project #
PUT /v1/projects/{project-id}/deactivate Deactivate a Project #
GET /v1/projects/{project-id}/default_sites/{waypoint-type} Retrieve default sites for a project, given a waypoint type. #

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-projects-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-projects-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Horizon API V1 AccountExternalTruckIdentifier Projects 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: Projects
paths:
  /v1/companies/{company-id}/projects:
    parameters:
    - schema:
        type: string
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Projects that belong to a Company
      tags:
      - Projects
      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/Project-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-projects
      x-stoplight:
        id: jpaq6qohyjyjo
      description: "Retrieve `Projects` for a `Company`.\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `name`\n * `po_job_number`\n * `project_id`\n * `company.legal_name`\n * `account.name`\n * `external_id`\n\n Filter usage:\n* to filter a single state: `filter[states][]=active`\n* to filter multiple states: `filter[states][]=inactive&filter[states][]=active`"
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
      - $ref: '#/components/parameters/search-datagrid'
      - schema:
          type: array
        in: query
        name: filter[states]
        description: Project state filters.
      - $ref: '#/components/parameters/filter-requester_ids'
      - $ref: '#/components/parameters/filter-external_ids'
      - $ref: '#/components/parameters/filter-account_ids'
      - $ref: '#/components/parameters/filter-department_ids'
      - $ref: '#/components/parameters/filter-dispatch_number_ids'
      - $ref: '#/components/parameters/filter-po_job_numbers'
      - $ref: '#/components/parameters/filter-service_class_ids'
      - $ref: '#/components/parameters/filter-equipment_type_ids'
      - $ref: '#/components/parameters/filter-foreman_ids'
      - $ref: '#/components/parameters/filter-collaborator_ids'
      - $ref: '#/components/parameters/filter-salesperson_ids'
      - $ref: '#/components/parameters/filter-pickup_site_ids'
      - $ref: '#/components/parameters/filter-dropoff_site_ids'
  /v1/companies/{company-id}/projects/salesperson:
    parameters:
    - schema:
        type: string
        format: uuid
      name: company-id
      in: path
      required: true
      description: Company ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Projects where the current User is a Salesperson
      tags:
      - Projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    x-stoplight:
                      id: ascxooavwuuwg
                    items:
                      $ref: '#/components/schemas/Project-Read'
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-companies-company-id-projects-salesperson
      x-stoplight:
        id: xzzypg34v7p8k
      description: Retrieve `Projects` where the current `User` is a `Salesperson`
      parameters:
      - $ref: '#/components/parameters/page-limit'
      - $ref: '#/components/parameters/page-after'
      - $ref: '#/components/parameters/page-before'
  /v1/companies/{company-id}/projects/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 Projects for a Company
      tags:
      - Projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Project-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-projects-typeahead
      description: Typeahead search against the `name` or `external_id` property on `Projects` 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-account_id'
      - $ref: '#/components/parameters/filter-states'
      - $ref: '#/components/parameters/filter-department_ids'
      x-stoplight:
        id: ovi6a7ram6mq5
      x-internal: true
  /v1/projects:
    parameters:
    - $ref: '#/components/parameters/Accept-Language'
    post:
      summary: Create a Project in the current Company
      operationId: post-v1-projects
      responses:
        '201':
          description: Created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Project-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: hzl58l811aajv
      description: 'Create a new `Project`


        This endpoint requires the `create_project` permission'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project-Create'
      tags:
      - Projects
    get:
      summary: Retrieve Projects that belong to the current Company
      operationId: get-v1-projects
      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:
                    x-stoplight:
                      id: 596sx9n2ju902
                    type: array
                    items:
                      $ref: '#/components/schemas/Project-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '406':
          $ref: '#/components/responses/Error'
      x-stoplight:
        id: h741en60ac5ld
      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-requester_ids'
      - $ref: '#/components/parameters/filter-external_ids'
      - $ref: '#/components/parameters/filter-account_ids'
      - $ref: '#/components/parameters/filter-department_ids'
      - $ref: '#/components/parameters/filter-dispatch_number_ids'
      - $ref: '#/components/parameters/filter-po_job_numbers'
      - $ref: '#/components/parameters/filter-service_class_ids'
      - $ref: '#/components/parameters/filter-equipment_type_ids'
      - $ref: '#/components/parameters/filter-foreman_ids'
      - $ref: '#/components/parameters/filter-collaborator_ids'
      - $ref: '#/components/parameters/filter-salesperson_ids'
      - $ref: '#/components/parameters/filter-pickup_site_ids'
      - $ref: '#/components/parameters/filter-dropoff_site_ids'
      tags:
      - Projects
      description: "Retrieve `Projects` for a `Company`.\n\nDatagrid search (`search[datagrid]`) queries against the following properties:\n * `name`\n * `po_job_number`\n * `project_id`\n * `company.legal_name`\n * `account.name`\n * `external_id`"
  /v1/projects/external_ids/typeahead:
    parameters:
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Typeahead search on Projects for a Company
      tags:
      - Projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                required:
                - data
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Project-Read-Typeahead-External-Id'
          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-projects-external_ids-typeahead
      description: Typeahead search against the `external_id` property all `Projects` that belong to current `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-account_id'
      - $ref: '#/components/parameters/filter-states'
      x-stoplight:
        id: g3c7a95tje9xx
      x-internal: true
  /v1/projects/typeahead:
    parameters:
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Typeahead search on Projects
      tags:
      - Projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/Project-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-projects-typeahead
      description: 'Typeahead search against the `name` or `external_id` property for `Projects` 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-account_id'
      - $ref: '#/components/parameters/filter-states'
      - $ref: '#/components/parameters/filter-department_ids'
      x-stoplight:
        id: 2bo13xsu452qn
  /v1/projects/{id}:
    parameters:
    - schema:
        type: string
      name: id
      in: path
      required: true
      description: Project ID
    - $ref: '#/components/parameters/Accept-Language'
    get:
      summary: Retrieve Project
      tags:
      - Projects
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Project-Read'
                required:
                - data
        '401':
          $ref: '#/components/responses/UnauthenticatedError'
        '404':
          $ref: '#/components/responses/Error'
        '406':
          $ref: '#/components/responses/Error'
      operationId: get-v1-projects-id
      x-stoplight:
        id: uwa6vxp0zgx1s
      description: Retrieve `Project` by ID
    patch:
      summary: Update Project
      operationId: patch-v1-projects-id
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Project-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: 05suyjgrih7ay
      tags:
      - Projects
      description: 'Update `Project` by ID


        This endpoint requires the `edit_project` permission'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Project-Update'
    delete:
      summary: Delete Project
      operationId: delete-v1-projects-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: huc6v88eeafj8
      description: 'Delete `Project` by ID


        This endpoint requires the `delete_project` permission'
      tags:
      - Projects
  /v1/projects/{project-id}/activate:
    parameters:
    - schema:
        type: string
      name: project-id
      in: path
      required: true
      description: Project ID
    - $ref: '#/components/parameters/Accept-Language'
    put:
      summary: Activate a Project
      operationId: put-v1-projects-project-id-activate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Project-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: 9pbv98fgjhk0o
      tags:
      - Projects
      description: 'Activate a `Project`


        This endpoint requires the `edit_project` permission'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
  /v1/projects/{project-id}/deactivate:
    parameters:
    - schema:
        type: string
      name: project-id
      in: path
      required: true
      description: Project ID
    - $ref: '#/components/parameters/Accept-Language'
    put:
      summary: Deactivate a Project
      operationId: put-v1-projects-project-id-deactivate
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/Project-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: ylrh322g74akl
      tags:
      - Projects
      description: 'Deactivate a `Project`


        This endpoint requires the `edit_project` permission'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties: {}
  /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:
      - Projects
      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
components:
  schemas:
    Foreman-Read-Nested:
      title: Foreman-Read-Nested
      x-stoplight:
        id: f9iqzaesw4aij
      allOf:
      - $ref: '#/components/schemas/Foreman-Read-Typeahead'
      - type: object
        x-stoplight:
          id: m5idk3cd24zti
        required:
        - email
        - company
        properties:
          email:
            type:
            - string
            - 'null'
            x-stoplight:
              id: ft77ezeftemb1
          company:
            $ref: '#/components/schemas/Company-Read-Nested'
      - $ref: '#/components/schemas/Discardable'
    DispatchNumber-Read-Nested:
      title: DispatchNumber-Read-Nested
      x-stoplight:
        id: 5oe6kw6t82gnr
      allOf:
      - $ref: '#/components/schemas/Identifier'
      - type: object
        required:
        - name
        properties:
          name:
            type: string
    Contact-Update:
      title: Contact-Update
      x-stoplight:
        id: p2ny8u55sfpcx
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: wm2na5bv2uvvv
        email:
          x-stoplight:
            id: mdv25imtbstfh
          type: string
        phone:
          type: string
          x-stoplight:
            id: rtf4rqlgwt35i
          example: '+18885551234'
      additionalProperties: false
    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-stoplight:
            id: tnszefd7lypln
        system:
          type: boolean
          x-stoplight:
            id: vimoqz5e8x6gx
        external_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: ttaijg77qmbgk
        accounting_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: s4rscgptv68x3
      additionalProperties: false
    RateCommission-Read-Nested:
      title: RateCommission-Read-Nested
      x-stoplight:
        id: rfosxiu0rajbx
      allOf:
      - $ref: '#/components/schemas/Identifier'
      - type: object
        required:
        - name
        - type
        - commission_percentage
        properties:
          name:
            type: string
            x-stoplight:
              id: uquhf0pc3ydpf
          type:
            $ref: '#/components/schemas/RateType'
          commission_percentage:
            type: number
            x-stoplight:
              id: 44e2kldfzbxdj
    Destroyable:
      title: Destroyable
      x-stoplight:
        id: 2uftzhptd2l14
      type: object
      properties:
        id:
          type: string
          x-stoplight:
            id: gx1ww996hmzqm
          format: uuid
          description: Required if `_destroy` is set
        _destroy:
          type: integer
          x-stoplight:
            id: 0xjwztkz4fmcr
          description: 'If this is provided with value of `1` like so `_destroy: 1` then this model will be deleted. The `id` must be set.'
      additionalProperties: false
    DispatchNumber-Update:
      title: DispatchNumber-Update
      x-stoplight:
        id: pnc0w6nqmqx3m
      type: object
      properties:
        name:
          type: string
          x-stoplight:
            id: dgxr5h012k8lx
        _destroy:
          type: integer
          x-stoplight:
            id: pkzppi16wvdz9
      additionalProperties: false
    Address-Create:
      title: Address-Create
      x-stoplight:
        id: 9wmd46rzgjxh7
      type: object
      required:
      - thoroughfare
      - locality
      - administrative_area
      - postal_code
      - country
      properties:
        thoroughfare:
          type: string
          x-stoplight:
            id: zkh46rwwvpuca
          description: Street address
          example: 123 Fake St.
        premise:
          type: string
          x-stoplight:
            id: bkcia8yh59wzf
          description: Apartment, Suite, Box number, etc.
          example: 3rd Floor
        locality:
          type: string
          x-stoplight:
            id: e40nnuxgub7ug
          description: City / Town
          example: New York
        administrative_area:
          type: string
          x-stoplight:
            id: 2bfqcapyozkpp
          description: State / Province / Region (ISO code when available)
          example: NY
        postal_code:
          type: string
          x-stoplight:
            id: a9m9rbcbsa635
          description: Postal code / ZIP Code
          example: '10011'
        country:
          type: string
          x-stoplight:
            id: gud5s8ypb8oam
          minLength: 2
          maxLength: 2
          pattern: ^[A-Z]{2}
          example: US
          description: 2 character country ISO code
        lat:
          type: string
          x-stoplight:
            id: nwg5be93gvmkd
          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
          x-stoplight:
            id: rcvsjw8cbs4hs
          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
          x-stoplight:
            id: xtuyrwo0rqzkh
          description: NextBillion placeID
      additionalProperties: false
    AccountType:
      title: AccountType
      x-stoplight:
        id: i4vfmd4rwrq8p
      enum:
      - customer
      - vendor
      example: customer
    ModelError-Response:
      title: ModelError-Response
      x-stoplight:
        id: payf9ndh3l6np
      type: object
      required:
      - error
      properties:
        error:
          $ref: '#/components/schemas/ModelError'
      additionalProperties: false
    Geofence-Data:
      title: Geofence-Data
      x-stoplight:
        id: ay73k76oae8gm
      type: object
      properties:
        id:
          type: string
          format: uuid
          x-stoplight:
            id: m9n8p7q6r5s4t
          description: NextBillionGeofence ID
        geofence:
          type: object
          x-stoplight:
            id: bo67u046r1ibk
          required:
          - name
          - type
          properties:
            id:
              type: string
              x-stoplight:
                id: nm2o97jli2zqm
              format: uuid
              description: NextBillion Geofence ID
            name:
              type: string
              x-stoplight:
                id: x5sp8wq8d2ack
            type:
              type: string
              x-stoplight:
                id: d91rv1gbtfkm0
              description: '`circle` or `polygon`'
            geojson:
              type: object
              x-stoplight:
                id: vk7dx7ipdbuxa
              required:
              - type
              - coordinates
              properties:
                type:
                  type: string
                  x-stoplight:
                    id: 65qatpxdox3e9
                  description: type should be `Polygon`
                coordinates:
                  type: array
                  x-stoplight:
                    id: 3an8g587wblcs
                  description: 'This should be an enclosed polygon.


                    Example format:

                    [[[-118.226140484,34.048200454],[-118.22616052,34.046872766],[-118.226198738,34.04952736],[-118.226140484,34.048200454]]]'
                  items:
                    x-stoplight:
                      id: 2kltvjxl5xks6
                    type: array
                    items:
                      x-stoplight:
                        id: k93dt39dghru4
                      type: array
                      items: {}
            circle_center:
              type: object
              x-stoplight:
                id: 6xr3h683f7cl9
              required:
              - lat
              - lon
              properties:
                lat:
                  type: number
                  x-stoplight:
                    id: y70xc1ptapv1g
                lon:
                  type: number
                  x-stoplight:
                    id: uy3twrpcueq9m
            circle_radius:
              type: number
              x-stoplight:
                id: qrnq301sqfl3d
            tag:
              x-stoplight:
                id: debfy3x1l48zc
              enum:
              - pickup
              - loading
              - drop_off
              - unloading
              - check_in
              - scaling
              - ticketing
              deprecated: true
        moving_geofence:
          type: boolean
          x-stoplight:
            id: y15533dbr62js
          default: false
        tag:
          $ref: '#/components/schemas/GeofenceTag'
        geofence_type:
          $ref: '#/components/schemas/NullableGeofenceType'
      additionalProperties: false
    Phase-Read:
      title: Phase-Read
      x-stoplight:
        id: t87rtwp61n8ry
      allOf:
      - $ref: '#/components/schemas/Identifier'
      - type: object
        required:
        - name
        - code
        - primary
        properties:
          name:
            type: string
            x-stoplight:
              id: joxj6kldpdok8
          code:
            type:
            - string
            - 'null'
            x-stoplight:
              id: mtoxuvguckczq
          primary:
            type: boolean
            x-stoplight:
              id: ww6q56py1x5wq
      - $ref: '#/components/schemas/Timestamps'
    NullableRateType:
      title: NullableRateType
      x-stoplight:
        id: rajiobym5ovlp
      allOf:
      - $ref: '#/components/schemas/RateType'
      type:
      - string
      - 'null'
    Account-Create:
      title: Account-Create
      x-stoplight:
        id: gxkg5vrqlzq89
      type: object
      required:
      - name
      - account_types
      - auto_accept_orders
      properties:
        name:
          type: string
          x-stoplight:
            id: 5298s0s0peapc
          description: Account name
        department:
          type:
          - string
          - 'null'
          x-stoplight:
            id: jcmgf3qz70e9w
          description: Department
          deprecated: true
        department_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: ewd9im004flot
          format: uuid
          description: 'The ID of the associated **Department**.


            This should be used instead of `department`.'
        primary_contact:
          $ref: '#/components/schemas/Contact-Create'
        billing_contact:
          $ref: '#/components/schemas/Contact-Create'
        address:
          $ref: '#/components/schemas/Address-Create'
        billing_address:
          $ref: '#/components/schemas/Address-Create'
        notes:
          type:
          - string
          - 'null'
          x-stoplight:
            id: cekepr6fg19fx
          description: Notes
        account_types:
          type: array
          x-stoplight:
            id: fz4g38ct2r9l3
          description: Account type allowing for multiple values
          items:
            $ref: '#/components/schemas/AccountType'
        external_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: ck449dcgiige8
          description: Identifier used to associate an account to any external system
        accounting_id:
          type:
          - string
          - 'null'
          x-stoplight:
            id: ck459dchijge8
          description: The accounting ID of the Account mapping to any accounting system
        company_id:
          type: string
          x-stoplight:
            id: x9ow3nfelos0a
          format: uuid
        truck_count:
          type:
          - integer
          - 'null'
          x-stoplight:
            id: qzekegh1h2ztd
          description: The allowable number of trucks that is dispatchable to the customer of this account.
       

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