ShipGenius Plus: A Shipping API Built for Developers Integrating Small Parcel Into Any System
If you're evaluating shipping APIs for an ecommerce platform, OMS, WMS, or any system that needs small parcel, here's what makes ShipGenius Plus different from EasyPost, Shippo, and building direct.
If you're the person who decides how small parcel shipping gets integrated into your ecommerce platform, OMS, WMS, ERP, or custom fulfillment system, you've probably already considered the options: build direct against carrier APIs, use a label aggregator like EasyPost or Shippo, or find something that fits how your architecture actually works.
ShipGenius Plus is built for teams that want direct carrier rates, a modern API, and predictable per-label pricing that doesn't scale against label value. Here's what it is, how it's structured, and what the integration looks like.
The Problem With Building Direct
Building directly against carrier APIs is technically possible and some teams do it. The problems tend to show up after the integration is live.
USPS still uses XML and SOAP for parts of their API surface. UPS has modernized more, but their API versioning is aggressive and breaking changes happen. Both require separate credential management, separate error handling, separate retry logic, and separate normalization of the response format before your application can do anything useful with the data. Add FedEx or DHL and multiply the maintenance surface.
Beyond the technical overhead, building direct means negotiating your own carrier rates or paying retail. Unless your organization ships enough volume to get a carrier rep on the phone, you're paying list price. ShipGenius has already done that negotiation and the rates are accessible from the first label.
The Problem With Most Label APIs
EasyPost and Shippo solve the multi-carrier normalization problem well. One API, multiple carriers, standardized response format. If that's all you need, they work.
The tradeoffs are pricing model and infrastructure dependency. Both platforms charge per shipment on top of the carrier rate -- which means your shipping cost has a permanent per-label markup that scales with your volume. At low volume that's fine. At tens of thousands of labels per month it's a meaningful line item. You're also dependent on their uptime and their carrier relationships. If they have a service degradation, your label generation goes down regardless of carrier status.
ShipGenius owns its carrier connections directly. No middleware between us and the carriers. That's both a reliability argument and a cost argument -- there's no aggregator margin stacked on top of the carrier rate.
What ShipGenius Plus Actually Provides
Plus is the tier designed for developers and volume shippers who want API access, BYO carrier accounts, and prepaid credit billing. Here's what's included:
- GraphQL API with full schema access -- rate shopping, label generation, address validation, tracking, and manifest creation all available programmatically
- Discounted rates on ShipGenius carrier accounts across all supported carriers -- the same rates our end users get, accessible via API
- BYO carrier account support -- connect your own UPS, USPS NSA, FedEx, DHL, or other carrier accounts and use your negotiated rates through the same API surface
- $0.06 per label on BYO carrier account labels -- flat, no percentage markup, no per-call fee
- Prepaid credit system -- load a balance and spend it down rather than paying per transaction via credit card
- Case-by-case invoicing available for high-volume accounts
- No monthly fee -- Plus is free, you pay for labels
- No throttling at reasonable volumes
The API Architecture
ShipGenius is built on Strawberry GraphQL over FastAPI. The API is the same one that powers our web and desktop applications -- there's no separate developer tier with a reduced feature set. Everything the UI can do, the API can do.
For teams already operating a GraphQL stack, integration is straightforward. For teams on REST, GraphQL over HTTP is still just HTTP -- you're posting a query string and getting JSON back. The schema is well-documented and introspectable.
Webhooks are available for tracking events so you don't need to poll for status updates. Tracking pushes to your endpoint when carrier scan events occur rather than your system asking on a schedule.
Rate Shopping via API
A rate request returns available services and prices from all connected carriers for a given shipment. If you have BYO carrier accounts connected, rates from those accounts are returned alongside ShipGenius rates so your application can compare and select programmatically.
The response is normalized -- same structure regardless of whether the rate came from UPS, USPS, FedEx, DHL, or any other connected carrier. Your application logic doesn't need to handle carrier-specific response formats. You get a list of options, each with a service level, transit time estimate, and price. You pick one and pass the rate token to the label generation call.
Address validation runs before rating and is available as a standalone call if you want to validate at order ingestion rather than at shipment time. CASS-certified validation catches undeliverable addresses before they become failed deliveries.
Label Generation
Labels are returned as ZPL, PDF, or PNG depending on what you request. ZPL is the right choice for thermal printer environments -- warehouse packout stations, fulfillment centers, anywhere a Zebra or similar printer is in the chain. PDF works for office environments or anywhere a laser printer handles labels. PNG is available for display or archival.
Label generation is synchronous and fast. You get the label back in the response, not via a callback. Tracking numbers are included in the same response. Manifests can be generated at end of day for carriers that require them.
BYO Carrier Accounts: How It Works
If your organization has negotiated rates with any carrier -- a UPS account, a USPS Negotiated Service Agreement, FedEx, DHL, or others -- you connect those accounts in ShipGenius settings. Once connected, those accounts appear as rate sources in the API response alongside ShipGenius rates.
The $0.06 per label fee applies to labels generated against BYO carrier accounts. This covers the infrastructure cost of maintaining the integration. There's no percentage markup on top of your carrier rate -- $0.06 is the full fee regardless of label value.
If you're generating a $50 label through an aggregator that charges a percentage, you might pay $0.50-$1.00 per label in platform fees. At $0.06 flat, the math looks different at scale.
Integration Patterns
The most common integration patterns from developer teams:
Ecommerce platforms: Rate shopping called at checkout to surface live carrier options and prices to the end customer. Label generation triggered on order confirmation or fulfillment action. Tracking webhook received and stored against the order record. Works with any ecommerce stack -- custom builds, headless commerce, or platforms with extensible order management.
OMS integrations: ShipGenius called as the shipping execution layer downstream of order management. The OMS handles order state, ShipGenius handles carrier selection, label generation, and tracking. Rate shopping can be embedded in the OMS fulfillment workflow so operators see live rates before confirming a shipment.
WMS integrations: Label generation triggered at pack station as part of the packout workflow. Scale weight passed directly to the rate request for accurate dimensional and actual weight comparison. ZPL label sent directly to thermal printer. Tracking number written back to WMS shipment record. This is a tight loop -- operator scans the order, the system fetches a rate, generates a label, and sends it to the printer in a single workflow step.
ERP integrations: Shipping execution called from the ERP's fulfillment module. Shipping cost written back to the ERP for cost-of-goods and margin tracking. The GraphQL API works cleanly as a service call from any system that can make HTTP requests.
What ShipGenius Plus Is Not
Worth being direct about the current boundaries. Plus does not include LTL or freight -- this is small parcel only. It does not include a hosted tracking page you can white-label for customer-facing use (on the roadmap). It does not include a dedicated returns label API surface -- standard labels work for returns, but there's no separate returns workflow yet.
If your use case is primarily freight or LTL, ShipGenius is not the right fit today. If it's small parcel -- domestic and international from US origins -- it covers the full surface.
Getting API Access
API keys are available on Plus tier accounts. Create a free account, upgrade to Plus (no monthly fee), and generate an API key from account settings. Sandbox environment is available for integration testing before going live -- behavior mirrors production so there are no surprises at launch.
For high-volume accounts, invoicing arrangements and dedicated support are available. Reach out directly and we'll work out the right structure for your volume.
FAQs
Is there a sandbox environment for testing?
Yes. The sandbox mirrors production behavior so you can build and test the full integration without generating live labels or charges.
What's the rate limit on API calls?
No hard throttling at reasonable volumes. If you're running a load pattern that would strain shared infrastructure, reach out and we'll work out the right arrangement.
Can I use ShipGenius rates and my own carrier rates from the same API?
Yes. Rate shopping returns options from all connected sources -- ShipGenius carrier accounts and any BYO carrier accounts you've connected -- in a single normalized response. Your application picks from the full set.
How does the $0.06 per label fee get billed?
Against your prepaid credit balance. Load credits, spend them down on labels. No per-transaction credit card processing. For high-volume accounts, invoicing is available -- contact us to set that up.
Does the API support international labels?
Yes. International shipping from US addresses is supported including customs form generation and commercial invoice creation. Destination support depends on what the connected carriers serve from US origins.
Is GraphQL required or can I use REST?
The API is GraphQL. GraphQL over HTTP is still just HTTP POST requests with a JSON body -- any HTTP client can call it. You don't need a GraphQL-specific client library, though one will make the integration more ergonomic.