easypost/easypost-php
EasyPost Shipping API Client Library for PHP
8.8.2
3.5M downloads/mo
#2296 most downloaded on Packagist
EasyPost/easypost-php
What this package is like to depend on
Last release 12 days ago
11 Aug 2026
Release timing varies
gaps range from 2 weeks to 9 months
Nearly every release is documented
notes for 76 of 78 stable releases
Nothing withdrawn
no release was ever pulled
13 years old
79 releases · first in 2013
8 releases in the last 12 months
see the full history below
Release timeline
79 releases · Nov 2013 to Aug 2026Releases
latest 60 of 79-
8.8.211 Aug 2026Release notes
Open source →- Empty arrays and objects are no longer stripped when passed as params in the request
Release notes
Open source →- Empty arrays and objects are no longer stripped when passed as params in the request
-
8.8.102 Jul 2026Release notes
Open source →- Uppercases all HTTP methods to correct a new Guzzle deprecation
- Removed dead code in
__setand__unsetof anEasyPostObject
Release notes
Open source →- Uppercases all HTTP methods to correct a new Guzzle deprecation
- Removed dead code in
__setand__unsetof anEasyPostObject
-
8.8.025 Jun 2026Release notes
Open source →- Adds
paramstorequestPinensuring users can passeasypost_detailsto the call.
Release notes
Open source →- Adds
paramstorequestPinensuring users can passeasypost_detailsto the call.
- Adds
-
8.7.025 Feb 2026 -
8.6.020 Feb 2026Release notes
Open source →- Adds the following functions:
fedexRegistration.registerAddressfedexRegistration.requestPinfedexRegistration.validatePinfedexRegistration.submitInvoice
Release notes
Open source →- Adds the following functions:
fedexRegistration.registerAddressfedexRegistration.requestPinfedexRegistration.validatePinfedexRegistration.submitInvoice
- Adds the following functions:
-
8.5.003 Feb 2026Release notes
Open source →- Adds the following functions usable by child and referral customer users (closes #375):
apiKey.createapiKey.deleteapiKey.enableapiKey.disable
- Adds
tracker.deletefunction
Release notes
Open source →- Adds the following functions usable by child and referral customer users (closes #375):
apiKey.createapiKey.deleteapiKey.enableapiKey.disable
- Adds
tracker.deletefunction
- Adds the following functions usable by child and referral customer users (closes #375):
-
8.4.024 Nov 2025Release notes
Open source →- Adds the following functions:
embeddable.createSessioncustomerPortal.createAccountLink
Release notes
Open source →- Adds the following functions:
embeddable.createSessioncustomerPortal.createAccountLink
- Adds the following functions:
-
8.3.007 Nov 2025Release notes
Open source →- Adds support for
UspsShipAccount - Adds
tracker.retrieveBatchfunction - Adds
verify_carrieraddress param
Release notes
Open source →- Adds support for
UspsShipAccount - Adds
tracker.retrieveBatchfunction - Adds
verify_carrieraddress param
- Adds support for
-
8.2.018 Jun 2025Release notes
Open source →- Adds the following functions
shipment.createAndBuyLumashipment.buyLumaluma.getPromise
Release notes
Open source →- Adds the following functions
shipment.createAndBuyLumashipment.buyLumaluma.getPromise
- Adds the following functions
-
8.1.029 May 2025 -
8.0.127 May 2025 -
8.0.030 Apr 2025Release notes
Open source →See our Upgrade Guide for more details.
- Drops support for PHP 8.0
- Adds
custom_headersproperty to webhook model - Adds the following functions to assist ReferralCustomers add credit cards and bank accounts:
betaReferralCustomer.createCreditCardClientSecretbetaReferralCustomer.createBankAccountClientSecretreferralCustomer.addCreditCardFromStripereferralCustomer.addBankAccountFromStripe
- Adds missing properties to
TrackerandTrackingDetailmodels - Routes
AmazonShippingAccountto the correct endpoint - Corrects wrapping payload for update webhook endpoint
- Corrects various type hints throughout project
- Fixes error handling
- Corrects the type of
errorsproperty on anApiExceptionto allow for the alternative format - Fixes a bug where you could not
prettyPrintan error if it used the alternative format - Corrects the
paramreferences topropertyreferences on all error models - Adds new
AddressVerificationFieldErrorfor theerrorsproperty on aVerificationmodel - Adds missing
suggestionproperty toFieldError
- Corrects the type of
- Removes deprecated
tracker.createListendpoint function as it is no longer available via API - Removes deprecated
user.allApiKeysanduser.apiKeys, useapiKey.allandapiKey.retrieveApiKeysForUserrespectively - Bump deps
-
7.4.216 Aug 2024Release notes
Open source →- Fixes an issue with how query params were sent when using the
addCreditCardfunction
- Fixes an issue with how query params were sent when using the
-
7.4.109 Aug 2024 -
7.4.024 Jul 2024Release notes
Open source →- Adds new
Claimservice for filing claims on EasyPost shipments and insurances
- Adds new
-
7.3.012 Jul 2024Release notes
Open source →- Adds new
shipment.recommendShipDate,smartrate.recommendShipDate, andsmartrate.estimateDeliveryDatefunctions - Routes
UpsAccount,UpsMailInnovationsAccount, andUpsSurepostAccountcreate/update requests to the new/ups_oauth_registrationsendpoint- Starting
2024-08-05, UPS accounts will require a new payload to register or update. See UPS OAuth 2.0 Update for more details
- Starting
- Adds new
-
7.2.010 Apr 2024Release notes
Open source →- Fix payment method funding and deletion failures due to undetermined payment method type
- Adds
refundfunction in Insurance service for requesting a refund for a standalone insurance
-
7.1.008 Jan 2024 -
7.0.001 Dec 2023Release notes
Open source →See our Upgrade Guide for more details.
- Drops support for PHP 7.4
- Adds support for PHP 8.3
- Persists the HTTP client inside of the
EasyPostClientvia thehttpClientproperty to reduce memory consumption on consecutive requests - Adds type declarations for parameters and return values throughout the library, corrects docstrings to match
- Removed
withCarbonOffsetparameter fromcreate,buy, andregenerateRatesfunctions of the Shipment service as EasyPost now offers Carbon Neutral shipments by default for free - Fixes a bug where the original filtering criteria of
allcalls wasn't passed along togetNextPagecalls. Now, these are persisted via a_paramskey on response objects locally - Removes the undocumented
createAndBuyfunction from theBatchservice. The proper usage is to create a batch first and buy it separately - Renames
primaryOrSecondarytopriorityto match the API name for the parameter - Corrects the order of the
userIdandemailparameters in theupdateEmailfunction of the ReferralCustomer service to match the rest of the library where IDs are always the first parameter - Fix various bugs throughout the library
-
6.9.120 Nov 2023Release notes
Open source →- Fixes a bug that globally reset the timezone to UTC instead of setting the timezone per-request (closes #310)
-
6.9.011 Oct 2023Release notes
Open source →- Deprecates API key-related functions in the
userservice and introduces the replacement functions in theapi_keysservice - Fixes a bug that changed the timezone to UTC on each request without resetting it to the original timezone in use (closes #310)
- Fixes documentation generation command invocation
- Deprecates API key-related functions in the
-
6.8.105 Sep 2023 -
6.8.028 Jul 2023Release notes
Open source →- Adds new
RequestHookandResponseHookevents. (un)subscribe to them with the newsubscribeToRequestHook,subscribeToResponseHook,unsubscribeFromRequestHook, orunsubscribeFromResponseHookmethods of anEasyPostClient - Maps 400 status codes to new
BadRequestExceptionclass
- Adds new
-
6.7.006 Jun 2023Release notes
Open source →- Migrates carrier metadata to GA (now available via
client.carrierMetadata.retrieve)
- Migrates carrier metadata to GA (now available via
-
6.6.001 May 2023 -
6.5.018 Apr 2023Release notes
Open source →- Adds beta
retrieveCarrierMetadatafunction - Improves Error Deserialization to dynamically handle edge cases that have a bad format
- Adds beta
-
6.4.004 Apr 2023Release notes
Open source →- Add
getNextPagefunction that retrieves the next page of results for a paginated collection
- Add
-
6.3.122 Mar 2023Release notes
Open source →- Adds missing
status_detailproperty to Tracker - Fixes spelling of
weightproperty on Parcel
- Adds missing
-
6.3.021 Feb 2023Release notes
Open source →- Adds beta
retrieveStatelessRatesfunction - Adds
getLowestStatelessRateutility - Correct HTTP 403 status responses to throw
ForbiddenException - Various other small corrections and improvements
- Adds beta
-
6.2.018 Jan 2023Release notes
Open source →- Added function to retrieve all pickups via
$client->pickup->all() - Added payload functions
retrievePayloadandretrieveAllPayloadsmethods, accessible via$client->eventservice.
- Added function to retrieve all pickups via
-
6.1.011 Jan 2023Release notes
Open source →- Adds new beta billing functionality for referral customer users, accessible via the
$client->betaReferralCustomerserviceaddPaymentMethodto add an existing Stripe bank account or credit card to your EasyPost accountrefundByAmountrefunds you wallet balance by a specified amountrefundByPaymentLogrefunds you wallet balance by a specified payment log
- Adds new beta billing functionality for referral customer users, accessible via the
-
6.0.005 Jan 2023Release notes
Open source →See our Upgrade Guide for more details.
- Release final version of v6 that contains all the changes in the
v6.0.0-rc1below
- Release final version of v6 that contains all the changes in the
-
6.0.0-rc115 Dec 2022 pre-releaseRelease notes
Open source →- PHP 7.3 is no longer supported
- Added a new
EasyPostClientobject which encapsulates the API key. All functions are called against this client allowing for thread-safety (eg:$client->shipment->create())- All instance methods and the ability to have objects update in-place has been removed due to this rearchitecture. When updating objects or performing actions on them (eg: creating a label/scanform), you will need to assign the return value to a variable and use that moving forward instead of relying on the object getting updated without capturing the new return value
->save()instance methods are nowupdate()static methods- Functions no longer accept an API key as an optional parameter
- EasyPost objects no longer contain the logic associated with them; instead, we have
Servicesfor each EasyPost object. All the services are properties of anEasyPostClient. You can then call functions on a Service.
- All function and parameter names are now camelCase. Previously we used a mix of camel and snake cases
- Improves error exception handling (closes #7)
- Introduced ~2 dozen new exception types that extend from either
ApiExceptionorEasyPostException - ApiExceptions will behave like the previous EasyPostException class did. They will include a
message,errors,code,httpStatusandhttpBody. This class extends the more generic EasyPostException which only contains a message, used for exceptions thrown directly from this library - The
ecodeproperty of anApiExceptionis now justcode
- Introduced ~2 dozen new exception types that extend from either
- Functions that previously returned
truenow return void as there is no response body from the API (eg:fundWallet,deletePaymentMethod,updateEmail,createList) - Adopts
Guzzleas the HTTP client for this library. This should provide a much more consistent experience, better encoding, and faster request times in some cases - The results of calling
allApiKeysis no longer double wrapped with the mode of the API key (these are still accessible inside of each object) Requestorhas moved toHttp, constants fromEasyPostnow live inConstants,Errormoved toException- Occurances of
smartrateare nowsmartRateandSmartrateare nowSmartRateto match the documentation and API expectations Referralis nowReferralCustomerto better match documentation and API expectationvalidateWebhook,getLowestSmartRate, andreceiveEventare now underEasyPost\Util\Utilas they do not make any API calls and do not need the associated client object- The
receivefunction previously in the namespace ofEventis now calledreceiveEventsince it has been relocated to the generic Util namespace - Internal, library only utilities have been moved to
EasyPost\Util\InternalUtil
- The
- The beta
EndShipperclass has been removed, please use the generally availableEndShipperclass - Various properties and functions that were previously intended for private/protected use but were public have been corrected
- All phpdoc type hints, descriptions, return values, and throws references were corrected or updated
- All dependencies were bumped
- Various other bug fixes and improvements were made along with addressing deprecation warnings
-
5.9.028 Mar 2024Nothing published for this version
-
5.8.001 Dec 2022Release notes
Open source →- Adds carrier account creation routes requests correctly for carriers that require custom workflows
- Instead of returning
nullwhen a list of child API keys cannot be returned (eg: when you callapi_keyson a non-user object) it will return an empty list. The expected impact to end users is extremely low - Retrieving child user API keys for users with large numbers of child users should see much faster results as we now break on the match instead of iterating the entire list
-
5.7.021 Sep 2022Release notes
Open source →- Adds Partner White Label (Referral) Support
- Adds ability to create a referral user
- Adds ability to update a referral user's email
- Adds ability to retrieve all referral users
- Adds ability to add a credit card to a referral user's account
- Adds support to specify an
$endShipperIdon the buy call of a Shipment - Removes unreachable code in the address verification flow that checked for the existence of an address (errors will continue to be thrown on failure)
- Adds Partner White Label (Referral) Support
-
5.6.025 Aug 2022 -
5.5.120 Aug 2022Release notes
Open source →- Removes some extra imports that no longer exist causing errors when importing this library. Adds a regression test to protect against this in the future.
-
5.5.002 Aug 2022Release notes
Open source →- Adds Carbon Offset support
- Adds ability to create a shipment with carbon offset
- Adds ability to buy a shipment with carbon offset
- Adds ability to one-call-buy a shipment with carbon offset
- Adds ability to rerate a shipment with carbon offset
- Adds
validateWebhookfunction that returns your webhook or raises an error if there is awebhookSecretmismatch - Fixes a bug that required the values of
verifyandverify_strictparams on an Address creation call to be arrays since passingtrueas a boolean is also valid (passing an array will continue to work but is no longer required)
- Adds Carbon Offset support
-
5.4.018 Jul 2022Release notes
Open source →- Add ability to generate forms for shipments via
generate_form()function
- Add ability to generate forms for shipments via
-
5.3.007 Jul 2022Release notes
Open source →- Adds
Billing::retrieve_payment_methods(),Billing::fund_wallet(), andBilling::delete_payment_method()functions - Adds OS specific details to the
User-Agentheader - Applies a patch to coerce array error messages to strings where error mapping is done improperly (as is the case with carriers like GSO/GLS) (closes #181)
- Adds
-
5.2.131 May 2022Release notes
Open source →- Fixes a missing parameter bug by setting the
betaparameter in therefreshfunction tofalseby default
- Fixes a missing parameter bug by setting the
-
5.2.019 May 2022Release notes
Open source →- Adds the
EndShipperBeta class withcreate,retrieve,all, andsavefunctions
- Adds the
-
5.1.109 May 2022Release notes
Open source →- Adds present but unimported supplemental EasyPost object classes such as
TrackingDetailsto the lib (closes #164)
- Adds present but unimported supplemental EasyPost object classes such as
-
5.1.009 May 2022Release notes
Open source →- Adds a
lowest_rate()function to Orders and Pickups - Adds
Shipment::get_lowest_smartrate()and$shipment.lowest_smartrate()functions - Removes the
paramsfrom theAddress->verify()method since it's non-static and unused - Removes dead conditional
messagecheck inAddress::create_and_verify
- Adds a
-
5.0.009 Feb 2022Release notes
Open source →See our Upgrade Guide for more details.
- Bumped minimum PHP version supported from
5.3to7.3 - Adds a full test suite, all functions are now tested for each object
- Adds class properties to every class (closes #96)
- Updates and adds docblocks to each function throughout the library
- Switched from
array()syntax to[]throughout the project - Adds the
update_brand()method on theUserobject - Set a default timeout of 30 seconds for connections and 60 seconds for requests
- Fixes the
create_list()Tracker andcreate_and_buy()Batch method's encodings to properly send through the parameters - Adds the PHP version used to the
User-Agentheader - Removed unusable
all()method on theParcelobject - Removed unpaginated
all()method on theOrder,CustomsInfo, andCustomsItemobjects - Removed the
get_rates()method on the Shipment object since a Shipment object already has rates. If you need new rates for a shipment, use theregenerate_rates()method instead - Ignores return types for now on
ArrayAccessandIteratormethods (closes #124) - Bumps dev dependencies
- Various other small improvements and bug fixes
- Bumped minimum PHP version supported from
-
4.0.329 Jun 2022Nothing published for this version
-
4.0.220 Oct 2021Release notes
Open source →- Further fixes JSON encoding by dropping null key/values, sending values as strings where necessary (returning to previous behavior), and removing the
array_filterfrom the previous release
- Further fixes JSON encoding by dropping null key/values, sending values as strings where necessary (returning to previous behavior), and removing the
-
4.0.109 Oct 2021Release notes
Open source →- Properly handles empty lists and objects with JSON encoding (closes #114)
-
4.0.008 Oct 2021Release notes
Open source →See our Upgrade Guide for more details.
- JSON encodes POST bodies instead of form encoding them
- Adds TaxIdentifier support
- Corrects references of
[email protected]to[email protected] - Bumps patch versions of dependencies
-
3.6.010 Jun 2021Release notes
Open source →- Adds
SmartRatefunctionality to theShipmentsobject (available by callingget_smartrates()on a shipment)
- Adds
-
3.5.006 Apr 2021Release notes
Open source →- Added event retrieval methods
- Fixed a bug that did not allow carrier accounts to be deleted
- Fixed a bug that did not allow users to be deleted
- Removed various pieces of old code
-
3.4.507 May 2020 -
3.4.412 Mar 2020 -
3.4.312 Mar 2020Release notes
Open source →- Bumped version in package.json for Packagist
- Updated README with release instructions
-
3.4.113 Apr 2018Release notes
Open source →- Added ability to set connection and response timeouts for all EasyPost actions (thanks mattjanssen!)
-
3.4.030 Oct 2017 -
3.3.315 Feb 2017 -
3.3.224 Jan 2017 -
3.3.120 Jan 2017