EasyPost Shipping API Client Library for Python
Project description
EasyPost Python Client Library
EasyPost is the simple shipping API. You can sign up for an account at https://easypost.com.
Requirements
Looking for a client library for another language? Check out https://www.easypost.com/docs/libraries.
Installation
You can install easypost via pip with:
pip install easypost
Alternatively, you can clone the EasyPost python client repository:
git clone https://github.com/EasyPost/easypost-python
Install:
python setup.py install
Import the EasyPost client:
import easypost
Example
import easypost
easypost.api_key = '<YOUR API KEY FROM https://www.easypost.com/account/api-keys>'
# create and verify addresses
to_address = easypost.Address.create(
verify=["delivery"],
name = "Dr. Steve Brule",
street1 = "179 N Harbor Dr",
street2 = "",
city = "Redondo Beach",
state = "CA",
zip = "90277",
country = "US",
phone = "310-808-5243"
)
from_address = easypost.Address.create(
verify=["delivery"],
name = "EasyPost",
street1 = "118 2nd Street",
street2 = "4th Floor",
city = "San Francisco",
state = "CA",
zip = "94105",
country = "US",
phone = "415-456-7890"
)
# create parcel
try:
parcel = easypost.Parcel.create(
predefined_package = "Parcel",
weight = 21.2
)
except easypost.Error as e:
print(str(e))
if e.param is not None:
print('Specifically an invalid param: %r' % e.param)
parcel = easypost.Parcel.create(
length = 10.2,
width = 7.8,
height = 4.3,
weight = 21.2
)
# create customs_info form for intl shipping
customs_item = easypost.CustomsItem.create(
description = "EasyPost t-shirts",
hs_tariff_number = 123456,
origin_country = "US",
quantity = 2,
value = 96.27,
weight = 21.1
)
customs_info = easypost.CustomsInfo.create(
customs_certify = 1,
customs_signer = "Hector Hammerfall",
contents_type = "gift",
contents_explanation = "",
eel_pfc = "NOEEI 30.37(a)",
non_delivery_option = "return",
restriction_type = "none",
restriction_comments = "",
customs_items = [customs_item]
)
# create shipment
shipment = easypost.Shipment.create(
to_address = to_address,
from_address = from_address,
parcel = parcel,
customs_info = customs_info
)
# buy postage label with one of the rate objects
shipment.buy(rate = shipment.rates[0])
# alternatively: shipment.buy(rate = shipment.lowest_rate())
print(shipment.tracking_code)
print(shipment.postage_label.label_url)
# Insure the shipment for the value
shipment.insure(amount=100)
print(shipment.insurance)
Documentation
Up-to-date documentation is available at: https://www.easypost.com/docs
Client Library Development
Releasing
- Add new features to CHANGELOG.md
- Bump the version in
easypost/version.py
andsetup.py
- Create a git tag
- Push to PyPI with
python setup.py sdist upload
Running Tests
To run tests:
- Create a virtualenv for your version of Python (e.g.,
python2.7 -m virtualenv venv
) - Install dependencies in that virtualenv (
./venv/bin/pip install requests six
) - Install test dependencies (
./venv/bin/pip install -r requirements-tests.txt
) - Run the tests with
py.test
(./venv/bin/py.test -vs tests
)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
File details
Details for the file easypost-4.0.2.tar.gz
.
File metadata
- Download URL: easypost-4.0.2.tar.gz
- Upload date:
- Size: 13.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
4c15fe8ce3f71142c8db8c8c13470664b46f8d3a8d60bf2ed7e4362555353725
|
|
MD5 |
4bce3ca17820683414b6e2a29dd3f6ee
|
|
BLAKE2b-256 |
558b4efa8e6573f6835ac260374ecd6ed61c324c4c01f27459c8ea84696ce84c
|
File details
Details for the file easypost-4.0.2-py3-none-any.whl
.
File metadata
- Download URL: easypost-4.0.2-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
ca64f0ee25a6a2129a0bee9883f641384721850aa0b3b250ad5b469e98621e0f
|
|
MD5 |
af17c9262e656a42f6d9705a1d0af38f
|
|
BLAKE2b-256 |
02d3985f1d9807c8d71742794e5bdab0c753707553aa5af25af66173e328dda3
|
File details
Details for the file easypost-4.0.2-py2-none-any.whl
.
File metadata
- Download URL: easypost-4.0.2-py2-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 2
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.5.0 requests-toolbelt/0.9.1 tqdm/4.32.2 CPython/3.7.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 |
b4c92884134ae48df3ed02dee31296f8ea4bf27c9ae9d8ba14facee72a56aab6
|
|
MD5 |
c96b03509706c3a88e4a5dbbdbd30c9e
|
|
BLAKE2b-256 |
468a47b46d2650e949f9c73c114e9df214d91d13bbc355fa99ffd86763550ac8
|