USPS
Ground Advantage
2–5 days$7.40
$1.20 of Premium insurance included
all-in · one balance for the whole run
Patreon gives you the addresses; the shipping is yours. Reward runs are recurring batches: export the patron list, validate every address — they drift between runs — rate-shop each row across four carriers, and buy the batch from one wallet. The cadence is monthly or quarterly, and none of it needs a subscription.
Each patron row is validated and priced across USPS, UPS, FedEx, and DHL before the batch buys — because between any two runs, somebody moved.
Monthly, quarterly, or annual runs draw on one prepaid balance funded by card, Apple Pay, Google Pay, ACH, or crypto — and the months between runs cost nothing.
Crowdfunding fulfillment and Patreon fulfillment get lumped together, and they should not be. A campaign ships once: one enormous batch, then silence — that shape, and the way backer-survey addresses age between pledge and print, is the Kickstarter page's territory. A Patreon reward run is the opposite animal. It repeats — monthly for some tiers, quarterly for others — and it ships to substantially the same cohort every time. The list is not one frozen snapshot but a living roster: a few patrons join, a few lapse, and the core carries over from run to run.
That repetition changes what the workflow should optimise for. A one-shot batch can afford a slow, careful setup because it never happens again. A recurring batch cannot — whatever the first run cost you in setup, the tenth run should cost almost none of it. The three sections below are the three places the cadence bites: the addresses that silently change between runs, the column mapping you should never have to rebuild, and the returned parcel that is actually your cohort telling you something. Get those three right and a reward run becomes an hour a month, not a weekend.
Between any two runs, some fraction of your cohort moved. People change apartments, leave college towns, or fix a typo in their head and never in their profile — and a patron whose address changed has no reason to remember that your fulfillment depends on it. This is drift: the list decays a little every month, and the decay compounds precisely because the cohort persists. Ship a stale export quarterly for a year and the same wrong address can eat four parcels before anything forces the correction.
The defence is to validate every row on every run, no matter how many times the same rows have validated before. Export the patron list fresh each run — never reuse last quarter's file, because a stale file is drift you chose — and let the batch validator check each address before any label is bought, with a residential or commercial classification on every row. The rows that fail are the drift, caught while it is still a message to a patron rather than a parcel in a returns pipeline. The cost asymmetry is stark: a flagged row costs a moment of attention, while an unflagged bad address costs the item, the postage, and the patron's month of waiting — and the run-over-run cadence multiplies whichever one your workflow chooses.
Patreon's export puts patron addresses in its own columns, and those columns have to be paired with shipping fields — name to name, street to street, tier kept as a reference so the right reward goes in the right box. Do that pairing once, on the first run, and save it as a preset. The full mapping-validation-purchase mechanic is the bulk CSV page's to explain; what matters here is what the preset does to a cadence. Run two loads the saved mapping against the fresh export and the setup step simply disappears: export, load preset, validate, quote, buy.
This is the quiet argument for treating recurring fulfillment as a batch discipline rather than a monthly improvisation. The parcels help too — reward runs ship near-identical packages, so a saved parcel preset carries the weight and dimensions across the whole file, and the four-carrier quote runs per row against USPS, UPS, FedEx, and DHL with an all-in price on each. The batch buys row by row from one prepaid wallet, so one flagged address holds back one parcel, never the run. By the third run the entire loop is muscle memory measured in minutes, which is exactly what a task you will do twelve times a year deserves.
Even a validated list will occasionally bounce a parcel — validation proves an address exists and is deliverable in form, not that your patron still lives there. On a one-shot campaign a return is pure loss. On a recurring batch it is information: the return names exactly which cohort member's record is stale, in time to fix it before the next run compounds the error. That reframing is the closest thing recurring fulfillment has to a free lunch, and it only works if returns feed corrections — a returned box you reship without updating the patron's record is a box you have scheduled to bounce again next quarter.
So close the loop deliberately. When a reward comes back, message the patron, get the current address, and fix it at the source — their Patreon profile — so every future export inherits the correction, then reship from the wallet. What each carrier does with an undeliverable parcel, and who pays the ride home, is the returned-to-sender page's territory. And if the numbers tempt you toward a fulfillment service instead, run the arithmetic first: with no subscription and no monthly minimum, a hundred-patron quarterly run costs postage four times a year, plus the drift work this page just automated away.
A recurring run is judged by what it costs the tenth time, not the first. This is the loop that gets cheaper with repetition: pull a fresh patron export, load the mapping saved on run one, let every row revalidate whether or not it validated last quarter, quote each row across four carriers, and buy row by row from one prepaid balance.
hey — I moved in March, can this quarter's print go to the new place?
There is no Patreon connector, so the export is the interface — and starting each run from a new export is not busywork. It is the step that lets a patron's own profile correction reach your labels.
Nothing is carried over from last quarter: rates are re-quoted per row, so a patron who moved three zones out changes carrier without you noticing. A row that fails validation waits for its correction while the rest of the run ships.
Store sync covers Shopify, Etsy, WooCommerce, TikTok Shop, Amazon, eBay, Squarespace, Wix, Walmart, Square, BigCommerce, Magento, and Temu — useful if the merch shop beside your Patreon is one of them. Patreon itself is not, so each run starts from a fresh patron export. For a recurring cohort that is arguably the better shape: a per-run export is a deliberate moment to pick up every correction a patron made since the last one.
Via AItiles: paste the message from the patron who wrote after the run shipped, and Billy drafts the replacement label from it.
Recurring fulfillment rewards whatever amortises: mappings that persist, presets that carry parcels, validation that runs itself. Each piece below exists to make run ten cheaper than run one.
One prepaid balance funded by card, Apple Pay, Google Pay, ACH, or crypto, debited only when a label is bought. A monthly tier, a quarterly tier, and an annual tier can all draw on it — and the eleven quiet months of an annual tier owe nothing to anybody.
Every row is re-validated on every run with a residential or commercial classification, no matter how many runs that patron has survived. Drift does not announce itself — the check that catches it has to be unconditional, and here it is the default rather than a discipline.
The Patreon export's columns are paired to shipping fields once and saved; the reward box's weight and dimensions are saved once too. Run two is export, load, validate, buy — the setup work exists exactly once in the life of the tier, which is the whole economics of a recurring batch.
USPS, UPS, FedEx, and DHL are priced per row on every run rather than locked in once — so a rate change between quarters, or a patron who moved three zones out, changes which carrier wins without you noticing or caring. The quote tracks the cohort as it drifts.
Creators with a developer in the community can drive the same loop over REST: quote, buy, and track per row with signed webhooks and real idempotency keys, unlimited calls on every plan — a reward run as a script that fires the morning after the tier bills.


Run row bought
Quarterly print tier · Providence, RI
Reward runs get packed wherever the boxes are. The batch itself starts on a laptop with a file, but everything after it — which rows are still flagged, which patron needs messaging, the replacement for the one who moved — belongs on the phone in your apron pocket.
Packing a hundred near-identical rewards is a two-handed job, and the question that interrupts it is always about exactly one patron. Ask out loud and Billy finds that row's shipment and reads the status back — which is also the answer you owe whoever messaged you. Included on every plan, so the eleven silent months of an annual tier cost nothing to keep it. This is the real product, not a render.

Listening
"Did this quarter's print ship to Priya yet?"
Out for delivery
Quarterly tier · Providence, RI · scanned this morning
Speaks plain English · remembers your saved parcel presets between runs · included on every plan, never a paid tier.
A reward run tempts you into flattening the whole file onto one carrier, because the boxes really are identical. The addresses are not: the same parcel to a patron three zones further out is a different price, and re-quoting every row on every run is what stops the cohort's drift from quietly costing you. Each column is one all-in number locked at quote time. Figures are illustrative.
Ground Advantage
2–5 days$7.40
$1.20 of Premium insurance included
all-in · one balance for the whole run
Ground
3–4 days$10.80
$1.20 of Premium insurance included
all-in · one balance for the whole run
Home Delivery
2–4 days$11.40
$1.20 of Premium insurance included
all-in · one balance for the whole run
Recurring is the word that makes an API worth having: the same run, on the same cadence, indefinitely. Creators with a developer in the community can drive the whole loop in code — pull the roster, validate, quote, buy — with unlimited calls on every plan, so automating a monthly run never moves you onto a pricier one.
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"
}
A reward run is a burst of postage followed by weeks of silence, and a monthly software fee taxes the silence. Here the Free plan covers a typical run outright — batches included — and the wallet only moves when a label is bought. Pro exists for the cohort that outgrew it, never as a condition of printing.
Volume pricing
illustrativebigger runs → lower per-label rates
$0 / forever
A hundred-patron quarterly run, four times a year, on the plan that costs nothing.
The patron who messages a new address the day after the run, the one-off replacement reward — paste the message and Billy drafts the label, validated before you pay. The batch handles the cohort; Billy handles the exceptions.
GET /api/v1/shipments
200 OK · plan: free
Unlimited calls on Free — still unlimited on Pro.
Bring your invoice — on Pro we work with you to beat the rates you're getting from
ShippoPirateShipShipStationLabel prices are quoted live from USPS, UPS, FedEx, and DHL as one all-in number per row, and that exact amount leaves the prepaid balance when the row is bought. Full pricing details
Monthly, quarterly, annual, or the tier that ships once — drift and setup cost land differently on each of them, and the saved preset is what flattens all four.
Twelve runs a year, same cohort
The cadence that compounds fastest: twelve chances a year for an address to go stale, and twelve chances to catch it. Revalidating every row on every run is what turns a recurring loss into a recurring correction.

Four runs, near-identical parcels
A quarter is long enough for a cohort to drift and short enough that setup cost still matters. Saved parcel presets carry the box across the whole file, so the work per run is the export and the two messages to the patrons who moved.
Run loaded from the saved preset
Columns paired once, on run one, and never again
The patron who writes after the run shipped
Eleven months of nothing at all
0
owed in every month the run does not ship
Related: Kickstarter fulfillment, bulk labels from a CSV, why parcels come back, and the full pricing model.
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
Export the patron list, map it once, validate every address, and buy the batch across four carriers from one prepaid wallet — then do it all again next run, minus the setup.
Sign up in seconds. No card required. No subscription between runs — an annual tier costs postage once a year.