Compare shipping rates
USPS, UPS and FedEx prices to ship one parcel between two US ZIP codes, cheapest first, with delivery days and an itemized breakdown. Each quote names its source and rateType; today's source is Stamps.com, so prices are its own (reseller). Quotes only: nothing is bought. A source or carrier that can't quote is listed in errors; when none could, the answer is 502 no_quotes and nothing is spent.
Counts as one tracking number toward the account's day. Without a key, 5 free quotes a day per IP. POST /v1/rates takes the same fields as a JSON object.
AuthorizationBearer <token>Authorization: Bearer lsk_live_…
from*stringOrigin postal code (5-digit ZIP in the US).
to*stringDestination postal code.
weight*numberAbove 0; at most 150 lb.
weightUnit?string"lb""lb""oz""kg""g"fromCountry?string"US"toCountry?string"US"residential?booleanfalselength?numberGive length
width?numberheight?numberdimensionUnit?string"in""in""cm"carriers?stringComma-separated carrier ids to ask; omit for all.
Quotes, cheapest first.
application/json- response
quotes*array<>cheapest*|source:carrier:serviceCode of the lowest unrestricted quote
fastest*|source:carrier:serviceCode of the fewest quoted days
errors*array<>quotedAt*stringcurl -X GET 'https://api.lastscanned.com/v1/rates?from=94107&to=10001&weight=2.5'{ "quotes": [ { "carrier": "ups", "service": "string", "serviceCode": "string", "amount": 0, "currency": "string", "rateType": "retail", "source": "string", "packaging": "string", "deliveryDays": 0, "estimatedDelivery": "string", "guaranteed": true, "restricted": "string", "breakdown": [ { "description": "string", "amount": 0 } ] } ], "cheapest": "string", "fastest": "string", "errors": [ { "source": "string", "carriers": [ "string" ], "code": "string", "message": "string" } ], "quotedAt": "string"}