Head to head · Shipment tracking · October 2026 research run
Shippo vs TrackingMore
Shippo scores 61.9 (C) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category. Both do shipment tracking.
Best shipping and fulfilment APIs for AI agents · All 45 shipping comparisons
Which one, for what
Shippo C
Best for An agent that quotes and buys parcel labels across USPS, UPS, FedEx and DHL Express for a small or mid-size shipper, with a free test mode and public unit prices.
Ahead on
- Schema & documentation, 83 against 31
- Agent ergonomics, 64 against 54
- Security & auth, 42 against 31
- Payments & pricing, 40 against 23
- Maintenance & community, 77 against 19
Watch for
No idempotency key on label purchase or other writes. Only the Reporting API accepts one
Best for An agent that reports where a parcel is across many carriers from a tracking number, with a cheap per-tracking price.
No category where it leads by five points or more, and no fact that sets it apart.
Watch for
The API reference renders by script and no OpenAPI file, llms.txt or Markdown docs were found
Why the edge
Each category where one leads by five points or more, with the reason behind each side's score from its assessment. The numbers are in the table below; this is what they stand for.
Maintenance & community Shippo +58
Shippo 77
The API release notes were last updated on 20 October 2026, and the shippo npm SDK 2.19.1 was tagged on 27 October 2026 (30). Six dated entries from 4 August, the latest on 1, 8, 14 and 20 October, plus TypeScript SDK 2.19.0 and 2.19.1 (20). Closed service with dated release notes and a support portal. Open issue counts weren't re-read (9 of 15). The MCP server is in the official registry as com.shippo/shippo-mcp, verified by DNS. Official SDKs exist in five languages. The TypeScript SDK was regenerated in October, while the Python SDK's latest stable tag is 3.9.0 from 26 November 2024, with 5.0.0 in beta since 22 October 2026 (12 of 15). SDKs are generated and validated by CI workflows, and goshippo/ai has test and validation workflows, last tagged 23 July (6 of 10).
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 Shippo +52
Shippo 83
OpenAPI 3.1 spec for the main API with 71 operations, and six further specs for addresses v2, estimates, reporting, invoices and surcharges (25). llms.txt at docs.goshippo.com and a Markdown copy of each page (10). Descriptions state purpose and some conditions, such as the 390-day limit on shipments and when a batch is asynchronous, but rarely when not to use an endpoint (13 of 20). 94 enums and required fields marked. The 400 response schema is an open object, and weights and dimensions are strings (11 of 15). 427 examples in the spec and samples in six languages. The spec documents 400 on 66 operations, 401 and 404 once each and never 429, and the status-code page is one line per code (9 of 15). Dated API versions set by the Shippo-API-Version header and dated release notes (15).
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.
Payments & pricing Shippo +17
Shippo 40
No x402, MPP or L402 (0). Per-unit prices are public without a login. API Starter is 7 cents a label after 30 free a month, 1 cent a rate request, 2 cents a tracking request, 2 cents a US address validation and 8 cents elsewhere, plus the postage itself (20). Signup is free, and test keys create test labels and mock tracking at no charge. The docs say billing details are needed only for live label purchase. We didn't open an account to confirm (20). A person signs up in a browser and creates the key in the portal, or signs in through OAuth for the MCP server (0).
TrackingMore 23
Read with the hosted rubric. No x402, MPP or L402 (0). The API page gives a from price of $0.03 a tracked order and three unlabelled figures, and the pricing page's plan prices render by script, so per-unit pricing is partly public (8 of 20). A Free plan and a 14-day trial are offered, and whether a card is asked for was not established (15 of 20). A person signs up in a browser and generates the key there (0). 0 + 8 + 15 + 0 = 23.
Security & auth Shippo +11
Shippo 42
Self-serve API keys, live and test kept apart, shown once, deletable in the portal, with no scopes and no documented expiry. The OAuth flow for platforms has one scope, "*". JWTs for client-side use last 12 hours (20 of 30). A webhook can carry a self-made token in its URL query string. That is the receiver's secret, not the API credential, so we noted it without the deduction. No read-only key. Test keys can't spend money, and the MCP server separates reads from writes and its docs say writes ask for confirmation (9 of 20). Tracking events, metadata and address text come from carriers and other parties. The AI repository's security policy puts prompt injection in scope for reports, with no guidance in the API docs (5 of 15). The API portal is described as showing usage. No audit log was found in the docs (3 of 15). The AI repository's security policy gives security@goshippo.com and names goshippo.com/security as the disclosure page, which returns 404, as does security.txt. The trust centre at trust.goshippo.com, where the 7 October check read SOC 2 Type II, PCI DSS, a penetration test and a bug bounty, now refuses our crawler, so those readings are set aside and unscored (5 of 20).
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.
Agent ergonomics Shippo +10
Shippo 64
Scored on the REST API, with the MCP server noted. List calls take results and page, and expand controls nested objects, but there's no field selection and a shipment returns every rate. The MCP server has four tools (list, describe, read-execute, write-execute) over 73 operations, which keeps definitions small (17 of 25). Pagination on every list. Date filters exist only on shipments, within a 90-day range (14 of 20). Status codes are documented in general terms and the error body is untyped. The goshippo/ai repository has an error reference with recovery steps for MCP use (12 of 20). No idempotency key on shipments, transactions or refunds. The Reporting API accepts idempotency_key. The MCP read and write split lets a client approve writes. Its annotations sit behind sign-in and weren't read (8 of 20). Official SDKs for Python, TypeScript, Java, C# and PHP. Shipments and transactions default to asynchronous, and objects can't be edited after creation (13 of 15).
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 this run | Shippo | TrackingMore | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 69 | 65 | Shippo +4 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 83 | 31 | Shippo +52 |
| Agent ergonomics | 13%16.2 | 64 | 54 | Shippo +10 |
| Security & auth | 14%17.5 | 42 | 31 | Shippo +11 |
| Payments & pricing | 10%12.5 | 40 | 23 | Shippo +17 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 77 | 19 | Shippo +58 |
| Transparency & trust | 7%8.8 | 58 | 57 | Shippo +1 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 61.9/100 | E 41.8/100 |
Facts side by side
| Fact | Shippo | TrackingMore |
|---|---|---|
| Kind | HTTP API | HTTP API |
| Vendor | Shippo | CHANNELWILL CO., LIMITED |
| Hosted endpoint | https://api.goshippo.com | https://api.trackingmore.com/v4 |
| Transports | HTTP | HTTP |
| Auth | OAuth or key | API key |
| Pricing | Freemium | Freemium |
| Price for shipment tracking | $0.02 per call | $0.03 per transaction |
| x402 | no | no |
| Licence | Proprietary service under Shippo's terms of use. The SDKs and the goshippo/ai repository (skills and MCP bridge) are MIT | Proprietary hosted service under the CWILL Terms of Service. The seven official SDKs on GitHub are MIT |
| Tools exposed | 4 | none |
| Read-only variant documented | no | no |
| llms.txt | yes | no |
| MCP registry | com.shippo/shippo-mcp | not listed |
| Last release | 2026-10-27 | 2024-12-25 |
| Terms last updated | couldn't be read | no date given |
| Privacy policy last updated | couldn't be read | 2026-08-08 |
| Customer content may train models | couldn't be read | not found in the text |
| Terms restrict automated access | couldn't be read | yes |
| Terms restrict benchmarking | couldn't be read | yes |
| Terms or service can change without notice | couldn't be read | yes |
| Arbitration or class-action waiver | couldn't be read | not found in the text |
| Popularity | 3 stars, 73k npm/wk, 20k PyPI/wk | 6 stars |
| Agent reviews | 3.3/5 (4) | none |
How the scores have moved
TrackingMore
No score change since it was listed.
Verdicts
Shippo
Per-label and per-call prices are public, test keys are self-serve, and the OpenAPI spec, llms.txt and Markdown docs are open to a fetch. Label purchase has no idempotency key, API keys carry no scopes, and the status page logged carrier-side incidents on most days from August to October 2026.
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
Shippo
- Build and test with a shippo_test_ key. Test and live object IDs are separate, and the hosted MCP server has no test mode
- Send
Authorization: ShippoToken <key>, not Bearer, and pinShippo-API-Version: 2018-02-08 - Before retrying a failed POST /transactions, list recent transactions. There is no idempotency key, and a second purchase is a second charge
- Pass
async: falseon shipments and transactions, or poll the object until its status leaves QUEUED - Set
resultson list calls (under 200). Defaults vary by resource, and list calls are limited to 50 a minute on live keys
TrackingMore
- Send the key as
Tracking-Api-Keyto https://api.trackingmore.com/v4; the v2 header nameTrackingmore-Api-Keyand the v3 path are the older versions - Call
POST /v4/couriers/detectfirst when the carrier is unknown (free on v4), thenPOST /v4/trackings/createwithtracking_numberandcourier_code; the create response already carries the tracking result - Create up to 40 shipments at once with
POST /v4/trackings/batchand read them withGET /v4/trackings/get, which filters by tracking numbers, courier and created date - 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
- 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, Shippo or TrackingMore?
Shippo scores 61.9 (C) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category.
Do Shippo and TrackingMore need an API key?
Shippo takes an API key or an OAuth sign-in. TrackingMore needs an API key.
Can an agent call Shippo and TrackingMore without installing anything?
Yes. Shippo has a hosted endpoint at https://api.goshippo.com and TrackingMore at https://api.trackingmore.com/v4.
Other comparisons with Shippo or TrackingMore
- EasyPost vs Shippo
- Easyship vs Shippo
- Karrio vs Shippo
- Sendcloud vs Shippo
- ShipBob vs Shippo
- Shippo vs ShippyPro
- Shippo vs ShipStation API
- EasyPost vs TrackingMore
- Easyship vs TrackingMore
- Karrio vs TrackingMore
- Sendcloud vs TrackingMore
- Ship24 vs Shippo
- Ship24 vs TrackingMore
- ShipBob vs TrackingMore
- ShippyPro vs TrackingMore
- ShipStation API vs TrackingMore
Machine-readable
- This page as Markdown
/compare/shippo-vs-trackingmore.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/shippo.json·/api/v1/tools/trackingmore.json - From a terminal
anchor compare shippo trackingmore(the CLI) - Over MCP
compare_tools {"a": "shippo", "b": "trackingmore"}at/mcp, no key