GoatLabels GoatLabels
For developers evaluating shipping APIs.

A ShipStation API alternative with no plan gate


Every endpoint on every account.

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.

One call, every carrier quote

USPS, UPS and FedEx returned together as all-in prices, DHL on international lanes, with no per-carrier plumbing on your side.

UPS FedEx DHL USPS DHL: international
REST + JSON One Bearer header.
Quote = debit No day-after invoice.
Unlimited calls On every plan.

Labels debit a wallet, not a plan

The API and the dashboard buy from one prepaid balance, and accepted voids credit back to it.

VisaMastercardAmerican ExpressApple PayGoogle PayBitcoinEthereumTether (USDT)
One balance API and dashboard.
No tier gate Free keys hit every route.
Accepted void → credit Back to the balance.
Integration surface

How does the GoatLabels API differ from ShipStation's API?

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. Their plan comparison leaves API access off Starter and includes it from Standard up; the separate ShipStation API product has its own plans.
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 are listed on every plan in their comparison table.
Carriers you can rate-shop programmatically USPS, UPS and FedEx in one call as all-in prices; DHL on international lanes. 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. The refund is issued by the postage provider the label was bought from, under that provider's policy.

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.

Updated

Three reasons developers build here instead.

A plan tier is a strange place to keep an endpoint

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.

You are prototyping, not committing

The expensive part of evaluating a shipping API is often the plan tier its useful features sit behind. Here the first request costs nothing: create an account, take a key, and rate-shop USPS, UPS and FedEx (plus DHL on an international lane) against a real parcel before you write the second file.

Prepaid balance instead of an invoice to reconcile

Labels bought by the API and labels bought in the dashboard debit the same prepaid wallet, and accepted voids credit it back. There is no separate metering ledger to reconcile against a monthly statement — the balance is the ledger.

And when ShipStation is the right choice

  • You need a carrier GoatLabels does not rate-shop: our carriers are USPS, UPS and FedEx on domestic parcels and DHL on international lanes, and that is the honest list.
  • Your team depends on ShipStation's warehouse and order-management surface, not just its endpoints; this page is about the API, not that.
  • You have a working integration and a plan you are happy with. A comparison page is not a reason to migrate.

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

  • The plan comparison marks API access as not included on Starter and included on Standard and Premium. (ShipStation pricing page)
  • The separate ShipStation API product has a Free plan that uses its own discounted carrier rates, and its Advanced plan, from $75 a month for 1,000 labels, adds your own carrier accounts and complete API access. (ShipStation API pricing page)
  • ShipStation sells three monthly plans priced by shipment volume, after a 30-day free trial: Starter starts at $14.99, Standard at $29.99 and Premium at $349.99 a month, each at 50 shipments a month. (ShipStation pricing page)
  • The price rises with the shipment tier inside each plan, for example Starter is $79.99 and Standard is $149.99 a month at 1,000 shipments a month. (ShipStation pricing page)
  • Its pricing FAQ says it charges nothing beyond the subscription unless you add users or certain add-ons, and that postage and insurance are paid separately. (ShipStation pricing page)
  • Bringing your existing carrier accounts is listed as a Standard plan feature, while Starter lists only Worldwide Express or Unishippers LTL accounts. (ShipStation pricing page)
  • Refunds for voided labels are issued by the postage provider you bought the label from, under that provider's void and refund policy, and voided labels still count toward your plan's shipment limit. (ShipStation Help: Void Labels)
  • A subscription can be cancelled at any time and stays active until the end of the current billing cycle, after which access is limited to the Payment and Subscription settings and reports can no longer be run. (ShipStation Help: Cancel Subscription)
  • For US accounts, a remaining ShipStation Balance is refunded automatically within 14 business days once the subscription has been closed for 30 days. (ShipStation Help: Cancel Subscription)
  • The copyright line on ShipStation's pricing page reads ShipStation Global, 2026 Auctane Inc. (ShipStation pricing page)

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

Three calls, start to finish

Create, rate-shop, buy. The same three calls you already wrote once.

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.

1
Any order shape in
API call, store sync, DM, or screenshot
ops_inbox

POST /api/v1/shipments — 1x Hoodie (L), Brooklyn NY 11201

Shopify
Synced into To Ship
Etsy
Synced into To Ship
API payload
Order
#1847
Customer
Jordan Lee
Items
1x Hoodie (L)
Address
Brooklyn, NY
Or paste the order and let Billy draft it

Connectors, REST API, DMs, and screenshots — one queue, no import mapping.

2 Billy Billy AI

The fallback for orders that never reached your endpoint.

Billy AI
  • Reads a DM, comment thread, voice note, or screenshot
  • Fills the addresses and the package 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
$12.47
USPS
Label purchased
USPS Priority Mail — all-in rate
$12.47

201 Created, a label URL, and a signed webhook when the parcel moves. No polling loop required.

Connectors you do not have to write.

Connectors for the storefronts, the API for everything else.

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

Shopify logo Shopify
Etsy logo Etsy
WooCommerce logo WooCommerce
eBay logo eBay
Wix logo Wix
What the integration gets, on every plan.

The whole API surface, on a free account.
Same API on Free and Pro.

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.

One prepaid wallet,
behind API and dashboard

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, after the carrier accepts the void, the credit lands back in the wallet, not on a statement three weeks out.

Wallet balance
$1,247.36 USD
AI

AI drafting for orders
that are not JSON

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.

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 plan gate
on any endpoint

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.

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 USPS, UPS and FedEx as live all-in prices on a domestic parcel, DHL on an international one, 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, eBay and Wix, but an API-only account never has to touch them.

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

Idempotency keys and
signed webhooks

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.

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 order on mobile

Label ready

CL-1038 · Brooklyn, NY

The part your integration can't cover

Some orders never reach the endpoint.

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.

Paste the message or drop the screenshot — Billy pulls the name, the address, and the parcel out of it.
No import mapping and no CSV step: the message is the order record.
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 keys spend from.
One-tap print to a share sheet or a thermal printer over Wi-Fi.
An interface for the exceptions

Talk to Billy instead of writing a form.

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 and FedEx (DHL on international lanes), and queues the label against the prepaid balance, then answers questions about tracking afterwards. 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 quoted rate is the debit.

One rate call, several carriers, and each number is the exact amount that leaves the prepaid balance when your code buys it. A carrier re-weigh posts as its own adjustment line on that shipment, so your own reconciliation job can compare the quote you stored against the debit and treat any re-weigh as a separate entry.

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

An API that isn't a plan feature.

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.

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"
}
Nothing to unlock

No tier to unlock the API.

Free covers 50 shipments a month with the public API, the store connectors, and Billy all unlimited underneath it — the quoted label price is what you pay from a prepaid wallet. Pro is a flat monthly fee for unlimited shipments and Billy on Telegram. Neither plan changes which endpoints your key can call, which is the whole point of this page.

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 ship a real integration to production without a subscription under it.

50 shipments a month, no monthly fee
USPS, UPS and FedEx on every domestic parcel; DHL on international lanes
The full REST API with unlimited calls and signed webhooks
Billy AI in the web app, unlimited — paste, screenshot, or speak
Store connectors included: Shopify, Etsy, WooCommerce, eBay and Wix

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 logo Telegram, Pro

API free on every plan

GET /api/v1/shipments

200 OK · plan: free

Unlimited calls on Free — still unlimited on Pro.

Compare on your own invoice

Quote last month's parcels here and compare them line by line against the invoice you pay today 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 (plus DHL on international lanes) and shown as one all-in number, the same number that leaves your wallet. ShipStation's plans and API entitlements change, so check the dated source block above against their current pricing page. Full pricing details

Who should actually move

Not every ShipStation API user should migrate.

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.

Solo devs and small product teams

Shopify logoWooCommerce logo Building shipping into someone else's app

Free keys

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.

4 carriers behind one API unlimited calls signed webhooks
goatlabels.io/dashboard/shipments
GoatLabels shipments queue with purchased labels

Ops teams automating a warehouse script

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

Instagram logo

Support handling what the API missed

Messenger logo The long tail, without a new internal tool

can you resend this one to Austin?
Label drafted · CL-1024

Agencies shipping for several clients

TikTok logo One integration, many accounts

1

wallet behind the API and the dashboard

Real sellers, real words

The people your integration is actually built for.

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

ShipStation API alternative FAQ

Is the GoatLabels API really free on every plan?
Yes. Rates, label purchase, voids, tracking, and webhooks are all available on a Free account with unlimited calls, and Pro does not add endpoints — it adds unlimited shipments and Billy on Telegram. You pay for labels, not for the right to call the API.
How does this differ from ShipStation's API?
ShipStation is a mature platform and its API is well documented, but access to it is tied to subscription tier, so what your integration can do depends on which plan the account is on. GoatLabels exposes the same REST surface to every account regardless of plan, which makes it a safer dependency for code you do not want to re-scope when billing changes.
What does the API cover?
Create a shipment, rate-shop USPS, UPS and FedEx in one call (DHL on international lanes), buy the label, void it, and read tracking. Authentication is a single Bearer header, requests and responses are JSON, label purchase takes an idempotency key, and tracking and label events arrive as signed webhooks instead of something you poll for.
Can I test it before migrating anything?
Yes, and running both side by side is the recommended way. Point one shipment at the GoatLabels API, compare the all-in rate against the quote you would have bought, and keep your existing integration untouched. Free has no monthly fee for up to 50 shipments a month, so the overlap period stays cheap.
What happens if my retry logic fires twice?
Label purchase accepts an idempotency key, so a retried request returns the original label instead of buying a second one. This matters more than it sounds: a duplicate label is money out of the wallet and a parcel with two barcodes on it.
Do I need to connect a store to use the API?
No. Connectors for Shopify, Etsy, WooCommerce, eBay and Wix exist and feed the same To Ship queue, but they are optional. An API-only account never has to connect a storefront.
How do I fund labels bought over the API?
From the prepaid wallet, topped up with card, Apple Pay, Google Pay, ACH bank transfer, or crypto. The dashboard and the API spend the same balance, so there is nothing to reconcile between the two, and an accepted void credits back to it.

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.

Send one real request before you decide.

Take a key. Rate-shop one parcel.
Nothing to unlock first.

Create an account, generate an API key, and POST a real shipment. Compare the all-in rates against the quote you were about to buy, and keep your existing integration running the whole time.

No contract. No card required. Unlimited API calls on every plan.

Updated