# EasyPost integrations: shipments and trackers

> Create a shipment, create a tracker and create an address in EasyPost, and start a workflow when EasyPost sends “Tracker created”.

**Canonical page:** https://tray.ai/connectors/easypost-integrations/
**Categories:** Supply chain
**Connects through:** HTTP Connector

## Overview

EasyPost is a shipping API that lets businesses compare carrier rates, buy postage labels, verify addresses, and track packages across many carriers. Tray.ai connects to EasyPost through the HTTP Connector, so your workflows can call the EasyPost API alongside the rest of your stack.

## Use cases

### Shipments

Read and create shipments in EasyPost from any Tray.ai workflow. The EasyPost API covers calls such as create a shipment and buy a shipment.

- Create a shipment
- Buy a shipment
- List shipments

### Trackers

Read, create, and delete trackers in EasyPost from any Tray.ai workflow. The EasyPost API covers calls such as create a tracker and list trackers.

- Create a tracker
- List trackers
- Retrieve a tracker

### Addresses

Read and create addresses in EasyPost from any Tray.ai workflow. The EasyPost API covers calls such as create an address and verify an address.

- Create an address
- Verify an address
- List addresses

### EasyPost events

Start a Tray.ai workflow the moment something happens in EasyPost. EasyPost sends events such as tracker created and tracker updated to a Tray.ai webhook trigger.

- Tracker created
- Tracker updated
- Batch created

## Challenges Tray.ai solves

### Keeping EasyPost credentials out of logs

A raw API call usually means pasting a key or token into the request, where it ends up in step inputs, logs, and screenshots.

**How Tray.ai helps:** Store EasyPost credentials once as a Tray.ai authentication and reference them from the HTTP Connector. Tray.ai masks authentication values in logs, so the secret never shows up in a step's input or output.

### Going from the EasyPost API docs to a working call

Translating an example request from API docs into a workflow step means copying the method, URL, headers, and body by hand.

**How Tray.ai helps:** Paste a cURL example from the EasyPost API docs into the HTTP Connector and Tray.ai fills in the method, URL, headers, and body for you.

### Handling files and non-JSON responses

Not every API answers in JSON. Some return XML, files, or binary data, or expect a multipart upload.

**How Tray.ai helps:** The HTTP Connector parses JSON and XML responses, returns files you can pass to the next step, and sends multipart form data for uploads.

## Frequently asked questions

### Does Tray.ai connect to EasyPost?

Yes. Tray.ai connects to EasyPost through the HTTP Connector, which calls the EasyPost API directly. Any call the EasyPost API documents can run as a step in a Tray.ai workflow.

### How does Tray.ai authenticate with EasyPost?

The EasyPost API uses basic authentication. You save it once as a Tray.ai authentication, and the HTTP Connector adds it to every request.

### Can I get a dedicated EasyPost connector?

EasyPost runs through the HTTP Connector rather than a dedicated connector. If your team wants one, the Tray.ai connector SDK can build a dedicated EasyPost connector from the EasyPost API.

## Learn more

- Intelligent Integration: https://tray.ai/platform/intelligent-ipaas/
- Merlin Agent Builder: https://tray.ai/platform/merlin-agent-builder/
- Agent Gateway for MCP: https://tray.ai/platform/agent-gateway/
- Book a demo: https://tray.ai/contact/
