ShipWave API Documentation
The ShipWave API lets you manage orders, purchase shipping labels, track packages, and automate your fulfillment workflow programmatically.
Base URL: https://shipwave.app/api/v1
Quick Start
1. Create an API Key
Generate an API key from the ShipWave dashboard under Settings > API Keys, or via the admin endpoint:
curl -X POST https://shipwave.app/api/admin/api-keys \
-H "Content-Type: application/json" \
-H "Cookie: <session_cookie>" \
-d '{"name": "My Integration"}'
Your key will look like sw_live_... and is shown only once — store it securely.
2. Make Your First Request
List your orders:
curl https://shipwave.app/api/v1/orders \
-H "Authorization: Bearer sw_live_abc123..."
const res = await fetch("https://shipwave.app/api/v1/orders", {
headers: { Authorization: "Bearer sw_live_abc123..." },
});
const { data, meta } = await res.json();
console.log(`Found ${meta.total} orders`);
3. Ship an Order
The typical flow is: get rates → pick a rate → purchase a label.
# Get rates
curl -X POST https://shipwave.app/api/v1/orders/ORDER_ID/rates \
-H "Authorization: Bearer sw_live_abc123..."
# Purchase a label (use IDs from the rates response)
curl -X POST https://shipwave.app/api/v1/orders/ORDER_ID/labels \
-H "Authorization: Bearer sw_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"purchaseToken": "eyJ...",
"easypostShipmentId": "shp_abc123",
"rateId": "rate_xyz789"
}'
Response Format
Success
{
"data": { ... }
}
Paginated
{
"data": [ ... ],
"meta": {
"page": 1,
"limit": 50,
"total": 250,
"totalPages": 5
}
}
Error
{
"error": {
"code": "VALIDATION_ERROR",
"message": "orderNumber is required",
"details": {}
}
}
See Errors for all error codes.
Table of Contents
| Section | Description |
|---|---|
| Authentication | API keys, Bearer auth, permissions |
| Rate Limiting | Request limits, headers, handling 429s |
| Errors | Error codes and common patterns |
| Pagination | Page-based pagination |
| Orders | Create, list, update, and cancel orders |
| Rates & Labels | Get shipping rates and purchase labels |
| CRM Label Replacement | Void and replace labels after support address corrections |
| Shipments | List shipments, void/refund labels |
| Warehouses | Manage warehouse addresses |
| Products | Browse products, update variant shipping details |
| Tracking | Live tracking lookups |
| Webhooks | Subscribe to events with signature verification |
Authentication
API keys, Bearer auth, permissions
Rate Limiting
Request limits, headers, handling 429s
Errors
Error codes and common patterns
Pagination
Page-based pagination
Orders
Create, list, update, and cancel orders
Rates & Labels
Get shipping rates and purchase labels
Shipments
List shipments, void/refund labels
Warehouses
Manage warehouse addresses
Products
Browse products, update variant shipping details
Tracking
Live tracking lookups
Webhooks
Subscribe to events with signature verification