GoatLabels GoatLabels
For developers replacing a legacy integration.

A modern API alternative to Stamps.com integrations


REST, JSON, and no metered calls.

GoatLabels' REST API is free and unlimited on every plan and covers four carriers end to end, a modern replacement for fee-gated legacy postage integrations.

Four carriers behind one endpoint

USPS, UPS, FedEx, and DHL — rate-shopped in a single call, all-in prices.

UPSFedExDHLUSPS all quoted
One rates call Four all-in prices back.
Quote = debit No day-after invoice.
OpenAPI 3.1 No SDK lock-in.

Calls are free, labels come from a wallet

Card, Apple Pay, Google Pay, ACH, or crypto — one prepaid balance.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
One balance API and dashboard.
Unmetered Unlimited on every plan.
Voids credited Back to the balance.
Integration, side by side

What replacing a legacy Stamps.com integration changes.

Postage APIs of the previous generation were designed around desktop clients and session state, and it shows in the contract you have to write against. The comparison that matters to an engineer is not the feature grid — it is retry semantics, event delivery, and whether the calls are metered.

  GoatLabels API Legacy postage integration
Interface style REST over HTTPS, JSON in and JSON out, one Bearer header. A legacy postage integration built in the SOAP-and-envelope era.
Cost of API access Free and unlimited on every plan, Free included. Integration access sits behind the paid product.
Carriers reachable through the API USPS, UPS, FedEx, and DHL, rate-shopped in one call. Postage-first coverage centred on USPS — check their docs for current scope.
Retry safety Real idempotency keys — a replayed request returns the original label, never a second purchase. Retry semantics depend on the legacy interface's own session model.
Event delivery Signed webhooks for tracking and label events, verified with a shared secret. Typically polling, or platform-specific notification plumbing.
Spec and clients OpenAPI 3.1, no SDK lock-in — generate a client or just use curl. Vendor SDKs and generated stubs around the legacy contract.

Stamps.com is a trademark of its owner and is not affiliated with GoatLabels. Their integration options and terms change — read their own developer documentation before you plan a migration.

Three reasons teams rewrite the postage layer.

Three calls replace the whole integration

Create a shipment, rate-shop it, buy the label. That is the surface area for most postage integrations, and it is the surface area here — same nouns, modern verbs, JSON bodies, HTTP status codes that mean what they say, and errors that name the field to fix rather than returning a numeric code you look up in a PDF.

Idempotency keys, not hopeful retries

The failure mode that costs real money in shipping integrations is the retried buy. Send the same idempotency key twice and the second request returns the original label instead of purchasing another one — so your queue's at-least-once delivery stops being a financial risk.

The API is not a paid tier

Unlimited calls on every plan, including Free. Rate-shopping in a loop during development costs nothing, a staging environment hitting the API all day costs nothing, and the only money that moves is a label bought from the prepaid wallet — the same balance the dashboard spends, so there is nothing to reconcile between the two.

And when Stamps.com is the right choice

  • You need a carrier or a specialised USPS service GoatLabels doesn't rate-shop — we quote USPS, UPS, FedEx, and DHL, and that is the honest list.
  • Your existing integration is stable, owned by someone else, and nobody is asking you to touch it. A migration page is not a reason.
  • Compliance or procurement has already certified your current postage vendor and re-certifying costs more than the integration is worth.
What the API sits inside

An endpoint your ops team can also drive by hand.

The integration is not an island: whatever your code buys, a human can see, and whatever a human buys, your code can read. Orders arrive from Shopify, Etsy, WooCommerce, or TikTok Shop, from the REST API, or as a pasted DM or screenshot when support has to handle an exception, and land in the same To Ship queue. Billy fills in the addresses, the package details, and the service for the ones that never became structured data. Every label is a debit against a prepaid wallet topped up with card, Apple Pay, Google Pay, ACH, or crypto, so there is one balance behind the script and the dashboard alike. Rate-shop USPS, UPS, FedEx, and DHL at the all-in price, print from a phone or a thermal printer, and let signed webhooks and idempotency keys carry the events your services care about.

1
Any order shape in
Store sync, API, DM, or screenshot
maya_boutique

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

Shopify
Synced into To Ship
TikTok Shop
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

Connectors, REST API, DMs, and screenshots — one queue and one data model behind all of them.

2 Billy AI

The exception handler you did not have to build.

Billy AI
  • Reads a DM, comment thread, voice note, or screenshot
  • Fills the addresses and the package details
  • Rate-shops USPS, UPS, FedEx, and DHL at the all-in price
  • Hands the drafted label back for you 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
$12.47
USPS
Label purchased
USPS Priority Mail — all-in rate
$12.47

One wallet behind the script and the dashboard. Signed webhooks push tracking back to the store and to your stack.

Less to integrate than you think.

Connectors for the storefronts, AI for everything else.

Before you write the integration, check whether you need it: Shopify, Etsy, WooCommerce, and TikTok Shop already sync into To Ship and push tracking back when a label prints. Keep the API for the parts that are genuinely yours — your own checkout, your WMS, your internal tooling — and let the connectors carry the storefronts you would otherwise have wrapped by hand.

Via AI tiles: an order that never became a record still becomes a label.

13 connected today 2 via AI 8 coming soon
Connected today 13 storefronts sync to To Ship
Shopify logo Shopify
Etsy logo Etsy
WooCommerce logo WooCommerce
TikTok Shop logo TikTok Shop
Amazon logo Amazon
eBay logo eBay
Squarespace logo Squarespace
Wix logo Wix
Walmart logo Walmart
Square logo Square
BigCommerce logo BigCommerce
Magento logo Magento
Temu logo Temu
Via AI

DM and screenshot parsing — the AI builds the label.

Coming soon
Shopify Plus logo Shopify Plus Soon
Zapier logo Zapier Soon
NetSuite logo NetSuite Soon
Ecwid logo Ecwid Soon
Shein logo Shein Soon
ChannelAdvisor logo ChannelAdvisor Soon
SkuVault logo SkuVault Soon
Zoho Inventory logo Zoho Inventory Soon
What ships around the endpoint.

An API with a product behind it.
Not a postage gateway.

A shipping integration is only as good as what surrounds it: who tops the balance up, who handles the parcel that arrived as a message, and what happens when a label has to be voided at eight in the evening. All of that exists here, and none of it is a separate contract.

One prepaid wallet,
five ways to fund it

Card, Apple Pay, Google Pay, ACH bank transfer, and crypto all top up the same balance the API spends. Finance funds it without touching your code, and voiding a shipment credits it straight back rather than opening a refund case.

Wallet balance
$1,247.36 USD
AI

AI drafting for the orders
your integration never sees

A DM, a comment thread, a voice note, a screenshot — Billy reads any of them and drafts the whole label. That is the exception queue your API was never going to receive as JSON, handled by someone in ops instead of by a ticket to you.

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

Unlimited calls
on every plan

Rate-shop in a loop, run staging all day, and pay nothing for the traffic. The only money that moves is a label, and Pro is an optional flat plan for unlimited shipments and cheaper label pricing at volume.

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

USPS, UPS, FedEx, and DHL
in one rates call

Live all-in rates returned together, and the number you get back is the exact amount that leaves the balance when you buy. That is the honest carrier list — if your integration must reach a service outside it, that is the reason to keep your legacy provider. Store connectors cover Shopify, Etsy, WooCommerce, and TikTok Shop so you do not have to.

Compare rates
UPS UPS $12.48
FedEx FedEx $13.22
DHL DHL $14.10
USPS USPS $11.79
Duties & taxes paid

Idempotency, webhooks,
and errors that name the field

REST and JSON, one Bearer header, idempotency keys so a retried request cannot double-buy a label, and signed webhooks for tracking and label events instead of polling. OpenAPI 3.1, so the client is generated rather than vendored.

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

For the humans on the other side of your API

Ops can print without paging you.

Every postage integration eventually acquires a queue of exceptions that only a person can resolve. On a legacy stack that means a desktop client on someone's machine, or a ticket to engineering. Here it means the same account, opened on a phone.

Paste the DM, snap the thread, or drop the screenshot — Billy pulls the name, the address, and the parcel out of it.
Nothing to install: ops uses the browser, engineering uses the endpoint, both hit one account.
USPS, UPS, FedEx, and DHL come back as four all-in prices on one screen.
Buy from the prepaid balance and one-tap print to a share sheet or a thermal printer over Wi-Fi.
Hold the mic at the packing table and say the address — Billy drafts it and reads the rate back.
Support tooling you did not have to write

Talk to Billy, not to your own admin panel.

Where is this parcel — the question that generates internal tools. Billy answers it against the same shipment records your API writes: hold the mic, ask, and it reads back the carrier, the status, and the cost — no read-only dashboard for you to build and maintain. 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 · same records your API writes · reads the all-in rate back before a cent leaves the wallet · phone, browser, or Telegram.

All-in quotes

The quote is the debit.

Three carriers on the same parcel, each an all-in number that is the exact amount leaving your prepaid balance — which means the rate your code stored at quote time is the rate reconciliation will find later. Voiding a shipment credits the wallet rather than producing an adjustment to explain.

US → DE 2.6 lbs 12×8×4 in
USPS

USPS

Priority Mail Intl

10–15 days

$18.30

$10.00 of taxes & duties included

all-in · no surprises

Best balance
FedEx

FedEx

Intl Connect Plus

3–5 days

$22.80

$11.00 of taxes & duties included

all-in · no surprises

DHL

DHL

Express Worldwide

1–2 days

$26.20

$12.20 of taxes & duties included

all-in · no surprises

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

The three calls that replace the legacy integration.

Create a shipment, rate-shop it, buy the label — REST, JSON, one Bearer header, no session to establish first. Real 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 the field to fix instead of a code to look up.

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": 1.2, "weight_unit": "kg" },
  "service": "fedex_intl_priority"
}
No plan to clear first

No plan to clear first.

Free covers 50 shipments a month with the public API, the store connectors, and Billy all unlimited underneath it — the API is not the thing the tiers are drawn around, which is the difference from a fee-gated legacy integration. Pro is a flat monthly fee for unlimited shipments, cheaper label pricing, and Billy on Telegram, and the API stays free and unlimited on it.

Pro

Most popular
$40 / month
Unlimited shipments — no monthly cap
Cheaper label pricing that scales down as your volume grows
Billy AI on Telegram — draft a label without opening the dashboard
API access still free and unlimited

Volume pricing

illustrative
less volume more volume

more volume → lower per-label rates

Free

$0 / forever

A production-grade API on the free tier, not a sandbox.

50 shipments a month, no monthly minimum to print
USPS, UPS, FedEx, and DHL rate-shopped on every parcel
The full REST API with unlimited calls and signed webhooks
Billy AI in the web app, unlimited — paste, screenshot, or speak
Shopify, Etsy, WooCommerce, and TikTok Shop sync included

Billy is not a paid tier

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.

Web — every plan 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

On Pro we will work with you to beat the label rates you are already getting from

ShippoPirateShipShipStation
No contracts No monthly minimum to print Start in seconds
USPS UPS FedEx DHL

Label prices are quoted live from USPS, UPS, FedEx, and DHL and shown as one all-in number — the same number that leaves your wallet. Stamps.com's plans and integration terms move, so compare against their current documentation rather than a figure on ours. Full pricing details

Who this integration suits

Not every postage integration needs replacing.

The teams who gain most are the ones whose shipping code is a small, unloved corner of a larger product — a marketplace, a fulfilment side of a storefront, an internal tool — where a metered legacy API costs more attention than it deserves.

Seasonal and drop-driven sellers

TikTok Shop & live commerce

Prepaid

Bursty traffic is where unmetered calls matter: rate-shop every parcel in a drop without a per-call line item, and pre-fund the wallet instead of sizing a plan.

4 carriers per quote unlimited API calls bulk print
goatlabels.io/dashboard/shipments
GoatLabels shipments queue with purchased labels

Shops that also sell off-platform

Etsy & independent creators

Connect the stores that have connectors and keep your own code for the channels that do not — one account, one wallet, one set of shipment records behind both.

One queue, connector or not

Order #1024 · pasted from a comment thread

Sellers living in the DMs

The exceptions your API never receives

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

Devs who want the dashboard too

REST and the UI, one balance

1

wallet behind the API and the dashboard

Real sellers, real words

Teams who replaced the postage layer and stopped thinking about it.

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 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
The API is what every shipping API pretends to be. Idempotency that actually works.
S

Sasha R.

Staff engineer, marketplace

API user

Shipping API FAQ

Is there a free Stamps.com API alternative?
Yes. The GoatLabels REST API is free and unlimited on every plan, including the free tier: rates, label purchase, voids, and tracking across USPS, UPS, FedEx, and DHL. You pay for labels out of a prepaid wallet, and the calls themselves are never metered.
What does the API actually cover?
The full label lifecycle. Create a shipment, rate-shop it across the four carriers, buy the label, retrieve the PDF or PNG, void it back to the wallet, and receive signed webhooks for tracking and label events. Everything the dashboard does, the API does, against the same balance.
Is it REST or SOAP?
REST over HTTPS with JSON in both directions, authenticated with a single Bearer header. There is an OpenAPI 3.1 spec, so you can generate a client in your language or skip the SDK entirely and use curl — no envelopes, no WSDL, no session token dance before the first useful call.
How do you prevent double-buying a label on a retry?
Idempotency keys. Attach one to a purchase and a replayed request returns the original shipment and label rather than buying a second one, which makes at-least-once delivery from your job queue safe to leave as it is.
Do I get webhooks instead of polling?
Yes. Tracking and label events are pushed as signed webhooks you verify with a shared secret, so you can stop running a polling job against tracking numbers just to notice that something was delivered.
Can I test against the API before committing?
Open a free account, take an API key, and start calling. Rate requests cost nothing, so you can wire the whole integration and only spend money when you buy your first real label out of the wallet.
Do the API and the dashboard share the same account?
They share the account, the wallet, and the shipment records. A label bought by a script appears in the dashboard queue, a label bought in the dashboard is visible over the API, and both debit the same prepaid balance — there is no separate API billing to reconcile at month end.

Planning the cutover? Switching from Stamps.com step by step sequences it against your billing date, and Stamps.com vs free shipping software covers the non-developer side of the same decision. Comparing API-first platforms? GoatLabels vs Shippo is the closer read.

One key, three calls, one real label.

Keep the integration.
Drop the legacy contract.

Take a free API key, rate-shop a real parcel across USPS, UPS, FedEx, and DHL at no cost, and only spend when you buy the label from a wallet funded by card, Apple Pay, Google Pay, ACH, or crypto.

Sign up in seconds. No card required. Unlimited API calls on every plan.