quotes

Price one parcel from a US origin across USPS, UPS and FedEx (plus DHL Express to Germany and Australia)

Prices one shipment live against the carriers for the lane. Name the item in plain words and the packed box is estimated server-side (the estimate, its confidence and its assumptions come back in package); send length_cm, width_cm, height_cm, weight_kg and package_source "manual" to price an exact box instead. Up to five purchasable services come back, each a checkout total with the SMKlog fee inside and the carrier counter price beside it. One call per shipment: every call spends a live carrier rating.

post/quote

Request

  • Base URL: https://quote-api.smklog.com
  • URL: https://quote-api.smklog.com/quote
  • Auth: one of:
    • none
    • OAuth 2 (client credentials, token URL https://quote-api.smklog.com/oauth/token, scopes: quote)

Request body

productstring

Plain-words item description, e.g. "Yamaha FG800 acoustic guitar in a hard case". Required unless product_url is given. Drives the box and weight estimate when dimensions are omitted. Text that names no shippable item answers 400 product_not_recognized.

product_urlstring uri

Store product page URL; the item is identified from the page. Alternative to product.

quantityinteger required

How many of the item ship together. Default 1. Units the estimate packs into one box are priced as that box; units that need more than one box, or a quantity above 1 sent with exact dimensions (those describe one box), return mode multiple_boxes with empty rates.

from_postal_codestring required

5-digit US ZIP; the origin is always in the United States.

to_postal_codestring required

5-digit US ZIP when to_country_code is US or omitted; otherwise the destination country's own postal code.

to_country_code'US' | 'CA' | 'GB' | 'DE' | 'AU'

Destination country. Sold online: US, CA, GB, DE, AU; any other answers mode international_unsupported_online with no rates.

length_cmnumber

Packed box length. Supply all four of length_cm, width_cm, height_cm, weight_kg to skip the estimate.

width_cmnumber

Packed box width, cm.

height_cmnumber

Packed box height, cm.

weight_kgnumber

Packed weight, kg. Online pricing stops at 68 kg (150 lb), 274 cm (108 in) on the longest side and 419 cm (165 in) of length plus girth; beyond that the response is mode not_a_parcel.

package_source'manual'

Set to "manual" when supplying exact dimensions.

Response

Priced (mode parcel_label_ready, up to 5 rates), not a parcel (mode not_a_parcel, empty rates — SMKlog does not arrange pallet or freight shipments), more than one box (mode multiple_boxes, empty rates — quote each box on its own), or restricted (empty rates with an explanation).

mode'parcel_label_ready' | 'not_a_parcel' | 'multiple_boxes' | 'international_unsupported_online' | 'parcel_restricted' | 'review' | 'parcel_rates_unavailable' required

parcel_label_ready with up to 5 rates; not_a_parcel (empty rates: SMKlog does not arrange pallet or freight shipments); multiple_boxes (empty rates: quote each box on its own); international_unsupported_online; parcel_restricted and review (empty rates with an explanation); parcel_rates_unavailable (no carrier answered).

identified_product_titlestring

What the estimator understood the item to be

quote_idstring nullable

Handle to this quote, good for 15 minutes. Pass it to createPaymentSession as quote_id and that call reuses these rates instead of spending a second carrier call. Null when nothing was priced or the handle could not be stored; absent on answers that carry no rates.

dangerous_goodsobject nullable

Present when the item matched a dangerous-goods rule: the rule, the carrier restriction and what the human must confirm at checkout

noticestring nullable

Human-readable reason when mode is not parcel_label_ready

Changes

No recorded changes to this operation across all 1 revision of this API.