USPS
Priority Mail Intl
10–15 days$7.40
$1.90 of duties & taxes prepaid, not billed to your buyer
all-in · no surprises
Two questions separate these platforms: who owns the carrier account, and how labels get paid for. EasyPost expects you to bring negotiated contracts on its BYOCA plans and meters per label. GoatLabels rate-shops its own USPS, UPS, FedEx, and DHL panel and debits a prepaid wallet.
USPS, UPS, FedEx, and DHL quoted on your first parcel — no account numbers, no carrier onboarding, nothing to negotiate first.
No per-call price and no per-label platform charge. Fund a wallet, spend it label by label.
EasyPost is a mature, API-first shipping platform with a carrier network in the hundreds and a model built around carrier accounts you own. If you have negotiated contract rates, or you depend on a regional or freight carrier, both of those are advantages we do not have and cannot fake — we rate-shop four carriers on our own accounts, and that is the whole list. This page is about the two places the models genuinely diverge, not about pretending the breadth is not real.
This is the question that decides which platform you should be on, and it gets asked far too late — usually after an integration is already written.
EasyPost's centre of gravity is bring your own carrier accounts. You hold the UPS or FedEx relationship, you negotiate the rates, and the platform is the layer that speaks to all of them in one API shape. That is genuinely powerful at scale: your discount is yours, it improves as you grow, and no intermediary sits between you and the carrier on the rate. It is also a prerequisite. Getting a contract worth having means volume you can prove, an account rep, and a negotiation — and until that exists, a BYOCA-shaped platform is asking you to bring the one thing you do not yet have.
GoatLabels sits on the other side of that line deliberately. We hold the USPS, UPS, FedEx, and DHL accounts, and a brand-new account gets all four quoted on its first parcel with no onboarding call and no account numbers to enter. You are renting our position rather than building your own, which is the correct trade for anyone who does not yet have leverage — and an actively bad trade for anyone who does. If you already ship enough to hold real contract rates, keep them. That is not a concession, it is arithmetic.
There is a middle path we are happy to state plainly: on Pro, bring the invoice you pay today and we will work with you to beat those label rates. That is a conversation, not a checkbox, and it is the honest answer for a seller sitting between "no contracts" and "good contracts".
The second divergence is how the platform makes money from you, and it is the one that shows up in a spreadsheet. A metered platform charges per label purchased, so its revenue is a line that tracks your shipping volume exactly. GoatLabels charges nothing per label and nothing per API call: there is a flat optional Pro plan, and the labels themselves are bought from a prepaid wallet at the carrier's all-in rate.
That difference is invisible at ten labels a month and structural at a thousand. Here is our side worked at two volumes, with nothing hidden in a footnote.
| Cost line | GoatLabels at 50 labels a month | GoatLabels at 500 labels a month |
|---|---|---|
| Platform fee | $0 — Free covers 50 shipments a month | One flat Pro fee, or $0 if you stay under the Free ceiling across several months |
| Charge per label bought | None. The label price is the carrier's all-in rate | None, and Pro lowers the label rates themselves as volume grows |
| API calls | Unlimited, on Free | Unlimited, on Pro — the same unlimited |
| Where carrier rates come from | Our own USPS, UPS, FedEx, and DHL panel — no account of yours required | The same panel; bring your invoice and we will work to beat the rates you pay today |
| What you pre-fund | Only the labels. A prepaid wallet you top up when you want | The same wallet, topped up in bigger increments |
| A month with zero shipments | $0 | $0 on Free; the Pro fee is the only thing that runs in a quiet month, and Pro is optional |
We are not going to print a competitor's prices on our own page and let them rot there. Pull these four off easypost.com and the comparison does itself:
Two shapes fall out of that exercise. If your volume is growing and your margin per order is thin, a charge that scales one-to-one with labels is the line item to watch, because it grows exactly as fast as the thing you are trying to make money on. If your volume is lumpy — a drop, a season, a campaign — a prepaid wallet handles the shape better than any plan does: pre-fund before the burst, print through it, then pay nothing at all through the quiet weeks, because there is no monthly minimum to print.
The API side of that story is short by design. Calls are unlimited on every plan, so automating more of the loop never moves you to a pricier tier — which is a different sentence from most platforms', where the API is the product and the metering is how it is sold. For what the API actually looks like — authentication, idempotency, signed webhooks — read the docs and run the request yourself, or see GoatLabels vs Shippo, which argues the API surface at length rather than repeating it here.
A comparison page that never reaches this heading is an advertisement. Three cases, stated as narrowly as we can make them.
You hold contract rates worth more than the difference. If you have negotiated UPS or FedEx pricing off real volume, a platform built to carry your accounts is the right architecture and nothing on this page outweighs your own discount.
You need a carrier outside our four. Regional carriers, freight, and the long tail of international partners are breadth we do not have. Four carriers rate-shopped well is a deliberate product decision, not a roadmap promise, and if the fifth one is load-bearing for you, that settles it.
Your integration works and nothing hurts. Migration has a cost even when the destination is better. If you cannot name the problem you are solving, the honest recommendation is to stay.
What is left is a real and common shape: a developer or a seller with no carrier contracts to bring, who wants four carriers quoted from day one, labels paid for out of a prepaid balance rather than metered, and an API whose call price stays at zero as the automation grows. If that is the shape, start with what the plans actually cost and how per-label pricing works.
The BYOCA shape puts work before your first label: a carrier relationship, account numbers to enter, and usually a negotiation you have to be big enough to win. Here the carrier accounts are already ours. An order arrives however it arrives, Billy drafts the label, and USPS, UPS, FedEx, and DHL all quote it — on the first parcel of a brand-new account, with nothing to onboard first.
Hey! 2x hoodies (M) 1x tee (L) 😅 Ship to: Maya R. Austin, TX 78701
Post it to the REST API, sync it from a storefront, paste a DM, or type the address in. None of these paths asks you for a carrier account number.
The all-in quote you approve is the exact amount that leaves the balance, and a label voided before it moves credits straight back to it. Nothing is metered on the way past.
An API-first platform assumes every order reaches you as a POST. Real ones do not. Shopify, Etsy, WooCommerce, and TikTok Shop sync into the To Ship queue, the REST API covers what your own systems generate, and an Instagram or Facebook DM gets pasted straight in — all three paths land in the same queue and quote against the same four carriers.
Feature grids between shipping platforms mostly rhyme. These five are the ones that change what you owe, who you have to go negotiate with, and what a quiet month costs.
Fund it with a card, Apple Pay, Google Pay, ACH, or crypto, then buy labels out of that balance at the carrier's all-in rate. Nothing is charged per label on top and nothing is reconciled after the fact — the money is committed before the label rather than invoiced after it, and a void credits straight back. One honest caveat: a carrier adjustment that lands after shipping and exceeds your balance is charged to the card on file.
The AI assistant drafts a whole label from a pasted order, a screenshot, or a spoken address, and validates the address before you spend anything. That is the half of the job no endpoint does for you — the orders that arrive as a message rather than a webhook — and it runs unlimited on Free.
One all-in price per service at quote time, and that exact amount leaves the wallet. Fuel, residential, and handling are inside it. The only thing that can move it afterwards is a carrier re-weigh, and that arrives as its own clear ledger entry rather than a line on a monthly bill.
USPS, UPS, FedEx, and DHL are quoted on our accounts, so a new account gets all four on its first parcel with no onboarding and nobody to negotiate with. Four is the honest list, and it is deliberately short — if a regional or freight carrier outside it is load-bearing for you, a platform built to carry your own accounts is the better architecture and we will not pretend otherwise.
REST, JSON, one Bearer header, real idempotency keys, and signed webhooks — with unlimited calls on Free as well as Pro. There is no per-call price, no burst tier, and no developer plan to graduate onto, so automating more of the loop never moves you up a tier.


Label ready
CL-1038 · Seattle, US
An integration handles the orders your systems already know about. It does not handle the one that came in as a DM while you were taping a carton, and it does not give whoever is packing a screen to work from. That operator side is a product here, not a thing you were expected to go build on top.
On an API-only platform, "where is Maya's package?" is a tracking endpoint, a bit of glue, and a screen somebody has to build. Here it is a question. Hold the mic, ask it, and Billy pulls the tracking history and reads it back — the same assistant that quotes a parcel from a spoken address and queues the label. This is the real product, not a render.

Listening
"Where's Maya's package?"
Out for delivery
CL-1039 · Austin, TX · by 6 PM
Speaks plain English · quotes all four carriers as one all-in price each · remembers customers and saved boxes · included on every plan, never a pricier tier.
Rate-shopping our panel looks the same as rate-shopping your own contracts: the same parcel priced by every carrier at once, each column a single all-in number locked at quote time. What is different is that you did not have to go get the accounts first, and no platform charge is riding on top of the winner.
Priority Mail Intl
10–15 days$7.40
$1.90 of duties & taxes prepaid, not billed to your buyer
all-in · no surprises
Intl Connect Plus
3–5 days$8.90
$2.20 of duties & taxes prepaid, not billed to your buyer
all-in · no surprises
Express Worldwide
1–2 days$9.80
$2.50 of duties & taxes prepaid, not billed to your buyer
all-in · no surprises
REST, JSON, one Bearer header, signed webhooks instead of polling, and real idempotency keys — with unlimited calls on Free as well as Pro. The endpoints are the boring part; the part worth comparing is that no number goes up when you call them more.
POST /api/v1/shipments
Authorization: Bearer sk_live_…
Idempotency-Key: ord_8421
{
"to": { "name": "Joyce", "city": "Berlin", "country": "DE" },
"parcel": { "weight": 2.6, "weight_unit": "lb" },
"service": "fedex_intl_priority"
}
This is the whole commercial difference on one screen. Free covers 50 shipments a month with the REST API unlimited underneath it, and the labels are bought at the carrier's all-in rate from a prepaid wallet rather than metered and invoiced. Pro is a flat monthly fee for unlimited shipments and cheaper label pricing — the only line that runs in a month you did not ship in, and it is optional.
Volume pricing
illustrativemore volume → lower per-label rates, not a bigger per-label charge
$0 / forever
Enough to run a real integration before anyone asks you for a contract.
The assistant that turns a pasted order, a screenshot, or a spoken address into a drafted label runs unlimited in the web app on Free. It is the half of the job an API cannot do for you, and it is not metered either.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls on Free — still unlimited on Pro. No per-call price at any volume.
On Pro we will work with you to beat the label rates you are already getting from
EasyPostShippoyour own carrier contractLabel prices are quoted live from USPS, UPS, FedEx, and DHL as one all-in number, and that exact amount leaves your prepaid wallet. EasyPost's plans and carrier list are theirs to publish and they change — compare against easypost.com rather than a figure on our page. Full pricing details
Nothing here argues with a business that already holds contract rates. These are the four shapes that reach a shipping API with no accounts to bring, and get told to go get some first.
Building the integration before the volume exists
You can write the whole quote-and-buy loop this afternoon, but a BYOCA platform wants a carrier relationship you cannot have until you ship. Our four carriers quote your first test parcel, and the calls to get there are unlimited on Free.

A drop, a season, a campaign
A metered platform charges in proportion to a month you cannot forecast, and a plan tier asks you to guess it in advance. A prepaid wallet just holds what you put in it: fund before the burst, print through it, pay nothing through the quiet weeks.
A month with zero shipments
$0 — there is no monthly minimum to print
The orders that arrive as a message
Duties inside the same all-in number
DDP
duties prepaid, so the quote survives to the door
Evaluating more than one API? GoatLabels vs Shippo covers the API surface itself, and the docs are open without an account.
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
Create a free account, call the API as much as you like, and buy labels at the carrier's all-in rate from a prepaid wallet — with no per-label platform charge sitting on top of it.
Sign up in seconds. No card required. Unlimited API calls on every plan.
GoatLabels is not affiliated with, endorsed by, or sponsored by EasyPost. All trademarks belong to their respective owners, and EasyPost's plans, carrier list, and pricing are theirs to publish — check easypost.com for current details.