Authenticate to ShipEngine using your API key in the API-Key header; ensure all carrier accounts needed for comparison are connected and active under your ShipEngine account
Build a rate request payload via POST /v1/rates with shipper_location_id, package dimensions (length, width, height in inches and weight in ounces), the to_address object, and the desired comparison_rate_type set to list or account to control whether list or negotiated rates are returned
Set ship_date to the planned pickup date; include a service_codes array only if you want to restrict comparison to specific services; leave it empty to receive all available rates across all connected carriers
Filter the returned rates array by delivery_days to enforce your SLA; sort filtered results ascending by shipping_amount.amount to identify the cheapest compliant option
Check the guaranteed_service field on each rate; if your SLA requires a money-back guarantee, filter to only rates where guaranteed_service is true before cost ranking
Purchase the selected rate via POST /v1/labels/rates/:rate_id within the rate expiry window (typically 30 minutes for most carriers); retrieve the label_download.pdf URL from the response
Known gotchas
ShipEngine returns list rates (public carrier rates) even for connected accounts unless the comparison_rate_type is explicitly set to account; comparing list rates against actual invoiced amounts will show inflated savings that do not reflect your true carrier contracts
Delivery days returned by ShipEngine are carrier-estimated transit days, not guaranteed delivery dates; for time-definite SLA enforcement, use only services with guaranteed_service true and apply your own transit day calculation accounting for carrier service maps and origin-destination zones
Rate responses are scoped to the package dimensions and weight provided; dimensional weight is calculated by each carrier using its own DIM factor; if you omit dimensions and provide only weight, some carriers will rate as if the package is dense, potentially returning rates that will be corrected on invoice
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp