USPS
Priority Mail Intl
10–15 days$18.30
$10.00 of taxes & duties included
all-in · no surprises
GoatLabels exposes its full REST API — rates, labels, voids, webhooks — free and unlimited on every plan, unlike ShipStation where API access rides on subscription tier.
USPS, UPS, FedEx, and DHL returned together as all-in prices — no per-carrier plumbing on your side.
The API and the dashboard buy from one prepaid balance, and voids credit straight back to it.
Both platforms will sell you a label over HTTP. The question a developer should be asking is narrower than that: what does my code have to assume about the account it runs against, and what breaks when someone downgrades the plan.
| GoatLabels | ShipStation | |
|---|---|---|
| What unlocks the API | Nothing. An account and a key. The endpoints on Free are the endpoints on Pro. | API access is a function of which subscription tier you are on — check their current plan matrix. |
| Call volume | Unlimited calls on every plan, including Free. | Plan-dependent, and the ceiling is part of what you are paying for. |
| Retry safety | Idempotency keys on label purchase — a retried request cannot buy a second label. | Documented API; confirm their current idempotency semantics before you build a retry loop. |
| Event delivery | Signed webhooks for tracking and label events, verified against a shared secret. | Webhooks available; scope varies with the plan you are on. |
| Carriers you can rate-shop programmatically | USPS, UPS, FedEx, and DHL — one call returns all four as all-in prices. | Broad carrier list — see their site for current coverage and account requirements. |
| What a void does to the money | Credits the prepaid wallet the label was bought from, in the same balance your next call spends. | Refund flows back through subscription billing. |
ShipStation is a trademark of its owner and is not affiliated with GoatLabels. Their plans, API entitlements, and carrier list change — verify against their current documentation before you decide.
When API access rides on subscription tier, your integration's capabilities change when finance changes the plan. GoatLabels puts every endpoint — rates, labels, voids, tracking, webhooks — on every account, so the contract your code depends on is not a billing decision someone else can make.
The expensive part of evaluating a shipping API is usually the plan you have to buy before you can send the first request. Here the first request costs nothing: create an account, take a key, and rate-shop USPS, UPS, FedEx, and DHL against a real parcel before you write the second file.
Labels bought by the API and labels bought in the dashboard debit the same prepaid wallet, and voids credit it back. There is no separate metering ledger to reconcile against a monthly statement — the balance is the ledger.
Migrating a shipping integration is mostly re-typing a shape you already know: a shipment goes in, a list of rates comes back, you pick one and buy it. GoatLabels keeps that shape. What changes is everything around it — the endpoints are not gated behind a plan tier, calls are unlimited on Free, label purchase takes an idempotency key so a retry cannot double-buy, and tracking arrives as a signed webhook rather than a poll loop you have to schedule. Orders can reach the same queue from store connectors, from your own API calls, or from a pasted message that Billy drafts into a label, and all of them debit one prepaid wallet.
POST /api/v1/shipments — 1x Hoodie (L), Brooklyn NY 11201
Connectors, REST API, DMs, and screenshots — one queue, no import mapping.
201 Created, a label URL, and a signed webhook when the parcel moves. No polling loop required.
Shopify, Etsy, WooCommerce, and TikTok Shop sync into To Ship and push tracking back when a label prints — work you would otherwise be maintaining yourself. Everything outside that set is a POST to /api/v1/shipments, and both routes land in the same queue against the same wallet.
Via AI tiles: an order that never hit your endpoint still becomes a label.
Evaluating a shipping platform as a developer usually means paying before you can see whether the endpoints do what the docs claim. Here the evaluation and the production account are the same account: unlimited calls, every route, and a wallet you top up when you actually start printing.
Card, Apple Pay, Google Pay, ACH bank transfer, and crypto top up the same balance, and a label bought by code debits it exactly like a label bought by a human. Void a shipment and the credit lands back in the wallet, not on a statement three weeks out.
Support pastes the DM, Billy drafts the label, and your integration never has to grow a free-text parser. It is the escape hatch every shipping integration eventually needs and almost none of them have.
Rates, labels, voids, tracking, and webhooks are available to every account. Pro changes shipment limits and label pricing — it does not change what your code is allowed to call, which is the property you actually want from a dependency.
One rate call returns all four as live all-in prices, and the number you see is the exact amount that leaves the balance when you buy. That is the honest carrier list — if your integration needs one outside it, ShipStation's broader network is a real reason to stay. Store connectors exist for Shopify, Etsy, WooCommerce, and TikTok Shop, but an API-only account never has to touch them.
A retried purchase returns the original label rather than buying a second one, and tracking and label events arrive signed so you can verify them instead of trusting the sender. Errors name the field to fix rather than returning a generic 400.


Label ready
CL-1038 · Brooklyn, NY
Every shipping integration has a long tail: the phone order, the DM, the customer-service exception, the parcel someone has to send today. On ShipStation that tail lands in a UI someone has to learn. Here it lands in Billy, on the phone already in their hand, and the resulting label debits the same wallet your code spends from.
The feature request that never makes it up your backlog is the internal tool for one-off shipments. Billy is that tool, already built: say who it is going to, and it looks up the buyer, rate-shops USPS, UPS, FedEx, and DHL, and queues the label against the prepaid balance — then answers questions about tracking afterwards. This is the real product, not a render.

Listening
"Where's Maya's package?"
Out for delivery
CL-1039 · Austin, TX · by 6 PM
Plain English in — names, addresses, weights, carriers, services · nothing to import and nothing to map · reads the all-in rate back before a cent leaves the wallet · phone, browser, or Telegram.
One rate call, several carriers, and each number is the exact amount that leaves the prepaid balance when your code buys it. Nothing arrives the day after with an adjustment on it, which means your own reconciliation job can compare the quote you stored against the debit and expect them to match.
Priority Mail Intl
10–15 days$18.30
$10.00 of taxes & duties included
all-in · no surprises
Intl Connect Plus
3–5 days$22.80
$11.00 of taxes & duties included
all-in · no surprises
Express Worldwide
1–2 days$26.20
$12.20 of taxes & duties included
all-in · no surprises
REST, JSON, one Bearer header. Idempotency keys so a retried request cannot double-buy a label, signed webhooks for tracking and label events instead of polling, and errors that name what to fix. Every route is reachable from a free account, and the dashboard buys from the same prepaid balance your keys do.
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421
{
"to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
"parcel": { "weight": 1.2, "weight_unit": "kg" },
"service": "fedex_intl_priority"
}
Free covers 50 shipments a month with the public API, the store connectors, and Billy all unlimited underneath it — we make a little on each label instead. Pro is a flat monthly fee for unlimited shipments, cheaper label pricing, and Billy on Telegram. Neither plan changes which endpoints your key can call, which is the whole point of this page.
Volume pricing
illustrativemore volume → lower per-label rates
$0 / forever
Enough to ship a real integration to production without a subscription under it.
The assistant that reads a DM, a screenshot, or a voice note into a drafted label runs unlimited in the web app on Free. Pro adds Billy on Telegram.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls on Free — still unlimited on Pro.
On Pro we will work with you to beat the label rates you are already getting from
ShippoPirateShipShipStationLabel prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one all-in number — the same number that leaves your wallet. ShipStation's plans and API entitlements move, so compare against their current pricing page rather than a figure on ours. Full pricing details
These are the teams for whom an ungated API, unlimited calls, and a prepaid wallet add up to a real difference — and the ones for whom they do not are named on this page too.
Building shipping into someone else's app
The first request costs nothing and the hundred-thousandth costs nothing either. You pay for labels, so an integration that sits idle between launches does not accrue a bill while it waits.

Cron jobs, batch buys, retries
Idempotency keys mean the nightly job that times out halfway through can simply run again. Nothing double-buys, and the wallet balance is the single number to alert on.
One balance to monitor
Order #1024 · bought by POST /shipments
The long tail, without a new internal tool
One integration, many accounts
1
wallet behind the API and the dashboard
A video took off and I had 80 TikTok Shop orders by morning. I printed every label from my phone on the bus to the post office.
Early customer · TikTok
TikTok Shop seller
I run my Etsy shop from the kitchen. The AI reads the order, picks the carrier, the label prints. That's the whole workflow now.
Early customer · Etsy
Etsy maker
The API is what every shipping API pretends to be. Idempotency that actually works.
Sasha R.
Staff engineer, marketplace
Comparing the platforms rather than the APIs? See GoatLabels vs ShipStation, or ShipStation vs free shipping software. Weighing the subscription itself? What to do about a price increase covers the options, and label pricing works like this.
Create an account, generate an API key, and POST a real shipment. Compare the four all-in rates against the quote you were about to buy, and keep your existing integration running the whole time.
Sign up in seconds. No card required. Unlimited API calls on every plan.