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
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.
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.
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.
| Feature | ShipWave | DIY Carrier Integrations |
|---|---|---|
| Number of integrations to build | 1 API for all carriers | Separate integration per carrier |
| Time to first label | Hours with API key | Weeks to months per carrier |
| Rate negotiation required | No — discounts included | Yes — per carrier contracts |
| Carrier account setup | None required | Separate account per carrier |
| Tracking format | Normalized across all carriers | Different format per carrier |
| Webhook support | Built-in with HMAC signing | Must build per carrier |
| Regional carrier access | Included (OnTrac, Veho, etc.) | Requires additional integrations |
| Multi-box rating | Automatic box packing and combined rates | Must build packing logic |
| Ongoing maintenance | ShipWave handles updates | You 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.
Explore More
Related Features
Shipping Labels
Compare rates from 12+ carriers and purchase discounted shipping labels in seconds through the dashboard interface.
Learn more →
Automation Rules
Set up rules to automatically select carriers, apply package presets, and route shipments based on weight, destination, or value.
Learn more →
Store Integrations
Connect Shopify, BigCommerce, WooCommerce, Etsy, eBay, and Amazon to sync orders and push tracking numbers automatically.
Learn more →
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.