The Complete Shipping API Suite

Five APIs. One shipping workflow.

From creating shipments to tracking deliveries, from printing labels to finding pickup points - every tool you need to build world-class shipping.

Automated parcel sorting center with curved conveyor belts
Shipment API

One API to ship with every carrier

Create shipments and shipping labels for multiple carriers through a consistent API. Connect order processing to your delivery workflow.

Multi-carrier supportRate comparisonBatch creationCustoms docs
View Documentation
Tracking API

Track every parcel, everywhere

Bring carrier statuses into one integration. Follow deliveries and use tracking events in your own systems.

Real-time updatesNormalized eventsWebhook pushBulk tracking
View Documentation
Printing API

Labels to printer in milliseconds

Connect label generation to your packing station. Send shipping labels to the printing workflow your team uses.

Thermal printersPDF & ZPLBatch printing
View Documentation
PUDO Map

Find the nearest pickup point

Let customers choose a pickup point or parcel locker on a map connected to your delivery flow.

Embeddable mapMulti-carrier searchCustomizable
View Documentation
Address API

Never ship to a wrong address

Validate and structure delivery addresses before creating a shipment. Keep address data consistent across your systems.

ValidationAutocompleteNormalization
View Documentation
· The Shipping Pipeline

How They Work Together

Each API is powerful alone. Together, they cover the entire shipping lifecycle from address validation to delivery tracking.

Step 01

Validate

Address API

Step 02

Create

Shipment API

Step 03

Print

Printing API

Step 04

Locate

PUDO Map

Step 05

Track

Tracking API

workflow.js
import Uniship from '@uniship/sdk'

const client = new Uniship('sk_live_...')

// 1. Validate the delivery address
const addr = await client.addresses.validate({
  street: 'Marszalkowska 1',
  city: 'Warsaw',
  country: 'PL'
})

// 2. Create a shipment with the best rate
const shipment = await client.shipments.create({
  carrier: 'auto',
  recipient: addr.normalized,
  parcels: [{ weight: 2.5 }]
})

// 3. Generate & print the label
const label = await client.labels.print({
  shipment_id: shipment.id,
  format: 'pdf'
})

// 4. Track the delivery
const tracking = await client.tracking.get(shipment.tracking_number)
5 APIs, 1 SDK
All in one import
Lines of code
~20
LET’S CONNECT

Let’s connect your shipping.

Tell us what you want to build. We’ll help you choose the next step.

With your permission, we use analytics and marketing tools. Reject optional tools, choose categories or change your decision in the footer at any time.