Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Shippo PHP API wrapper

Build Status

Shippo is a shipping API that connects you with multiple shipping carriers (such as USPS, UPS, DHL, Canada Post, Australia Post, UberRUSH and many others) through one interface.

Print a shipping label in 10 mins using our default USPS and DHL Express accounts. No need to register for a carrier account to get started.


  • PHP 5.6 or later.

  • Shippo account - free to sign up, free to use the API. Only pay to print a live label, test labels are free.


Installing using Composer

  • Get Composer

  • Create/append the following to your composer.json file

        "require": {
          "shippo/shippo-php": "1.*"
  • Install via:

      composer.phar install
  • To use the bindings, either user Composer's autoload:


    Or manually:


Installing using Laravel

In Laravel you can install the library as normal. Then within you app/Providers/AppServiceProvider.php file's boot() method add the following:


To take advantage of configuration caching, you can set a config parameter in config/services.php and retrieve your API key through the configuration.


From here you can use the Shippo library anywhere in your application without setting the key when accessing it.


After installing the dependencies above, the test suite may be run:


You may also run individual tests:

    ./vendor/bin/phpunit AddressTest.php

Getting Started

Simple usage looks like:

    // Replace <API-KEY> with your Shippo API Key
    $address = Shippo_Address::
                 'object_purpose' => 'QUOTE',
                 'name' => 'John Smith',
                 'company' => 'Initech',
                 'street1' => '6512 Greene Rd.',
                 'city' => 'Woodridge',
                 'state' => 'IL',
                 'zip' => '60517',
                 'country' => 'US',
                 'phone' => '773 353 2345',
                 'email' => '',
                 'metadata' => 'Customer ID 23424'

We've created a number of examples to cover the most common use cases. You can find the sample code files in the examples folder. Some of the use cases we covered include:


Please see for up-to-date documentation.

About Shippo

Connect with multiple different carriers, get discounted shipping labels, track parcels, and much more with just one integration. You can use your own carrier accounts or take advantage of our discounted rates with the USPS and DHL Express. Using Shippo makes it easy to deal with multiple carrier integrations, rate shopping, tracking and other parts of the shipping workflow. We provide the API and dashboard for all your shipping needs.

Supported Features

The Shippo API provides in depth support of carrier and shipping functionalities. Here are just some of the features we support through the API:

Supported Features

The Shippo API provides in depth support of carrier and shipping functionalities. Here are just some of the features we support through the API:

  • Shipping rates & labels - Docs
  • Tracking for any shipment with just the tracking number - Docs
  • Batch label generation - Docs
  • Multi-piece shipments - Docs
  • Manifests and SCAN forms - Docs
  • Customs declaration and commercial invoicing - Docs
  • Address verification - Docs
  • Consolidator support including:
    • DHL eCommerce
    • UPS Mail Innovations
    • FedEx Smartpost
  • Additional services: cash-on-delivery, certified mail, delivery confirmation, and more - Docs