USPS
Priority Mail Intl
10–15 days$18.30
$10.00 of taxes & duties included
all-in · no surprises
GoatLabels offers an unlimited free REST API across USPS, UPS, FedEx and DHL, so developers avoid Shippo's API tiers and per-label platform fees entirely.
USPS, UPS, FedEx, and DHL quoted in a single request — live all-in rates, no carrier accounts to bring.
Top up with card, Apple Pay, Google Pay, ACH, or crypto — the API and the dashboard spend the same wallet.
Both APIs create a shipment, return rates, and buy a label — that part is a solved problem and Shippo solved it well. The divergence is what happens to your unit economics when the integration succeeds: whether every label your code buys carries a platform fee on top of the carrier rate, and whether the call volume itself sits behind a plan.
| GoatLabels | Shippo | |
|---|---|---|
| What the API costs | Nothing. Unlimited calls on every plan, including Free — the API is not a tier and there is no request budget. | API access is bound to their plan structure and a per-label platform fee — check their current pricing page. |
| Cost per label bought via API | The carrier rate, debited from the prepaid wallet. No platform fee sits between the quote and the buy. | A per-label platform fee applies on the starter plan; paid tiers change the arithmetic. |
| Carrier accounts | None needed. Rates come from our accounts across USPS, UPS, FedEx, and DHL on first call. | Supports both their rates and your own carrier accounts — bring-your-own is well handled there. |
| Retry safety | Idempotency keys on label purchase — a retried request returns the original label, never a second one. | Mature API with its own retry semantics documented on their site. |
| Event delivery | Signed webhooks for tracking and label events, verified with a shared secret. No polling loop. | Webhooks and a well-documented event model — this is their home turf. |
| Refunds on a void | Credited straight back to the same prepaid balance the call spent from. | Standard carrier refund flow through their billing. |
Shippo is a trademark of its owner and is not affiliated with GoatLabels. Their plans, fees, and carrier list change — compare against their current pricing page before you decide.
A good integration quotes far more often than it buys — cart estimates, re-quotes on address edits, background comparisons, retries. If calls are metered, you start caching quotes you should have refreshed. An unlimited free API removes the incentive to be stingy with the thing that makes rates accurate.
Platform fees are invisible in staging and load-bearing in production. GoatLabels charges the carrier rate and debits the prepaid wallet — the number your rate call returned is the number that leaves the balance, so the margin model you built at ten labels a day still holds at ten thousand.
Most shipping integrations end up needing a human surface for exceptions. The GoatLabels dashboard buys from the same balance as the API, and Billy drafts a label from a pasted message — so support can fix a mis-addressed parcel without you writing an internal tool for it.
Structured orders come in the way they always did — store connectors and the REST API both feed the same To Ship queue, and the API path is three calls: create the shipment, read the rates, buy the label. What sits alongside it is a human surface for everything your integration was never going to cover: the address the customer got wrong, the parcel that needs re-shipping, the order that arrived as a message. Paste it or dictate it and Billy drafts the label, so nobody files a ticket asking you to write an admin tool. Both surfaces debit the same prepaid wallet, funded with card, Apple Pay, Google Pay, ACH, or crypto, so there is nothing to reconcile between what your code spent and what support spent — and no monthly minimum sitting under a dev month where you shipped nothing at all.
Hey! 2x hoodies (M) 1x tee (L) 😅 Ship to: Maya R. Austin, TX 78701
REST API, store connectors, DMs, and screenshots — one queue and one balance behind all of them.
Signed webhooks push tracking back to your stack. Idempotency keys make a retried buy safe.
Shopify, Etsy, WooCommerce, and TikTok Shop sync into To Ship and get tracking pushed back when you print — useful when your product needs a storefront integration you would rather not write. The REST API feeds the same queue, spends the same wallet, and reports the same events, so nothing has to be reconciled between the two paths.
Via AI tiles: an order that never became a record still becomes a label.
Create, rate-shop, buy, track — the same four verbs your Shippo client already implements, against REST and JSON with one Bearer header. What does not come with you is the per-label platform fee and the plan the API sits behind. What is new is a human surface that shares your balance.
Card, Apple Pay, Google Pay, ACH bank transfer, and crypto all top up the same balance, and every method buys identical rates, carriers, and features. Void a shipment from the API or the dashboard and the credit lands back in the wallet immediately, ready for the next call.
Not every shipment your business makes will pass through your integration. Billy reads a message, an email, a screenshot, or a spoken address and drafts the label — the exception path you would otherwise have built an internal admin tool for, spending the same prepaid balance your API calls do.
The API is free and unlimited on every plan, and labels are the carrier rate debited from a prepaid wallet. A month where the integration sat in staging and bought nothing costs nothing. Pro is an optional flat plan for cheaper label pricing at volume — never a gate on API access.
One rate call returns live all-in prices from USPS, UPS, FedEx, and DHL, and the number in the response is the exact amount that leaves your balance when you buy it. No carrier accounts to provision, no credentials to rotate. That is the honest carrier list; if you need one outside it, Shippo's broader network is the reason to stay. Store connectors feed the same queue your API calls do, so a storefront integration is one less thing to write.
REST and JSON, one Bearer header, real idempotency keys so a retried purchase returns the original label instead of buying a second, signed webhooks for tracking and label events instead of polling, and errors that name the field to fix. OpenAPI 3.1, no SDK lock-in, unlimited calls on every plan.


Label ready
CL-1038 · Brooklyn, NY
An API-only tool assumes every shipment starts as a record in your system. In practice, someone in support is always shipping a replacement from a phone. GoatLabels gives that person a real surface — the same wallet, the same carriers, the same rates — instead of a ticket in your backlog.
Your API handles the happy path well. This is the other one: the replacement parcel, the sample going to a partner, the order someone took by phone. Hold the mic, say who it is going to, and Billy looks up the buyer, rate-shops USPS, UPS, FedEx, and DHL, and queues the label against the same prepaid balance your code spends from. 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.
Three carriers on the same parcel, each an all-in number — and the number your rate call returned is the exact amount that leaves the prepaid balance when the buy call succeeds. No platform fee is inserted between the two, nothing arrives the day after with an adjustment, and a void credits the wallet rather than a card statement weeks later.
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
The same three calls you already write: create the shipment, read the rates, buy the label. One Bearer header, JSON in and out, real idempotency keys so a retried request cannot double-buy, signed webhooks instead of a polling loop, and errors that name what to fix. OpenAPI 3.1, no SDK lock-in, and the call volume itself is free on every plan.
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 unlimited underneath it — unlimited calls, signed webhooks, the whole spec, on the plan that costs nothing. We make a little on each label instead of metering your requests or charging a platform fee on top of them. Pro is a flat monthly fee for unlimited shipments and cheaper label pricing at volume; API access is identical on both.
Volume pricing
illustrativemore volume → lower per-label rates
$0 / forever
Enough to build, stage, and launch an integration without a bill attached.
The assistant that reads a message, a screenshot, or a voice note into a drafted label runs unlimited in the web app on Free — a support surface you did not have to build. 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 when the buy call returns. Shippo's plans and fees move, so compare against their current pricing page rather than a figure on ours. Full pricing details
These are the teams for whom unlimited calls, a shared balance, and no per-label fee change the build — and the ones who should keep the client they have are named on this page too.
Rate calls that spike with traffic
Quote volume that follows your traffic fits an unmetered API and a prepaid balance better than a plan tier chosen for last quarter's peak.

Connectors you don't have to write
Connect the storefronts that have connectors and let them feed the same queue your API calls do — one balance, one event stream, no reconciliation.
One queue, connector or not
Order #1024 · pasted from a comment thread
The exceptions that never hit the API
REST and the UI, one balance
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
Reading the spec next? Start with the API docs and the webhook events. Comparing the tools directly? Read GoatLabels vs Shippo, the Shippo pricing teardown, or the migration guide.
Fund a wallet with card, Apple Pay, Google Pay, ACH, or crypto, point one real shipment at the API, and compare the all-in USPS, UPS, FedEx, and DHL rate in the response against what that label costs your integration today.
Sign up in seconds. No card required. No monthly minimum.