GoatLabels GoatLabels
REST, JSON, and no request budget.

A Shippo API alternative with no request limits


The API is not the paid tier.

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.

Every carrier behind one rate call

USPS, UPS and FedEx quoted in a single request (DHL on international lanes), with live all-in rates and no carrier accounts to bring.

UPS FedEx DHL USPS DHL: international
One call All-in quotes back.
Idempotent A retry never double-buys.
Unlimited No request budget to watch.

A prepaid balance, not an API plan

Top up with card, Apple Pay, Google Pay, ACH, or crypto — the API and the dashboard spend the same wallet.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
Prepaid One balance, both surfaces.
No minimum A dev month costs nothing.
Void → wallet Credit after acceptance.

Updated

For the team writing the integration

How does the GoatLabels API compare to Shippo's?

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 past a free allowance carries a fee on top of postage, and whether standalone tracking, rating and validation calls are billed per call.

  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 Starter has no plan fee; labels after the first 30 a month and standalone tracking, rating, address validation and delivery-estimate calls are billed per use. API Premier is custom-priced.
Cost per label bought via API One all-in label price, debited from the prepaid wallet, with no separate per-label platform fee. API: 30 labels a month free, then a fee on every label after that (amount in the dated Shippo facts below).
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 After the carrier accepts the void, credited back to the same prepaid balance the call spent from. Request a refund for an unused label within 90 days; Shippo processes it within 14 business days and credits your account on the next invoice.

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.

Why do developers switch from the Shippo API?

Rate-shopping should not be rationed

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.

A per-label fee compounds at scale

Platform fees are invisible in staging and load-bearing in production. On Shippo's API Starter, every label after the first 30 a month carries a fee on top of postage. GoatLabels charges one all-in label price with no separate per-label platform fee 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.

You want a dashboard your ops team can use

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.

And when you should stay on Shippo

  • Your integration buys between 51 and 600 labels a month. In that range Shippo's API label fees stay below GoatLabels Pro's flat monthly fee, and the Shippo fee calculator shows the crossover.
  • You need a carrier outside USPS, UPS, FedEx, and DHL — that is the honest list of what we rate-shop, and Shippo's network is broader.
  • You negotiate your own carrier contracts and need to run your own accounts through the API. Shippo's bring-your-own-account support is strong and ours is not the same product.
  • You have a shipped, stable integration and no cost pressure. Rewriting a working client against a new API is a real cost — a comparison page is not a reason.

What Shippo's own pages say, checked 2026-10-17

  • API Starter includes 30 free labels a month, then charges $0.07 per label, and API Premier is custom-priced. (Shippo API pricing page)
  • Standalone API calls are billed per use at $0.02 per tracking request, $0.01 per rate generation, $0.03 per delivery estimate, and $0.02 per US or $0.08 per non-US address validation. (Shippo API pricing page)
  • On Starter, labels bought through your own connected carrier account cost $0.05 each, while connecting your own account is free on Pro and Premier. (Shippo pricing page)
  • Pro labels beyond 10,000 a month are billed at $0.08 per label. (Shippo pricing page)
  • Shippo's pricing FAQ lists postage, a subscription plan fee where one applies, optional insurance and an optional global address validation fee per lookup as the charges, with no hidden fees. (Shippo pricing page)
  • Shippo's Starter web plan is free for up to 30 labels a month, with one user login and email support. (Shippo pricing page)
  • Pro is priced by monthly label band, from $19 a month (or $205 a year) for 1-200 labels to $199 a month (or $2,149 a year) for 5,001-10,000 labels, and Premier is quoted by Shippo's sales team. (Shippo pricing page)
  • Discounted USPS, UPS and FedEx labels plus DHL Express are included on every web app plan, Starter included. (Shippo pricing page)
  • For labels on Shippo's own carrier accounts, refunds for unused labels must be requested within 90 days of purchase, are processed within 14 business days, and are credited to your Shippo account on your next invoice. (Shippo help: refund a label created in Shippo)
  • Plans can be changed or cancelled at any time from the Plan page in the app or through Shippo support, and a downgrade takes effect at the end of the billing cycle. (Shippo pricing page)

Checked on from Shippo's own pages. Plans, fees and policies change, so confirm on the vendor's current page before you decide. Shippo is a trademark of its owner and is not affiliated with GoatLabels.

Both surfaces, one balance

The endpoint your code calls. The dashboard your ops team opens.

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, on Free, no monthly fee sitting under a dev month where you shipped nothing at all.

1
API calls, connectors, and messages
REST, store sync, or a pasted order
maya_boutique

Hey! 2x hoodies (M) 1x tee (L) 😅 Ship to: Maya R. Austin, TX 78701

Shopify
Synced into To Ship
Etsy
Synced into To Ship
DM screenshot
Order
#1847
Customer
Jordan Lee
Items
1x Hoodie (L)
Address
Brooklyn, NY
Drop the screenshot or paste the DM

REST API, store connectors, DMs, and screenshots — one queue and one balance behind all of them.

2 Billy Billy AI

The exception handler you did not have to build.

Billy AI
  • Reads a message, an email, a voice note, or a screenshot
  • Fills in the recipient and the parcel details
  • Rate-shops USPS, UPS and FedEx at the all-in price, DHL on international lanes
  • Hands the drafted label back for a human to confirm
Drafted. Checked. Yours to confirm.
3
Clean label out
Bought from the wallet
Paid from your prepaid balance
Card, Apple Pay, Google Pay, ACH, or crypto
all-in
USPS
Label purchased
USPS Priority Mail — all-in rate
all-in

Signed webhooks push tracking back to your stack. Idempotency keys make a retried buy safe.

What feeds the queue besides your code.

Connectors and the API, one shared balance.

Shopify, Etsy, WooCommerce, eBay and Wix 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.

Shopify logo Shopify
Etsy logo Etsy
WooCommerce logo WooCommerce
eBay logo eBay
Wix logo Wix
What you port, and what stops costing money.

Everything you had in the client.
Without the plan under it.

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 fee on every label after the first 30 a month and the per-call charges on standalone tracking, rating and validation. What is new is a human surface that shares your balance.

One prepaid wallet,
five ways to fund it

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, after the carrier accepts the void, the credit lands back in the wallet, ready for the next call.

Wallet balance
$1,247.36 USD
AI

AI drafting for orders
that are not JSON

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.

Billy Billy LIVE
Where's the package to Maya?
It's in transit via UPS. Expected Friday, Aug 7.
UPS
1Z8923A6B05G4123456
In transit
Austin, TX → Dallas, TX
Ask Billy anything...

No monthly fee
to print

The API is free and unlimited on every plan, and labels are the carrier rate debited from a prepaid wallet. On Free, a month where the integration sat in staging and bought nothing costs nothing. Past 50 shipments a month, Pro is one flat $40 monthly plan with unlimited shipments; it is never a gate on API access.

Shipment summary
UPS Ground $12.49
Insurance $0.75
Fuel surcharge $0.32
Total $13.56

USPS, UPS, FedEx, and DHL
in one account

One rate call returns live all-in prices from USPS, UPS and FedEx on a domestic parcel, DHL on an international one, 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.

Compare rates
UPS UPS $12.48
FedEx FedEx $13.22
DHL DHL $14.10
USPS USPS $11.79
Duties inside the quote where DDP applies

The API you did not
want to give up

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.

POST /v1/shipments
{
"to": { "name": "Maya" },
"from": { "name": "Alex" },
"service": "ups_ground",
"label_format": "pdf"
}
Webhook delivered
GoatLabels mobile shipments queue with all-in carrier prices
Billy drafting a label from a pasted DM on mobile

Label ready

CL-1038 · Brooklyn, NY

The surface your integration doesn't cover

A pasted message is a valid order input.

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.

Paste the message or drop a screenshot — Billy pulls out the recipient, the address, and the parcel.
No admin tool to write: the exception path already has a UI.
USPS, UPS and FedEx come back as all-in prices on one screen, DHL on international lanes.
Buy from the same prepaid balance your API calls spend and print to a share sheet or a thermal printer.
Hold the mic and say the address — Billy drafts it and reads the rate back.
For the shipments that skip the integration

Talk to Billy, not to an internal tool.

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 and FedEx (DHL on international lanes), and queues the label against the same prepaid balance your code spends from. This is the real product, not a render.

goatlabels.io/dashboard/shipments — Billy
Billy reading back a parcel's tracking history over the purchased labels list

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 on Pro.

All-in quotes

The quote is the debit.

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, a carrier re-weigh posts as its own line on that shipment, and an accepted void credits the wallet rather than a card statement weeks later.

CA → NY 2.6 lbs 12×8×4 in
USPS

USPS

Ground Advantage

2 to 5 days

$11.40

all-in · no surprises

Cheapest
UPS

UPS

Ground

1 to 5 days

$9.85

all-in · no surprises

FedEx

FedEx

Ground

1 to 5 days

$11.20

all-in · no surprises

No carrier invoice the day after Accepted void → credit back to the wallet you funded Multi-currency display
Public API v1

Porting off Shippo without porting off REST.

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.

Create, rate-shop, and buy — the same three calls you already write
Signed webhooks for tracking and label events instead of polling
Real idempotency keys — a retried request never buys two labels
OpenAPI 3.1 spec, no SDK lock-in, unlimited calls on every plan
Read the API docs Get an API key $0 on every plan
curl https://api.goatlabels.io/api/v1/shipments
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"
}
The API is not a tier

The API is not the paid tier.

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. The quoted label price is what you pay from a prepaid wallet. Past 50 shipments a month, Pro is a flat $40 monthly fee for unlimited shipments; API access is identical on both.

Pro

Most popular
$40 / month
Unlimited shipments — no monthly cap
Unlimited address validation
Billy AI on Telegram Telegram logo — draft a label without opening the dashboard
API access still free and unlimited

Rate by plan

illustrative
Free Pro

Pro: one flat monthly plan, unlimited shipments

Free

$0 / forever

Enough to build, stage, and launch an integration without a bill attached.

50 shipments a month, no monthly fee
USPS, UPS and FedEx rate-shopped in one call, DHL on international lanes
The full REST API with unlimited calls and signed webhooks
Billy AI in the web app, unlimited — for the exceptions your code skips
Store connectors included: Shopify, Etsy, WooCommerce, eBay and Wix

Billy is not a paid tier

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.

Web, every plan Telegram logo Telegram, Pro

API free on every plan

GET /api/v1/shipments

200 OK · plan: free

Unlimited calls on Free — still unlimited on Pro.

Bring the invoice you pay today

High-volume shippers can ask about custom pricing, which we review account by account. Compare it against what you pay on

ShippoPirate ShipShipStation
No contracts No monthly fee Free to sign up
USPS UPS FedEx DHL

Label prices are quoted live from USPS, UPS and FedEx on domestic parcels and DHL on international lanes, shown as one all-in number, the same number that leaves your wallet when the buy call returns. Shippo's fees and plans change; the Shippo figures on this page were checked against Shippo's own pricing pages on 2026-10-17, so confirm them there before you decide. Full pricing details

Which teams this actually suits

Not every Shippo API user should port.

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.

Marketplaces with bursty label volume

TikTok logo Rate calls that spike with traffic

Prepaid

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.

4 carriers behind one API no monthly fee bulk print
goatlabels.io/dashboard/shipments
GoatLabels shipments queue with purchased labels

Products that also need a storefront sync

Etsy logo 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

Instagram logo

Teams whose support ships parcels too

Messenger logo The exceptions that never hit the API

got the dress! can you ship to Austin?
Label drafted · CL-1024

Devs who want the dashboard as well

Shopify logoWooCommerce logo REST and the UI, one balance

1

wallet behind the API and the dashboard

Real sellers, real words

Teams who moved the integration and kept the three calls.

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.
E

Early customer · TikTok

TikTok Shop seller

TikTok logo TikTok Shop
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.
E

Early customer · Etsy

Etsy maker

Etsy logo Etsy
The API is what every shipping API pretends to be. Idempotency that actually works.
S

Sasha R.

Staff engineer, marketplace

API user

Shippo API alternative — FAQ

Is the GoatLabels API really free?
Yes. Calls are unlimited on every plan including Free — there is no request budget, no metering, and no API tier. You pay for the labels you actually buy, one all-in label price with no separate per-label platform fee, debited from a prepaid wallet.
How hard is it to port a Shippo client?
It is the same three calls: create a shipment, read the rates, buy a label. REST and JSON with a single Bearer header, an OpenAPI 3.1 spec to generate from, and no SDK you are required to use. The happy path is three calls, so porting it is usually small; webhooks take longer.
Do I need my own carrier accounts?
No. Rates for USPS, UPS, FedEx, and DHL come back on your first call with nothing to provision. If your business depends on running your own negotiated carrier contracts through the API, that is a fair reason to stay on Shippo.
What stops a retry from buying two labels?
Idempotency keys on label purchase. Send the same key again — after a timeout, a network blip, or a queue redelivery — and you get the original label back rather than a second charge against the wallet.
How do I get tracking updates?
Signed webhooks for tracking and label events, verified against a shared secret, so you do not run a polling loop. The same events fire whether the label was bought through the API or through the dashboard.
What happens when I void a label from the API?
After the carrier accepts the void, the amount is credited back to the same prepaid balance the purchase spent from, so a voided label becomes spendable balance rather than a refund you chase through a billing cycle.
Can I run both APIs side by side while I migrate?
Yes. Point a share of traffic at GoatLabels, compare the all-in rate the response carries against the quote plus fee you would have paid, and cut over when you are satisfied. Free has no monthly fee for up to 50 shipments a month, so the overlap stays cheap.

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, the Shippo API fee crossover by volume, or the migration guide.

Get a key and buy one real label.

Keep the three calls.
Drop the request budget.

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 or FedEx rate in the response (DHL on international lanes) against what that label costs your integration today.

No card required. No monthly fee on Free, up to 50 shipments a month.

Updated