Modern shipping, zero setup pain

The shipping platform
every store deserves.

Rate-shop UPS, FedEx, DHL, USPS, Royal Mail and EasyPost in parallel. Connect Shopify, Amazon, Etsy, eBay, WooCommerce, BigCommerce, Squarespace and Magento with one click. Automate labels, tracking and returns without touching a spreadsheet.

No credit card Live in 5 minutes Cancel any time
Plays well with everything you already sell on
Sales channels
Shopify
AM
Amazon
Etsy
eBay
WooCommerce
BigCommerce
Squarespace
MA
Magento
Carriers
UPS
FedEx
USPS
DHL
RO
Royal Mail
EA
EasyPost
Why Shipnest

Built for shops that outgrew their carrier dashboard.

Every screen is keyboard-first, every table remembers your columns, every mutation is audited. We sweated the boring details so you ship the fun ones.

Rate shop in parallel

Quote every enabled carrier at once and pick the cheapest, fastest or best-margin service per order. Markup policies you control.

One-click integrations

OAuth install for Shopify, Amazon, Etsy, eBay, WooCommerce, UPS and USPS. Connect in two clicks, no dev portals required.

Automations that stick

A real rule engine — nested AND/OR trees, 11 action types, dry-run testing. Set it once, never touch a drop-down again.

Carriers

Your rates, our platform, or both.

Paste your own UPS / FedEx / DHL / Royal Mail account for pass-through rates, or use our negotiated platform accounts with a markup you control. Mix and match per shipment.

  • One-click OAuth install for UPS (1 field) and USPS (zero fields) — no developer dashboards to click through.
  • Multi-piece shipments: UPS, FedEx, Royal Mail and EasyPost return per-box tracking numbers we persist individually.
  • Automatic token refresh + in-transit tracking refresh on a cron. Labels void from the same screen you bought them.
  • Parallel rate-shop fans out across every enabled account. Markup is applied only to your own platform rates — customer BYO stays at cost.
Supported carriers
UPS
One-click OAuth. Rate, ship, track.
FedEx
Rates, labels, tracking. 9-digit account.
USPS
Zero-field OAuth. CRID auto-bound.
DHL
MyDHL API. International rates.
RO
Royal Mail
Tracked 24/48 + International Tracked.
EA
EasyPost
Aggregator to 100+ carriers.
Platform rates built in: offer UPS + FedEx at our negotiated pricing, with a markup you set. Pass-through at cost for every customer-owned account.
Sales channels

Two-way sync, no middleware.

Connect every storefront with the shortest path possible. Five of the eight channels are a single OAuth click — we handle the refresh tokens, you handle the orders.

Shopify
1-click
OAuth install. Fulfillment orders API.
AM
Amazon
1-click
SP-API. Marketplaces auto-detected.
Etsy
1-click
PKCE OAuth. Shop ID auto-derived.
eBay
1-click
OAuth. Username auto-derived.
WooCommerce
1-click
Auto-auth via /wp-admin. Zero keys.
BigCommerce
Store hash + token. URL auto-parsed.
Squarespace
Single API key. Commerce Basic+.
MA
Magento
Integration token. Self-hosted friendly.
Orders → labels → fulfillment

Paid orders land automatically. Ship a label and the fulfillment is posted back to the channel with the tracking number — all from one screen.

Stock stays in sync

Every label buy decrements local stock and broadcasts the new on-hand level back to Shopify, Woo, BigCommerce, Etsy, eBay and Amazon.

Catalog pull + push

Import your products once, keep prices and images in sync. Shopnest → Shopify / Woo push is supported too — one source of truth.

Automations

Express rules in natural logic.

A real rule engine: nested AND/OR conditions against any order field, and eleven distinct action types. Dry-run against live orders before switching on.

  • If weight > 10 kg → ship UPS Ground and add signature required.
  • If destination country ≠ origin → attach commercial invoice and set insurance.
  • If tag contains 'gift' → use unbranded packaging and hide price.
  • If order total > $200 → route to priority warehouse and notify ops.
Rule — heavy-parcel routing
IF all:
weight_g >= 10000
OR any:
tags includes "fragile"
value_cents > 25000
THEN
SET_CARRIER UPS
SET_SERVICE Ground
REQUIRE_SIGNATURE true
SET_INSURANCE declared_value
NOTIFY ops@yours.com
Developer API

Or skip the UI entirely.

Every screen in Shipnest is backed by a documented REST endpoint. Point your ERP or headless-commerce stack at an API key and let it drive the whole lifecycle — push orders, rate-shop, buy labels, void, track — without ever opening the dashboard.

Endpoints
Orders
  • POST/api/ordersCreate (headless)
  • GET/api/ordersList + filter
  • GET/api/orders/:idDetail
Carriers
  • GET/api/carrier-accountsDiscover accounts
Shipping
  • POST/api/ratesRate-shop all carriers
  • POST/api/insurance/quoteThird-party insurance
  • POST/api/labelsBuy label
  • POST/api/labels/:id/voidRefund / void
Tracking
  • GET/api/shipmentsList + filter
  • GET/api/shipments/:idDetail
  • GET/api/tracking/:nLive events
Bearer sk_live_… + per-org rate limitsFull reference
From headless storefront to shipped parcel
# 1. Push an order from your headless storefront
curl -X POST https://my.shipnest.app/api/orders \
  -H "Authorization: Bearer sk_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "orderNumber": "HL-1042",
    "shipTo": { "name": "Jane Doe", "line1": "1 Main",
                "city": "Austin", "postalCode": "78701",
                "country": "US" },
    "items": [{ "sku": "BAG-1", "name": "Tote",
                "quantity": 1, "priceCents": 4500,
                "weightG": 500 }]
  }'

# 2. Rate-shop across every enabled carrier
curl -X POST https://my.shipnest.app/api/rates \
  -H "Authorization: Bearer sk_live_..." \
  -d '{ "orderId": "ord_...", "parcels": [...] }'

# 3. Buy the cheapest (or fastest) — same idempotency key retried
curl -X POST https://my.shipnest.app/api/labels \
  -H "Authorization: Bearer sk_live_..." \
  -d '{ "orderId": "ord_...", "serviceCode": "03",
        "idempotencyKey": "HL-1042-attempt-1" }'

# You now have a tracking number + signed webhook events
HMAC-signed webhooks
shipment.*, return.*, claim.* with timestamp anti-replay
Cursor pagination
newest-first, stable ids, no COUNT queries
Idempotent
retries on /api/labels collapse by idempotencyKey
In the box

Every screen your ops team opens all day.

Shipnest isn't a rate-shop wrapper. It's the full floor-to-dashboard workflow — with the polish of a modern B2B SaaS.

Scan-to-print

Barcode-first floor workflow. Tap the scanner, the label drops straight out of your Zebra — no clicks, no print dialog.

Direct-to-printer via PrintNode

Skip the browser print dialog: route every label to your warehouse Zebra or Dymo by default, split routing per warehouse, and retry failed jobs with one click. Packing slips too, rendered server-side.

Batch quote & buy

Queue 200 orders, quote them all, buy labels in one transaction. Fan-out print to PrintNode or browser — whichever you wired up.

Printable docs

Packing slips, pick lists, commercial invoices, manifests — every PDF is a styled HTML page, printable from any browser.

Returns portal

Branded self-serve returns: customer enters order number, picks items, prints a return label. You set the policy.

Branded tracking page

A public /track URL on your domain. Your brand, your colors, no carrier noise.

Email + notifications

Built-in templates for shipped, delivered, return-approved. Resend-powered. Custom sender, custom copy.

Analytics + reports

Real KPIs on the dashboard: ship volume, carrier split, cost per parcel. Scheduled CSV exports by email.

Pickups + manifests

Schedule daily pickups and generate end-of-day manifests per carrier. No scribbled driver sheets.

Teams, roles, audit

Five-role RBAC (Owner / Admin / Manager / Member / Viewer). Every mutation logged with who + when.

Customs & compliance

International labels clear automatically. IOSS, EORI and VAT numbers stamp on every commercial invoice. Paperless trade where the carrier supports it.

Multi-warehouse routing

Ship from the warehouse closest to the customer. Same-country match + postal-prefix scoring wired into your automation rules — no manual assignment.

REST API + signed webhooks

Public API keys (sk_live_…) drive the whole lifecycle from your ERP — create orders, rate-shop, buy labels, void, list and track. Headless-commerce ready. HMAC-signed webhooks with timestamp anti-replay for shipment.*, return.*, claim.*. Full reference at /docs.

Multi-currency, honestly

Run a US Shopify + UK Shopify + EU Etsy on one account — every order keeps its native currency (USD, GBP, EUR). KPIs and reports show real numbers per currency, never a fake FX rollup that drifts with the market. Dashboards stack `$4,200 · £1,800 · €900` side by side.

SLA ship-by tracking

Every order gets a derived ship-by deadline based on its channel — Amazon 1-day handling, Shopify 2-day promise, Etsy 3-day processing. Orders list sorts by urgency; the dashboard flashes red when anything's overdue so nothing slips through end-of-day.

Live address verification

Before the carrier bounces a label back, we check. Format checks (country-specific postal patterns) run every time; Smarty or USPS WebTools credentials wire live street-level DPV lookups. Apply the normalised version with one click.

CO₂e per shipment

Every shipment gets a carbon estimate — road (~100 g/kg) or air (~600 g/kg) depending on the service mode. Aggregate on the analytics dashboard. DEFRA-calibrated; shows up in /reports for sustainability filings. Zero external dependency.

Negotiated-rate cards

Mid-market sellers with UPS/FedEx contracts at 35–45% off public rates upload a simple CSV (to_country, weight_to_g, price_cents) and see their real costs in rate-shop alongside live quotes. No more rate-table spreadsheets outside the platform.

Pick-and-pack scan

Before the label prints, scan each SKU off the shelf — the system checks every line against the order. Wrong item in the box stops becoming a refund + chargeback. Audits who packed what at which minute for cross-checking customer complaints.

Native Shopify checkout rates

Shipnest can register as a Shopify Carrier Service so your rates appear inside the customer's checkout — not post-facto imports in /orders. Opt-in toggle per store so merchants with existing Shopify Shipping profiles stay in control. Works on any Shopify plan.

Under the hood

Security that survives an audit.

We shipped the boring parts so the interesting parts work. Encryption, RBAC, multi-tenancy and audit logs are the foundation — not the roadmap.

AES-256-GCM at rest

Every carrier + channel credential is encrypted with AES-256-GCM keyed by the operator's AUTH_SECRET. Never logged, never leaves Postgres in cleartext.

TOTP-mandatory admin

The operator console requires RFC-6238 TOTP on every sign-in. No backdoor flag, no exception — 2FA is the gate.

Multi-tenant isolation

Every row is scoped by organizationId at the query boundary. Demo data is org-gated (isDemo flag) so no tenant ever sees another's.

Full audit trail

Carrier connects, label buys, rule edits, webhook rotations — each one logs who, what, when. Exportable CSV.

Pricing

Simple, volume-honest tiers.

Free tier for shops getting started. Paid tiers scale with your label volume and unlock team size, multi-warehouse, API access and priority support. Upgrade or cancel any time from your Stripe portal.

Starter
Free

Everything you need to start shipping. Bring your own carrier accounts, we don't charge per label.

  • Up to 100 labels / month
  • Rate-shop all 6 carriers
  • All 8 sales channels
  • Branded tracking + returns portal
  • Email support
Growth
$39
/mo
14-day free trial

For shops hitting stride. Automations, batch workflows, and more headroom.

  • Everything in Starter
  • Up to 1,000 labels / month
  • Automation rule engine
  • Batch quote & buy
  • Up to 3 users
Most popular
Pro
$69
/mo
14-day free trial

Multi-warehouse ops with API access and PrintNode per-warehouse routing.

  • Everything in Growth
  • Up to 3,000 labels / month
  • Multi-warehouse + routing
  • API keys & webhooks
  • Up to 10 users
Scale
$99
/mo
14-day free trial

For high-volume dispatch. Unlimited users and warehouses, priority support.

  • Everything in Pro
  • Up to 5,000 labels / month
  • Unlimited users
  • Unlimited warehouses
  • Priority support
Enterprise
Contact us

Custom volume, SAML SSO, dedicated onboarding, SLA. For ops teams that need more than the shelf.

  • Everything in Scale
  • Custom label volume
  • SAML SSO / SCIM
  • Dedicated onboarding
  • 99.9% uptime SLA

Cheaper per label than ShipStation, ShippingEasy and Shippo at every equivalent volume tier. No seat tax. Cancel any time — Stripe handles billing, we handle shipping.

FAQ

Everything we get asked in the first call.

Do I need my own carrier account?+
No — you can ship entirely with our platform UPS + FedEx accounts at our negotiated rates. If you already have carrier contracts, paste them in /carriers and we'll quote against both. You control which account shows up in rate-shop per order.
Can I still use UPS / FedEx if I'm outside the US?+
Yes. UPS and FedEx support international rates in most regions. For non-US merchants we recommend DHL or Royal Mail for domestic plus UPS / FedEx International Priority / Economy for cross-border. All quotes live in the same rate-shop panel.
How does OAuth install work for channels and carriers?+
For Shopify, WooCommerce, Amazon, Etsy and eBay — and for UPS and USPS — you click Connect, authorize on the partner's site, and we keep the refresh tokens encrypted on our side. No dev portals, no pasting API keys.
What happens when a token expires?+
Every adapter refreshes tokens automatically. If a refresh fails (seller revoked the app, secret rotated, account suspended), the store is marked auth-failed on the dashboard so you can re-connect in one click.
Is my data isolated from other tenants?+
Yes — every row in the database is scoped by organizationId and every query enforces it. Credentials are encrypted at rest with AES-256-GCM keyed by the operator's AUTH_SECRET. Demo data is gated behind an isDemo flag on the organization.
Where is Shipnest hosted?+
On Railway with a managed Postgres plugin. Scheduled jobs run via GitHub Actions cron. Your data never leaves your chosen region.
Can I bring my own email provider?+
Resend is the default. The email module is pluggable — set EMAIL_PROVIDER=console for dev or swap in another transactional provider via a small adapter.
What's the fastest way to test without paying?+
Sign up, try the one-click demo login from /login, or connect a Shopify dev-store and a single carrier sandbox. You'll see the full flow end-to-end without buying real labels.
What if my stores run in different currencies?+
Every order keeps its native currency from the channel. A US Shopify order stays in USD, a UK Shopify order stays in GBP, an Etsy-EU order stays in EUR. KPIs, reports and CSV exports show one line per currency (`$4,200 · £1,800 · €900`) — never a fake FX rollup. The Default currency setting in /settings is just the fallback for manual orders and the product catalog; it does NOT override order currencies.
Do I need PrintNode?+
Only if you want labels to skip the browser print dialog. Without PrintNode you click Print → a new tab opens → you hit print. With PrintNode wired up, labels go directly to your configured Zebra / Dymo. It's per-user, costs ~$5/month on their side, and you paste your API key in Settings → Printers. Warehouse operators can even route per-warehouse (dock A's Zebra vs dock B's), with one-click retry on any failed job.

Ship your first label in the next five minutes.

Connect a store, paste a carrier account, print a label. No seat fees, no setup calls, no fake "book a demo" dance.