EasyPost
Read and write EasyPost addresses, parcels, customs, shipments, rates, label purchases, trackers, batches, pickups and carrier accounts.
Verify addresses, rate-shop and buy labels across 100+ carriers from order flows, and stream tracking status into commerce and service tools.
Source actions
15
Destination actions
6
Data types
10
Validation status
Implemented · fixture tested.
Implementation is checked against provider-shaped fixtures for every action, authentication failures, rate limits, pagination and duplicate safety. Provider sandbox and authorised account validation are recorded separately when credential-backed runs are completed.
What you can map
addresses
- Create addressDestinationNot retried automaticallyApproval before production
Create an address, optionally verifying deliverability.
addresses.create - Get addressSource
One address by ID.
addresses.get - List addressesSource
Saved addresses with verification results, newest first.
addresses.list
batches
- Get batchSource
One batch by ID.
batches.get - List batchesSourceIncremental
Shipment batches with state and label URL.
batches.list
carrier accounts
- Get carrier accountSource
One carrier account by ID (production key only).
carrier_accounts.get - List carrier accountsSource
Carrier accounts connected to EasyPost (production key only).
carrier_accounts.list
customs infos
- Create customs infoDestinationNot retried automaticallyApproval before production
Create a customs declaration with customs items.
customs_infos.create - Get customs infoSource
One customs declaration by ID.
customs_infos.get
labels
- Buy shipment labelDestinationNot retried automaticallyApproval before production
Buy a rate for a shipment and generate its label. Charges postage on production keys.
labels.create
parcels
- Create parcelDestinationNot retried automaticallyApproval before production
Create a parcel (inches and ounces) or a carrier predefined package.
parcels.create - Get parcelSource
One parcel by ID.
parcels.get
pickups
- Get pickupSource
One pickup by ID.
pickups.get - List pickupsSourceIncremental
Carrier pickups with status, window and confirmation.
pickups.list
shipment rates
- Re-rate shipmentSource
Regenerate rates for an unpurchased shipment. Does not buy postage.
shipment_rates.search
shipments
- Create shipmentDestinationNot retried automaticallyApproval before production
Create a shipment and return rates. No postage is charged until labels.create buys a rate.
shipments.create - Get shipmentSource
One shipment by ID or reference.
shipments.get - List shipmentsSourceIncremental
Shipments with rates, labels and trackers, newest first.
shipments.list
trackers
- Create trackerDestinationProvider duplicate protectionApproval before production
Track a package shipped outside EasyPost.
trackers.create - Get trackerSource
One tracker with its events.
trackers.get - List trackersSourceIncremental
Trackers with status and events, newest first.
trackers.list
Authentication
EasyPost API key (test or production)
Plans and access
All EasyPost accounts; postage and tracker fees are billed per use. Carrier account reads require a production key. Production keys buy real postage.
Test environment
Test API keys create test-mode shipments, labels and trackers at no charge.
Rate limits
List endpoints are limited to 5 requests per second plus a load-based limiter; HTTP 429 when exceeded (back off exponentially).
Pagination
page_size (max 100) with before_id set to the last ID while has_more is true.
Provider events
Webhooks for tracker.updated, batch.created/updated, scan_form and refund events. Nexra event triggers are not yet available; flows run on demand or on a schedule.
Before you build a flow
- labels.create (shipment buy) is billable and has no idempotency key; Nexra never retries it. Check shipments.get for a selected_rate before retrying manually.
- One-call buy (service on create), insurance purchase, refunds, pickup purchase, batch buy and deletes are not implemented.
- Shipments, addresses and parcels are immutable after creation; there are no update operations.
- carrier_accounts operations require a production API key; test keys receive HTTP 403.
- Tracker creation is billed per tracker on production keys; EasyPost returns the existing tracker for the same tracking code and carrier within three months.
- EasyPost documents tracking_codes as an array filter; Nexra sends one code as tracking_codes[] (Rails array encoding), which is not shown explicitly in the docs.
Developer reference
- Create the EasyPost credentials described above with the narrowest permissions your flows need.
- In Nexra, open Connect, then Connections, then New connection, choose EasyPost, enter its settings and credentials, and tick only the write actions you need. Connection guide
- Test the connection, then use its actions as flow sources and destinations. Flow guide
Machine-readable detail: GET /api/public/connect/connectors/easypost and the Connections API.