EasyPost
Let your AI ship with EasyPost: verify addresses, compare live rates from your carriers, buy, convert, insure and refund labels, track parcels, prepare customs declarations and create scan forms. Test keys are free.
7-day free trial · No credit card · EU-hosted
Ask EasyPost anything
Try a real prompt against EasyPost via AnythingMCP — Claude calls the tools, returns the answer. Press Enter on your own message to install on Cloud.
Install EasyPost on CloudClaude is AI and can make mistakes. Please double-check responses.
Setup in 2 minutes
- 1Start a free trial on cloud.anythingmcp.com.
- 2Click EasyPost in the connector store. Paste credentials when prompted.
- 3Mint an MCP API key and point your AI client at the generated MCP URL.
Guides for EasyPost
Step-by-step setup for the most popular AI clients.
Setting up EasyPost
From the connector definition itself: where to find the credentials, what they need to be allowed to do, and which API this adapter talks to.
EasyPost
This connector works with one EasyPost account through the EasyPost API v2 (https://api.easypost.com/v2): addresses with verification, parcels, shipments with live rates from your carriers, buying and refunding labels, label formats, insurance, tracking, customs declarations, batches and scan forms.
Setup (about 3 minutes)
- Sign up at https://app.easypost.com/signup (free). EasyPost asks you to set up the wallet and a ship-from address before it shows keys, and a new account may first have to fill in a short security check with its business details; the keys appear once EasyPost has accepted it.
- Open https://app.easypost.com/account/settings?tab=api-keys. Copy the Test key (free, labels are void) or the Production key (buys real labels).
- Paste it into
EASYPOST_API_KEYand install.easypost_list_addresseschecks the key.
Test or production: the key decides, and every object carries mode. With a test key labels cost nothing and are void, trackers only accept the test codes EZ1000000001 (pre_transit) to EZ4000000004 (delivered), EZ5000000005 (return_to_sender), EZ6000000006 (failure) and EZ7000000007 (unknown). Carrier accounts can only be listed with a production key.
Buying costs money: confirm first. With a production key easypost_buy_shipment and easypost_insure_shipment charge the EasyPost wallet at once. State carrier, service, price and both addresses and wait for the user's yes. easypost_refund_shipment voids the label (it must not be used afterwards); the refund takes days to weeks.
Typical flow
easypost_create_shipmentwithto_address,from_addressandparcel(each{"id": "..."}of a saved object, or the full object) returnsrates[]withid,carrier,service,rateanddelivery_days.- Pick a rate with the user, then
easypost_buy_shipmentwith the shipment id and the rate id. The answer haspostage_label.label_url(PNG;easypost_convert_labelgives PDF or ZPL),tracking_codeandtracker.public_url. - Follow the parcel with
easypost_get_tracker(the tracker comes with the bought shipment) or start tracking any code witheasypost_create_tracker.
Addresses: send verify true to easypost_create_address to check an address (a failed check still saves it, with verifications.delivery.success false and suggestions), or use easypost_create_and_verify_address to save only verified addresses. Saved addresses cannot be changed; create a new one. easypost_verify_address returns the checked address, which may have its own id: ship to the id in that answer.
Units: weight in ounces and dimensions in inches (1 kg = 35.27 oz, 1 cm = 0.394 in). Money as decimal strings in USD unless a currency is given. Countries are ISO 2 codes.
International: create customs items (easypost_create_customs_item), then easypost_create_customs_info with their ids, contents_type and customs_signer with customs_certify true, and pass its id as customs_info when creating the shipment.
Lists return the newest first with has_more; for the next page pass the last id as before_id. Shipments, trackers and scan forms cover the last month unless start_datetime is set, and shipment lists show only bought shipments unless purchased is false. A list on a fresh account may come back without its array.
Common errors (error.code)
- 401
UNAUTHORIZEDor 403APIKEY.INACTIVE: missing, wrong or disabled key. - 403
MODE.UNAUTHORIZED: the call needs a production key (carrier accounts). - 402
PAYMENT_REQUIRED: the wallet has no funds. - 422
ADDRESS.VERIFY.FAILURE,SHIPMENT.POSTAGE.FAILURE,SHIPMENT.CUSTOMS_INFO.REQUIRED:error.errors[]names the problem. - 429: rate limited (lists allow about 5 a second); wait and retry.
Out of scope here: pickups, orders, returns, webhooks, users and API keys, reports and connecting carrier accounts.
Your AI is two clicks away from EasyPost.
Install the connector, paste your credentials, ask your AI a question. 7-day free trial, no credit card.