Loadsmart Quotes API

Quotes provide the price and conditions for a future shipment. To create a shipment, you need first to request a valid quote.

Operations 2

POST /api/v2/quotes-request Create quote request
GET /api/v2/quotes-request/{uuid} Retrieve details from a quote request

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-quotes-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-quotes-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Loadsmart Quotes 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: Quotes
  description: 'Quotes provide the price and conditions for a future shipment.

    To create a shipment, you need first to request a valid quote.

    '
paths:
  /api/v2/quotes-request:
    post:
      summary: Create quote request
      description: 'Request quotes for a future shipment.


        Returns a unique identifier (`id`) for the quote request. After creating the quote request, the

        [Retrieve details from a quote request](#tag/Quotes/paths/~1api~1v2~1quotes-request~1{uuid}/get) endpoint must

        be polled in order to retrieve the result of this quote request.

        '
      security:
      - User-JWT:
        - quote_write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                shipment_mode:
                  allOf:
                  - type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          default: FTL
                          enum:
                          - FTL
                          - LTL
                          - PTL
                          - RAIL
                          description: 'The transportation mode of the load. Allowed values are:

                            - FTL: Full Truckload

                            - LTL: Less-than-Truckload

                            - PTL: Partial Truckload

                            - RAIL: Intermodal rail (53'' containers)

                            '
                    x-external: true
                equipments:
                  allOf:
                  - type: array
                    items:
                      type: object
                      properties:
                        type:
                          type: string
                          enum:
                          - DRV
                          - FBE
                          - RFR
                          - IMC
                          description: "Equipment required to transport the shipment. Recognized equipments are:\n  - DRV: Dry Van\n  - FBE: Flatbed\n  - RFR: Reefer\n  - IMC: Intermodal\n"
                    maxItems: 1
                    minItems: 1
                    x-external: true
                total_width:
                  type: number
                  description: The load total width expressed in 'ft'
                  minimum: 0
                total_length:
                  type: number
                  description: The load total length expressed in 'ft'
                  minimum: 0
                total_height:
                  type: number
                  description: The load total height expressed in 'ft'
                  minimum: 0
                requirements:
                  type:
                  - object
                  - 'null'
                  description: Requirements that needs to be fulfilled in order to transport the load
                  properties:
                    hazmat:
                      type: boolean
                      description: The commodity being moved consists of hazard material
                    tarp:
                      type: object
                      description: If present in 'requirements', it means the shipment needs a tarp
                      properties:
                        size:
                          type: number
                          format: float
                          minimum: 0
                          description: size in expressed in 'ft'
                        type:
                          type: string
                          enum:
                          - lumber
                          - steel
                          - smoke
                          - parachute
                          - machinery
                          - canvas
                          - hay
                          - poly
                      required:
                      - size
                    dunnage:
                      type: boolean
                      description: Extra rack added to the truck
                    beer:
                      type: boolean
                      description: The carrier must be able to transport alcohool
                    teams:
                      type: boolean
                      description: If it requires a team of drivers
                customer_reference:
                  type: string
                  maxLength: 255
                  description: Internal client's reference, such as an ID, of the load
                accessorials:
                  type: array
                  description: Accessorials are extra charges/services that exist outside the 'normal' standard operating procedure. They are upcharged by the Carriers, and are qualifiers for Carrier Eligibility. FTL loads do not accept accessorials on the quote request.
                  items:
                    type: string
                    enum:
                    - protect_from_freeze
                    - lift-gate-pickup
                    - residential-pickup
                    - inside-pickup
                    - tradeshow_pickup
                    - limited-access-pickup
                    - construction-site-pickup
                    - non-commercial-pickup-storage-facility
                    - appointment-pickup
                    - notify-prior-to-arrival-delivery
                    - lift-gate-delivery
                    - residential-delivery
                    - inside-delivery
                    - limited-access-delivery
                    - non-commercial-delivery-storage-facility
                    - tradeshow_delivery
                    - construction-site-delivery
                    - appointment-delivery
                    - sort-and-segregate
                    - notify-prior-to-arrival
                stops:
                  type: array
                  description: Points of interest where the truck makes a stop to either pickup or deliver a shipment. Usually a quote has one pickup stop and one delivery stop, but in some cases there will be multiple delivery stops.
                  items:
                    oneOf:
                    - type: object
                      title: Zipcode; Window
                      properties:
                        type:
                          type: string
                          enum:
                          - PU
                          - DEL
                          description: The type of the stop, can be PU (Pickup) or DEL (Delivery)
                        address:
                          type: string
                        zipcode:
                          type: string
                        country:
                          type: string
                          pattern: ^[A-Z]{3}$
                          description: 3-letter country code, uppercase (ISO 3166-1 alpha-3)
                        drop_trailer:
                          type: boolean
                          description: Indicates whether the truck will drop the trailer at the stop
                        window:
                          type: object
                          description: "A time window indicating when the truck should be at the stop.\nIf the stop date is not defined in the request payload, the API will estimate it based on the trip duration.\nThis will only occur when:\n  i) pickup date is undefined and all delivery dates are defined\n  ii) pickup date is defined and any delivery date is undefined.\nIf a request does not define all stop dates and does not comply with i or ii, then a validation error will be returned\n"
                          properties:
                            start:
                              type: string
                              format: date-time
                            end:
                              type: string
                              format: date-time
                          required:
                          - start
                          - end
                      required:
                      - zipcode
                      - country
                    - type: object
                      title: City & State; Window
                      properties:
                        type:
                          type: string
                          enum:
                          - PU
                          - DEL
                          description: The type of the stop, can be PU (Pickup) or DEL (Delivery)
                        address:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        country:
                          type: string
                          pattern: ^[A-Z]{3}$
                          description: 3-letter country code, uppercase (ISO 3166-1 alpha-3)
                        window:
                          type: object
                          description: "A time window indicating when the truck should be at the stop.\nIf the stop date is not defined in the request payload, the API will estimate it based on the trip duration.\nThis will only occur when:\n  i) pickup date is undefined and all delivery dates are defined\n  ii) pickup date is defined and any delivery date is undefined.\nIf a request does not define all stop dates and does not comply with i or ii, then a validation error will be returned\n"
                          properties:
                            start:
                              type: string
                              format: date-time
                            end:
                              type: string
                              format: date-time
                          required:
                          - start
                          - end
                        drop_trailer:
                          type: boolean
                          description: Indicates whether the truck will drop the trailer at the stop
                        accessorials:
                          type: array
                          items:
                            type: string
                            enum:
                            - protect_from_freeze
                            - lift-gate-pickup
                            - residential-pickup
                            - inside-pickup
                            - tradeshow_pickup
                            - limited-access-pickup
                            - construction-site-pickup
                            - non-commercial-pickup-storage-facility
                            - appointment-pickup
                            - notify-prior-to-arrival-delivery
                            - lift-gate-delivery
                            - residential-delivery
                            - inside-delivery
                            - limited-access-delivery
                            - non-commercial-delivery-storage-facility
                            - tradeshow_delivery
                            - construction-site-delivery
                            - appointment-delivery
                            - sort-and-segregate
                            - notify-prior-to-arrival
                      required:
                      - city
                      - state
                      - country
                      - window
                    - type: object
                      title: Zipcode; Window Start
                      properties:
                        type:
                          type: string
                          enum:
                          - PU
                          - DEL
                          description: The type of the stop, can be PU (Pickup) or DEL (Delivery)
                        address:
                          type: string
                        zipcode:
                          type: string
                        country:
                          type: string
                          pattern: ^[A-Z]{3}$
                          description: 3-letter country code, uppercase (ISO 3166-1 alpha-3)
                        date:
                          type: string
                          format: date
                          description: A date indicating when the truck should be at the stop.
                        window_start:
                          type: string
                          format: date-time
                          description: A date-time indicating when the truck should be at the stop. This field is required for the pickup stop if "window" is not provided. The next stops can use "date".
                        drop_trailer:
                          type: boolean
                          description: Indicates whether the truck will drop the trailer at the stop
                        accessorials:
                          type: array
                          items:
                            type: string
                            enum:
                            - protect_from_freeze
                            - lift-gate-pickup
                            - residential-pickup
                            - inside-pickup
                            - tradeshow_pickup
                            - limited-access-pickup
                            - construction-site-pickup
                            - non-commercial-pickup-storage-facility
                            - appointment-pickup
                            - notify-prior-to-arrival-delivery
                            - lift-gate-delivery
                            - residential-delivery
                            - inside-delivery
                            - limited-access-delivery
                            - non-commercial-delivery-storage-facility
                            - tradeshow_delivery
                            - construction-site-delivery
                            - appointment-delivery
                            - sort-and-segregate
                            - notify-prior-to-arrival
                      required:
                      - zipcode
                      - country
                      - window_start
                    - type: object
                      title: City & State; Window Start
                      properties:
                        type:
                          type: string
                          enum:
                          - PU
                          - DEL
                          description: The type of the stop, can be PU (Pickup) or DEL (Delivery)
                        address:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        country:
                          type: string
                          pattern: ^[A-Z]{3}$
                          description: 3-letter country code, uppercase (ISO 3166-1 alpha-3)
                        date:
                          type: string
                          format: date
                          description: A date indicating when the truck should be at the stop.
                        window_start:
                          type: string
                          format: date-time
                          description: A date-time indicating when the truck should be at the stop. This field is required for the pickup stop if "window" is not provided. The next stops can use "date".
                        drop_trailer:
                          type: boolean
                          description: Indicates whether the truck will drop the trailer at the stop
                        accessorials:
                          type: array
                          items:
                            type: string
                            enum:
                            - protect_from_freeze
                            - lift-gate-pickup
                            - residential-pickup
                            - inside-pickup
                            - tradeshow_pickup
                            - limited-access-pickup
                            - construction-site-pickup
                            - non-commercial-pickup-storage-facility
                            - appointment-pickup
                            - notify-prior-to-arrival-delivery
                            - lift-gate-delivery
                            - residential-delivery
                            - inside-delivery
                            - limited-access-delivery
                            - non-commercial-delivery-storage-facility
                            - tradeshow_delivery
                            - construction-site-delivery
                            - appointment-delivery
                            - sort-and-segregate
                            - notify-prior-to-arrival
                      required:
                      - city
                      - state
                      - country
                      - window_start
                  minItems: 2
                items:
                  type: array
                  description: A list of actual packages that will be moved within the load. One quote - that later will become a shipment - may have none or many Items. These Items will have a lot of different attributes related to it, but specially Dimensions, Weight, Freight Class among some others
                  items:
                    type: object
                    properties:
                      items_count:
                        oneOf:
                        - type: number
                        - type: string
                        description: How many of this specific item we will have. This is not the quantity of records in the database.
                      length:
                        oneOf:
                        - type: number
                        - type: string
                        description: Length of the shipping item
                      width:
                        oneOf:
                        - type: number
                        - type: string
                        description: Width of the shipping item
                      height:
                        oneOf:
                        - type: number
                        - type: string
                        description: Height of the shipping item
                      classification:
                        type: string
                        description: Classification representing the Class of the shipping item
                        enum:
                        - '50'
                        - '55'
                        - '60'
                        - '65'
                        - '70'
                        - '77.5'
                        - '85'
                        - '92.5'
                        - '100'
                        - '110'
                        - '125'
                        - '150'
                        - '175'
                        - '200'
                        - '250'
                        - '300'
                        - '400'
                        - '500'
                      nmfc_code:
                        type: string
                        description: The NMFC Number associated with the shipping item
                      package_type:
                        type: string
                        description: Package type
                        enum:
                        - std_pallets
                        - pallets_non_std
                        - bags
                        - bales
                        - boxes
                        - bunches
                        - carpets
                        - coils
                        - crates
                        - cylinders
                        - drums
                        - pails
                        - reels
                        - rolls
                        - tubes_pipes
                        - loose
                        - ubox
                      hazmat:
                        type: boolean
                        description: The commodity being moved consists of hazard material
                      hazmat_class:
                        type: string
                        description: Hazmat class
                        enum:
                        - explosive_non_specified
                        - mass_explosive
                        - projection_explosive
                        - minor_fire_explosive
                        - minor_explosive
                        - insensitive_mass_explosive
                        - insensitive_minor_explosive
                        - gas_non_specified
                        - flammable_gas
                        - non_flammable_non_poisonous_or_oxygen_gas
                        - poison_gas
                        - flammable_liquid
                        - solid_non_specified
                        - flammable_solid
                        - spontaneously_combustible_solid
                        - dangerous_when_wet
                        - oxidizer_non_specified
                        - oxidizer
                        - organic_peroxide
                        - poison
                        - radioactive
                      un_number:
                        type: string
                        description: UN numbers are four-digit numbers that identify hazardous materials, and articles in the framework of international transport.
                      stackable:
                        type: boolean
                        description: Indicates if the item is stackable on the truck
                      description:
                        type: string
                        maxLength: 255
                        description: Name of the commodity that will be shipped
                      weight:
                        oneOf:
                        - type: number
                        - type: string
                        description: 'The total weight, in pounds, of the shipment. Acceptable values must be positive numbers with up to 2 decimal digits.

                          Any other type will cause a validation error. Note that the minimum value is 1 and the maximum value

                          depends on the chosen equipment_type: 45000 for DRV, 43000 for RFR and 50000 for FBE.

                          If the weight is not provided, it is set to the maximum allowed for the equipment_type.

                          '
                        minimum: 1
                        maximum: 50000
                    required:
                    - items_count
                    - length
                    - width
                    - height
                    - classification
                    - description
                    - package_type
                    - hazmat
                    - stackable
                    - weight
                  properties: {}
                properties:
                  type: object
                  description: 'General information about the load.

                    This is an open JSON field that allows passing special properties with meaning on the customer context, such as the order numbers, must_arrive_by_date, priority and others.

                    '
              required:
              - shipment_mode
              - equipments
              - stops
            examples:
              Request:
                value:
                  shipment_mode:
                  - LTL
                  equipments:
                  - type: DRV
                  - type: FBE
                  customer_reference: a reference for the quote
                  total_height: 10.5
                  total_length: 52
                  total_width: 7
                  requirements:
                    hazmat: false
                  stops:
                  - type: PU
                    address: 12345 E 16th avenue
                    city: Miami Beach
                    state: FL
                    drop_trailer: true
                    zipcode: '33140'
                    country: USA
                    window:
                      start: 2018-06-20 09:00:00
                      end: 2018-06-20 11:00:00
                    accessorials:
                    - sort-and-segregate
                    - inside-pickup
                  - type: DEL
                    address: 54321 E 16th avenue
                    city: New York
                    state: NY
                    drop_trailer: false
                    zipcode: '33140'
                    country: USA
                  items:
                  - items_count: 1
                    length: 12
                    width: 18
                    height: 24
                    classification: '80'
                    nmfc_code: 19874
                    package_type: std_pallets
                    hazmat: true
                    hazmat_class: mass_explosive
                    un_number: 1485
                    stackable: false
                    description: apples
                    weight: 20000
      responses:
        '202':
          description: Quote request was accepted
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        description: A unique identifier for the quote request
                    required:
                    - id
                required:
                - data
              examples:
                AcceptedQuote:
                  value:
                    data:
                      id: 3802fab9-bcbe-42b4-9132-2e0a65c11e1d
                RejectedQuote:
                  value:
                    data:
                      id: 3802fab9-bcbe-42b4-9132-2e0a65c11e1d
        '422':
          description: Invalid or missing data
          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:
      - Quotes
  /api/v2/quotes-request/{uuid}:
    get:
      summary: Retrieve details from a quote request
      description: 'A quote can either be `available`, `rejected`, `expired` or `booked`.  If

        it''s available, a price and expiration date will be returned.  In the case

        the quote is rejected, the reason will be detailed in the response.


        Rejections could be a temporary condition. Retrying the request may

        or may not provide the caller with an available quote.


        #### List of possible reject reasons


        **Note**: we constantly add and remove reject reasons from this list.

        To make sure the client will continue to work properly in case

        a new reject reason is added, you can use the message on

        `reject_description` field to show to users what happened.


        * forbidden-date: Date is valid but not allowed

        * price-unavailable: Could not get price

        * shipper-over-capacity: Shipper over Capacity

        * lane-not-permitted: Lane not Permitted

        * shipper-daily-quotes-over-capacity: Shipper daily quotes over capacity

        * mileage-unavailable: Could not get mileage

        * next-day-shipment-not-allow: Next day quotes are not allowed

        * inactive-shipper-daily-quotes-over-capacity: Inactive shipper daily quotes over capacity

        * weekend-pickup-not-allowed: Pickups are not allowed to happen on weekends

        * same-day-shipment-not-allow: Same day quote is not allowed

        * market-size-too-large: Market Size too Large

        * flatbed-not-allowed: Flatbed not allowed

        * shipper-profile-is-incomplete: Shipper profile is incomplete

        '
      tags:
      - Quotes
      security:
      - User-JWT:
        - quote_write
      

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