POST to /v2/carrier_accounts with the carrier type string (e.g., UPSAccount, FedExAccount) and the required credentials object for that carrier to register the account
Retrieve a list of all connected carrier accounts via GET /v2/carrier_accounts to confirm registration and obtain the carrier_account id for future shipment creation
Update credentials for an existing carrier account (e.g., after a password rotation) by sending a PUT to /v2/carrier_accounts/{id} with the updated credentials fields
When creating a Shipment, pass the carrier_accounts array with the desired carrier_account id to restrict rate shopping to that specific account rather than all connected accounts
Delete a decommissioned carrier account via DELETE /v2/carrier_accounts/{id} to prevent it from appearing in rate results
Known gotchas
Each carrier type has a different required credentials schema; retrieve the schema for a carrier type via GET /v2/carrier_types to see the required and optional credential fields before POSTing
Credentials are stored encrypted and are never returned in GET responses — you cannot retrieve a credential value after saving it, only update or delete the account
Some carriers (e.g., UPS) require OAuth 2.0 MFA during account connection rather than static credential fields; consult the EasyPost documentation for that carrier type for the multi-step auth flow
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp