skillfed

easypost

EasyPost Shipping API Client Library for Python

easypost v10.7.0 220.7K downloads/30d#9,293 on PyPI127
Permissive license The MIT License Copyright (c) 2013 EasyPost (Simpler Postage, Inc) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files… (full text in the JSON record) Active released

What it is and what it does

EasyPost is a Python wrapper around the EasyPost shipping API that abstracts the complexity of integrating with multiple carriers. It lets you create shipment objects with origin and destination addresses plus package dimensions, retrieve available shipping rates from different carriers, and purchase labels programmatically—all through a single client interface. The library handles HTTP communication via requests and provides hooks for monitoring request and response lifecycle events.

The package is production-stable (Development Status 5), actively maintained, and tested against Python 3.9 through 3.13. It's designed for developers building shipping workflows into applications—from e-commerce platforms to logistics management tools—who need to avoid building their own carrier integrations. The API is straightforward: instantiate a client with your credentials, call methods on shipment/address/parcel objects, and work with the returned data structures.

Use it for:

  • E-commerce platforms that need to offer real-time shipping rate quotes and label generation at checkout.
  • Logistics management dashboards that consolidate shipment creation and tracking across multiple carriers.
  • Batch shipment processing for fulfillment centers that need to programmatically buy labels in bulk.
  • Subscription box services that automate recurring shipment creation and carrier selection based on cost or speed.
  • Third-party logistics providers integrating carrier APIs into their own platform.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Python client library for the EasyPost shipping API, enabling programmatic creation, management, and purchase of shipments with carrier rate comparison.

Yes. The package is production-stable, actively maintained, has low install friction, carries a permissive MIT license, and solves a real integration problem for anyone building shipping functionality. No known vulnerabilities. Install if you need to integrate EasyPost's shipping API into a Python application.

Install

easypost on PyPI

pip

pip install easypost

uv

uv add easypost

poetry

poetry add easypost

Installing easypost

Before you install

Low install friction with a single runtime dependency (requests). Actively maintained with a release within the last 50 days and an active repository. Supports Python 3.9 through 3.13.

License in practice

MIT license permits unrestricted use, modification, and distribution with minimal restrictions—suitable for both commercial and open-source projects.

Quickstart

pip install easypost

import os
import easypost

client = easypost.EasyPostClient(os.getenv('EASYPOST_API_KEY'))
shipment = client.shipment.create(
    from_address={"name": "Sender", "street1": "118 2nd Street", "city": "San Francisco", "state": "CA", "zip": "94105", "country": "US"},
    to_address={"name": "Recipient", "street1": "179 N Harbor Dr", "city": "Redondo Beach", "state": "CA", "zip": "90277", "country": "US"},
    parcel={"length": 10.2, "width": 7.8, "height": 4.3, "weight": 21.2}
)
bought = client.shipment.buy(shipment.id, rate=shipment.lowest_rate())

Requires a valid EasyPost API key passed via environment variable or directly to EasyPostClient.

Verify before relying

  • Whether the library supports real-time rate shopping across all major carriers or a subset.
  • Specific carrier integrations and coverage beyond what the description states.
  • Rate limiting or throughput constraints for high-volume shipment operations.
  • Whether address validation and correction is included or requires a separate service.

Package facts

License The MIT License Copyright (c) 2013 EasyPost (Simpler Postage, Inc) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files… (full text in the JSON record) (permissive)
Python support supports the current Python release (>=3.9)
Install friction low — pure-Python wheel
Runtime dependencies 1 — requests
Maintenance actively maintained — 50 days since the last release
Last repo commit
First released
Downloads 220,717/month — #9,293 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: easypost-10.7.0-py3-none-any.whl

Development Status :: 5 - Production/StableEnvironment :: Web EnvironmentIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.9Topic :: Software Development :: Libraries

Tags

shipping api client pythoneasypost python libraryshipment creation and buyingcarrier rate comparisonshipping label generationpostage api integration
shipping-apilogisticscarrier-integration

More Libraries packages