Midwest Label Supply offers a direct mail API built for product, growth, and RevOps teams who want to trigger physical mail the same way they trigger email. POST a JSON payload, and within one business day a CASS-verified, IMb-tracked piece is in the mail stream — with delivery webhooks coming back to your stack. We print postcards, letters, and a category most API-first competitors don't touch: custom sticker sheets and explainer cards in envelopes.
This page is for teams evaluating a direct mail service with API integration. If you're comparing us against Lob, PostGrid, Postalytics, or PFL — keep reading.
A direct mail API is the developer-facing layer over a physical print operation. Your software calls a REST endpoint with a recipient address, a template ID, and any variable data, and the provider handles everything downstream: rendering, CASS address verification, print, finishing, sorting, IMb application, USPS handoff, and webhook event emission. The end state is the same as sending a transactional email — except the recipient gets a physical piece they can hold, save, and respond to. That tactile interaction is why direct mail keeps showing higher recall and response rates than oversaturated digital channels.
The US market for API-driven direct mail has a few well-known providers. Each has a sweet spot:
Our API follows REST conventions with JSON request and response bodies. Authentication uses API keys with separate test and live environments. Every endpoint supports idempotency keys, so you can safely retry on network failures without duplicate sends. The base implementation for a single piece looks like this:
// POST /v1/mailings
const mailing = await mlsClient.mailings.create({
to: {
name: "Jordan Recipient",
address_line1: "123 Main Street",
address_city: "Milwaukee",
address_state: "WI",
address_zip: "53202"
},
from: {
name: "Acme Inc.",
address_line1: "456 Market Street",
address_city: "Chicago",
address_state: "IL",
address_zip: "60601"
},
template_id: "tpl_welcome_kit_v3",
variables: {
first_name: "Jordan",
referral_code: "JORDAN-7821",
qr_url: "https://acme.com/welcome/cust_123456"
},
metadata: {
campaign_id: "spring_promotion_2026",
customer_id: "cust_123456"
}
}, { idempotency_key: "cust_123456:welcome:v3" });
Same request via cURL:
curl https://api.midwestlabelsupply.com/v1/mailings \
-H "Authorization: Bearer $MLS_API_KEY" \
-H "Idempotency-Key: cust_123456:welcome:v3" \
-H "Content-Type: application/json" \
-d '{
"to": { "name": "Jordan Recipient", "address_line1": "123 Main Street", "address_city": "Milwaukee", "address_state": "WI", "address_zip": "53202" },
"from": { "name": "Acme Inc.", "address_line1": "456 Market Street", "address_city": "Chicago", "address_state": "IL", "address_zip": "60601" },
"template_id": "tpl_welcome_kit_v3",
"variables": { "first_name": "Jordan", "referral_code": "JORDAN-7821" }
}'
Every mail piece emits a stream of events to your registered webhook endpoint. Webhooks are signed (HMAC-SHA256) and retried with exponential backoff for 24 hours on non-2xx responses. The full event sequence:
Each event payload includes the mailing ID, USPS IMb, the timestamp, the USPS facility (when known), and your original metadata blob — so you can correlate every event back to the customer record that triggered the send.
We participate in USPS Informed Visibility (IV), which streams IMb scan events from every processing facility in the country. IV is "near real time" — most scans appear within 1–4 hours of the physical event. That's typically fast enough to trigger same-day digital follow-ups when a piece is marked processed for delivery. For deeper detail on tracking architecture, see our direct mail tracking page.
Two layers of tracking are available and are usually combined:
Every request runs through CASS-certified address validation before going to production. Invalid addresses fail fast with a structured error code — you never get charged for a piece that wouldn't have delivered. Personalization goes beyond name fields: image swaps, offer codes, dynamic copy blocks, and full design variations are first-class fields in the template definition. A/B testing primitives are built in — split a single campaign across two or more template variants and we'll return performance metrics correlated to delivery and QR-scan events.
You can wire our direct mail API into your stack three ways:
The patterns that drive the highest ROI on our API:
Trigger a printed welcome packet with a custom sticker sheet on account activation. Subscription, fintech, and DTC brands see 25–30% retention improvements when physical onboarding is added to digital. The API call lives in your existing post-signup workflow.
Send a physical postcard to customers who've gone quiet — especially those who've unsubscribed from email. A/B test offer strength against a holdout group and let the API report back the ROI.
RevOps teams use the API to trigger printed packages off Salesforce stage changes, 6sense / Bombora intent signals, or executive engagement scoring. Pair with Outreach or SalesLoft to land a printed piece the same week as a personalized sequence.
Wire a thank-you postcard with a sticker sheet to your Shopify or BigCommerce order webhook. Loyalty tier milestones can trigger different SKUs of physical reward through the same endpoint.
Agencies and martech platforms resell the API under their own brand with neutral packaging and a per-client partner dashboard. We handle production; you keep the customer relationship.
Per-piece pricing with no monthly minimum. Pilot programs from 1,000 pieces. Volume tiers kick in at 10K, 50K, and 250K pieces per month. Postage is passed through at USPS rates — we apply for every Marketing Mail and bulk discount you qualify for so the all-in cost is competitive with any aggregator at scale.
Email or call to provision a sandbox API key. From key issuance to first piece printed is typically 3–5 business days, including template setup. If you're switching from Lob, PostGrid, Postalytics, or PFL, send us your existing template — we'll match it and run a parallel test send before you cut over.