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

SectionDescription
AuthenticationAPI keys, Bearer auth, permissions
Rate LimitingRequest limits, headers, handling 429s
ErrorsError codes and common patterns
PaginationPage-based pagination
OrdersCreate, list, update, and cancel orders
Rates & LabelsGet shipping rates and purchase labels
CRM Label ReplacementVoid and replace labels after support address corrections
ShipmentsList shipments, void/refund labels
WarehousesManage warehouse addresses
ProductsBrowse products, update variant shipping details
TrackingLive tracking lookups
WebhooksSubscribe to events with signature verification