Loadsmart Shipment Events API

Our API supports fetch and change of a variety of shipments status, the main ones are responsible to move the shipment from booked to in transit and delivered, They must obey the following order: * **shipment:en-route-to-pickup** - The first state responsible to start the haul. * **shipment:check-in-pickup** - Used when driver arrives at pickup facility. * **shipment:check-out-pickup** - Used when driver leaves the pickup facility. * **shipment:check-in-delivery** - Used when driver arrives at delivery facility. * **shipment:check-out-delivery** - Used when the driver delivers the shipment. NOTE: These events are allowed to be changed via API. There are other events to support the main flow, they are available on webhooks or can be listed via API Shipment events, specific events that can happen for a shipment: * **shipment:incident** - When a incident is registered to a shipment. * **shipment:canceled** - When the shipment is canceled for some reason. Appointment events, these events are normally set before the load starts to move: * **shipment:appointment-pickup** - Used to set an appointment at pickup. * **shipment:appointment-delivery** - Used to set an appointment at delivery. Carrier related events, indicate changes in the carrier, drop, etc. normally happens before the load starts to move: * **shipment:carrier-updated** - Used for changes on a load related to a carrier, i.e. trailer # change. * **shipment:carrier-dropped** - Indicates a carrier drop for a particular shipment. * **shipment:driver-assigned** - A carrier driver assignment. * **shipment:driver-unassigned** - A carrier driver unassignment. Carrier location update, happens while the load is in transit until final delivery: * **shipment:location-updated** - Used to indicate the geographic coordinates of the carrier.

Operations 2

POST /api/v2/shipments/{shipment_id}/events Create shipment event
GET /api/v2/shipments/{shipment_id}/events List shipment events.

Work with this as data

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

MCP server

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

https://apis.io/mcp

Tools for apis

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

Call it yourself

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

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

Get an API key

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

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

OpenAPI Specification

loadsmart-shipment-events-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Loadsmart Shipment Events API
  x-logo:
    altText: Loadsmart API
    url: https://developer.loadsmart.com/logo.svg
  description: "Loadsmart API provides endpoints to quote, book and track shipments autonomously.\n\n# Authentication\n\nLoadsmart API supports JWT tokens for authentication, signed using\npublic/private key pairs (RSA 4096).\n\n## What is JWT?\n\nJSON Web Token (JWT) is an [open standard](https://tools.ietf.org/html/rfc7519) used to\ncreate access tokens that contain some number of claims and is cryptographically signed by\nthe issuer, so its integrity can be verified without an auth server.\n\n## Token algorithm\n\nWe support JWT tokens signed using RS256 algorithm:\n\n```\n{\n  \"alg\": \"RS256\",\n  \"typ\": \"JWT\"\n}\n```\n\n## Required Claims\n\nFor the token payload, we require at least the following claims:\n\n- `sub`: Identifies the subject of the API call. This could be\n  either `sys` (without any user or client context) or `usr:UUID`,\n  where `UUID` is the uuid of the user that will provide the\n  context for the API call.\n- `iss`: Identifies who issued the token. This will be provided by\n  Loadsmart when setting up the integration.\n- `iat`: Standard \"issued at\" claim; should be an unix timestamp.\n- `exp`: Standard \"expires at\" claim; should be an unix timestamp.\n  We recomend to keep the token as short-lived as possible - ideally\n  it should not be valid for more than 1 minute. In the future,\n  Loadsmart could reject tokens with high expiration times.\n\n## Using the token\n\nThe token must be present in the `Authorization` header on all\nrequests, following the format:\n\n```\nAuthorization: JWT <token>\n```\n\nEach part of the token is encoded in base64 and joined with a dot separating each encoded part -\nif you use a library to generate it (which is recommended), you don't need to worry about it.\n\n**Important: Authorization header value must have the prefix `JWT`**.\n\nSee an example:\n\n```\nAuthorization: JWT eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTUxNjIzOTAyMn0.TCYt5XsITJX1CxPCT8yAV-TVkIEq_PbChOMqsLfRoPsnsgw5WEuts01mq-pQy7UJiN5mgRxD-WUcX16dUEMGlv50aqzpqh4Qktb3rk-BuQy72IFLOqV0G_zS245-kronKb78cPN25DGlcTwLtjPAYuNzVBAh4vGHSrQyHUdBBPM\n```\n\n## Available contexts\n\nEach token has an implicit context associated with it (usually depending on the value of `sub`\nclaim). This context identifies to the API if the entity doing an action is an user or a system.\n\nLoadsmart API has different token contexts depending on the endpoint being called. Each endpoint\nwill specify the supported contexts (and required scopes) in `AUTHORIZATIONS` section.\n\n<!-- ReDoc-Inject: <security-definitions> -->\n\n## API Access\n\nTo start using Loadsmart API, please get in touch through your\npoint of contact. They will direct you through the proper flow.\n\n### Creating a public/private key pair\n\nFor JWT tokens, you should provide your *public key*. To generate a\npublic and private key pair, you can use OpenSSL:\n\n```bash\n$ openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:4096\n$ openssl rsa -in private_key.pem -pubout -out public_key.pem\n```\n\n*Never* reuse keys between multiple systems.\n\nFor more information, checkout the [official JWT website](https://jwt.io/).\n"
  version: 1.0.0
servers:
- url: https://api.loadsmart.com
  description: Production server
- url: https://api.sandbox.loadsmart.com
  description: Sandbox environment
tags:
- name: Shipment Events
  description: 'Our API supports fetch and change of a variety of shipments status, the main ones are

    responsible to move the shipment from booked to in transit and delivered, They must

    obey the following order:


    * **shipment:en-route-to-pickup** - The first state responsible to start the haul.

    * **shipment:check-in-pickup** - Used when driver arrives at pickup facility.

    * **shipment:check-out-pickup** - Used when driver leaves the pickup facility.

    * **shipment:check-in-delivery** - Used when driver arrives at delivery facility.

    * **shipment:check-out-delivery** - Used when the driver delivers the shipment.


    NOTE: These events are allowed to be changed via API.


    There are other events to support the main flow, they are available on webhooks or can be listed via API


    Shipment events, specific events that can happen for a shipment:

    * **shipment:incident** - When a incident is registered to a shipment.

    * **shipment:canceled** - When the shipment is canceled for some reason.


    Appointment events, these events are normally set before the load starts to move:


    * **shipment:appointment-pickup** - Used to set an appointment at pickup.

    * **shipment:appointment-delivery** - Used to set an appointment at delivery.


    Carrier related events, indicate changes in the carrier, drop, etc. normally happens before the load starts to move:


    * **shipment:carrier-updated** - Used for changes on a load related to a carrier, i.e. trailer # change.

    * **shipment:carrier-dropped** - Indicates a carrier drop for a particular shipment.

    * **shipment:driver-assigned** - A carrier driver assignment.

    * **shipment:driver-unassigned** - A carrier driver unassignment.


    Carrier location update, happens while the load is in transit until final delivery:


    * **shipment:location-updated** - Used to indicate the geographic coordinates of the carrier.

    '
paths:
  /api/v2/shipments/{shipment_id}/events:
    post:
      summary: Create shipment event
      description: When moving the load always start the flow with the shipment:en-route-to-pickup event.
      security:
      - User-JWT:
        - shipment_write
      parameters:
      - in: path
        name: shipment_id
        required: true
        schema:
          description: Shipment UUID
          type: string
          format: uuid
      requestBody:
        content:
          application/json:
            schema:
              allOf:
              - type: object
                properties:
                  type:
                    type: string
                    description: Event type
                    enum:
                    - shipment:en-route-to-pickup
                    - shipment:check-in-pickup
                    - shipment:check-out-pickup
                    - shipment:check-in-delivery
                    - shipment:check-out-delivery
                    - shipment:incident
                    - shipment:carrier-updated
                  event_date:
                    type: string
                    format: date-time
                    description: The date and time of the event (if not informed, current date is used)
                  stop_index:
                    type: integer
                    description: Corresponds to the number of the stop, being 0-based for pickup
                  details:
                    oneOf:
                    - title: shipment:check-in-pickup
                      type: object
                      properties:
                        late-reason:
                          type: string
                          description: The reason which caused the delay
                          enum:
                          - accident
                          - address_corrected_delivery_attempted
                          - carrier_dispatch_error
                          - carrier_keying_error
                          - closed_holiday
                          - consignee_closed
                          - customer_wanted_earlier_delivery
                          - driver_not_available
                          - driver_related
                          - held_per_shipper
                          - hold_due_customs_documentation_problems
                          - incorrect_address
                          - insufficient_delivery_time
                          - insufficient_pickup_time
                          - insufficient_time_to_complete_delivery
                          - load_shifted
                          - mechanical_breakdown
                          - missed_pickup
                          - missing_documents
                          - natural_disaster_related
                          - normal_status
                          - other
                          - other_carrier_related
                          - past_cut_off_time
                          - previous_stop
                          - reconsigned
                          - refused_by_customer
                          - road_conditions
                          - shipment_overweight
                          - shipper_related
                          - tractor_conventional_not_available
                          - tractor_with_sleeper_car_not_available
                          - trailer_not_available
                          - trailer_not_usable_due_to_prior_product
                    - title: shipment:check-out-pickup
                      type: object
                      properties:
                        late-reason:
                          type: string
                          description: The reason which caused the delay
                          enum:
                          - accident
                          - carrier_dispatch_error
                          - carrier_keying_error
                          - closed_holiday
                          - consignee_closed
                          - consignee_related
                          - customer_wanted_earlier_delivery
                          - delivery_shortage
                          - driver_not_available
                          - driver_related
                          - held_per_shipper
                          - hold_due_customs_documentation_problems
                          - improper_unloading_facility_or_equipment
                          - incorrect_address
                          - insufficient_delivery_time
                          - insufficient_pickup_time
                          - insufficient_time_to_complete_delivery
                          - load_shifted
                          - mechanical_breakdown
                          - missed_pickup
                          - missing_documents
                          - natural_disaster_related
                          - normal_status
                          - other
                          - other_carrier_related
                          - past_cut_off_time
                          - previous_stop
                          - reconsigned
                          - refused_by_customer
                          - road_conditions
                          - shipment_overweight
                          - shipper_related
                          - tractor_conventional_not_available
                          - tractor_with_sleeper_car_not_available
                          - trailer_not_available
                          - trailer_not_usable_due_to_prior_product
                          - waiting_shipping_instructions
                    - title: shipment:check-in-delivery
                      type: object
                      properties:
                        late-reason:
                          type: string
                          description: The reason which caused the delay
                          enum:
                          - accident
                          - address_corrected_delivery_attempted
                          - carrier_dispatch_error
                          - carrier_keying_error
                          - closed_holiday
                          - consignee_closed
                          - customer_wanted_earlier_delivery
                          - driver_not_available
                          - driver_related
                          - held_per_shipper
                          - hold_due_customs_documentation_problems
                          - incorrect_address
                          - insufficient_delivery_time
                          - insufficient_pickup_time
                          - insufficient_time_to_complete_delivery
                          - load_shifted
                          - mechanical_breakdown
                          - missed_pickup
                          - missing_documents
                          - natural_disaster_related
                          - normal_status
                          - other
                          - other_carrier_related
                          - past_cut_off_time
                          - previous_stop
                          - reconsigned
                          - refused_by_customer
                          - road_conditions
                          - shipment_overweight
                          - shipper_related
                          - tractor_conventional_not_available
                          - tractor_with_sleeper_car_not_available
                          - trailer_not_available
                          - trailer_not_usable_due_to_prior_product
                    - title: shipment:check-out-delivery
                      type: object
                      properties:
                        late-reason:
                          type: string
                          description: The reason which caused the delay
                          enum:
                          - accident
                          - carrier_dispatch_error
                          - carrier_keying_error
                          - closed_holiday
                          - consignee_closed
                          - consignee_related
                          - customer_wanted_earlier_delivery
                          - delivery_shortage
                          - driver_not_available
                          - driver_related
                          - held_per_shipper
                          - hold_due_customs_documentation_problems
                          - improper_unloading_facility_or_equipment
                          - incorrect_address
                          - insufficient_delivery_time
                          - insufficient_pickup_time
                          - insufficient_time_to_complete_delivery
                          - load_shifted
                          - mechanical_breakdown
                          - missed_pickup
                          - missing_documents
                          - natural_disaster_related
                          - normal_status
                          - other
                          - other_carrier_related
                          - past_cut_off_time
                          - previous_stop
                          - reconsigned
                          - refused_by_customer
                          - road_conditions
                          - shipment_overweight
                          - shipper_related
                          - tractor_conventional_not_available
                          - tractor_with_sleeper_car_not_available
                          - trailer_not_available
                          - trailer_not_usable_due_to_prior_product
                          - waiting_shipping_instructions
                    - type: object
                      title: shipment:incident
                      properties:
                        type:
                          type: string
                          description: The type of the incident
                          enum:
                          - detention_loading
                          - detention_unloading
                          - truck_breakdown
                          - driver_late_shipper
                          - driver_late_receiver
                          - TONU
                          - transit_check
                          - OSD
                          - misc
                          - lumper
                          - no_contact_with_dispatcher
                          - no_contact_with_driver
                          - driver_risk_miss_appointment
                          - rejected_load
                          - truck_overweight
                          - other
                        reason:
                          type: string
                          description: The reason which caused the incident
                          enum:
                          - accident
                          - border_clearance
                          - carrier_dispatch_error
                          - closed_holiday
                          - consignee_closed
                          - consignee_related
                          - customer_requested_future_delivery
                          - customer_wanted_earlier_delivery
                          - delivery_shortage
                          - driver_not_available
                          - driver_related
                          - held_pending_appointment
                          - held_per_shipper
                          - incorrect_address
                          - insufficient_delivery_time
                          - insufficient_pickup_time
                          - insufficient_time_to_complete_delivery
                          - mechanical_breakdown
                          - missed_delivery
                          - missed_pickup
                          - natural_disaster_related
                          - normal_status
                          - no_requested_arrival_date_provided_by_shipper
                          - no_requested_arrival_time_provided_by_shipper
                          - other
                          - other_carrier_related
                          - past_cut_off_time
                          - previous_stop
                          - receiving_time_restricted
                          - recipient_unavailable_delivery_delayed
                          - refused_customer
                          - road_conditions
                          - shipment_overweight
                          - shipper_related
                          - trailer_not_available
                          - unable_locate
                          - waiting_shipping_instructions
                        eta:
                          type: string
                          format: date-time
                          description: A new ETA after the incident
                        notes:
                          type: string
                          description: Any additional information
                      required:
                      - type
                    - type: object
                      title: shipment:carrier-updated
                      properties:
                        tractor_number:
                          type:
                          - string
                          - 'null'
                          maxLength: 70
                        trailer_number:
                          type:
                          - string
                          - 'null'
                          maxLength: 70
                required:
                - type
            example:
              type: shipment:check-in-pickup
              event_date: 2018-06-19 14:30:00+00:00
              stop_index: 0
        required: true
      responses:
        '201':
          description: Event successfully created
        '404':
          description: Shipment not found
        '409':
          description: Load status transition not allowed.
        '422':
          description: Payload is invalid and the event can't be created
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
                    enum:
                    - invalid_data
                  error_description:
                    type: string
                    description: Description of what happened
                  errors:
                    type: object
                    description: Object where each field is a key and the value is an array of errors
                required:
                - error
                - error_description
              example:
                error: invalid_data
                error_description: Can't create the object
                errors:
                  field_name:
                  - This field is required.
                  other_field:
                  - Expected string but received integer.
      tags:
      - Shipment Events
    get:
      summary: List shipment events.
      description: List shipment events.
      security:
      - User-JWT:
        - shipment_read
      parameters:
      - in: path
        name: shipment_id
        required: true
        schema:
          description: Shipment or Load UUID
          type: string
          format: uuid
      - in: query
        name: offset
        schema:
          description: The initial item number, starting at 0 (zero)
          type: integer
          format: int32
      - in: query
        name: limit
        schema:
          description: The number of items per page
          type: integer
          format: int32
      - in: query
        name: type
        schema:
          description: A filter by the event type
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    description: An array of events
                    items:
                      oneOf:
                      - type: object
                        title: shipment:appointment-pickup
                        properties:
                          details:
                            type: object
                            properties:
                              shipment:
                                type: object
                                properties:
                                  id:
                                    type: string
                                    format: uuid
                                    description: The shipment identifier
                                  loadsmart_ref_number:
                                    type: string
                                    description: Internal identifier
                                  bol_number:
                                    type: string
                                    description: Bill of Lading number
                                  equipment_type:
                                    type: string
                                    description: The type of truck used to move the load
                                  trailer_number:
                                    type: string
                                    description: Carriers trailer number
                                  ref_number:
                                    type: string
                                    description: Reference number
                                  carrier_pro:
                                    type: string
                                    description: Carrier PRO Number is often used for by LTL carriers as a key identifier for their shipments.
                                  truck_license_plate:
                                    type: string
                                    description: License Plate attached to a truck for official identification purposes.
                                  weight:
                                    type: string
                                    description: Shipment's weight (string formatted decimal)
                                  must_arrive_by_date:
                                    type: string
                                    description: Deadline to delivery load
                                  must_ship_by_date:
                                    type: string
                                    description: Deadline to ship load
                                  container:
                                    type:
                                    - object
                                    - 'null'
                                    description: Container related info
                                    properties:
                                      is_live:
                                        type: boolean
                                        description: True if it is a live load, False if it is a drop load
                                      number:
                                        type: string
                                        description: Unique container identifier
                                      ocean_bol_number:
                                        type: string
                                        description: Ocean bill of lading identifier number
                                  stops:
                                    type: array
                                    description: All shipment stops
                                    minItems: 1
                                    items:
                                      type: object
                                      properties:
                                        city:
                                          type: string
                                          description: This stop city
                                        state:
                                          type: string
                                          description: This stop state
                                        country:
                                          type: string
                                          description: This stop country
                                        stop_customer_ref:
                                          type: string
                                          description: Shipper identifier for the stop
                                        facility_ref:
                                          type: string
                                          description: Shipper identifier for the facility
                                        zipcode:
                                          type: string
                                          description: This stop zipcode
                                        timezone:
                                          type: string
                                          description: This stop timezone
                                        stop_index:
                                          type: number
                                          description: Indicate the stop number for this event, being 0-based for pickup.
                                        location:
                                          description: General location attributes
                                          properties:
                                            gln:
                                              type:
                                              - string
                                              - 'null'
                                              description: GS1 Global Location Number if registered.
                                            latitude:
                                              type: number
                                              description: The latitude where the stop is located
                                            longitude:
                                              type: number
                                              description: The longitude where the stop is located
                                        facility:
                                          description: Facility information
                                          properties:
                                            company_name:
                                              type: string
                                              description: Facility's company name
                                            city:
                                              type: string
                                              description: Facility's city
                                            state:
                                              type: string
                                              description: Facility's state
                                            zipcode:
                                              type: string
                                              description: Facility's zipcode
                                            timezone:
                                              type: string
                                              description: Facility's timezone
                                            location:
                                              description: General location attributes
                                              properties:
                                                gln:
                                                  type:
                                                  - string
                                                  - 'null'
                                                  description: GS1 Global Location Number if registered.
                                                latitude:
                                                  type: number
                                                  description: The latitude where the stop is located
                                                longitude:
                                                  type: number
                                                  description: The longitude where the stop is located
                                            contact:
                                              description: Facility contact information
                                              properties:
                                                first_name:
                                                  type: string
                                                last_name:
                                                  type: string
                                                phone_number:
                                                  type: string
                                                email:
                                                  type: string
                                  properties:
                                    type: object
                                    description: JSON object where you can set custom properties
                                  stop:
                                    type: object
                                    description: Event stop details
                                    properties:
                                      city:
                                        type: string
                                        description: This stop city
                                      state:
                                        type: string
                                        description: This stop state
                                      country:
                                        type: string
                                        description: This stop country
                                      stop_customer_ref:
                                        type: string
                                        description: Shipper identifier for the stop
                                      facility_ref:
                                        type: string
                                        description: Shipper identifier for the facility
                                      zipcode:
                                        type: string
                                        description: This stop zipcode
                                      timezone:
                                        type: string
                                        description: This stop timezone
                                      stop_index:
                                        type: number
                                        description: Indicate the stop number for this event, being 0-based for pickup.
                                      location:
                                        description: General localization attributes
                                   

# --- truncated at 32 KB (292 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/loadsmart/refs/heads/main/openapi/loadsmart-shipment-events-api-openapi.yml