Developer Tools

Shipping API

Build custom shipping workflows with a single RESTful API. Rate-shop across 12+ carriers, buy discounted labels, track packages, and get webhook notifications as orders and shipments change. Embed multi-carrier shipping into any platform, ERP, or custom application.

12+

Carriers Available

USPS, UPS, FedEx, DHL & regional

REST

Standard Protocol

JSON over HTTPS with API keys

HMAC

Signed Webhooks

SHA-256 signature on every delivery

60/min

Per-Key Rate Limit

Standard rate-limit headers

Benefits

Why Businesses Choose This Feature

One API, Every Carrier

Stop maintaining separate integrations for USPS, UPS, FedEx, DHL, and regional carriers. One rates request compares every carrier available to your account, and one label request buys the label, whichever carrier wins.

Rate Shopping Built In

Send an order and ShipWave packs it into boxes from your product dimensions, then compares live carrier rates. It recommends the best option under your carrier rules. You see every rate with its price, transit time, and delivery estimate, and a purchase token buys the recommended one.

Webhooks for Orders and Shipments

Subscribe to order and shipment events, including label creation, voids, and tracking updates, and get a signed POST to your server when they happen. Update your systems automatically instead of polling.

Multi-Box and Partial Shipments

Orders that need more than one box get per-box rates and one combined recommendation, bought in a single request. Ship part of an order now and the rest later by rating only the items you are sending.

Discounted Carrier Rates

Every label purchased through the API uses ShipWave's discounted commercial rates, from your first call. No contracts, no minimums, and no separate carrier accounts to set up.

Tracking, Returns, and Addresses

Look up live tracking with full event history in one format for every carrier. Manage returns and return labels, and verify or parse addresses before you ship.

How the Shipping API Works

1

Authenticate

Create an API key in your ShipWave dashboard under Settings → API Keys and send it as a Bearer token. Choose the access each key needs. Keys can be rotated without downtime.

2

Create an Order and Get Rates

Orders from connected stores sync automatically, or you can create them through the API. POST to an order's rates endpoint to get live carrier rates and a purchase token for the recommended rate.

3

Buy the Label and Track It

POST the purchase token to the labels endpoint to get the label URL and tracking number, and optionally send it to your printer. Then follow the package through tracking lookups and webhook events.

A Closer Look at the Shipping API

Core Endpoints: Orders, Rates, Labels, and Tracking

The ShipWave API is built around orders. An order holds the ship-to address, line items, and an assigned warehouse. It can come from a connected store or be created through the API with an idempotency key, so a retried request never creates a duplicate. The rates endpoint packs the order into boxes using your product catalog's dimensions and weights, or dimensions set on the order. It then returns every available carrier service with price, estimated transit days, and delivery date, and flags the recommended rate. The recommendation follows the carrier and service rules you configure in ShipWave. For international orders the response includes the customs items, and dangerous-goods checks are available. The labels endpoint buys the recommended rate with a short-lived, signed purchase token. It returns the label URL, tracking number, carrier, and service, and can queue the label for printing. Unused labels can be voided before the carrier scans them. Tracking lookups return the current status and the full event history in one format for every carrier.

Webhooks and Event-Driven Integrations

Polling for status changes is slow and wasteful. Register a webhook URL through the API and pick the events you want: orders created and updated, shipments created and voided, and tracking updates. Each delivery is a JSON POST signed with HMAC-SHA256 using your subscription secret, so your server can confirm it came from ShipWave. Failed deliveries are retried automatically. This lets an ERP, WMS, or customer service platform keep order and shipping status in sync without manual steps. For example, a warehouse system can start pick-and-pack when a shipment is created, and a support team can follow tracking updates to reach out about delayed packages.

Authentication, Rate Limits, and Testing

Authentication uses API keys sent as Bearer tokens in the Authorization header. When you create a key you choose its access: the Shipping API, address verification, or AI label checkout. Each key expires after one year. You can rotate without downtime by creating a new key, updating your application, and revoking the old one. Each key can make 60 requests per minute. Every authenticated response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers, and a 429 response includes Retry-After so your application can back off cleanly. There is no separate sandbox. Every key works against your live account. You can still build most of an integration at no cost: reading data, creating and cancelling orders, fetching rates, and receiving webhooks are all free. The API documentation explains how to test a real label purchase and void it.

Advanced Use Cases

Custom warehouse management systems often combine the orders, rates, labels, and webhook endpoints into a complete fulfillment pipeline. Orders arrive from the storefront or the WMS, ShipWave picks the best carrier for each package under your rules, labels print through the ShipWave print agent, and webhook events update order status. Multi-box orders are rated and bought in one request, and partial fulfillment lets you ship available items first. Address verification and parsing endpoints catch bad addresses before you buy a label, which reduces failed deliveries and address-correction surcharges. Returns endpoints let you approve returns, issue return labels, and record received items without leaving your own system.

ShipWave API vs. Building Carrier Integrations

See how using ShipWave's unified API compares to building and maintaining direct carrier integrations yourself.

FeatureShipWaveDIY Carrier Integrations
Number of integrations to build1 API for all carriersSeparate integration per carrier
Time to first labelHours with API keyWeeks to months per carrier
Rate negotiation requiredNo — discounts includedYes — per carrier contracts
Carrier account setupNone requiredSeparate account per carrier
Tracking formatNormalized across all carriersDifferent format per carrier
Webhook supportBuilt-in with HMAC signingMust build per carrier
Regional carrier accessIncluded (OnTrac, Veho, etc.)Requires additional integrations
Multi-box ratingAutomatic box packing and combined ratesMust build packing logic
Ongoing maintenanceShipWave handles updatesYou maintain every integration

API Capabilities

The core shipping workflow is available through the API.

  • Order creation with idempotency keys
  • Multi-carrier rate shopping for any order
  • Automatic box packing and multi-box labels
  • Label purchase with optional printing
  • Normalized tracking events across all carriers
  • Webhook subscriptions with HMAC-SHA256 signatures
  • Address verification and parsing
  • Voiding unused labels before carrier scan
  • Returns management and return labels
  • Scoped API keys with one-year expiry
  • Rate-limit headers and Retry-After
  • International shipping with customs declaration support

Who Uses the Shipping API

Custom Ecommerce Platforms

Teams with their own storefront send orders to ShipWave and buy labels programmatically, without building carrier integrations from scratch.

Headless Commerce

Headless storefronts built on Next.js, Remix, or a custom frontend call the API from their backend to create orders and buy labels when orders are confirmed. The API fits into any stack.

ERP & Order Management Systems

ERPs like NetSuite, SAP, or custom order management systems use the API to add shipping to existing workflows. Buy labels from inside your ERP, receive tracking numbers by webhook, and keep fulfillment data in one system.

Third-Party Logistics (3PL) Providers

Logistics teams use the API to rate-shop and buy labels across carriers for the orders they fulfill, from a single integration.

Custom Warehouse Management Systems

Warehouses with their own WMS use the API to automate carrier selection, label printing, and tracking updates. Webhooks feed delivery status straight back into the WMS, with no polling.

Multi-Box & Partial Shipments

Operations that ship large or split orders let ShipWave pack each order into boxes, rate every box, and buy all the labels in one request, or ship available items first and the rest later.

Frequently Asked Questions

What format does the shipping API use?

The ShipWave API is RESTful and uses JSON over HTTPS. Every request needs a Bearer token in the Authorization header. Responses use standard HTTP status codes, and every error has a machine-readable code and a message. The main resources are /orders (including rates and labels), /shipments, /tracking, /returns, /webhooks, and /addresses.

Do I need carrier accounts to use the API?

No. ShipWave gives you USPS, UPS, FedEx, DHL, and regional carriers through a single API key. You do not need to sign up with individual carriers or negotiate rates.

What are the rate limits?

Each API key can make 60 requests per minute. Every authenticated response includes X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers. If you go over the limit, the API returns a 429 status with a Retry-After header that tells you how many seconds to wait.

Is there a test environment?

There is no separate sandbox. API keys work against your live account. Reading data, creating and cancelling orders, fetching rates, and receiving webhooks are all free, so you can build most of an integration without buying anything. To test the label step, buy a label and void it before the carrier scans it. The API documentation walks through this.

How do webhooks work?

Create a webhook subscription through the API with your HTTPS URL and the events you want, such as shipment.created or shipment.tracking_updated. When an event happens, ShipWave sends a JSON POST to your URL, signed with HMAC-SHA256 using your subscription secret. Failed deliveries are retried automatically.

Can I use the API alongside the ShipWave dashboard?

Yes. The API and dashboard share the same data. Labels bought through the API appear in your dashboard, and orders in your dashboard can be managed through the API. Many teams use the dashboard for one-off shipments and the API for automated workflows.

What programming languages are supported?

Any language that can make HTTPS requests. It is a standard REST API with JSON payloads, so it works with JavaScript, Python, Ruby, PHP, Go, Java, C#, and more. The API documentation includes curl and TypeScript examples for every main endpoint.

Start Building with the Shipping API

Create an API key and ship your first label in minutes. No carrier accounts, no contracts, no minimum volume.