openapi: 3.0.1 info: license: name: © 2024 project44 - Terms of Use url: https://www.project44.com/terms description: Version 4.0.0 of project44's API title: project44 REST API version: 4.0.0 x-logo: url: /img/p44logo.png servers: - url: https://na12.api.project44.com description: API endpoint for project44 tenants created in NA region - url: https://eu12.api.project44.com description: API endpoint for project44 tenants created in EU region - url: https://na12.api.sandbox.p-44.com description: API endpoint for project44 tenants created in the Sandbox environment tags: - description: >- API used for registering and managing OAuth 2.0 client applications. See the "Authentication" section above for more information. To authorize API requests to project44 for an API integration, first your client application must be registered with project44, which will issue your application a client id and secret. These credentials can then be used to generate bearer tokens, which can be included on all other API requests to authorize your client application. The client application is authorized through the project44 user management UI as a machine user with username "app-{client_id}@client-applications.project44.com". An admin user (with VOC user role "Customer Admin") must use HTTP Basic Authentication with this API to manage client applications. Basic Authentication is deprecated for all other APIs, besides token generation, in favor of passing the access token generated via OAuth 2.0. name: 'OAuth 2.0: Client Applications' - description: >- API for OAuth 2.0 token generation. See the "Authentication" section above for more information. Once your client application is registered, you can use the token generation endpoint to authenticate with your application's client id and secret in exchange for a bearer token to be included on all other API requests to authenticate as that client application. The client application is authorized through the project44 user management UI as a machine user with username "app-{client_id}@client-applications.project44.com". To generate an access token, you may authenticate your client application by providing its client id and secret either in the body of the request or in the form of HTTP Basic Authentication (but you may not use both ways in the same request). name: 'OAuth 2.0: Token Generation' - description: Quote LTL rates and retrieve transit times. name: 'LTL: Quotes' - description: API used for quoting volume LTL rates. name: 'VLTL: Quotes' - description: API used for scheduling volume LTL shipments. name: 'VLTL: Dispatch' - description: API used for scheduling LTL shipments. name: 'LTL: Dispatch' - description: API used for the retrieval of shipment status. name: 'LTL: Tracking' - description: Access shipment images. name: 'LTL: Image Retrieval' - description: >- project44's Truckload Tracking endpoints give you or your customers visibility into your truckload shipments, including such features as predictive ETAs and temperature tracking. Use these endpoints to initialize (POST), track (GET), update (PUT), cancel (POST) or delete(DELETE) truckload shipments. You can return shipment information by either unique system ID or by identifier. name: 'TL: Tracking' - description: >- API used for fetching vehicles within a specific radius and time window. Can only be used if opted into a project44 Co-Op. name: 'TL: Available Vehicles' - description: >- API for finding new connected carrier partners in the project44 network based on tracking performance name: 'TL: Connected Capacity' - description: API used for accessing rail shipment tracking. name: 'Rail: Tracking' - description: >- Manage capacity provider account groups. Groups are used to sort capacity provider accounts on a per customer or location basis. For example, you can add multiple capacity providers to a group if they all share lanes to the same origin/destination location. Another example, if certain customers receive different rates for a capacity provider, it may be reasonable to use separate groups for each customer's capacity provider accounts. Use these APIs to create (POST), retrieve (GET) or delete (DELETE) capacity provider account groups. name: Capacity Provider Account Group Management - description: >- Manage capacity provider accounts where a capacity provider is typically used to represent a carrier. Capacity providers have capacity provider account definitions also known as capacity provider account types. Capacity provider accounts are arranged in sets where each set contains one or more accounts for the same capacity provider. Each capacity provider's service is compatible with one and only one of these capacity provider accounts. Because most capacity providers have only one capacity provider account definition, most sets will contain only one capacity provider account. For capacity providers with more then one account definition, the set of accounts may consist of one account per account definition. For example, FedEx has a standard account to be used with LTL rating, LTL and Volume LTL dispatch, tracking, and imaging and a separate account for Volume LTL rating. A set of FedEx capacity provider accounts may have a single standard account, a single volume LTL rating account, or both. Providing the capacity provider account set code in the request resolves which capacity provider account to use. Capacity provider specific credential information is available in the portal. Use these APIs to create (POST), retrieve (GET), update (POST) or delete (DELETE) capacity provider accounts. name: Capacity Provider Account Management - description: >- Manage locations. Locations combine physical addresses with contact details and are used in configuring Capacity Provider Accounts and Stop Locations, for example to identify the Bill To party. Use these APIs to create (POST), update (PUT) or retrieve (GET) locations. These operations are also all available under the /locations endpoint for backward compatibility. name: Capacity Provider Contact Management - description: API used for orders and inventory items name: Order Visibility - description: API used for Shipment Tracking. name: 'Shipment: Tracking' - description: API used for tracking Loads. name: 'Shipment: Loads' - description: Access shipment images. name: 'Multi-Modal: Image Retrieval' - description: >- Create and fetch predefined custom attributes for shipments. You must be a organization admin to perform this operation. name: Shipment Attributes - description: >- Retrieve capacity provider information needed to set up capacity provider accounts. name: Capacity Provider Metadata - description: As a capacity provider, push project44 shipments and status updates. name: 'LTL: Push Tracking' - description: As a capacity provider, push project44 images related to shipments. name: 'LTL: Push Imaging' - description: As a capacity provider, push project44 shipment-related info and quotes. name: 'TL: Capacity Provider Push' - description: Track the location of an enrolled asset. name: Asset Tracking - description: Register client webhooks. name: Webhook - description: >- Track parcel shipments. Before parcel shipments can be tracked, they must first be initialized with a shipment identifier. Shipments cannot be modified once initialized and tracking has begun. To stop tracking a shipment, delete it. Use these APIs to initialize (POST), track (GET), or delete (DELETE) parcel shipments. name: 'Parcel: Tracking' - description: >- Receive updates for a tracked parcel by defining a parcel-tracking-webhook. name: 'Parcel: Webhook' - description: API for managing carrier documents. name: 'Carrier: Document' - description: API for Port Intelligence. name: 'Analytics: Port Intelligence' - name: Filter Suggestions - name: Shipment Search - description: API used for multi-modal Booking. name: 'Multi-modal: Booking' - description: API used for creating Electronic BOL name: 'LTL: Electronic BOL' - description: >- Operations to describe the payload expected from project44 when integrated with a webhook. name: Webhook Data paths: /api/v4/address/validate: post: description: >-

Required Fields

operationId: validateAddress requestBody: content: application/json: schema: $ref: '#/components/schemas/Address' application/xml: schema: $ref: '#/components/schemas/Address' description: address required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Address' application/xml: schema: $ref: '#/components/schemas/Address' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Validate specified address. tags: - Postal Address Validation /api/v4/analytics/port-intelligence/summary: get: description: >- Retrieves port intelligence data for given ports. Clients must include header Accept: text/csv for CSV format, or else the JSON format will be returned. operationId: getPortIntelligence parameters: - allowEmptyValue: false description: >- Query for port intelligence. Takes 1 to 10 UN/LOCODE codes separated by a comma. in: query name: locodes required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/PortIntelligenceCollection' text/csv: schema: $ref: '#/components/schemas/PortIntelligenceCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' text/csv: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' text/csv: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' text/csv: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Query for Port Intelligence. tags: - 'Analytics: Port Intelligence' /api/v4/assets/tracking: delete: description: >- Unenroll an asset from tracking. Information about the location of the asset will no longer be pushed. Required Query Parameters

The call will return with an HTTP 200 status if unenrollment is successful. Otherwise, it will return an appropriate HTTP error status code and error message.

operationId: unenrollAsset parameters: - description: equipmentIdentifier.type in: query name: equipmentIdentifier.type required: true schema: type: string - description: equipmentIdentifier.value in: query name: equipmentIdentifier.value required: true schema: type: string responses: '200': content: {} description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Unenroll an asset for tracking. tags: - Asset Tracking post: description: >- The Asset Tracking API offers users a way to enroll an asset for tracking, and conversely, to unenroll an asset from tracking. Prior to enrolling an asset, users must have an endpoint configured to receive the asset location data. Information about the location of the asset will be pushed to the enrollee until the asset is un-enrolled from tracking. The payload can be JSON or XML, e.g.,
{ 

          "webhookName": "KBX001", 

          "equipmentIdentifier": {"type": "RAIL_CAR_ID", "value":
        "ABCD1234567"}, 

          "expirationDateTime": "2019-05-01T00:00:00-05:00" 

        } 

        
OR
<AssetTrackingSubscription> 

          <webhookName>KBX001</webhookName> 

          <equipmentIdentifier> 

            <type>RAIL_CAR_ID</type> 

            <value>ABCD1234567</value> 

          </equipmentIdentifier> 

          <expirationDateTime>2019-05-01T00:00:00-05:00</expirationDateTime> 

        </AssetTrackingSubscription> 

        

The call will return with an HTTP 200 status if enrollment is successful. Otherwise, it will return an appropriate HTTP error status code and error message.


Required Fields Optional Field operationId: enrollAsset requestBody: content: application/json: schema: $ref: '#/components/schemas/AssetTrackingSubscription' application/xml: schema: $ref: '#/components/schemas/AssetTrackingSubscription' description: subscription required: true responses: '200': content: {} description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Enroll an asset for tracking. tags: - Asset Tracking /api/v4/capacityprovideraccountgroups: get: description: >- Each capacity provider account group returned in the response includes a unique id that can be used as reference in other APIs. operationId: queryCapacityProviderAccountGroup responses: '200': content: application/json: schema: $ref: >- #/components/schemas/CapacityProviderAccountGroupInfoCollection application/xml: schema: $ref: >- #/components/schemas/CapacityProviderAccountGroupInfoCollection description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the current list of all available capacity provider account groups. tags: - Capacity Provider Account Group Management post: description: >- The capacity provider account group requires a unique code and may use an optional name. The response will include a unique id that can be used to reference the capacity provider account group in other APIs.

Required Fields

operationId: createCapacityProviderAccountGroupInfo requestBody: content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountGroupInfo' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountGroupInfo' description: capacityProviderAccountGroupInfo required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountGroupInfo' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountGroupInfo' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a new capacity provider account group. tags: - Capacity Provider Account Group Management /api/v4/capacityprovideraccountgroups/{id}: delete: description: |-

Required Fields

operationId: deleteCapacityProviderAccountGroupInfo parameters: - description: id in: path name: id required: true schema: format: int64 type: integer responses: '204': content: {} description: No Content '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete the capacity provider account group. tags: - Capacity Provider Account Group Management /api/v4/capacityprovideraccounts: get: description: >- Each capacity provider account infos object returned in the response includes a unique ID that can be used as a reference in other APIs. It's important to note that we no longer send decrypted credentials through this service. A maximum of 1000 objects may be returned from a single API call. operationId: queryListCapacityProviderAccountInfos parameters: - description: accountGroupCode in: query name: accountGroupCode schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfosCollection' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfosCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the current list of all available capacity provider account infos. tags: - Capacity Provider Account Management post: description: >- The capacity provider account uses the capacity provider account infos object. No more then 1000 accounts may belong to any account group.Use the "Capacity Provider Metadata" API to get account definition information for a capacity provider.

Required Fields

operationId: createCapacityProviderAccountInfos requestBody: content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' description: capacityProviderAccountInfos required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a capacity provider account. tags: - Capacity Provider Account Management /api/v4/capacityprovideraccounts/{id}: delete: description: |-

Required Fields

operationId: deleteCapacityProviderAccountInfos parameters: - description: id in: path name: id required: true schema: format: int64 type: integer responses: '204': content: {} description: No Content '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete capacity provider account infos. tags: - Capacity Provider Account Management get: description: |-

Required Fields

operationId: querySingleCapacityProviderAccountInfos parameters: - description: id in: path name: id required: true schema: format: int64 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the infos object for a single capacity provider. tags: - Capacity Provider Account Management put: description: >- The capacity provider account uses the capacity provider account infos object.

Required Fields

operationId: updateCapacityProviderAccountInfos parameters: - description: id in: path name: id required: true schema: format: int64 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' description: capacityProviderAccountInfos required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' application/xml: schema: $ref: '#/components/schemas/CapacityProviderAccountInfos' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update the capacity provider account. tags: - Capacity Provider Account Management /api/v4/capacityproviders: get: description: >- Provides a list of all capacity providers for which accounts can be set up within project44. Note that in some cases, like with truckload tracking, a capacity provider account is not needed to connect to a capacity provider -- e.g., if project44 has an ELD connection set up with that capacity provider directly. In these cases, that capacity provider will not currently be returned by this API. This API is solely for capacity providers requiring account information. operationId: findCapacityProviders responses: '200': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderCollection' application/xml: schema: $ref: '#/components/schemas/CapacityProviderCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get a list of all capacity providers for which accounts can be set up. tags: - Capacity Provider Metadata /api/v4/capacityproviders/ltl/shipments: put: description: >-

Required Fields

operationId: upsertShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlCapacityProviderPushShipment' application/xml: schema: $ref: '#/components/schemas/LtlCapacityProviderPushShipment' description: shipment required: true responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Upsert shipment details. tags: - 'LTL: Push Tracking' /api/v4/capacityproviders/ltl/shipments/images: post: description: >-

Required Fields

operationId: createShipmentDocumentImage requestBody: content: application/json: schema: $ref: '#/components/schemas/ShipmentImage' application/xml: schema: $ref: '#/components/schemas/ShipmentImage' description: shipmentImage required: true responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create image of shipment document. tags: - 'LTL: Push Imaging' /api/v4/capacityproviders/ltl/shipments/statusupdates: post: description: >-

Required Fields

operationId: createStatusUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlCapacityProviderPushStatusUpdate' application/xml: schema: $ref: '#/components/schemas/LtlCapacityProviderPushStatusUpdate' description: statusUpdate required: true responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create status updates for a shipment. tags: - 'LTL: Push Tracking' /api/v4/capacityproviders/metadata: get: description: >- Provides metadata about capacity providers for which capacity provider accounts can be created within project44. This API works alongside the capacity provider account management APIs, providing the services supported by each capacity provider and the fields needed to create an account with one, along with what that capacity provider calls these fields in their system to make finding the necessary account information easy. Note that in some cases, like with truckload tracking, a capacity provider account is not needed to connect to a capacity provider -- e.g., if project44 has an ELD connection set up with that capacity provider directly. In these cases, that capacity provider will not currently be returned by this API. This API is solely for capacity providers requiring account information.

Required Fields

operationId: findCapacityProviderMetadata parameters: - description: Capacity provider identifier type. in: query name: capacityProviderIdentifier.type schema: enum: - SCAC - DOT_NUMBER - MC_NUMBER - P44_EU - SYSTEM - P44_GLOBAL - VAT type: string - description: Capacity provider identifier value. in: query name: capacityProviderIdentifier.value schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/CapacityProviderMetadata' application/xml: schema: $ref: '#/components/schemas/CapacityProviderMetadata' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get metadata for a specific capacity provider. tags: - Capacity Provider Metadata /api/v4/capacityproviders/parcel/shipments/statusupdates: post: description: This endpoint allows for carriers to send tracking data to project44. operationId: createParcelStatusUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/ParcelCapacityProviderPushStatusUpdate' application/xml: schema: $ref: '#/components/schemas/ParcelCapacityProviderPushStatusUpdate' description: statusUpdate required: true responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: This endpoint allows for carriers to send tracking data to project44. tags: - 'Parcel: Push Tracking' /api/v4/capacityproviders/tl/equipmentIdentifierAssignments: post: operationId: postEquipmentIdentifierAssignmentUsingPOST requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadEquipmentIdentifierAssignment' application/xml: schema: $ref: '#/components/schemas/TruckloadEquipmentIdentifierAssignment' description: truckloadEquipmentIdentifierAssignment required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TruckloadEquipmentIdentifierAssignment' application/xml: schema: $ref: '#/components/schemas/TruckloadEquipmentIdentifierAssignment' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: postEquipmentIdentifierAssignment tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/shipments/intermediateStops: post: operationId: postIntermediateStopsUsingPOST requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadIntermediateStopsUpdate' application/xml: schema: $ref: '#/components/schemas/TruckloadIntermediateStopsUpdate' description: intermediateStopsUpdate required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TruckloadIntermediateStopsUpdate' application/xml: schema: $ref: '#/components/schemas/TruckloadIntermediateStopsUpdate' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: postIntermediateStops tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/shipments/statusUpdates: post: description: This endpoint allows for carriers to send tracking data to project44 operationId: postStatusUpdate requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderPushStatusUpdate' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderPushStatusUpdate' description: statusUpdate required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderPushStatusUpdate' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderPushStatusUpdate' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: 'TL: Carrier Push Tracking' tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/shipments/{shipmentLegId}/events: post: operationId: createTruckloadShipmentEventUsingPOST parameters: - description: shipmentLegId in: path name: shipmentLegId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackedShipmentEvent' application/xml: schema: $ref: '#/components/schemas/TrackedShipmentEvent' description: shipmentEvent required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TrackedShipmentEvent' application/xml: schema: $ref: '#/components/schemas/TrackedShipmentEvent' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: createTruckloadShipmentEvent tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/shipments/{shipmentLegId}/stops/{stopId}/additional-appointment-windows: put: operationId: updateTruckloadAdditionalAppointmentWindowUsingPUT parameters: - description: shipmentLegId in: path name: shipmentLegId required: true schema: format: uuid type: string - description: stopId in: path name: stopId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadAdditionalAppointmentWindow' application/xml: schema: $ref: '#/components/schemas/TruckloadAdditionalAppointmentWindow' description: additionalAppointmentWindow required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TruckloadAdditionalAppointmentWindow' application/xml: schema: $ref: '#/components/schemas/TruckloadAdditionalAppointmentWindow' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: updateTruckloadAdditionalAppointmentWindow tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/tenders/{tenderIdentifier}/acceptances: post: description: >-

Required Fields

operationId: postTenderAcceptance parameters: - description: The capacity provider's identifier for the tender being accepted. in: path name: tenderIdentifier required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderAcceptance' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderAcceptance' description: tenderAcceptance required: true responses: '200': content: application/json: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderAcceptanceConfirmation application/xml: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderAcceptanceConfirmation description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Accept a shipper's request to handle a shipment tender. tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/tenders/{tenderIdentifier}/declines: post: description: |-

Required Fields

operationId: postTenderDecline parameters: - description: The capacity provider's identifier for the tender being declined. in: path name: tenderIdentifier required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderDecline' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderDecline' description: tenderDecline required: true responses: '200': content: application/json: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderDeclineConfirmation application/xml: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderDeclineConfirmation description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Decline the opportunity to bid on a particular shipment tender. tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/tenders/{tenderIdentifier}/errors: post: description: |-

Required Fields

operationId: postTenderError parameters: - description: The capacity provider's identifier for the tender having an error. in: path name: tenderIdentifier required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderError' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderError' description: tenderError required: true responses: '200': content: application/json: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderErrorConfirmation application/xml: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderErrorConfirmation description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: >- Reject the particular shipment tender due to an error with the tendering data. tags: - 'TL: Capacity Provider Push' /api/v4/capacityproviders/tl/tenders/{tenderIdentifier}/quotes: post: description: >-

Required Fields

operationId: postTenderQuotes parameters: - description: The capacity provider's identifier for the tender being quoted. in: path name: tenderIdentifier required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderRateQuote' application/xml: schema: $ref: '#/components/schemas/TruckloadCapacityProviderTenderRateQuote' description: rateQuote required: true responses: '200': content: application/json: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderRateQuoteConfirmation application/xml: schema: $ref: >- #/components/schemas/TruckloadCapacityProviderTenderRateQuoteConfirmation description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Provide a rate quote in response to a shipment tender. tags: - 'TL: Capacity Provider Push' /api/v4/contacts: get: description: >- Each contact location returned in the response includes a unique id that can be used as reference in other APIs. operationId: listContacts responses: '200': content: application/json: schema: $ref: '#/components/schemas/LocationCollection' application/xml: schema: $ref: '#/components/schemas/LocationCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the current list of all available contact locations. tags: - Capacity Provider Contact Management post: description: >- A contact location consists of an address and other contact info. Note that duplicate locations are allowed although each will be given a unique id which is returned here in the response.

Required Fields

operationId: createContact requestBody: content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: location required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a new contact. tags: - Capacity Provider Contact Management /api/v4/contacts/{id}: get: description: |-

Required Fields

operationId: getContact parameters: - description: id in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the contact location associated with the provided id. tags: - Capacity Provider Contact Management put: description: >- The response reflects the changes made to the contact location.

Required Fields

operationId: updateContact parameters: - description: id in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: location required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update the specified contact. tags: - Capacity Provider Contact Management /api/v4/images/query: post: description: >-

Required Fields

operationId: queryImages requestBody: content: application/json: schema: $ref: '#/components/schemas/MultiModalImageQuery' application/xml: schema: $ref: '#/components/schemas/MultiModalImageQuery' description: multiModalImageQuery required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/MultiModalImageReference' application/xml: schema: $ref: '#/components/schemas/MultiModalImageReference' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Query for shipment images. tags: - 'Multi-Modal: Image Retrieval' /api/v4/inventory/items: post: description: >- InventoryItem should be passed without populating the id field. A unique id will be generated and returned in the response. This id will be used to identify the item across all other methods. This method will return 202 Accepted when the item has been queued for creation. The item is created asynchronously. operationId: createItem requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryItem' description: item required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/InventoryId' application/xml: schema: $ref: '#/components/schemas/InventoryId' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create an item. tags: - Order Visibility /api/v4/inventory/items/bulk: post: operationId: createItemsUsingPOST requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryItemCollection' description: items required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryIdCollection' application/xml: schema: $ref: '#/components/schemas/InventoryIdCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: createItems tags: - Order Visibility /api/v4/inventory/items/search: post: description: >- Use the BasicInventoryItemSearchCriteria, page number, page size and sort field to perform Inventory Item search operationId: searchItems parameters: - allowEmptyValue: false description: 'Page number valid range: [1, 50]' in: query name: page schema: format: int32 type: integer - allowEmptyValue: false description: 'Page size valid range: [1, 100]' in: query name: size schema: format: int32 type: integer - allowEmptyValue: false description: >- Inventory Sortable Fields: [stockKeepingUnit, description, universalProductCode, inventoryIdentifiers.type, manufacturedDateTime, packagedDateTime, sellByDateTime, consumeByDateTime, lineItemHazmatDetail.hazardClass] in: query name: sort schema: default: stockKeepingUnit:ASC type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicInventoryItemSearchCriteria' description: criteria required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryItemPage' application/xml: schema: $ref: '#/components/schemas/InventoryItemPage' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Search for items. tags: - Order Visibility /api/v4/inventory/items/{id}: delete: description: Use InventoryItem.id to delete the InventoryItem. operationId: deleteItem parameters: - description: The project44-generated id of the item you wish to delete. in: path name: id required: true schema: type: string responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete an item. tags: - Order Visibility get: description: Use the id returned from createItem to retrieve the InventoryItem. operationId: getItem parameters: - description: The project44-generated id of the item you wish to query. in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryItem' application/xml: schema: $ref: '#/components/schemas/InventoryItem' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get an item by project44 id. tags: - Order Visibility put: description: >- InventoryItem should be passed with the id field populated with the value returned from createItem. InventoryItems returned from the service will have id populated. InventoryItem.id must match the id in the URL. This method will return 202 Accepted when the item has been queued for update. The item is updated asynchronously.

Required Fields

operationId: updateItem parameters: - description: The project44-generated id of the item you wish to update. in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryItem' description: item required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/InventoryId' application/xml: schema: $ref: '#/components/schemas/InventoryId' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update an existing item. tags: - Order Visibility /api/v4/inventory/orders: post: description: >- InventoryOrder should be passed without populating the id field. A unique id will be generated and returned in the response. This id will be used to identify the order across all other methods. This method will return 202 Accepted when the order has been queued for creation. The order is created asynchronously.

Required Fields

operationId: createOrder requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryOrder' description: order required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/InventoryId' application/xml: schema: $ref: '#/components/schemas/InventoryId' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create an order. tags: - Order Visibility /api/v4/inventory/orders/search: post: description: >- Use the BasicInventoryOrderSearchCriteria, page number, page size and sort field to perform Inventory Order search. operationId: searchOrders parameters: - allowEmptyValue: false description: 'Page number valid range: [1, 50]' in: query name: page schema: default: 1 format: int32 type: integer - allowEmptyValue: false description: 'Page size valid range: [1, 1000]' in: query name: size schema: default: 30 format: int32 type: integer - allowEmptyValue: false description: >- Order Sortable Fields: [orderType, orderIdentifier, statusCode, orderSubmissionDateTime, supplierReadyDateTimeWindow.startDateTime, supplierReadyDateTimeWindow.endDateTime, originalDeliveryDateTimeWindow.startDateTime,originalDeliveryDateTimeWindow.endDateTime, derivedOrderHealth.estimatedTimeOfArrival] in: query name: sort schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/BasicInventoryOrderSearchCriteria' description: criteria required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryOrderPage' application/xml: schema: $ref: '#/components/schemas/InventoryOrderPage' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Search for orders. tags: - Order Visibility /api/v4/inventory/orders/{id}: delete: description: Use InventoryOrder.id to delete the InventoryOrder. operationId: deleteOrder parameters: - description: The project44-generated id of the order you wish to delete. in: path name: id required: true schema: type: string responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete an order. tags: - Order Visibility get: description: Use the id returned from createOrder to retrieve the InventoryOrder. operationId: getOrder parameters: - description: The project44-generated id of the order you wish to query. in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/InventoryOrder' application/xml: schema: $ref: '#/components/schemas/InventoryOrder' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Retrieve an order by project44 id. tags: - Order Visibility put: description: >- InventoryOrder should be passed with the id field populated with the value returned from createOrder. Orders returned from the service will have id populated. InventoryOrder.id must match the id in the URL. This method will return 202 Accepted when the order has been queued for update. The order is updated asynchronously.

Required Fields

operationId: updateOrder parameters: - description: The project44-generated id of the order you wish to update. in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/InventoryOrder' description: order required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/InventoryId' application/xml: schema: $ref: '#/components/schemas/InventoryId' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update an existing order. tags: - Order Visibility /api/v4/inventory/orders/{id}/related-orders: get: description: >- Use the InventoryOrder.id (project44 generated id) from an existing order to retrieve all related orders. operationId: getRelatedOrders parameters: - description: >- The project44-generated id of the order for which you wish to query related orders. in: path name: id required: true schema: type: string - allowEmptyValue: false description: 'Page number valid range: [1, 50]' in: query name: page schema: default: 1 format: int32 type: integer - allowEmptyValue: false description: 'Page size valid range: [1, 100]' in: query name: size schema: default: 30 format: int32 type: integer - allowEmptyValue: false description: >- Order Sortable Fields: [orderType, orderIdentifier, statusCode, orderSubmissionDateTime, supplierReadyDateTimeWindow.startDateTime, supplierReadyDateTimeWindow.endDateTime, originalDeliveryDateTimeWindow.startDateTime,originalDeliveryDateTimeWindow.endDateTime, derivedOrderHealth.estimatedTimeOfArrival] in: query name: sort schema: default: orderSubmissionDateTime:DESC type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Page_InventoryOrder_' application/xml: schema: $ref: '#/components/schemas/Page_InventoryOrder_' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get related orders. tags: - Order Visibility /api/v4/loads: post: description: >-

Required Fields

operationId: createLoad requestBody: content: application/json: schema: $ref: '#/components/schemas/Load' description: load required: true responses: '202': content: application/json: schema: $ref: '#/components/schemas/LoadId' application/xml: schema: $ref: '#/components/schemas/LoadId' description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a load. tags: - 'Shipment: Loads' /api/v4/loads/{loadId}: delete: description: |-

Required Fields

operationId: deleteLoad parameters: - description: loadId in: path name: loadId required: true schema: format: uuid type: string responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete a load. tags: - 'Shipment: Loads' get: description: |-

Required Fields

operationId: getLoad parameters: - description: loadId in: path name: loadId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Load' application/xml: schema: $ref: '#/components/schemas/Load' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get a load by load id. tags: - 'Shipment: Loads' put: description: >-

Required Fields

operationId: updateLoad parameters: - description: loadId in: path name: loadId required: true schema: format: uuid type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Load' description: load required: true responses: '202': content: {} description: Accepted '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update a load. tags: - 'Shipment: Loads' /api/v4/locations: get: description: >- Each location returned in the response includes a unique id that can be used as reference in other APIs. operationId: listLocations responses: '200': content: application/json: schema: $ref: '#/components/schemas/LocationCollection' application/xml: schema: $ref: '#/components/schemas/LocationCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the current list of all available locations. tags: - location-controller post: description: >- A location consists of an address and an optional contact. Note that duplicate locations are allowed although each will be given a unique id which is returned here in the response.

Required Fields

operationId: createLocation requestBody: content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: location required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a new location. tags: - location-controller /api/v4/locations/{id}: get: description: |-

Required Fields

operationId: getLocation parameters: - description: id in: path name: id required: true schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the location associated with the provided id. tags: - location-controller put: description: >- The response reflects the changes made to the location.

Required Fields

operationId: updateLocation parameters: - description: id in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: location required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/Location' application/xml: schema: $ref: '#/components/schemas/Location' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update the specified location. tags: - location-controller /api/v4/ltl/dispatchedshipments: post: description: >-

Required Fields

operationId: createShipment parameters: - description: X-Tenant-Purpose in: header name: X-Tenant-Purpose schema: default: DEFAULT type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlDispatchedShipment' application/xml: schema: $ref: '#/components/schemas/LtlDispatchedShipment' description: shipment required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LtlDispatchedShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/LtlDispatchedShipmentConfirmation' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a shipment. tags: - 'LTL: Dispatch' /api/v4/ltl/images/query: post: description: >-

Required Fields

operationId: queryLtlImages requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlImageQuery' application/xml: schema: $ref: '#/components/schemas/LtlImageQuery' description: ltlImageQuery required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LtlImageReference' application/xml: schema: $ref: '#/components/schemas/LtlImageReference' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Query for LTL shipment images. tags: - 'LTL: Image Retrieval' /api/v4/ltl/quotes/rates/query: post: description: >-

Required Fields

operationId: queryLtlRateQuotes parameters: - description: X-Tenant-Purpose in: header name: X-Tenant-Purpose schema: default: DEFAULT type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RateQuoteQuery' application/xml: schema: $ref: '#/components/schemas/RateQuoteQuery' description: rateQuoteQuery required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RateQuoteCollection' application/xml: schema: $ref: '#/components/schemas/RateQuoteCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Query for rate quotes. tags: - 'LTL: Quotes' /api/v4/ltl/quotes/transittimes/query: post: description: >-

Required Fields

operationId: queryLtlTransitTimeQuotes requestBody: content: application/json: schema: $ref: '#/components/schemas/TransitTimeQuoteQuery' application/xml: schema: $ref: '#/components/schemas/TransitTimeQuoteQuery' description: transitTimeQuoteQuery required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TransitTimeQuoteCollection' application/xml: schema: $ref: '#/components/schemas/TransitTimeQuoteCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Query for transit time quotes. tags: - 'LTL: Quotes' /api/v4/ltl/shipments/cancellations: post: description: >-

Required Fields

operationId: cancelLtlDispatchedShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlShipmentCancellation' application/xml: schema: $ref: '#/components/schemas/LtlShipmentCancellation' description: shipmentCancellation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LtlShipmentCancellationConfirmation' application/xml: schema: $ref: '#/components/schemas/LtlShipmentCancellationConfirmation' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Cancel a dispatched shipment by shipment identifier. tags: - 'LTL: Dispatch' /api/v4/ltl/shipments/{id}/cancellations: post: description: >-

Required Fields

operationId: cancelLtlDispatchedShipmentById parameters: - description: >- The project44-generated id of the dispatched LTL shipment to be cancelled. in: path name: id required: true schema: format: int64 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlShipmentCancellation' application/xml: schema: $ref: '#/components/schemas/LtlShipmentCancellation' description: shipmentCancellation required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LtlShipmentCancellationConfirmation' application/xml: schema: $ref: '#/components/schemas/LtlShipmentCancellationConfirmation' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Cancel a dispatched shipment by id. tags: - 'LTL: Dispatch' /api/v4/ltl/trackedshipments: post: description: >- Use this POST call to start a tracking job, initializing LTL tracking. The tracking job will run for a given duration (designated with the startDateTime and endDateTime parameters), gathering updates from the carrier and reference numbers detailed in the API call. Once a tracking update has been pulled from the carrier into the project44 tracking job, you can access the information via the GET requests below this endpoint. Note that if your dispatch was done through project44, you do not need to initialize tracking. project44 will implicitly start tracking based on the data provided in the dispatch.

Required Fields

NOTE: The appointmentWindow object in shipmentStops does not support a localTimeZoneIdentifier due to an automated project44 process that detects time zone based on the stop's location. Please make sure to provide startDateTime and endDateTime in local time. operationId: createLtlTrackedShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlTrackedShipment' application/xml: schema: $ref: '#/components/schemas/LtlTrackedShipment' description: shipment required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/LtlTrackedShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/LtlTrackedShipmentConfirmation' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Start tracking an LTL shipment tags: - 'LTL: Tracking' /api/v4/ltl/trackedshipments/statuses: get: description: >- Use this endpoint to return the status of an LTL shipment according to a given identifier value. Note that this endpoint may return multiple shipments if the identifier is used for multiple shipments such as with a pickup number.

Required Fields

operationId: getLtlShipmentStatusesByIdentifier parameters: - allowEmptyValue: false description: >- Set to "TRUE" if you wish to receive the shipment status history ('statusUpdates') in the response. in: query name: includeStatusHistory schema: default: false type: boolean - allowEmptyValue: false description: The source system that created the identifier. in: query name: shipmentIdentifier.source schema: enum: - CUSTOMER - CAPACITY_PROVIDER type: string - allowEmptyValue: false description: The type of identifier for which to search. in: query name: shipmentIdentifier.type schema: enum: - PRO - BILL_OF_LADING - CUSTOMER_REFERENCE - PICKUP - PURCHASE_ORDER - EXTERNAL type: string - allowEmptyValue: false description: The identifier value for which to search. in: query name: shipmentIdentifier.value schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/LtlShipmentStatusCollection' application/xml: schema: $ref: '#/components/schemas/LtlShipmentStatusCollection' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Returns the status of an LTL shipment by identifier. tags: - 'LTL: Tracking' /api/v4/ltl/trackedshipments/{id}: delete: description: >- Use this endpoint to delete a tracked shipment with the given id. For example, you could delete a shipment that has been canceled or was never picked up. operationId: deleteLtlTrackedShipment parameters: - description: >- The project44-generated id of the LTL tracked shipment you wish to be deleted. in: path name: id required: true schema: format: int64 type: integer responses: '204': content: {} description: No Content '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete shipment by ID. tags: - 'LTL: Tracking' put: description: >- Use this endpoint to update a shipment. To achieve this, this endpoint deletes the current shipment and creates a new shipment on which it will begin tracking. This updates how we track the shipment but will not affect the dispatch with the carrier. Note that you must pass the entire details for the shipment, just as you would on a POST. Note that you only need to update a shipment when the carrier, time, or date has changed.

Required Fields

operationId: updateLtlTrackedShipment parameters: - description: >- The project44-generated id of the LTL tracked shipment you wish to update. in: path name: id required: true schema: format: int64 type: integer requestBody: content: application/json: schema: $ref: '#/components/schemas/LtlTrackedShipment' description: shipment required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/LtlTrackedShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/LtlTrackedShipmentConfirmation' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Updates an LTL shipment tags: - 'LTL: Tracking' /api/v4/ltl/trackedshipments/{id}/statuses: get: description: >- Use this endpoint to return the status of an LTL shipment according to a given unique system ID, provided in the parameters of the call. operationId: getLtlShipmentStatus parameters: - description: >- The project44-generated id of the tracked or dispatched LTL shipment you wish to query. in: path name: id required: true schema: format: int64 type: integer - allowEmptyValue: false description: >- Set to "TRUE" if you wish to receive a publicly accessible URL to the shipment details in the response. in: query name: includeMapUrl schema: default: false type: boolean - allowEmptyValue: false description: >- Set to "TRUE" if you wish to receive the shipment status history ('statusUpdates') in the response. in: query name: includeStatusHistory schema: default: false type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/LtlShipmentStatus' application/xml: schema: $ref: '#/components/schemas/LtlShipmentStatus' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: 'Returns the status of an LTL shipment by unique system ID ' tags: - 'LTL: Tracking' /api/v4/oauth2/client-applications: get: description: List all client applications registered in your project44 account. operationId: getApplications responses: '200': content: '*/*': schema: $ref: '#/components/schemas/ClientApplicationCollection' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Get client applications. tags: - 'OAuth 2.0: Client Applications' post: description: >- Register a new client application, in order to receive a client id and secret that can be used to authenticate with project44's OAuth 2.0 token generation endpoint. Generate tokens to access other project44 APIs. Note you must record the client secret returned here securely as it cannot be retrieved again. You can, however, generate a new client secret via the "new-secret" endpoint in case you forget it or need to rotate it.

Required Fields

operationId: createApplication requestBody: content: application/json: schema: $ref: '#/components/schemas/ClientApplication' description: clientApplication required: true responses: '201': content: '*/*': schema: $ref: '#/components/schemas/ClientApplication' description: Created '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Register client application. tags: - 'OAuth 2.0: Client Applications' /api/v4/oauth2/client-applications/{id}: delete: description: >- Delete an existing client application by id. Deleting an application invalidates its client credentials (id and secret) and deletes its associated project44 app user (with username "app-{client_id}@client-applications.project44.com").

Required Fields

operationId: deleteApplication parameters: - description: >- The id of the client application, generated and assigned by project44 via the OAuth 2.0 client applications APIs. in: path name: id required: true schema: type: string responses: '204': content: {} description: No Content '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Delete client application. tags: - 'OAuth 2.0: Client Applications' get: description: |- Get a specific client application by client id.

Required Fields

operationId: getApplication parameters: - description: >- The id of the client application, generated and assigned by project44 via the OAuth 2.0 client applications APIs. in: path name: id required: true schema: type: string responses: '200': content: '*/*': schema: $ref: '#/components/schemas/ClientApplication' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Get client application. tags: - 'OAuth 2.0: Client Applications' put: description: >- Update the name of an existing client application by id. The secret cannot be updated by the client. To generate a new secret, use the "new-secret" endpoint.

Required Fields

operationId: updateApplication parameters: - description: >- The id of the client application, generated and assigned by project44 via the OAuth 2.0 client applications APIs. in: path name: id required: true schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/ClientApplication' description: clientApplication required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/ClientApplication' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Update client application. tags: - 'OAuth 2.0: Client Applications' /api/v4/oauth2/client-applications/{id}/new-secret: post: description: >- In case you have forgotten your application's client secret, or you wish to rotate it, generate a new one. Doing so invalidates the former client secret for the application, but does not invalidate any active access tokens you may have outstanding. Note you must record the client secret returned here securely as it cannot be retrieved again.

Required Fields

operationId: generateNewClientSecret parameters: - description: >- The id of the client application, generated and assigned by project44 via the OAuth 2.0 client applications APIs. in: path name: id required: true schema: type: string responses: '201': content: '*/*': schema: $ref: '#/components/schemas/ClientApplication' description: Created '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Generate a new client secret. tags: - 'OAuth 2.0: Client Applications' /api/v4/oauth2/token: post: description: >- Authenticate with your client application's credentials (id and secret) to generate a new project44 access token. The resulting access token can be used as a bearer token to access your project44 account and data via project44's other APIs, while acting as that client application. You may authenticate your client application either by passing the id and secret via HTTP Basic Authentication (via the "Authorization" HTTP header) or via the client_id and client_secret fields in the POST request body with no "Authorization" header included. You may not use both approaches to authenticate the same request. The POST request body must contain the request fields as URL-encoded parameters (a URL-encoded form) and must have the "Content-Type" HTTP header set to "application/x-www-form-urlencoded". (Note: The endpoint "/api/v4/oauth/token" is deprecated. Please use this endpoint instead: "/api/v4/oauth2/token".)

Required Fields

operationId: grantTokenOAuth2 requestBody: content: application/x-www-form-urlencoded: schema: $ref: '#/components/schemas/grantTokenOAuth2_request' responses: '200': content: application/json: schema: $ref: '#/components/schemas/OAuthToken' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/OAuthError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/OAuthError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/OAuthError' description: User not authorized to perform this operation security: - basicAuth: [] summary: Grant access token. tags: - 'OAuth 2.0: Token Generation' /api/v4/ocean/shipments: post: description: >-

Required Fields

operationId: createOceanShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/OceanShipment' application/xml: schema: $ref: '#/components/schemas/OceanShipment' description: oceanShipment required: true responses: '201': content: application/json: schema: $ref: '#/components/schemas/OceanShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/OceanShipmentConfirmation' description: Created '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Create a tracked ocean shipment from a container id or vessel id. tags: - 'Ocean: Tracking' /api/v4/ocean/shipments/{id}: delete: description: |-

Required Fields

operationId: deleteOceanShipment parameters: - description: >- The project44-generated shipmentId or oceanLegId associated with this shipment. in: path name: id required: true schema: format: uuid type: string responses: '204': content: {} description: No Content '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete shipment by project44 id. tags: - 'Ocean: Tracking' /api/v4/ocean/shipments/{id}/statuses: get: description: |-

Required Fields

operationId: getOceanShipmentStatuses parameters: - description: >- The project44-generated shipmentId or oceanLegId associated with this shipment. in: path name: id required: true schema: format: uuid type: string - allowEmptyValue: false description: >- Determines whether the custom shipment attributes should be included in the response. in: query name: includeCustomAttributes schema: default: false type: boolean - allowEmptyValue: false description: >- If this value is set to true, the response payload will contain a public link to view the shipment in the VOC in: query name: includeMapUrl schema: default: false type: boolean - allowEmptyValue: false description: >- Determines whether the history of the container's position over water should be included in the response. in: query name: includePositionData schema: default: false type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/OceanTrackedShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/OceanTrackedShipmentConfirmation' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get shipment statuses by project44 id. tags: - 'Ocean: Tracking' /api/v4/parcel/shipments: post: description: >-

Required Fields

operationId: createParcelShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/ParcelShipment' application/xml: schema: $ref: '#/components/schemas/ParcelShipment' description: parcelShipment required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ParcelShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/ParcelShipmentConfirmation' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Initialize parcel shipment for tracking. tags: - 'Parcel: Tracking' /api/v4/parcel/shipments/{id}: delete: description: |-

Required Fields

operationId: deleteParcelShipment parameters: - description: id in: path name: id required: true schema: format: int64 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/ParcelShipmentDeleteConfirmation' application/xml: schema: $ref: '#/components/schemas/ParcelShipmentDeleteConfirmation' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete an existing parcel shipment using the unique system id. tags: - 'Parcel: Tracking' /api/v4/parcel/shipments/{id}/statuses: get: description: |-

Required Fields

operationId: getParcelShipmentStatusById parameters: - description: id in: path name: id required: true schema: format: int64 type: integer - description: includeStatusHistory in: query name: includeStatusHistory schema: type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/ParcelShipmentStatus' application/xml: schema: $ref: '#/components/schemas/ParcelShipmentStatus' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the status of a parcel shipment using the unique system id. tags: - 'Parcel: Tracking' /api/v4/parcel/webhook/endpoint: delete: operationId: deleteParcelEndpoint responses: '200': content: {} description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete webhook endpoint - if one is defined. tags: - 'Parcel: Webhook' get: operationId: getParcelEndpoint responses: '200': content: application/json: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' application/xml: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get the webhook URL where shipment tracking updates are posted. tags: - 'Parcel: Webhook' put: description: |-

Required Fields

operationId: createParcelEndpoint requestBody: content: application/json: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' application/xml: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' description: pushEndpoint required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' application/xml: schema: $ref: '#/components/schemas/ParcelWebhookEndpoint' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Add or update webhook where shipment tracking updates are posted. tags: - 'Parcel: Webhook' /api/v4/rail/shipments/: post: description: >- If the shipment is initialized by using geoCoordinates instead of an address, it may be possible that a street address will not be returned in the response.

Required Fields

operationId: createRailShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/RailShipment' application/xml: schema: $ref: '#/components/schemas/RailShipment' description: shipment required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/RailShipmentConfirmation' application/xml: schema: $ref: '#/components/schemas/RailShipmentConfirmation' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Initialize a shipment for tracking. tags: - 'Rail: Tracking' /api/v4/rail/shipments/statuses: get: description: |-

Required Fields

operationId: getRailShipmentStatus parameters: - allowEmptyValue: false description: >- Whether shipment status history ('statusUpdates') should be included in the response. in: query name: includeStatusHistory schema: default: false type: boolean - description: The type of the shipment identifier. in: query name: shipmentIdentifier.type schema: enum: - BILL_OF_LADING - WAYBILL type: string - description: The value of the shipment identifier. in: query name: shipmentIdentifier.value schema: type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/RailShipmentStatus' application/xml: schema: $ref: '#/components/schemas/RailShipmentStatus' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get a shipment status by shipment identifier. tags: - 'Rail: Tracking' /api/v4/rail/shipments/{id}: delete: description: |-

Required Fields

operationId: deleteRailShipment parameters: - description: The project44-generated id of the shipment being queried. in: path name: id required: true schema: type: string responses: '200': content: {} description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete a shipment by system id. tags: - 'Rail: Tracking' /api/v4/rail/shipments/{id}/statuses: get: description: |-

Required Fields

operationId: getRailShipmentStatusById parameters: - description: The project44-generated id of the shipment being queried. in: path name: id required: true schema: type: string - allowEmptyValue: false description: >- Whether shipment status history ('statusUpdates') should be included in the response. in: query name: includeStatusHistory schema: default: false type: boolean responses: '200': content: application/json: schema: $ref: '#/components/schemas/RailShipmentStatus' application/xml: schema: $ref: '#/components/schemas/RailShipmentStatus' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get a shipment status by system id. tags: - 'Rail: Tracking' /api/v4/shipmentattributedefinitions: get: operationId: findShipmentAttributeDefinitions responses: '200': content: '*/*': schema: $ref: '#/components/schemas/ShipmentAttributeDefinitionCollection' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get all shipment attributes tags: - Shipment Attributes post: description: |- The name for an attribute. Must be unique.

Required Fields

operationId: createShipmentAttributeDefinition requestBody: content: application/json: schema: $ref: '#/components/schemas/ShipmentAttributeDefinition' description: attributeDefinition required: true responses: '200': content: '*/*': schema: $ref: '#/components/schemas/ShipmentAttributeDefinitionConfirmation' description: OK '400': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: '*/*': schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: >- Create a predefined attribute. You must be a organization admin to perform this operation. tags: - Shipment Attributes /api/v4/shipments/pronumbers/query: get: operationId: getProNumberBlock responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/ProNumberBlockDto' type: array description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get all ProNumber blocks. tags: - 'LTL: Dispatch' post: description: >-

Required Fields

operationId: generateProNumber requestBody: content: application/json: schema: $ref: '#/components/schemas/ProNumberQuery' description: proNumberQuery required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/ProNumberIdentifier' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Generate a ProNumber for specific vendor. tags: - 'LTL: Dispatch' put: operationId: updateProNumber requestBody: content: application/json: schema: $ref: '#/components/schemas/ProNumberBlockVendorIdDto' description: proNumberBlockVendor required: true responses: '200': content: application/json: schema: type: string description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Update a ProNumber for specific vendor. tags: - 'LTL: Dispatch' /api/v4/shipments/tracking: post: description: >- If the shipment does not exist, this will create a new shipment. If the shipment is already being tracked (and the corresponding id field is provided), this operation is add only for the provided fields. Note: This operation only modifies data that the user has provided.

Important Notes:

Required Fields

operationId: postShipment requestBody: content: application/json: schema: $ref: '#/components/schemas/TrackedShipmentWithEvents' description: shipment required: true responses: '200': content: application/json: schema: $ref: '#/components/schemas/TrackedShipmentWithEvents' application/xml: schema: $ref: '#/components/schemas/TrackedShipmentWithEvents' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: >- Initialize a shipment for tracking, or append data to an existing shipment. tags: - 'Shipment: Tracking' /api/v4/shipments/{masterShipmentId}/loads: get: description: |-

Required Fields

operationId: getShipmentLoads parameters: - description: >- The masterShipmentId of the shipment for which you wish to query the associated loads. in: path name: masterShipmentId required: true schema: format: uuid type: string - allowEmptyValue: false description: 'Page number valid range: [1, 100]' in: query name: page schema: default: 1 format: int32 type: integer - allowEmptyValue: false description: 'Page size valid range: [1, 1000]' in: query name: size schema: default: 100 format: int32 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/LoadPage' application/xml: schema: $ref: '#/components/schemas/LoadPage' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get loads by masterShipmentId. tags: - 'Shipment: Loads' /api/v4/shipments/{shipmentId}/attributes: get: description: |-

Required Fields

operationId: getShipmentTenantAttributes parameters: - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/ShipmentTenantAttributeDto' type: array application/xml: schema: items: $ref: '#/components/schemas/ShipmentTenantAttributeDto' type: array description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Fetch the tenant shipment attributes for a shipment. tags: - 'Shipment: Tracking' /api/v4/shipments/{shipmentId}/eventhistory: get: description: |-

Required Fields

operationId: getShipmentEventHistory parameters: - description: includeRouteInfo in: query name: includeRouteInfo schema: default: false type: boolean - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ShipmentEventHistory' application/xml: schema: $ref: '#/components/schemas/ShipmentEventHistory' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Fetch the event history for a shipment. tags: - 'Shipment: Tracking' /api/v4/shipments/{shipmentId}/positionhistory: get: description: |-

Required Fields

operationId: getShipmentPositionHistory parameters: - description: includeRouteInfo in: query name: includeRouteInfo schema: default: false type: boolean - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/ShipmentPositionHistory' application/xml: schema: $ref: '#/components/schemas/ShipmentPositionHistory' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Fetch the position history for a shipment. tags: - 'Shipment: Tracking' /api/v4/shipments/{shipmentId}/tracking: delete: description: >- Stop the shipment from tracking in project44 and delete record in the UI
Note: attempting to delete shipments that have been shared to you will result in a 404. operationId: deleteShipment parameters: - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: {} description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Delete shipment route from project44 to stop tracking. tags: - 'Shipment: Tracking' get: description: |-

Required Fields

operationId: getTrackedShipment parameters: - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/TrackedShipment' application/xml: schema: $ref: '#/components/schemas/TrackedShipment' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: >- Fetch the route information for a shipment including the stops and route segments. tags: - 'Shipment: Tracking' /api/v4/shipments/{shipmentId}/tracking/history: get: description: |-

Required Fields

operationId: getShipmentTrackingHistory parameters: - description: shipmentId in: path name: shipmentId required: true schema: format: uuid type: string responses: '200': content: application/json: schema: $ref: '#/components/schemas/TrackedShipmentHistory' application/xml: schema: $ref: '#/components/schemas/TrackedShipmentHistory' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: Get full tracking history for a shipment. tags: - 'Shipment: Tracking' /api/v4/stoplocations: get: description: >- Paginated with default page size of 10. The offset and pageSize query parameters modify this behavior, allowing you to retrieve all of your locations one page at a time. operationId: listStopLocations parameters: - allowEmptyValue: false description: >- The offset of the first requested location within the total list of locations. in: query name: offset schema: default: 0 format: int64 type: integer - allowEmptyValue: false description: The maximum number of locations to return. in: query name: pageSize schema: default: 10 format: int64 type: integer responses: '200': content: application/json: schema: $ref: '#/components/schemas/StopLocationList' application/xml: schema: $ref: '#/components/schemas/StopLocationList' description: OK '400': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid request '401': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: Invalid or missing credentials '403': content: application/json: schema: $ref: '#/components/schemas/ApiError' application/xml: schema: $ref: '#/components/schemas/ApiError' description: User not authorized to perform this operation security: - oAuth2: [] summary: List all stop locations used by your organization. tags: - Stop Location Management post: description: >-

Required Fields

To create a valid stop location, you must supply a name plus one of