> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cargado.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Sync a load

> Sync a load from your TMS to Cargado, creating or updating any load details
and status.



## OpenAPI

````yaml /openapi.yml post /loads/sync
openapi: 3.1.0
info:
  title: Cargado API
  version: 1.0.0
  description: Cargado's API
  termsOfService: https://cargado.com/terms/
  contact:
    email: dev-support@cargado.com
servers:
  - url: https://api.cargado.com
    description: The production Cargado API server
security: []
tags:
  - name: Border Crossings
  - name: Loads
  - name: Rates
  - name: CarrierRelationship
  - name: User
  - name: Team
  - name: Webhooks
  - name: Bids
paths:
  /loads/sync:
    post:
      tags:
        - Loads
      summary: Sync a load
      description: >-
        Sync a load from your TMS to Cargado, creating or updating any load
        details

        and status.
      operationId: SyncALoad
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LoadsSyncInput'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LoadsSyncOutput'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                required:
                  - message
                type: object
              examples:
                Example 1:
                  value:
                    message: Unauthorized
      security:
        - apiKey: []
components:
  schemas:
    LoadsSyncInput:
      description: Input interface for synchronizing load data.
      properties:
        load:
          $ref: '#/components/schemas/LoadInput'
      required:
        - load
      type: object
      additionalProperties: true
    LoadsSyncOutput:
      description: Output interface for synchronizing load data.
      properties:
        load:
          $ref: '#/components/schemas/Load'
      required:
        - load
      type: object
      additionalProperties: true
    LoadInput:
      description: Input interface for synchronizing load data.
      properties:
        externalId:
          type: string
          description: >-
            The unique ID for the load in your TMS. This identifier will not be
            displayed outside your organization.

            Examples: "456293", "TMS232423"
          minLength: 1
          maxLength: 255
          examples:
            - '456293'
        externalCustomerId:
          type: string
          description: >-
            The unique ID of your customer in your TMS. This will not be
            displayed outside your organization.

            This should not change for the lifetime of the load.

            Examples: "ACMECORP", "ASHIPPERCO"
          minLength: 1
          maxLength: 255
          examples:
            - ACMECORP
        externalDisplayId:
          type:
            - string
            - 'null'
          description: >-
            A customizable display ID for the load. This field allows
            organizations to configure how their load IDs

            are displayed in Cargado. If not provided, the externalId will be
            used as the display ID.

            Examples: "ORD-2024-001", "SHIP-456293", "LOAD-TMS232423"
          minLength: 1
          maxLength: 255
          examples:
            - ORD-2024-001
        externalWorkspaceId:
          type:
            - string
            - 'null'
          description: >-
            The ID used to map your freight to team/user workspaces in Cargado.
            If not

            provided, the freight will be created in your organization's default
            workspace.
        status:
          $ref: '#/components/schemas/LoadStatus'
          description: The status of the load.
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
          description: Reference numbers associated with the load.
        commodities:
          items:
            $ref: '#/components/schemas/LoadCommodityInput'
          type: array
          description: >-
            The commodities for the load.

            Usually required, but can be omitted for power only loads that are
            load-out or tow-away.
          minItems: 0
          maxItems: 128
        trailerRequirements:
          $ref: '#/components/schemas/TrailerRequirements'
          description: The trailer requirements for the load.
        requiredEquipment:
          items:
            $ref: '#/components/schemas/RequiredEquipment'
          type:
            - array
            - 'null'
          description: A list of standalone equipment required for the load.
        carrierRequirements:
          $ref: '#/components/schemas/CarrierRequirements'
          description: The requirements for the carrier.
        driverRequirements:
          $ref: '#/components/schemas/DriverRequirements'
          description: The requirements for the driver.
        metadata:
          allOf:
            - $ref: '#/components/schemas/Metadata'
          nullable: true
          description: >-
            Set of key-value pairs (string or number values) to attach to the
            load.

            A provided object replaces the stored metadata wholesale; omit the
            field

            to leave existing metadata unchanged.
          examples:
            - tmsOrderId: '1314234'
              customerName: Acme Corp
              weight: 4200
        truckload:
          allOf:
            - $ref: '#/components/schemas/Truckload'
          nullable: true
          description: Whether the load is full truckload or partial truckload.
        roundTrip:
          type:
            - boolean
            - 'null'
          description: Whether the load is a round trip.
        linearFeet:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Linear feet is the amount of floor space cargo occupies in a
            trailer. This is primarily

            relevant for partial truckload shipments. If not provided for
            partial loads, it will be

            automatically calculated based on commodity dimensions.
        maxBuy:
          allOf:
            - $ref: '#/components/schemas/CurrencyValue'
          nullable: true
          description: >-
            The maximum buy amount for the load. Typically used to inform team
            members of what rate

            they can cover the freight at without manager approval. This value
            is not used directly,

            but can be referenced when setting up posting rules.
        targetRate:
          allOf:
            - $ref: '#/components/schemas/CurrencyValue'
          nullable: true
          description: >-
            The target rate for the load. Typically used to inform team members
            of what rate they should

            target when covering freight. This value is not used directly, but
            can be referenced when

            setting up posting rules.
        externalOwnerCoverageUserId:
          type:
            - string
            - 'null'
          description: >-
            The external ID of the user responsible for coverage of this load in
            your TMS.

            This should match the `externalId` set on a user via the user sync
            endpoint.

            Used to automatically assign coverage when the load is posted.
          maxLength: 255
          examples:
            - user_12345
        externalOwnerCoverageTeamId:
          type:
            - string
            - 'null'
          description: >-
            The external ID of the team responsible for coverage of this load in
            your TMS.

            This should match the `externalId` set on a team via the team sync
            endpoint.

            Used to automatically assign coverage when the load is posted.
          maxLength: 255
          examples:
            - team_67890
        stops:
          items:
            anyOf:
              - $ref: '#/components/schemas/LoadPickupStopInput'
              - $ref: '#/components/schemas/LoadDeliveryStopInput'
          type: array
          description: >-
            The list of stops for the load. The first stop is the origin and the
            last stop is the destination.
          minItems: 2
          maxItems: 64
        borderCrossings:
          items:
            $ref: '#/components/schemas/LoadBorderCrossingStopInput'
          type: array
          description: The list of border crossings for the load.
          minItems: 0
          maxItems: 64
        assignedCarrier:
          allOf:
            - $ref: '#/components/schemas/AssignedCarrierInput'
          nullable: true
          description: |-
            The carrier assigned to this load in your TMS. Used to sync booking
            state into Cargado.

            - When provided with carrier identifiers, Cargado will create or
            update a booking for the load.
            - When explicitly set to `null`, Cargado will cancel any active
            booking for the load.
            - When omitted (field not present in the payload), the current
            booking state is left unchanged.

            For US carriers, the DOT number is required.




               - The MC number is also required for interstate loads.
            For Canadian carriers, the CVOR, NIR, or NSC number is required.




               - The DOT and MC number is also required for loads that transit in the US.
            For Mexican carriers, the RFC number is required.




               - The DOT and MX number is also required for loads that transit in the US.
        schemaVersionNumber:
          type: number
          format: double
          description: >-
            Schema version for your load payload.


            - Start at 0 and increment by 1 whenever the set of populated fields
            changes




              (e.g., you begin sending a new field or stop sending an existing one).
            - Used for defining the expected set of fields in the payload and
            protect API-synced fields from being overwritten by in-app edits
            across versions.

            - Errors will be thrown if the payload does not exactly match the
            expected set of fields.


            Bootstrap mode:

            - If omitted or null, the payload is accepted and fields remain
            user-editable in Cargado.

            - Use this during initial setup; set to 0 when ready to enforce
            protection.


            Constraints: must increase by exactly 1, never decrease, and cannot
            be set back to null once defined.
          examples:
            - 0
      required:
        - externalId
        - externalCustomerId
        - status
        - trailerRequirements
        - carrierRequirements
        - driverRequirements
        - stops
      type: object
      additionalProperties: true
    Load:
      description: A load in the Cargado system.
      properties:
        externalId:
          type: string
          description: >-
            The unique ID for the load in your TMS. This identifier will not be
            displayed outside your organization.

            Examples: "456293", "TMS232423"
          minLength: 1
          maxLength: 255
          examples:
            - '456293'
        externalCustomerId:
          type: string
          description: >-
            The unique ID of your customer in your TMS. This will not be
            displayed outside your organization.

            This should not change for the lifetime of the load.

            Examples: "ACMECORP", "ASHIPPERCO"
          minLength: 1
          maxLength: 255
          examples:
            - ACMECORP
        externalDisplayId:
          type:
            - string
            - 'null'
          description: >-
            A customizable display ID for the load. This field allows
            organizations to configure how their load IDs

            are displayed in Cargado. If not provided, the externalId will be
            used as the display ID.

            Examples: "ORD-2024-001", "SHIP-456293", "LOAD-TMS232423"
          minLength: 1
          maxLength: 255
          examples:
            - ORD-2024-001
        externalWorkspaceId:
          type:
            - string
            - 'null'
          description: >-
            The ID used to map your freight to team/user workspaces in Cargado.
            If not

            provided, the freight will be created in your organization's default
            workspace.
        status:
          $ref: '#/components/schemas/LoadStatus'
          description: The status of the load.
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
          description: Reference numbers associated with the load.
        commodities:
          items:
            $ref: '#/components/schemas/LoadCommodity'
          type: array
          description: >-
            The commodities for the load.

            Usually required, but can be omitted for power only loads that are
            load-out or tow-away.
          minItems: 0
          maxItems: 128
        trailerRequirements:
          $ref: '#/components/schemas/TrailerRequirements'
          description: The trailer requirements for the load.
        requiredEquipment:
          items:
            $ref: '#/components/schemas/RequiredEquipment'
          type:
            - array
            - 'null'
          description: A list of standalone equipment required for the load.
        carrierRequirements:
          $ref: '#/components/schemas/CarrierRequirements'
          description: The requirements for the carrier.
        driverRequirements:
          $ref: '#/components/schemas/DriverRequirements'
          description: The requirements for the driver.
        metadata:
          allOf:
            - $ref: '#/components/schemas/Metadata'
          nullable: true
          description: >-
            Set of key-value pairs (string or number values) attached to the
            load.
          examples:
            - tmsOrderId: '1314234'
              customerName: Acme Corp
              weight: 4200
        truckload:
          allOf:
            - $ref: '#/components/schemas/Truckload'
          nullable: true
          description: Whether the load is full truckload or partial truckload.
        roundTrip:
          type:
            - boolean
            - 'null'
          description: Whether the load is a round trip.
        linearFeet:
          type:
            - number
            - 'null'
          format: double
          description: >-
            Linear feet is the amount of floor space cargo occupies in a
            trailer. This is primarily

            relevant for partial truckload shipments. If not provided for
            partial loads, it will be

            automatically calculated based on commodity dimensions.
        maxBuy:
          allOf:
            - $ref: '#/components/schemas/CurrencyValue'
          nullable: true
          description: >-
            The maximum buy amount for the load. Typically used to inform team
            members of what rate

            they can cover the freight at without manager approval. This value
            is not used directly,

            but can be referenced when setting up posting rules.
        targetRate:
          allOf:
            - $ref: '#/components/schemas/CurrencyValue'
          nullable: true
          description: >-
            The target rate for the load. Typically used to inform team members
            of what rate they should

            target when covering freight. This value is not used directly, but
            can be referenced when

            setting up posting rules.
        externalOwnerCoverageUserId:
          type:
            - string
            - 'null'
          description: >-
            The external ID of the user responsible for coverage of this load in
            your TMS.

            This should match the `externalId` set on a user via the user sync
            endpoint.

            Used to automatically assign coverage when the load is posted.
          maxLength: 255
          examples:
            - user_12345
        externalOwnerCoverageTeamId:
          type:
            - string
            - 'null'
          description: >-
            The external ID of the team responsible for coverage of this load in
            your TMS.

            This should match the `externalId` set on a team via the team sync
            endpoint.

            Used to automatically assign coverage when the load is posted.
          maxLength: 255
          examples:
            - team_67890
        assignedCarrier:
          allOf:
            - $ref: '#/components/schemas/AssignedCarrierOutput'
          nullable: true
          description: >-
            The carrier assigned to this load, including carrier identity and
            pricing.
        id:
          type: string
          description: >-
            The unique id for the load in the Cargado system. This is a UUID
            prefixed with `load_`.
          examples:
            - load_c6ee2dff-f35f-4880-b7a6-9b2a1fa1476e
        stops:
          items:
            anyOf:
              - $ref: '#/components/schemas/PickupStop'
              - $ref: '#/components/schemas/DeliveryStop'
              - $ref: '#/components/schemas/BorderCrossingStop'
          type: array
          description: >-
            The list of stops for the load. The first stop is the origin and the
            last stop is the destination.
          minItems: 2
          maxItems: 64
      required:
        - externalId
        - externalCustomerId
        - status
        - trailerRequirements
        - carrierRequirements
        - driverRequirements
        - id
        - stops
      type: object
      additionalProperties: true
    LoadStatus:
      type: string
      enum:
        - ON_HOLD
        - AVAILABLE
        - ASSIGNED
        - BOOKED
        - CANCELLED
        - COMPLETED
      description: |-
        The status of the load. The status can be one of the following:




         - `ON_HOLD`: The load is on hold and not available for booking.
         - `AVAILABLE`: The load is available for booking.
         - `ASSIGNED`: The load has an assigned carrier, but a rate confirmation has not been sent yet.
         - `BOOKED`: The load has a booked carrier with a sent rate confirmation.
         - `CANCELLED`: The load has been cancelled.
         - `COMPLETED`: The load has been completed.
    ReferenceNumber:
      description: A reference number associated with a load or shipment.
      properties:
        label:
          type: string
          description: |-
            The type of reference number.
            Examples: "Shipment #", "BOL #", "PO #", "PRO #"
          minLength: 1
          examples:
            - 'Shipment #'
        value:
          type: string
          description: The value of the reference number.
          minLength: 1
          examples:
            - '1234234'
      required:
        - label
        - value
      type: object
      additionalProperties: true
    LoadCommodityInput:
      description: |-
        A commodity being transported in a load, as provided when creating or
        syncing a load. A commodity name is always required on input.
      properties:
        name:
          type: string
          description: The name of the commodity.
          examples:
            - Crude Oil
        dimensions:
          allOf:
            - $ref: '#/components/schemas/Dimensions'
          nullable: true
          description: The dimensions of the commodity.
        weight:
          anyOf:
            - $ref: '#/components/schemas/ApproximateWeight'
            - $ref: '#/components/schemas/WeightRange'
          nullable: true
          description: >-
            The weight of the commodity. The weight can be approximate or a
            range.

            Use approximate when you have a single weight value.
        temperatureRequirements:
          allOf:
            - $ref: '#/components/schemas/TemperatureRequirements'
          nullable: true
          description: The temperature requirements for the commodity.
          examples:
            - minimum: 10
              maximum: 20
              unit: CELSIUS
        hazmatDetails:
          anyOf:
            - $ref: '#/components/schemas/IsHazmat'
            - $ref: '#/components/schemas/IsNotHazmat'
          description: The hazmat details of the commodity.
          examples:
            - isHazmat: true
              classification: CLASS_3_FLAMMABLE_LIQUIDS
              unNumber: '1263'
              packingGroup: II
        pieces:
          properties:
            stackable:
              type:
                - boolean
                - 'null'
              description: Whether the commodity piece is stackable.
            perPieceVolume:
              allOf:
                - $ref: '#/components/schemas/Volume'
              nullable: true
              description: |-
                The volume of a single piece of the commodity.
                Useful for describing Commodity Piece Type "DRUM".
                Examples: 55 gallon drum or 30 gallon drum
              examples:
                - value: 100
                  unit: GALLONS
            perPieceDimensions:
              allOf:
                - $ref: '#/components/schemas/Dimensions'
              nullable: true
              description: The dimensions of each piece of the commodity.
            type:
              $ref: '#/components/schemas/CommodityPieceType'
              description: The type of piece for commodity packaging.
              examples:
                - PALLET
            count:
              type:
                - number
                - 'null'
              format: double
              description: The number of pieces of this commodity type.
              examples:
                - 10
          required:
            - type
          type:
            - object
            - 'null'
          description: >-
            Piece information for the commodity, including type, count and
            dimensions.
      required:
        - name
        - hazmatDetails
      type: object
      additionalProperties: true
    TrailerRequirements:
      description: Requirements and specifications for trailers used in transportation.
      properties:
        allowedTypes:
          items:
            $ref: '#/components/schemas/TrailerRequirementsAllowedTypes'
          type: array
          description: |-
            Which types of trailers are allowed for the load.
            Examples: ["DRY_VAN_53"], ["DRY_VAN_53", "REEFER"]
          examples:
            - - DRY_VAN_53
        powerOnlyType:
          allOf:
            - $ref: '#/components/schemas/PowerOnlyType'
          nullable: true
          description: >-
            The type of power-only move, if the freight is power only.

            If null, this is not a power-only load.

            Examples: "PRE_LOADED", "LOAD_OUT", "TOW_AWAY"


            PRE_LOADED: The trailer is pre-loaded with the cargo.

            LOAD_OUT: The empty trailer can be used for a different load on the
            way to the destination.

            TOW_AWAY: The empty trailer must go straight to the destination
        doorType:
          allOf:
            - $ref: '#/components/schemas/TrailerRequirementsDoorType'
          nullable: true
          description: The type of trailer door required.
        maxAgeYears:
          type:
            - number
            - 'null'
          format: double
          description: The maximum age of the trailer in years.
        highCube:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be high cube.
        spaceSaver:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be a space saver.
        suspensionType:
          allOf:
            - $ref: '#/components/schemas/TrailerRequirementsSuspensionType'
          nullable: true
          description: The required suspension type of the trailer.
        foodGrade:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be food grade.
        wallType:
          allOf:
            - $ref: '#/components/schemas/TrailerRequirementsWallType'
          nullable: true
          description: The type of trailer wall.
        logisticPost:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be logistic post.
        eTrackRails:
          allOf:
            - $ref: '#/components/schemas/TrailerRequirementsETrackRails'
          nullable: true
          description: The type of etrack rails required.
        eTracksDistance:
          allOf:
            - $ref: '#/components/schemas/ETrackRailDistance'
          nullable: true
          description: The distance between E-tracks on the trailer floor.
        extendable:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be extendable.
        liftGate:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must have a lift gate.
        minAxles:
          type:
            - number
            - 'null'
          format: double
          description: The minimum number of axles required.
        metalEdgeProtectors:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must have metal edge protectors.
        airChute:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must have an air chute.
        ctpatCompliant:
          type:
            - boolean
            - 'null'
          description: Whether the trailer must be CTPAT compliant.
        floorTypes:
          items:
            $ref: '#/components/schemas/TrailerFloorType'
          type:
            - array
            - 'null'
          description: The allowed floor types for the trailer.
      required:
        - allowedTypes
      type: object
      additionalProperties: true
    RequiredEquipment:
      description: Equipment that is required for a load.
      properties:
        type:
          $ref: '#/components/schemas/RequiredEquipmentType'
          description: The type of equipment required.
        quantity:
          type: number
          format: double
          description: The quantity of the equipment required.
          minimum: 1
          maximum: 1000
      required:
        - type
      type: object
      additionalProperties: true
    CarrierRequirements:
      description: Requirements and certifications for carriers.
      properties:
        ctpatCertified:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must be CTPAT certified.
        oeaCertified:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must be OEA certified.
        pipCertified:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must be PIP certified.
        fastCertified:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must be FAST certified.
        internationalCarrierBonded:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must be bonded for international shipments.
          deprecated: true
        internationalCarrierBondedUS:
          type:
            - boolean
            - 'null'
          description: >-
            Whether the carrier must be bonded for international shipments in
            the US.
        internationalCarrierBondedCA:
          type:
            - boolean
            - 'null'
          description: >-
            Whether the carrier must be bonded for international shipments in
            Canada.
        internationalCarrierBondedMX:
          type:
            - boolean
            - 'null'
          description: >-
            Whether the carrier must be bonded for international shipments in
            Mexico.
        has247CustomerService:
          type:
            - boolean
            - 'null'
          description: Whether the carrier must have 24/7 customer service.
        minCargoInsurance:
          allOf:
            - $ref: '#/components/schemas/CurrencyValue'
          nullable: true
          description: >-
            The minimum cargo insurance required for the carrier to have in the
            US and/or Canada.
      type: object
      additionalProperties: true
    DriverRequirements:
      description: Requirements and certifications for drivers.
      properties:
        twicCard:
          type:
            - boolean
            - 'null'
          description: Whether the driver must have a TWIC card.
        tankerEndorsed:
          type:
            - boolean
            - 'null'
          description: Whether the driver must have a tanker endorsement.
        cdl:
          type:
            - boolean
            - 'null'
          description: Whether the driver must have a CDL.
      type: object
      additionalProperties: true
    Metadata:
      description: >-
        Set of key-value pairs that you can attach to an object to store
        additional

        information in a structured format. Values may be strings, numbers, or

        booleans. At most 50 keys are allowed, and string values may be at most
        255

        characters.


        On sync, a provided metadata object replaces the stored metadata
        wholesale.

        Omitting the field leaves the existing metadata unchanged.
      properties: {}
      type: object
      additionalProperties:
        anyOf:
          - type: string
          - type: number
            format: double
          - type: boolean
      examples:
        - tmsOrderId: '1314234'
          customerName: Acme Corp
          weight: 4200
          expedited: true
    Truckload:
      type: string
      enum:
        - FULL
        - PARTIAL
      description: |-
        Whether the load is full truckload or partial truckload.




         - `FULL`: Full truckload - the entire trailer is dedicated to this load.
         - `PARTIAL`: Partial truckload - the load shares trailer space with other shipments.
    CurrencyValue:
      description: >-
        An object representing a monetary value in a given currency. Amount

        is in the lowest denomination of the currency (e.g. cents).

        For example, $15.25 is represented as `{ currencyCode: 'USD', amount:
        1525 }`.
      properties:
        currencyCode:
          $ref: '#/components/schemas/CurrencyCode'
          description: The currency code of the amount
        amount:
          type: integer
          format: int32
          description: >-
            The currency amount in the lowest denomination of the currency (e.g.
            cents)
          minimum: 0
          maximum: 1000000000
      required:
        - currencyCode
        - amount
      type: object
      additionalProperties: true
    LoadPickupStopInput:
      description: Input-specific pickup stop.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - PICKUP
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        loadingMethod:
          allOf:
            - $ref: '#/components/schemas/LoadingMethod'
          nullable: true
          description: >-
            Whether the pickup or delivery is live (the truck driver waits while
            the cargo is loaded onto or unloaded from the trailer) or drop (the
            driver picks up a, often preloaded, trailer at the facility or drops
            off a trailer at the facility)
        inboundTransitRequirements:
          $ref: '#/components/schemas/InboundTransitRequirements'
          description: >-
            Any requirements on how the transit inbound to this stop is
            conducted.
        dropDurationHours:
          type:
            - number
            - 'null'
          format: double
          description: >-
            When the loadingMethod is DROP, this represents the number of hours
            after a trailer is delivered at pickup before the driver should
            arrive to pickup the then loaded trailer.


            Examples: 24, 8
          minimum: 0
          maximum: 2160
          examples:
            - 24
        fumigation:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether fumigation is required for the stop.
        scaleTicket:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether a scale ticket is required for the stop.
        driverAssistRequired:
          type:
            - boolean
            - 'null'
          description: Whether driver assisted loading is required for the stop.
        location:
          $ref: '#/components/schemas/StopLocationInput'
          description: The location of the stop.
        appointment:
          anyOf:
            - $ref: '#/components/schemas/UnspecifiedAppointmentInput'
            - $ref: '#/components/schemas/AppointmentToBeSetInput'
            - $ref: '#/components/schemas/SetAppointmentWindowInput'
            - $ref: '#/components/schemas/SetAppointmentExactInput'
            - $ref: '#/components/schemas/FirstComeFirstServeAppointmentInput'
      required:
        - type
        - externalId
        - location
        - appointment
      type: object
      additionalProperties: true
    LoadDeliveryStopInput:
      description: Input-specific delivery stop.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - DELIVERY
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        loadingMethod:
          allOf:
            - $ref: '#/components/schemas/LoadingMethod'
          nullable: true
          description: >-
            Whether the pickup or delivery is live (the truck driver waits while
            the cargo is loaded onto or unloaded from the trailer) or drop (the
            driver picks up a, often preloaded, trailer at the facility or drops
            off a trailer at the facility)
        inboundTransitRequirements:
          $ref: '#/components/schemas/InboundTransitRequirements'
          description: >-
            Any requirements on how the transit inbound to this stop is
            conducted.
        dropDurationHours:
          type:
            - number
            - 'null'
          format: double
          description: >-
            When the loadingMethod is DROP, this represents the number of hours
            after a trailer is delivered at pickup before the driver should
            arrive to pickup the then loaded trailer.


            Examples: 24, 8
          minimum: 0
          maximum: 2160
          examples:
            - 24
        fumigation:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether fumigation is required for the stop.
        scaleTicket:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether a scale ticket is required for the stop.
        driverAssistRequired:
          type:
            - boolean
            - 'null'
          description: Whether driver assisted loading is required for the stop.
        location:
          $ref: '#/components/schemas/StopLocationInput'
          description: The location of the stop.
        appointment:
          anyOf:
            - $ref: '#/components/schemas/UnspecifiedAppointmentInput'
            - $ref: '#/components/schemas/AppointmentToBeSetInput'
            - $ref: '#/components/schemas/SetAppointmentWindowInput'
            - $ref: '#/components/schemas/SetAppointmentExactInput'
            - $ref: '#/components/schemas/FirstComeFirstServeAppointmentInput'
      required:
        - type
        - externalId
        - location
        - appointment
      type: object
      additionalProperties: true
    LoadBorderCrossingStopInput:
      description: >-
        Border crossing stops don't have appointments, so they can use the
        original type.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - BORDER_CROSSING
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        usMxBorderCrossing:
          allOf:
            - $ref: '#/components/schemas/UsMxBorderCrossing'
          nullable: true
          description: The border crossing port between the United States and Mexico.
        borderCrossingStrategy:
          allOf:
            - $ref: '#/components/schemas/BorderCrossingStrategy'
          nullable: true
          description: |-
            The strategy used to cross the US border.
            Examples: 'PRE_ASSIGNED', 'PROVIDER'
        requiredInspections:
          items:
            $ref: '#/components/schemas/BorderCrossingRequiredInspection'
          type:
            - array
            - 'null'
          description: |-
            Inspections required to cross the US border.
            Examples: 'USDA', 'PROFEPA'
        expectedDwellTimeMinutes:
          type:
            - number
            - 'null'
          format: double
          description: >-
            The expected duration, in minutes, that a shipment or cargo will
            spend at a specific location or during a particular stage of the
            logistics process.
          examples:
            - 12
      required:
        - type
        - externalId
      type: object
      additionalProperties: true
    AssignedCarrierInput:
      description: A carrier assigned to a load, including carrier identity and pricing.
      properties:
        carrier:
          $ref: '#/components/schemas/CarrierInput'
          description: The carrier identity. At least one identifier must be provided.
        price:
          $ref: '#/components/schemas/CarrierPrice'
          description: |-
            The price agreed with the carrier for this load. Provided as a list
            of line items to support breakdowns (e.g., base rate, fuel
            surcharge, accessorials).
      required:
        - carrier
        - price
      type: object
      additionalProperties: true
    LoadCommodity:
      description: A commodity being transported in a load.
      properties:
        name:
          type:
            - string
            - 'null'
          description: >-
            The name of the commodity. Absent for freight that was created
            without a

            named commodity (e.g. via bulk creation) and has not yet had one
            assigned.
          examples:
            - Crude Oil
        dimensions:
          allOf:
            - $ref: '#/components/schemas/Dimensions'
          nullable: true
          description: The dimensions of the commodity.
        weight:
          anyOf:
            - $ref: '#/components/schemas/ApproximateWeight'
            - $ref: '#/components/schemas/WeightRange'
          nullable: true
          description: >-
            The weight of the commodity. The weight can be approximate or a
            range.

            Use approximate when you have a single weight value.
        temperatureRequirements:
          allOf:
            - $ref: '#/components/schemas/TemperatureRequirements'
          nullable: true
          description: The temperature requirements for the commodity.
          examples:
            - minimum: 10
              maximum: 20
              unit: CELSIUS
        hazmatDetails:
          anyOf:
            - $ref: '#/components/schemas/IsHazmat'
            - $ref: '#/components/schemas/IsNotHazmat'
          description: The hazmat details of the commodity.
          examples:
            - isHazmat: true
              classification: CLASS_3_FLAMMABLE_LIQUIDS
              unNumber: '1263'
              packingGroup: II
        pieces:
          properties:
            stackable:
              type:
                - boolean
                - 'null'
              description: Whether the commodity piece is stackable.
            perPieceVolume:
              allOf:
                - $ref: '#/components/schemas/Volume'
              nullable: true
              description: |-
                The volume of a single piece of the commodity.
                Useful for describing Commodity Piece Type "DRUM".
                Examples: 55 gallon drum or 30 gallon drum
              examples:
                - value: 100
                  unit: GALLONS
            perPieceDimensions:
              allOf:
                - $ref: '#/components/schemas/Dimensions'
              nullable: true
              description: The dimensions of each piece of the commodity.
            type:
              $ref: '#/components/schemas/CommodityPieceType'
              description: The type of piece for commodity packaging.
              examples:
                - PALLET
            count:
              type:
                - number
                - 'null'
              format: double
              description: The number of pieces of this commodity type.
              examples:
                - 10
          required:
            - type
          type:
            - object
            - 'null'
          description: >-
            Piece information for the commodity, including type, count and
            dimensions.
      required:
        - hazmatDetails
      type: object
      additionalProperties: true
    AssignedCarrierOutput:
      description: A carrier assigned to a load, including carrier identity and pricing.
      properties:
        carrier:
          $ref: '#/components/schemas/CarrierOutput'
          description: The carrier identity.
        price:
          $ref: '#/components/schemas/CarrierPriceOutput'
          description: The price agreed with the carrier for this load.
      required:
        - carrier
        - price
      type: object
      additionalProperties: true
    PickupStop:
      description: A pickup stop where goods are loaded.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - PICKUP
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        loadingMethod:
          allOf:
            - $ref: '#/components/schemas/LoadingMethod'
          nullable: true
          description: >-
            Whether the pickup or delivery is live (the truck driver waits while
            the cargo is loaded onto or unloaded from the trailer) or drop (the
            driver picks up a, often preloaded, trailer at the facility or drops
            off a trailer at the facility)
        inboundTransitRequirements:
          $ref: '#/components/schemas/InboundTransitRequirements'
          description: >-
            Any requirements on how the transit inbound to this stop is
            conducted.
        dropDurationHours:
          type:
            - number
            - 'null'
          format: double
          description: >-
            When the loadingMethod is DROP, this represents the number of hours
            after a trailer is delivered at pickup before the driver should
            arrive to pickup the then loaded trailer.


            Examples: 24, 8
          minimum: 0
          maximum: 2160
          examples:
            - 24
        fumigation:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether fumigation is required for the stop.
        scaleTicket:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether a scale ticket is required for the stop.
        driverAssistRequired:
          type:
            - boolean
            - 'null'
          description: Whether driver assisted loading is required for the stop.
        location:
          $ref: '#/components/schemas/StopLocation'
          description: The location of the stop.
        appointment:
          anyOf:
            - $ref: '#/components/schemas/UnspecifiedAppointment'
            - $ref: '#/components/schemas/AppointmentToBeSet'
            - $ref: '#/components/schemas/SetAppointmentWindow'
            - $ref: '#/components/schemas/SetAppointmentExact'
            - $ref: '#/components/schemas/FirstComeFirstServeAppointment'
      required:
        - type
        - externalId
        - location
        - appointment
      type: object
      additionalProperties: true
    DeliveryStop:
      description: A delivery stop where goods are unloaded.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - DELIVERY
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        loadingMethod:
          allOf:
            - $ref: '#/components/schemas/LoadingMethod'
          nullable: true
          description: >-
            Whether the pickup or delivery is live (the truck driver waits while
            the cargo is loaded onto or unloaded from the trailer) or drop (the
            driver picks up a, often preloaded, trailer at the facility or drops
            off a trailer at the facility)
        inboundTransitRequirements:
          $ref: '#/components/schemas/InboundTransitRequirements'
          description: >-
            Any requirements on how the transit inbound to this stop is
            conducted.
        dropDurationHours:
          type:
            - number
            - 'null'
          format: double
          description: >-
            When the loadingMethod is DROP, this represents the number of hours
            after a trailer is delivered at pickup before the driver should
            arrive to pickup the then loaded trailer.


            Examples: 24, 8
          minimum: 0
          maximum: 2160
          examples:
            - 24
        fumigation:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether fumigation is required for the stop.
        scaleTicket:
          allOf:
            - $ref: '#/components/schemas/StopRequirement'
          nullable: true
          description: Whether a scale ticket is required for the stop.
        driverAssistRequired:
          type:
            - boolean
            - 'null'
          description: Whether driver assisted loading is required for the stop.
        location:
          $ref: '#/components/schemas/StopLocation'
          description: The location of the stop.
        appointment:
          anyOf:
            - $ref: '#/components/schemas/UnspecifiedAppointment'
            - $ref: '#/components/schemas/AppointmentToBeSet'
            - $ref: '#/components/schemas/SetAppointmentWindow'
            - $ref: '#/components/schemas/SetAppointmentExact'
            - $ref: '#/components/schemas/FirstComeFirstServeAppointment'
      required:
        - type
        - externalId
        - location
        - appointment
      type: object
      additionalProperties: true
    BorderCrossingStop:
      description: A border crossing stop for international shipments.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - BORDER_CROSSING
          description: >-
            Whether the stop is a pickup or delivery of goods or a border
            crossing.
        externalId:
          type: string
          description: >-
            The unique ID for the stop in your TMS. This identifier will not be
            displayed outside your organization.
          minLength: 1
          maxLength: 255
          examples:
            - 279241
        referenceNumbers:
          items:
            $ref: '#/components/schemas/ReferenceNumber'
          type:
            - array
            - 'null'
        usMxBorderCrossing:
          allOf:
            - $ref: '#/components/schemas/UsMxBorderCrossing'
          nullable: true
          description: The border crossing port between the United States and Mexico.
        borderCrossingStrategy:
          allOf:
            - $ref: '#/components/schemas/BorderCrossingStrategy'
          nullable: true
          description: |-
            The strategy used to cross the US border.
            Examples: 'PRE_ASSIGNED', 'PROVIDER'
        requiredInspections:
          items:
            $ref: '#/components/schemas/BorderCrossingRequiredInspection'
          type:
            - array
            - 'null'
          description: |-
            Inspections required to cross the US border.
            Examples: 'USDA', 'PROFEPA'
        expectedDwellTimeMinutes:
          type:
            - number
            - 'null'
          format: double
          description: >-
            The expected duration, in minutes, that a shipment or cargo will
            spend at a specific location or during a particular stage of the
            logistics process.
          examples:
            - 12
      required:
        - type
        - externalId
      type: object
      additionalProperties: true
    Dimensions:
      description: The dimensions of a commodity.
      properties:
        length:
          $ref: '#/components/schemas/Dimension'
          description: The length of the commodity.
          examples:
            - value: 576
              unit: INCHES
        width:
          $ref: '#/components/schemas/Dimension'
          description: The width of the commodity.
          examples:
            - value: 120
              unit: INCHES
        height:
          $ref: '#/components/schemas/Dimension'
          description: The height of the commodity.
          examples:
            - value: 72
              unit: INCHES
      required:
        - length
        - width
        - height
      type: object
      additionalProperties: true
    ApproximateWeight:
      description: The approximate weight of a commodity.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - APPROXIMATE
          description: The weight is a single value.
        value:
          type: number
          format: double
          description: The value of the weight.
        unit:
          $ref: '#/components/schemas/WeightUnit'
      required:
        - type
        - value
        - unit
      type: object
      additionalProperties: true
    WeightRange:
      description: The weight range of a commodity.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - RANGE
          description: The weight is a range.
        minimum:
          type: number
          format: double
          description: The minimum weight of the range.
        maximum:
          type: number
          format: double
          description: The maximum weight of the range.
        unit:
          $ref: '#/components/schemas/WeightUnit'
      required:
        - type
        - minimum
        - maximum
        - unit
      type: object
      additionalProperties: true
    TemperatureRequirements:
      description: The temperature requirements for a commodity.
      properties:
        minimum:
          type: number
          format: double
          description: The minimum temperature.
        maximum:
          type: number
          format: double
          description: The maximum temperature.
        unit:
          $ref: '#/components/schemas/TemperatureUnit'
          description: The unit of the temperature.
        controlCycle:
          $ref: '#/components/schemas/TemperatureControlCycle'
          description: The control cycle of the temperature.
      required:
        - minimum
        - maximum
        - unit
      type: object
      additionalProperties: true
    IsHazmat:
      description: >-
        This represents a hazmat commodity with its classification, UN number,
        and packing group.
      properties:
        isHazmat:
          type:
            - boolean
            - 'null'
          enum:
            - true
          description: This is a hazmat commodity.
        classification:
          allOf:
            - $ref: '#/components/schemas/HazmatClassification'
          nullable: true
          description: The hazmat classification of the commodity.
        unNumber:
          type:
            - string
            - 'null'
          description: The UN number of the commodity. Must be exactly 4 digits.
          pattern: ^\d{4}$
          examples:
            - '1263'
        packingGroup:
          allOf:
            - $ref: '#/components/schemas/HazmatPackingGroup'
          nullable: true
          description: The packing group of the commodity.
      required:
        - isHazmat
      type: object
      additionalProperties: true
    IsNotHazmat:
      description: This represents a commodity that is not hazmat.
      properties:
        isHazmat:
          type:
            - boolean
            - 'null'
          enum:
            - false
          description: This is not a hazmat commodity.
        classification:
          type:
            - number
            - 'null'
          enum:
            - null
          description: The hazmat classification of the commodity.
        unNumber:
          type:
            - number
            - 'null'
          enum:
            - null
          description: The UN number of the commodity.
        packingGroup:
          type:
            - number
            - 'null'
          enum:
            - null
          description: The packing group of the commodity.
      required:
        - isHazmat
      type: object
      additionalProperties: true
    Volume:
      properties:
        value:
          type: number
          format: double
        unit:
          $ref: '#/components/schemas/VolumeUnit'
      required:
        - value
        - unit
      type: object
      additionalProperties: true
    CommodityPieceType:
      type: string
      enum:
        - PALLET
        - CRATE
        - SUPER_SACK
        - DRUM
        - ROLL
        - REEL
        - GAYLORD
        - TOTES
        - OTHER
      description: Types of commodity pieces for packaging.
    TrailerRequirementsAllowedTypes:
      type: string
      enum:
        - REEFER
        - DRY_VAN_DOUBLE
        - DRY_VAN_TRIPLE
        - DRY_VAN_MULTI_AXLE
        - REEFER_DOUBLE
        - REEFER_MULTI_AXLE
        - HEATED
        - HEATED_MULTI_AXLE
        - FLATBED_DOUBLE
        - FLATBED_MULTI_AXLE
        - STEPDECK
        - DOUBLE_DROP
        - RGN
        - CONESTOGA
        - STEPDECK_CONESTOGA
        - DOUBLE_DROP_CONESTOGA
        - STRAIGHT_TRUCK_DRY
        - STRAIGHT_TRUCK_REEFER
        - TORTON
        - RABON
        - HALF_TON
        - ONE_TON
        - ONE_AND_HALF_TON
        - THREE_AND_HALF_TON
        - FOUR_AND_HALF_TON
        - DRY_VAN_48
        - DRY_VAN_53
        - FLATBED_48
        - FLATBED_53
      description: Types of trailers that can be used for transportation.
    PowerOnlyType:
      type: string
      enum:
        - PRE_LOADED
        - LOAD_OUT
        - TOW_AWAY
      description: Types of power-only moves.
    TrailerRequirementsDoorType:
      type: string
      enum:
        - SWING
        - ROLL_UP
      description: Types of trailer doors.
    TrailerRequirementsSuspensionType:
      type: string
      enum:
        - AIR_RIDE
        - SPRING
      description: Types of trailer suspension systems.
    TrailerRequirementsWallType:
      type: string
      enum:
        - SHEET_AND_POST
        - PLATED
      description: Types of trailer wall construction.
    TrailerRequirementsETrackRails:
      type: string
      enum:
        - VERTICAL
        - HORIZONTAL
      description: Types of E-track rail configurations for cargo securement.
    ETrackRailDistance:
      type: string
      enum:
        - TWO_FEET
        - FOUR_FEET
      description: Distance between E-track rails.
    TrailerFloorType:
      type: string
      enum:
        - HARDWOOD
        - ALUMINUM
        - STEEL
        - COMPOSITE
      description: Types of trailer floor types.
    RequiredEquipmentType:
      type: string
      enum:
        - LOAD_BARS
        - E_TRACK_SHORING_BEAM
        - STRAP
        - CTPAT_SEAL
        - MASK_AND_GLOVES
        - PERSONAL_PROTECTIVE_EQUIPMENT
        - BLOCKING_AND_BRACING
        - TARP_FOUR_FOOT
        - TARP_SIX_FOOT
        - TARP_EIGHT_FOOT
        - TARP_OVERSIZE
        - CHAINS
        - PIPE_STAKE_FOUR_FOOT
        - PIPE_STAKE_EIGHT_FOOT
        - HEAT_TREATED_DUNNAGE
        - COIL_RACKS
        - HEADACHE_RACK
        - HEADBOARD
        - EDGE_PROTECTORS
        - RAMPS
        - PILOT_CARS
        - RUBBER_MATS
      description: Types of equipment that can be required for a load.
    CurrencyCode:
      type: string
      enum:
        - USD
        - MXN
        - CAD
      description: Supported currency codes for monetary values.
    LoadingMethod:
      type: string
      enum:
        - LIVE
        - DROP
      description: Method of loading/unloading cargo at a stop.
    InboundTransitRequirements:
      description: Requirements for inbound transit to a stop.
      properties:
        maximumExpectedMinutes:
          type:
            - integer
            - 'null'
          format: int32
          description: >-
            The maximum time in minutes that the driver is expected to be at the
            stop by.
        securityEscortProvider:
          type:
            - string
            - 'null'
          enum:
            - PROVIDER
            - OWNER
            - null
          description: >-
            Whether a security escort will be provided by the owner of the load
            or by a transportation provider.
        teamDriverRequired:
          type:
            - boolean
            - 'null'
          description: >-
            Whether a team driver is required for the transit inbound to this
            stop.
        trackingRequired:
          type:
            - boolean
            - 'null'
          description: Whether tracking is required for the transit inbound to this stop.
      type: object
      additionalProperties: true
    StopRequirement:
      description: A requirement that can apply before and/or after a stop.
      properties:
        requiredBefore:
          type: boolean
          description: Whether the requirement applies before the stop.
        requiredAfter:
          type: boolean
          description: Whether the requirement applies after the stop.
      required:
        - requiredBefore
        - requiredAfter
      type: object
      additionalProperties: true
    StopLocationInput:
      description: Location information for a stop.
      properties:
        coordinates:
          $ref: '#/components/schemas/Coordinates'
          description: The GPS coordinates of the place.
        isCtpatCertified:
          type: boolean
          description: Whether the place is CTPAT certified.
        isPipCertified:
          type: boolean
          description: Whether the place is PIP certified.
        isOeaCertified:
          type: boolean
          description: Whether the place is OEA Certified.
        carrierPreapproval:
          $ref: '#/components/schemas/CarrierPreapproval'
          description: |-
            Whether the place requires a pre-approved carrier.
             - `FIXED_LIST`: The carrier must be from a fixed set.
             - `PRE_APPROVED`: The carrier can be pre-approved.
             - `NOT_REQUIRED`: No pre-approval is required.
        timezone:
          type: string
          description: >-
            The timezone of the place (from the IANA timezone database).

            Examples: "America/Chicago", "America/Monterrey",
            "America/Los_Angeles"
          examples:
            - America/Chicago
        place:
          $ref: '#/components/schemas/StopLocationAddressInput'
          description: The address or other type of place.
      required:
        - place
      type: object
      additionalProperties: true
    UnspecifiedAppointmentInput:
      description: An appointment that is unspecified or unknown.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - UNSPECIFIED
          description: The appointment is unspecified or unknown.
      required:
        - type
      type: object
      additionalProperties: true
    AppointmentToBeSetInput:
      description: An appointment that has not been set yet.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - TO_BE_SET
          description: An appointment that has not been set yet.
        possibleAppointmentRange:
          properties:
            end:
              type: string
              description: >-
                The latest possible end time of the appointment.


                Can be a ISO 8601 date string with or without a timezone
                descriptor.

                If a timezoneless date string is provided, the timezone will be
                inferred from the location of the stop.

                If the timezone of the stop cannot be determined, then an error
                will be returned
              pattern: >-
                ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
              examples:
                - '2024-01-01T00:00:00.000Z'
            start:
              type: string
              description: >-
                The earliest possible start time of the appointment.


                Can be a ISO 8601 date string with or without a timezone
                descriptor.

                If a timezoneless date string is provided, the timezone will be
                inferred from the location of the stop.

                If the timezone of the stop cannot be determined, then an error
                will be returned
              pattern: >-
                ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
              examples:
                - '2024-01-01T00:00:00.000Z'
          required:
            - end
            - start
          type: object
          description: The range of possible appointment times.
        toBeSetBy:
          anyOf:
            - $ref: '#/components/schemas/ToBeSetBySpecificTimeInput'
            - $ref: '#/components/schemas/ToBeSetByRelativeToEventInput'
          description: When the appointment will be set by.
      required:
        - type
        - toBeSetBy
      type: object
      additionalProperties: true
    SetAppointmentWindowInput:
      description: A set appointment, window of time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SET_APPOINTMENT_WINDOW
          description: A set appointment, window of time.
        windowStartTime:
          type: string
          description: >-
            The start time of the window.


            Can be a ISO 8601 date string with or without a timezone descriptor.

            If a timezoneless date string is provided, the timezone will be
            inferred from the location of the stop.

            If the timezone of the stop cannot be determined, then an error will
            be returned
          pattern: >-
            ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
          examples:
            - '2024-01-01T00:00:00.000Z'
        windowEndTime:
          type: string
          description: >-
            The end time of the window.


            Can be a ISO 8601 date string with or without a timezone descriptor.

            If a timezoneless date string is provided, the timezone will be
            inferred from the location of the stop.

            If the timezone of the stop cannot be determined, then an error will
            be returned
          pattern: >-
            ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
          examples:
            - '2024-01-01T00:00:00.000Z'
      required:
        - type
        - windowStartTime
        - windowEndTime
      type: object
      additionalProperties: true
    SetAppointmentExactInput:
      description: The appointment is an exact time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SET_APPOINTMENT_EXACT
          description: The appointment is an exact time.
        time:
          type: string
          description: >-
            The exact time of the appointment.


            Can be a ISO 8601 date string with or without a timezone descriptor.

            If a timezoneless date string is provided, the timezone will be
            inferred from the location of the stop.

            If the timezone of the stop cannot be determined, then an error will
            be returned
          pattern: >-
            ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
          examples:
            - '2024-01-01T00:00:00.000Z'
      required:
        - type
        - time
      type: object
      additionalProperties: true
    FirstComeFirstServeAppointmentInput:
      description: The appointment is first come first serve.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - FIRST_COME_FIRST_SERVE
          description: The appointment is first come first serve.
      required:
        - type
      type: object
      additionalProperties: true
    UsMxBorderCrossing:
      type: string
      enum:
        - LAREDO_INTL_BRIDGE
        - LAREDO_COLUMBIA
        - BROWNSVILLE
        - CALEXICO_EAST
        - DEL_RIO
        - DOUGLAS
        - EAGLE_PASS
        - EL_PASO
        - HIDALGO
        - NOGALES
        - OTAY_MESA
        - SAN_LUIS
        - TECATE
    BorderCrossingStrategy:
      type: string
      enum:
        - PRE_ASSIGNED
        - PROVIDER
    BorderCrossingRequiredInspection:
      type: string
      enum:
        - USDA
        - FDA
        - FISH_AND_WILDLIFE
        - CERTIFICADO_ORIGEN_TEQUILA
        - CBP_AGRICULTURE
        - PROFEPA
        - SAGARPA
        - SENASICA
        - CPSC
        - EPA
        - SADER
    CarrierInput:
      description: |-
        A specific carrier as defined by a set of unique government identifiers.
        At least one of the identifiers must be provided.
      properties:
        dotNumber:
          type: string
          description: The carrier's DOT number
          examples:
            - '123456'
        mcNumber:
          type: string
          description: The carrier's MC number
          examples:
            - '248243'
        mxNumber:
          type: string
          description: The carrier's MX number
          examples:
            - '2343'
        rfcNumber:
          type: string
          description: The carrier's RFC number
          examples:
            - RUSM2344227MY4
        cvorNumber:
          type: string
          description: The carrier's Commercial Vehicle Operator Registration number (CVOR)
          examples:
            - 2344227MY4
        nirNumber:
          type: string
          description: The carrier's Registration identification number (NIR)
          examples:
            - R-23424
        nscNumber:
          type: string
          description: The carrier's National Safety Code (NSC) number
          examples:
            - 2344227MY4
        externalId:
          type: string
          description: >-
            An external identifier for the carrier in your TMS. This is used to

            match carriers across systems when government identifiers (DOT, MC)

            are not available on the source record.


            Examples: McLeod's vendor/payee ID ("GJNTMIIN"), Tai's
            carrierMasterId.
          minLength: 1
          maxLength: 255
          examples:
            - GJNTMIIN
      type: object
      additionalProperties: true
    CarrierPrice:
      description: The price for a carrier assignment, expressed as a list of line items.
      properties:
        lineItems:
          items:
            $ref: '#/components/schemas/CarrierPriceLineItem'
          type: array
          description: The list of price line items. At least one is required.
          minItems: 1
      required:
        - lineItems
      type: object
      additionalProperties: true
    CarrierOutput:
      description: |-
        A carrier as returned in API responses. Fields may be null when not
        provided during creation.
      properties:
        displayName:
          type:
            - string
            - 'null'
          description: The carrier organization's display name.
        dotNumber:
          type:
            - string
            - 'null'
        mcNumber:
          type:
            - string
            - 'null'
        mxNumber:
          type:
            - string
            - 'null'
        rfcNumber:
          type:
            - string
            - 'null'
        cvorNumber:
          type:
            - string
            - 'null'
        nirNumber:
          type:
            - string
            - 'null'
        nscNumber:
          type:
            - string
            - 'null'
        contactName:
          type:
            - string
            - 'null'
        contactPhone:
          type:
            - string
            - 'null'
        contactEmail:
          type:
            - string
            - 'null'
        externalId:
          type:
            - string
            - 'null'
          description: Carrier's ID in the broker's TMS.
      type: object
      additionalProperties: true
    CarrierPriceOutput:
      properties:
        lineItems:
          items:
            $ref: '#/components/schemas/CarrierPriceLineItemOutput'
          type: array
      required:
        - lineItems
      type: object
      additionalProperties: true
    StopLocation:
      description: Location information for a stop.
      properties:
        coordinates:
          $ref: '#/components/schemas/Coordinates'
          description: The GPS coordinates of the place.
        isCtpatCertified:
          type: boolean
          description: Whether the place is CTPAT certified.
        isPipCertified:
          type: boolean
          description: Whether the place is PIP certified.
        isOeaCertified:
          type: boolean
          description: Whether the place is OEA Certified.
        carrierPreapproval:
          $ref: '#/components/schemas/CarrierPreapproval'
          description: |-
            Whether the place requires a pre-approved carrier.
             - `FIXED_LIST`: The carrier must be from a fixed set.
             - `PRE_APPROVED`: The carrier can be pre-approved.
             - `NOT_REQUIRED`: No pre-approval is required.
        timezone:
          type: string
          description: >-
            The timezone of the place (from the IANA timezone database).

            Examples: "America/Chicago", "America/Monterrey",
            "America/Los_Angeles"
          examples:
            - America/Chicago
        place:
          $ref: '#/components/schemas/StopLocationAddress'
          description: The address or other type of place.
      required:
        - place
      type: object
      additionalProperties: true
    UnspecifiedAppointment:
      description: The appointment is unspecified or unknown.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - UNSPECIFIED
          description: The appointment is unspecified or unknown.
      required:
        - type
      type: object
      additionalProperties: true
    AppointmentToBeSet:
      description: An appointment that has not been set yet.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - TO_BE_SET
          description: An appointment that has not been set yet.
        possibleAppointmentRange:
          properties:
            end:
              type: string
              format: date-time
            start:
              type: string
              format: date-time
          required:
            - end
            - start
          type: object
          description: The range of possible appointment times.
        toBeSetBy:
          anyOf:
            - $ref: '#/components/schemas/ToBeSetBySpecificTime'
            - $ref: '#/components/schemas/ToBeSetByRelativeToEvent'
          description: When the appointment will be set by.
      required:
        - type
        - toBeSetBy
      type: object
      additionalProperties: true
    SetAppointmentWindow:
      description: A set appointment, window of time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SET_APPOINTMENT_WINDOW
          description: A set appointment, window of time.
        windowStartTime:
          type: string
          format: date-time
          description: The start time of the window.
        windowEndTime:
          type: string
          format: date-time
          description: The end time of the window.
      required:
        - type
        - windowStartTime
        - windowEndTime
      type: object
      additionalProperties: true
    SetAppointmentExact:
      description: The appointment is an exact time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SET_APPOINTMENT_EXACT
          description: The appointment is an exact time.
        time:
          type: string
          format: date-time
          description: The exact time of the appointment.
      required:
        - type
        - time
      type: object
      additionalProperties: true
    FirstComeFirstServeAppointment:
      description: The appointment is first come first serve.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - FIRST_COME_FIRST_SERVE
          description: The appointment is first come first serve.
      required:
        - type
      type: object
      additionalProperties: true
    Dimension:
      properties:
        value:
          type: number
          format: double
        unit:
          $ref: '#/components/schemas/LoadCommodityDimensionUnit'
      required:
        - value
        - unit
      type: object
      additionalProperties: true
    WeightUnit:
      type: string
      enum:
        - POUNDS
        - KILOGRAMS
        - TONNES
    TemperatureUnit:
      type: string
      enum:
        - FAHRENHEIT
        - CELSIUS
    TemperatureControlCycle:
      type: string
      enum:
        - CONTINUOUS
        - CYCLIC
    HazmatClassification:
      type: string
      enum:
        - CLASS_1_EXPLOSIVES
        - CLASS_2_GASES
        - CLASS_3_FLAMMABLE_LIQUIDS
        - CLASS_4_FLAMMABLE_SOLIDS
        - CLASS_5_OXIDIZING_SUBSTANCES
        - CLASS_6_TOXIC_AND_INFECTIOUS_SUBSTANCES
        - CLASS_7_RADIOACTIVE_MATERIAL
        - CLASS_8_CORROSIVES
        - CLASS_9_MISCELLANEOUS
    HazmatPackingGroup:
      type: string
      enum:
        - I
        - II
        - III
    VolumeUnit:
      type: string
      enum:
        - GALLONS
        - LITERS
    Coordinates:
      description: GPS coordinates for a geographic location.
      properties:
        latitude:
          type: number
          format: double
          description: The latitude of the place.
          minimum: -90
          maximum: 90
          examples:
            - 49.280455
        longitude:
          type: number
          format: double
          description: The longitude of the place.
          minimum: -180
          maximum: 180
          examples:
            - -123.118842
      required:
        - latitude
        - longitude
      type: object
      additionalProperties: true
    CarrierPreapproval:
      type: string
      enum:
        - FIXED_LIST
        - PRE_APPROVED
        - NOT_REQUIRED
    StopLocationAddressInput:
      description: A structured address with individual components.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - ADDRESS
          description: The type of place
        street:
          type: string
          description: The street address of the place.
          minLength: 0
          maxLength: 255
          examples:
            - 123 Main St
        neighborhood:
          type: string
          description: The neighborhood of the place.
          minLength: 0
          maxLength: 255
          examples:
            - Valle Oriente
        city:
          type: string
          description: |-
            The city of the place.
            Examples: "Chicago", "Monterrey", "Seattle"
          minLength: 0
          maxLength: 255
          examples:
            - Chicago
        state:
          type: string
          description: |-
            The state or province of the place.
            Examples: "IL", "NLE", "Nuevo León"
          minLength: 0
          maxLength: 255
          examples:
            - IL
        countryCode:
          $ref: '#/components/schemas/CountryCode'
          description: The ISO 3166-1 alpha-2 country code of the place.
        postalCode:
          type: string
          description: |-
            The postal code of the place.
            Examples: "98335", "64000", "V6B 4N7"
          examples:
            - '98335'
      required:
        - type
        - street
        - city
        - state
        - countryCode
      type: object
      additionalProperties: true
    ToBeSetBySpecificTimeInput:
      description: The appointment will be set by a specific time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SPECIFIC_TIME
          description: The appointment will be set by a specific time.
        time:
          type: string
          description: >-
            The time that the appointment will be set by.


            Can be a ISO 8601 date string with or without a timezone descriptor.

            If a timezoneless date string is provided, the timezone will be
            inferred from the location of the stop.

            If the timezone of the stop cannot be determined, then an error will
            be returned
          pattern: >-
            ^\d{4}-\d{2}-\d{2}(?:T\d{2}:\d{2}:\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:?\d{2})?$
          examples:
            - '2024-01-01T00:00:00.000Z'
      required:
        - type
        - time
      type: object
      additionalProperties: true
    ToBeSetByRelativeToEventInput:
      description: The appointment will be set relative to an event.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - RELATIVE_TO_EVENT
          description: The appointment will be set relative to an event.
        event:
          type: string
          enum:
            - BORDER_CROSSING
            - DISPATCH
          description: |-
            The event the appointment will be set relative to.




             - `BORDER_CROSSING`: The appointment will be set after the border crossing.
             - `DISPATCH`: The appointment will be set after the carrier is dispatched.
      required:
        - type
        - event
      type: object
      additionalProperties: true
    CarrierPriceLineItem:
      description: A single line item in a carrier price breakdown.
      properties:
        type:
          $ref: '#/components/schemas/CarrierPriceLineItemType'
          description: The type of this price line item.
        value:
          $ref: '#/components/schemas/CurrencyValue'
          description: The monetary value for this line item.
        externalId:
          type: string
          description: |-
            The unique identifier for this specific line item instance in the
            caller's TMS (e.g. Turvo's `lineItem.id`). Unlike `externalCode`,
            which identifies the *type* of charge, this identifies the
            individual line item record.
        externalCode:
          type: string
          description: |-
            A shared charge type code from the caller's TMS that is common
            across all line items of the same type (e.g. McLeod's "DET" for
            detention, Turvo's "1600" for freight). Unlike `externalId`, which
            identifies a specific line item instance, this identifies the
            *category* of charge. Primarily used with `OTHER` to classify the
            charge, but can be provided for any type.
        externalDescription:
          type: string
          description: |-
            A human-readable description from the caller's TMS
            (e.g. "Limited Access Delivery"). Primarily used with `OTHER`
            to describe the charge, but can be provided for any type.
      required:
        - type
        - value
      type: object
      additionalProperties: true
    CarrierPriceLineItemOutput:
      properties:
        type:
          type: string
        value:
          $ref: '#/components/schemas/CurrencyValue'
        externalId:
          type: string
        externalCode:
          type: string
        externalDescription:
          type: string
      required:
        - type
        - value
      type: object
      additionalProperties: true
    StopLocationAddress:
      description: A structured address with individual components.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - ADDRESS
          description: The type of place
        street:
          type: string
          description: The street address of the place.
          minLength: 0
          maxLength: 255
          examples:
            - 123 Main St
        neighborhood:
          type: string
          description: The neighborhood of the place.
          minLength: 0
          maxLength: 255
          examples:
            - Valle Oriente
        city:
          type: string
          description: |-
            The city of the place.
            Examples: "Chicago", "Monterrey", "Seattle"
          minLength: 0
          maxLength: 255
          examples:
            - Chicago
        state:
          type: string
          description: |-
            The state or province of the place.
            Examples: "IL", "NLE", "Nuevo León"
          minLength: 0
          maxLength: 255
          examples:
            - IL
        countryCode:
          $ref: '#/components/schemas/CountryCode'
          description: The ISO 3166-1 alpha-2 country code of the place.
        postalCode:
          type: string
          description: |-
            The postal code of the place.
            Examples: "98335", "64000", "V6B 4N7"
          examples:
            - '98335'
      required:
        - type
        - street
        - city
        - state
        - countryCode
        - postalCode
      type: object
      additionalProperties: true
    ToBeSetBySpecificTime:
      description: The appointment will be set by a specific time.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - SPECIFIC_TIME
          description: The appointment will be set by a specific time.
        time:
          type: string
          format: date-time
          description: The specific time the appointment will be set by.
      required:
        - type
        - time
      type: object
      additionalProperties: true
    ToBeSetByRelativeToEvent:
      description: The appointment will be set relative to an event.
      properties:
        type:
          type:
            - string
            - 'null'
          enum:
            - RELATIVE_TO_EVENT
          description: The appointment will be set relative to an event.
        event:
          type: string
          enum:
            - BORDER_CROSSING
            - DISPATCH
          description: |-
            The event the appointment will be set relative to.




             - `BORDER_CROSSING`: The appointment will be set after the border crossing.
             - `DISPATCH`: The appointment will be set after the carrier is dispatched.
      required:
        - type
        - event
      type: object
      additionalProperties: true
    LoadCommodityDimensionUnit:
      type: string
      enum:
        - FEET
        - CENTIMETERS
        - INCHES
        - METERS
    CountryCode:
      type: string
      enum:
        - US
        - MX
        - CA
      description: The ISO 3166-1 alpha-2 country code of the place.
    CarrierPriceLineItemType:
      description: |-
        The type of a carrier price line item.

        - `ALL_IN`: The total all-in carrier cost including linehaul and any
          surcharges. Use this when a single total amount is available without
          a breakdown.
        - `LINEHAUL`: The origin-to-destination freight charge.
        - `FUEL_SURCHARGE`: Fuel surcharge (flat, percentage, or rate-per-mile).
        - `DETENTION`: Detention or demurrage at pickup or delivery.
        - `STOP_OFF`: Extra stop charges.
        - `LUMPER`: Lumper fees at warehouse.
        - `LAYOVER`: Layover charges.
        - `TONU`: Truck ordered not used.
        - `TEAM_DRIVER`: Team service or dual driver charges.
        - `HAZMAT`: Hazardous materials handling.
        - `REEFER`: Temperature-controlled or reefer service charges.
        - `LIFTGATE`: Liftgate service.
        - `TARPING`: Tarping charges.
        - `BORDER_CROSSING`: Cross-border fees.
        - `DRIVER_ASSIST`: Driver assist, loading, or unloading labor.
        - `OTHER`: Any other charge not covered by a named type. Use
          `externalCode` and `externalDescription` on the line item to
          provide the TMS-specific charge code and description.
      enum:
        - ALL_IN
        - LINEHAUL
        - FUEL_SURCHARGE
        - DETENTION
        - STOP_OFF
        - LUMPER
        - LAYOVER
        - TONU
        - TEAM_DRIVER
        - HAZMAT
        - REEFER
        - LIFTGATE
        - TARPING
        - BORDER_CROSSING
        - DRIVER_ASSIST
        - OTHER
      type: string
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: api-key

````