Migrating from ShipStation
ShipStation moved API access to their $99/month Gold Plan. Package Retriever’s API is free — no subscription, no per-label markup, no surcharge for using your own carrier accounts. This guide maps every ShipStation API concept to its Package Retriever equivalent so you can migrate your existing integration.What you’re getting
| Feature | ShipStation | Package Retriever |
|---|---|---|
| API access | $99/month (Gold Plan) | Free |
| BYOA (own carrier accounts) | +$20/month surcharge | No surcharge |
| Rate limits | Undocumented | Published in docs |
| Sandbox environment | Locked behind Gold Plan | Free, test key prefix |
| Webhook retry behavior | Undocumented | 5 attempts, published schedule |
| Carbon emissions per label | Not available | Included on every rate |
| Multi-carrier rate shopping | Yes | Yes |
| Batch label creation | Yes (500 max) | Yes (5,000 max) |
Authentication
ShipStation uses HTTP Basic Auth with an API Key and Secret. Package Retriever uses a single Bearer token.Endpoint mapping
| ShipStation Endpoint | Method | Package Retriever Equivalent | Status |
|---|---|---|---|
/shipments/createlabel | POST | POST /v1/labels | Available |
/shipments/getrates | POST | POST /v1/rates | Available |
/shipments/voidlabel | POST | DELETE /v1/labels/{id} | Available |
/shipments | GET | GET /v1/labels/{id} | Available |
/carriers | GET | GET /v1/carrier-accounts | Available |
/carriers/listservices | GET | Included in rate response | Available |
/webhooks/subscribe | POST | Dashboard settings (single URL) | Available |
/orders | GET | Not applicable (use your marketplace integration) | — |
/orders/createorder | POST | Not applicable | — |
/shipments/createshipment | POST | POST /v1/batches | Available |
/accounts/listtags | GET | Not applicable | — |
Rate shopping
ShipStation:- All carriers returned in a single response (ShipStation requires separate calls per carrier)
- Sorted cheapest-first by default
carbon_gramsincluded on every rate- Full address required (not just postal codes) — enables residential surcharge detection
Label creation
ShipStation:- Two-step flow: get rates first, then purchase by
rate_id - Payment is via prepaid wallet (not per-transaction card charge)
wallet_balance_after_centsreturned on every purchase so you always know your balance
Sandbox / testing
ShipStation: Requires Gold Plan ($99/month) to access API at all. No separate test environment. Package Retriever:BYOA (Bring Your Own Account)
ShipStation: $20/month surcharge per carrier account. Package Retriever: Free. Connect via dashboard, use in API automatically.Webhooks
ShipStation: Multiple webhook types, complex subscription management. Package Retriever: One event (label.created), one URL, simple HMAC verification.
- Attempt 1: Immediately
- Attempt 2: 5 minutes
- Attempt 3: 30 minutes
- Attempt 4: 2 hours
- Attempt 5: 24 hours
Batch label creation
ShipStation: Max 500 labels per batch. Package Retriever: Max 5,000 labels per batch with parallel processing.Error handling
ShipStation returns carrier-native error strings. Package Retriever normalizes every error to a consistent format:- A dot-notation
codeyou can catch programmatically (error.code.startsWith('LABEL.')) - A
suggestiontelling you what to do next - A
docs_urllinking directly to the error documentation - A
request_idfor support lookups
Migration checklist
- Create a Package Retriever account (free)
- Generate a sandbox API key (
pr_test_prefix) - Replace ShipStation rate calls with
POST /v1/rates - Replace label creation with
POST /v1/labels(rate_id from step above) - Replace webhook subscriptions with single URL in dashboard settings
- Fund your wallet (prepaid, minimum $5)
- Generate a live API key (
pr_live_prefix) - Swap test key for live key in production
- Cancel ShipStation subscription
Questions?
- Docs: docs.packageretriever.com
- Support: Available to all users regardless of plan (Intercom in dashboard)
- Status: status.packageretriever.com

