Skip to content
This repository has been archived by the owner on Apr 2, 2024. It is now read-only.

goshippo/shippo-python-client

Repository files navigation

Shippo API Python wrapper


⚠️ Shippo no longer actively maintains this library

Use our latest Shippo Python SDK 🚀


PyPI version 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.

You will first need to register for a Shippo account to use our API. It's free to sign up, free to use the API. Only pay to print a live label, test labels are free.

Migrating to V2

Configuration

Configurable variables previously available in the main module (ex: shippo.api_key) have been moved to the shippo.config module.

import shippo

shippo.config.api_key = "<API-KEY>"
shippo.config.api_version = "2018-02-08"
shippo.config.verify_ssl_certs = True
shippo.config.rates_req_timeout = 30.0
shippo.config.timeout_in_seconds = None 
# default timeout set in the above line is:
# 80 seconds for RequestsClient
# 55 seconds for UrlFetchClient
shippo.config.app_name = "Name of your Application" # Not required
shippo.config.app_version = "Version of Application" # Not required

How do I get set up?

To install from the source file:

#!shell
python setup.py install

or pip (https://pip.pypa.io/en/latest/index.html):

#!shell
sudo pip install shippo

To test:

Set your SHIPPO_API_KEY as an environment variable. e.g. on OSX:

export SHIPPO_API_KEY="<MY-API-KEY>"

Optionally, set your APP_NAME and APP_VERSION as environment variables, e.g.:

export APP_NAME=MyAwesomeApp
export APP_VERSION=1.0.0

Run the test with the following command:

#!shell
python setup.py test --test-suite=shippo

Using the API:

import shippo
shippo.config.api_key = "<API-KEY>"

address1 = shippo.Address.create(
    name='John Smith',
    street1='6512 Greene Rd.',
    street2='',
    company='Initech',
    phone='+1 234 346 7333',
    city='Woodridge',
    state='IL',
    zip='60517',
    country='US',
    metadata='Customer ID 123456'
)

print 'Success with Address 1 : %r' % (address1, )

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:

Documentation

Please see https://goshippo.com/docs for complete 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:

  • 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