# EasyPost vs TrackingMore

> EasyPost scores 57.4 (C) to TrackingMore's 41.8 (E) for shipment tracking. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/easypost-vs-trackingmore
- Markdown: https://www.anchorterminal.com/compare/easypost-vs-trackingmore.md (~4,750 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-04

EasyPost scores 57.4 (C) on agent readiness against TrackingMore's 41.8 (E), and leads in 6 of 7 scored categories. Both do shipment tracking.

- EasyPost: grade C, 57.4/100, rank #707 of 1349. Markdown https://www.anchorterminal.com/tools/easypost.md · JSON https://www.anchorterminal.com/api/v1/tools/easypost.json
- TrackingMore: grade E, 41.8/100, rank #1187 of 1349. Markdown https://www.anchorterminal.com/tools/trackingmore.md · JSON https://www.anchorterminal.com/api/v1/tools/trackingmore.json
- Best shipping and fulfilment APIs for AI agents: https://www.anchorterminal.com/best/shipping/index.md
- All 45 shipping comparisons: https://www.anchorterminal.com/compare/shipping/index.md

## Which one, for what

### EasyPost (C)

Good for: An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.

Ahead on:
- Schema & documentation, 55 against 31
- Agent ergonomics, 63 against 54
- Security & auth, 47 against 31
- Maintenance & community, 85 against 19
- Transparency & trust, 71 against 57

Watch for: No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace

### TrackingMore (E)

Good for: An agent that reports where a parcel is across many carriers from a tracking number, with a cheap per-tracking price.

Watch for: The API reference renders by script and no OpenAPI file, llms.txt or Markdown docs were found


## Why the edge

### Maintenance & community: EasyPost +66

- EasyPost (85): The releases page has an entry dated 29 October 2026, six days before this check, and the Node, Go, Java and C# libraries were tagged the same day (30). Eight dated release notes fall in the 90 days from 6 August (8, 15, 22 and 29 August, 25 and 28 September, 8 and 29 October), and every library had a release on 27 or 29 October (20). A closed service with public release notes, support@easypost.com, a help centre, ai@easypost.com for the MCP server and a published four-hour response target on the Base support tier. We didn't read GitHub issues or test response times (11 of 15). Seven official SDKs, each with a release on 27 or 29 October 2026: Node 9.1.0, Python 10.8.0, Go 5.12.0, Java 8.10.0, C# 7.12.0, PHP 8.9.0 and Ruby 7.8.0 (15). The Python library's CI lints and runs tests, per the 7 October check, and Node 9.0.0 moved to TypeScript and fetch (9 of 10, partly met). 30 + 20 + 11 + 15 + 9 = 85.
- TrackingMore (19): Read as a closed service. No dated API change was found. The SDKs were last pushed between February and December 2024, the support articles are dated 2023 and 2024, and the reference is undated (0 of 30). No releases or dated entries in the last 90 days were found (0). Support by email and chat with a help centre; GitHub issues were not read (6 of 15). Seven official SDKs exist but none has changed since December 2024 (10 of 15). The Node SDK has tests and no CI workflow (3 of 10). 0 + 0 + 6 + 10 + 3 = 19.

### Schema & documentation: EasyPost +24

- EasyPost (55): No OpenAPI or similar spec was found in the docs, llms.txt, the page index or the 56 public repositories of the EasyPost GitHub organisation. A Postman workspace is listed, which we didn't read (0 of 25). llms.txt, a Markdown copy of almost every page and doc-index.json with audience and usage notes for each page (10). Each object has a property table with a type and description, and the index says when each page applies. Endpoint pages are mostly examples, with little on when not to use a call (12 of 20). Types and allowed values are given in prose tables, such as the ten tracker statuses, with no schema to validate against, and the Markdown copies omit some parameter lists that the HTML pages render (8 of 15). Every endpoint has examples in cURL and seven SDK languages, plus an error object and 13 general error codes. The full error code list is on a part of the page the Markdown copy omits (13 of 15). The path carries v2 and the releases page has dated notes almost every week. No written versioning policy was found, and some calls sit under /beta (12 of 15). 0 + 10 + 12 + 8 + 13 + 12 = 55.
- TrackingMore (31): No OpenAPI or similar file was found in the docs, the SDK repositories or a search, and the reference at trackingmore.com/docs renders by script so its schemas were not read (0 of 25). No llms.txt or Markdown docs (0). The official SDK READMEs give one line per call, and the support centre explains when to pair create with get or a webhook and that the create response carries the result (8 of 20). Field names and the required tracking_number and courier_code appear in the SDK examples, with no types, enums or constraints readable (5 of 15). Examples in seven SDK languages and a table of HTTP and meta codes with messages (12 of 15). v4 in the path with v2 and v3 still served, and the support centre says there is no changelog for switching versions. No dated API changelog was found (6 of 15). 0 + 0 + 8 + 5 + 12 + 6 = 31.

### Security & auth: EasyPost +16

- EasyPost (47): API keys go in the HTTP Basic username over TLS 1.2. Keys can be created, disabled, enabled and deleted through the API or the dashboard, and the docs say a key allows full account access. Plain revocable keys, with no secret in a query string. The MCP server also takes a sign-in with an EasyPost account from the ChatGPT and Claude apps (20 of 30). Test keys buy no postage and child users hold separate keys. The REST API has no read-only or scoped key and no confirmation step before a purchase. Since 29 October 2026 the MCP server buys labels too (20 tools, 7 of them writes); `buy_shipment` refuses a price that differs from the one the user approved, and the guide asks users to keep client approval on for the three paid or destructive writes (8 of 20, held). Responses carry addresses and carrier tracking text. The MCP guide advises connecting only to trusted clients and servers, and no injection guidance was found (4 of 15). Events and their payloads can be retrieved and each shipment lists its fees, but no audit log of API calls or key use was found in the reviewed documentation (5 of 15). A Responsible Disclosure Policy with a safe-harbour commitment and the contact security-abuse@easypost.com, with no acknowledgement time, HMAC-signed webhooks, and a SOC 2 Type 2 report referred to in the data processing addendum. No security.txt (per the 7 October check) and no bug bounty were found, and OSV lists no advisory for EasyPost packages (10 of 20). 20 + 8 + 4 + 5 + 10 = 47.
- TrackingMore (31): One API key in the Tracking-Api-Key header, shown once, at most four per account, deleted in the web app. No scopes or expiry (20 of 30). No read-only key or least-privilege mode, and delete is one call (4 of 20). Tracking checkpoints are carrier text returned to the model, and no guidance was found (3 of 15). A webhook notification log exists in the web app; no log of API calls or key use was found (4 of 15). No security.txt (404), no security page on trackingmore.com, no certification, bug bounty or disclosure policy found. The CWILL privacy policy points to a trust site that was not read (0 of 20). 20 + 4 + 3 + 4 + 0 = 31.

### Transparency & trust: EasyPost +14

- EasyPost (71): The service is closed, under a Master Customer Agreement (version 6.1, effective 25 August 2026) and seven addenda in a legal centre that keeps every past version. The SDKs are MIT or ISC (15). The privacy policy (18 August 2025) gives no retention period. The agreement points to a Data Retention Policy in the help centre, which refused our reader, and it grants EasyPost a licence to use customer data to improve its services and develop new products during and after the term. A data processing addendum with EU and UK standard clauses is public (15 of 30). The agreement says EasyPost will use reasonable efforts to notify customers before API changes that aren't backwards compatible, with no notice period, and allows termination with a refund within 15 days if functionality is materially reduced. No deprecation policy with dates was found (6 of 20). Annex D of the addendum lists 12 subprocessors with purpose and country, all in the USA, and customers have 10 days to object to a new one (17 of 20). The legal centre was re-read on 4 November; the MCA is still version 6.1. 15 + 15 + 6 + 17 = 53.
- TrackingMore (57): Closed service. The terms are the CWILL group's (effective 9 January 2026), which say the contracting entity depends on the product, and the privacy policy names CHANNELWILL CO., LIMITED for TrackingMore. The SDKs are MIT (15 of 30). The privacy policy (8 August 2026) distinguishes controller and processor roles and links a DPA and a sub-processor list, neither read; no retention periods were read (12 of 30). v2 and v3 are still served with no notice policy or dates (4 of 20). A sub-processor list exists at trust.cwill.com and was not read; no data location is stated on the pages read (8 of 20). 15 + 12 + 4 + 8 = 39.

### Agent ergonomics: EasyPost +9

- EasyPost (63): List calls take `page_size` up to 100 with a default of 20 on most endpoints. No field selection was found, and a shipment response nests addresses, parcel, rates and tracker (12 of 25). Cursor pagination by `before_id` and `after_id`, date ranges and a `has_more` flag, with support that varies by endpoint (16 of 20). Errors carry a machine-readable `code`, a message and per-field entries with an occasional suggestion. The `errors` array arrives as objects or as strings, so a client has to handle both (15 of 20). The REST API has no idempotency keys. Trackers are deduplicated by tracking code and carrier for three months, but `reference` on a shipment isn't unique and nothing guards a repeated buy. Since 29 October 2026 the MCP server's `buy_shipment` returns the label already bought when a timed-out buy is retried, and the guide says three write tools are marked destructive; the tool definitions weren't read (5 of 20, partly met, held). One-call buy creates and purchases in one request, addresses and parcels can be nested or reused by id, and official SDKs cover seven languages (15). 12 + 16 + 15 + 5 + 15 = 63.
- TrackingMore (54): trackings/get filters by tracking numbers, courier and created date range, and batch create takes 40 at once. No field selection was found, and the unread reference may document more (10 of 25). Date and courier filters exist; pagination parameters were not found in what was read (8 of 20). Every response carries an HTTP code and a meta code with a message, such as 4121 for an undetected courier and 4190 for a reached quota (14 of 20). No idempotency key. A repeated create is rejected with 4101, so the write is safe to retry, and delete and retrack take ids (10 of 20). Create needs only tracking_number and courier_code, detect is free, and official SDKs cover seven languages (12 of 15). 10 + 8 + 14 + 10 + 12 = 54.

## Score by category

| Category | Weight | EasyPost | TrackingMore | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 68 | 65 | EasyPost +3 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 55 | 31 | EasyPost +24 |
| Agent ergonomics | 13% (16.2 this run) | 63 | 54 | EasyPost +9 |
| Security & auth | 14% (17.5 this run) | 47 | 31 | EasyPost +16 |
| Payments & pricing | 10% (12.5 this run) | 22 | 23 | TrackingMore +1 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 85 | 19 | EasyPost +66 |
| Transparency & trust | 7% (8.8 this run) | 71 | 57 | EasyPost +14 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **57.4 · C** | **41.8 · E** | |

## Facts side by side

| Fact | EasyPost | TrackingMore |
| --- | --- | --- |
| Kind | HTTP API | HTTP API |
| Vendor | Simpler Postage, Inc. (d/b/a EasyPost) | CHANNELWILL CO., LIMITED |
| Hosted endpoint | `https://api.easypost.com/v2` | `https://api.trackingmore.com/v4` |
| Transports | HTTP | HTTP |
| Auth | API key | API key |
| Pricing | Freemium | Freemium |
| Price for shipment tracking | not published | $0.03 per transaction |
| x402 | no | no |
| Licence | Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC | Proprietary hosted service under the CWILL Terms of Service. The seven official SDKs on GitHub are MIT |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| Last release | 2026-10-29 | 2024-12-25 |
| Terms last updated | 2026-08-25 | no date given |
| Privacy policy last updated | 2026-08-25 | 2026-08-08 |
| Customer content may train models | not found in the text | not found in the text |
| Terms restrict automated access | not found in the text | yes |
| Terms restrict benchmarking | yes | yes |
| Terms or service can change without notice | not found in the text | yes |
| Arbitration or class-action waiver | yes | not found in the text |
| Popularity | 149 stars, 100k npm/wk | 6 stars |

## How the scores have moved

### EasyPost

- +3.0 on 4 November 2026: time
- +0.1 on 27 October 2026: checklist

### TrackingMore

No score change since it was listed.

## Verdicts

**EasyPost.** Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs updated in late October 2026 and free test keys make the REST API easy to start on. No OpenAPI spec or REST idempotency keys were found, and every key has full account access. The MCP server now buys labels, with retry-safe buys.

**TrackingMore.** A small tracking API with published per-endpoint rate limits, meta error codes, a free courier detection call and SDKs in seven languages. The reference docs render by script with no OpenAPI file, plan prices weren't readable, one key has full access, the SDKs date from 2024 and the legal documents belong to the CWILL group.

## Before you call either

### EasyPost

1. Use a test API key while building. It buys no postage and contacts no carrier, and test tracking codes simulate each tracking status
2. Don't blind-retry `POST /shipments/:id/buy` after a timeout. Retrieve the shipment first and check for `postage_label`, since the REST API has no idempotency key
3. Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer production key on the MCP server
4. On the MCP server, pass the approved price to `buy_shipment` and keep client approval on for buy, insure and refund; it runs in production mode only
5. Pass a scoped `carrier_accounts` list when rating. Only the first 60 accounts are rated and the call doesn't fail when more are enabled

### TrackingMore

1. Send the key as `Tracking-Api-Key` to https://api.trackingmore.com/v4; the v2 header name `Trackingmore-Api-Key` and the v3 path are the older versions
2. Call `POST /v4/couriers/detect` first when the carrier is unknown (free on v4), then `POST /v4/trackings/create` with `tracking_number` and `courier_code`; the create response already carries the tracking result
3. Create up to 40 shipments at once with `POST /v4/trackings/batch` and read them with `GET /v4/trackings/get`, which filters by tracking numbers, courier and created date
4. Treat meta code 4101 as an existing tracking rather than a failure, and 4190 as a plan quota to raise with the person; after a 429 wait 120 seconds
5. Stay under 3 creates a second and 10 requests a second on other calls per account, and prefer a webhook (same version as the API) to polling

## Questions

### Which is better for AI agents, EasyPost or TrackingMore?

EasyPost scores 57.4 (C) on agent readiness against TrackingMore's 41.8 (E), and leads in 6 of 7 scored categories.

### Do EasyPost and TrackingMore need an API key?

Both need an API key.

### Can an agent call EasyPost and TrackingMore without installing anything?

Yes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and TrackingMore at https://api.trackingmore.com/v4.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/easypost-vs-trackingmore.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easypost-vs-trackingmore.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "easypost", "b": "trackingmore"}`. From a terminal: `anchor compare easypost trackingmore`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easypost.json and https://www.anchorterminal.com/api/v1/tools/trackingmore.json

## Other comparisons with EasyPost or TrackingMore

- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)
- [EasyPost vs Karrio](https://www.anchorterminal.com/compare/easypost-vs-karrio.md)
- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)
- [EasyPost vs ShipBob](https://www.anchorterminal.com/compare/easypost-vs-shipbob.md)
- [EasyPost vs Shippo](https://www.anchorterminal.com/compare/easypost-vs-shippo.md)
- [EasyPost vs ShippyPro](https://www.anchorterminal.com/compare/easypost-vs-shippypro.md)
- [EasyPost vs ShipStation API](https://www.anchorterminal.com/compare/easypost-vs-shipstation.md)
- [EasyPost vs Ship24](https://www.anchorterminal.com/compare/easypost-vs-ship24.md)
- [Easyship vs TrackingMore](https://www.anchorterminal.com/compare/easyship-vs-trackingmore.md)
- [Karrio vs TrackingMore](https://www.anchorterminal.com/compare/karrio-vs-trackingmore.md)
- [Sendcloud vs TrackingMore](https://www.anchorterminal.com/compare/sendcloud-vs-trackingmore.md)
- [Ship24 vs TrackingMore](https://www.anchorterminal.com/compare/ship24-vs-trackingmore.md)
- [ShipBob vs TrackingMore](https://www.anchorterminal.com/compare/shipbob-vs-trackingmore.md)
- [Shippo vs TrackingMore](https://www.anchorterminal.com/compare/shippo-vs-trackingmore.md)
- [ShippyPro vs TrackingMore](https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.md)
- [ShipStation API vs TrackingMore](https://www.anchorterminal.com/compare/shipstation-vs-trackingmore.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
