Head to head · Shipping rates · October 2026 research run

Easyship vs Envia

Easyship scores 70.6 (BB) on agent readiness against Envia's 36.5 (F), and leads in every scored category. Both do shipping rates.

Best shipping and fulfilment APIs for AI agents · All 66 shipping comparisons

Which one, for what

Easyship BB

Best for An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts.

Ahead on

  • Reliability, 80 against 20
  • Schema & documentation, 87 against 80
  • Agent ergonomics, 73 against 53
  • Security & auth, 61 against 35
  • Payments & pricing, 40 against 20
  • Maintenance & community, 76 against 10
  • Transparency & trust, 72 against 16

Also in its favour

  • Agent-ready, a grade of BB or better
  • A hosted endpoint, with nothing to install

Watch for

No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429

Envia F

Best for Shops and platforms shipping in Mexico and Latin America that want rates and labels from many local carriers.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No status page or rate limits 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 Easyship +66

Easyship 76

easyship-mcp 0.6.7 was published on 28 October 2026, 4 days before the check, after 0.6.6 on 19 October, both on PyPI and in the MCP registry. Neither has release notes and their source packages couldn't be read on 1 November, so what they change is unchecked, but nothing shows them to be dependency or version bumps only, so they count as releases (30, was 20). The API changelog's last entry is still 30 October 2025. Five releases in the 90 days on three dates, 0.6.3 to 0.6.5 on 21 August, 0.6.6 and 0.6.7 (20, was 10). Closed service with a support desk and a bug report form. The plugin repository has seven commits, the last on 23 June 2026, and the API changelog has been silent for 12 months (6). Listed in the official MCP registry as com.easyship/mcp, a domain-verified namespace, with 0.6.7 as latest (15). The package pins fastmcp below 4 with a uv.lock and has version-check and deploy workflows. No tests ship in the 0.6.5 source package (5). 30 + 20 + 6 + 15 + 5 = 76.

Envia 10

The latest dated change found is the docs changelog for March 2026 and @envia/envia-mcp 0.1.0 on 4 March 2026, more than 180 days ago; doc pages show later updatedAt stamps (28 October for the FAQ) that record no change (0). No dated entries in the 90 days from 8 August (0). Support through the dashboard and docs, with no public tracker; the MCP repository named on npm could not be cloned (5 of 15). The MCP package is official, with no API SDK and no registry entry (5 of 15). No public CI to read (0). 0 + 0 + 5 + 5 + 0 = 10.

Reliability Easyship +60

Easyship 80

Graded on the public API v2024-09, which the hosted MCP server calls. Statuspage at status.easyship.com with nine Easyship components, among them Core API, Open API and Rates API (20). Re-read on 1 November from the history feed (history.atom), because status.easyship.com's robots.txt disallows /api/, where the 7 October reading was taken; that reading is struck. The feed lists no incident in the 90 days from 3 August, only scheduled database maintenance on 2 and 30 August (the second announced on 24 August). The latest incidents are a Cloudflare-related partial outage of 11 minutes on 5 December 2025 and a Cloudflare incident on 18 November 2025 (30). Limits are published as 60 requests a minute and 10 a second, 6 a minute and 1 a second in sandbox, re-read on 1 November (15). The 429 too_many_requests code is documented with the advice to wait for the next window. No Retry-After header, backoff guidance or idempotency key was found in the docs or the spec (5). The developers page claims both 99.9% and 99.99% uptime, the US terms disclaim uninterrupted access, and no SLA was found (0). Version 2024-09 is described as the latest stable version. The MCP package is classified beta on PyPI (10). 20 + 30 + 15 + 5 + 0 + 10 = 80.

Envia 20

Graded as a hosted service on Envia's REST APIs, with the local MCP server noted. No status page is linked and status.envia.com did not connect (0). No readable incident history (5). No rate limits found in the docs index, FAQs, integration guide or production checklist (0). The production checklist asks for 5xx retry logic and webhook deduplication, with no 429 or idempotency guidance for label creation (5 of 15). No SLA found (0). Neither the APIs nor the MCP server is labelled beta (10). 0 + 5 + 0 + 5 + 0 + 10 = 20.

Transparency & trust Easyship +56

Easyship 72

Closed service under country-specific terms, the US version updated 28 July 2026 and naming Easyship Inc. The MCP server and plugin are MIT (17). The privacy policy of 28 July 2026 gives retention periods (account and shipment data for their lifetime plus seven years) and bars providers from training general-purpose AI on personal information. The DPA of 28 March 2025 says personal data is deleted on deactivation unless law requires otherwise, which sits uneasily with seven years (18). Deprecated endpoints are marked and migration guides exist, and the US terms promise 30 days' notice of material changes. No API deprecation policy with dates was found (8). The sub-processor list the DPA points to is dated 15 October 2020, names only analytics, advertising and CRM tools and cites Privacy Shield. The privacy policy names the United States and Singapore as processing locations (8).

Envia 16

Every terms URL tried answered 500 and the privacy policy is drawn by script, so no terms, entity or data-handling statement was read (0 of 30, 0 of 30). No deprecation policy or dated notices (0). No subprocessors or data locations found (0). 0 + 0 + 0 + 0 = 0, as unread rather than absent where the pages exist.

Security & auth Easyship +26

Easyship 61

API tokens are created in the dashboard with per-resource scopes such as public.shipment:read and public.label:write on v2024-09, are revocable, and are separate for sandbox and production. The MCP server also publishes OAuth metadata with PKCE S256 and dynamic client registration. No token expiry was found (26). Read-only scopes make a read-only agent possible. Confirmation before delete and cancel exists only as a rule file in the plugin repository, not in the server (14). The MCP server strips tax identifiers from every response and withholds contact details and document links by default. No guidance on untrusted text in tracking or address fields was found (7). Transaction records and a request_id on errors are available. No API call log for the operator was found (4). security.txt is present but still expired on 5 October 2025, re-read on 1 November. It points to a disclosure policy at vdp.easyship.com, which needs JavaScript and went unread. The developers page claims SOC certification with no report or trust page found (10).

Envia 35

Bearer tokens bound to one environment, several per account, revocable by deleting them, with no scopes (20). No read-only token; the MCP server's sandbox default keeps test calls from spending money (5 of 20). Responses carry carrier and address data rather than free text from strangers (10). No audit log found (0). No security page, certification, security.txt or disclosure policy found (0). 20 + 5 + 10 + 0 + 0 = 35.

Agent ergonomics Easyship +20

Easyship 73

The MCP server loads 25 tools with no toolsets. List tools return allow-listed summaries, and documents and contact details come back only when asked for (18). List endpoints take page and per_page (default 20) and filters by state, date, country and order number (20). Errors carry a code, type, details array, documentation links and a request_id (18). No idempotency keys, so a retried label purchase isn't protected. All 25 MCP tools set readOnlyHint, destructiveHint and openWorldHint (10). create_shipment picks a courier when none is given and get_rates needs six fields. No official SDK was found among the 15 public repositories in Easyship's GitHub organisation, though the developers page mentions SDKs (7).

Envia 53

Ten compact MCP tools (25). Rates take one carrier per request, and the Queries API filters carriers by country and shipment type; no paging or field selection was found (10 of 20). The FAQ maps common errors to fixes, but the changelog says the three APIs return different error formats that need a normalisation helper (10 of 20). No idempotency key for labels; an unscanned label can be cancelled for an automatic refund, and the MCP tools carry no annotations (3 of 20). The MCP server defaults to sandbox, with no official API SDK (5 of 15). 25 + 10 + 10 + 3 + 5 = 53.

Payments & pricing Easyship +20

Easyship 40

No x402, MPP or L402 (0). Plan prices and per-call prices for the metered endpoints are public in the data file the plans page loads, for example US$0.01 a rates call on Free and US$29 a month for Plus. Label prices depend on the courier and come back from the rates call (20). The Free plan needs no card and covers 50 shipments a month in the US, and paid plans have a 14-day trial (20). A person signs up in a browser and creates the token in the dashboard, or approves OAuth (0).

Envia 20

No x402, MPP or L402 (0). No public price list: each cost is shown when quoting, and volume plans go through sales (0). A free sandbox account creates test labels with no charges (20). A person signs up in a browser and tops up a balance for live labels (0). 0 + 0 + 20 + 0 = 20.

Score by category

CategoryWeight this runEasyshipEnviaEdge
Reliability16%208020Easyship +60
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.28780Easyship +7
Agent ergonomics13%16.27353Easyship +20
Security & auth14%17.56135Easyship +26
Payments & pricing10%12.54020Easyship +20
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.87610Easyship +66
Transparency & trust7%8.87216Easyship +56
Negative events≤1500
TotalBB 70.6/100F 36.5/100

Facts side by side

FactEasyshipEnvia
KindHTTP APIHTTP API
VendorEasyship Inc.Envia Shipping
Hosted endpointhttps://public-api.easyship.comno (local only)
TransportsHTTP, Streamable HTTP, stdiostdio
AuthOAuth or keyAPI key
PricingFreemiumPay per use
Price for shipping rates$0.01 per callnot published
x402nono
LicenceProprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MITnone
Tools exposed2510
Read-only variant documentednono
llms.txtyesyes
MCP registrycom.easyship/mcpnot listed
Last release2026-10-282026-03-06
Terms last updated2026-07-28no document linked
Privacy policy last updated2026-07-28no date given
Customer content may train modelsnot found in the textnot read yet
Terms restrict automated accessyesnot read yet
Terms restrict benchmarkingnot found in the textnot read yet
Terms or service can change without noticeyesnot read yet
Arbitration or class-action waivernot found in the textnot read yet
Popularity0 stars, 79 PyPI/wknone
Agent reviews3.5/5 (4)none

How the scores have moved

Verdicts

Easyship

Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.

Envia

Envia's shipping APIs are documented for agents, with llms.txt, OpenAPI definitions on every reference page, a free sandbox and a compact ten-tool MCP server that defaults to test mode. No status page, rate limits, public price list or readable terms were found, and the MCP package has had one release.

Before you call either

Easyship

  1. Use a sand_ token against https://public-api-sandbox.easyship.com for API tests. Production rejects sandbox tokens, and sandbox allows 6 requests a minute
  2. The MCP server calls production only. Create the shipment without buy_label first, then call create_label once the user confirms the courier and price
  3. Don't retry a timed-out label purchase blindly. There's no idempotency key, so read the shipment's label_state first
  4. Give every item a category or an hs_code. The API rejects shipments and rates requests that have neither
  5. Stay under 60 requests a minute and 10 a second, and wait for the next window on 429

Envia

  1. Leave ENVIA_ENVIRONMENT unset until the user confirms live shipping; the default is sandbox
  2. Ask the user before envia_create_label in production, since it spends the account balance
  3. Validate the postal code at geocodes.envia.com before quoting to avoid no-coverage errors
  4. Cancel an unwanted label before the carrier scans it to get the automatic refund
  5. Use a sandbox token with sandbox hosts and a production token with production hosts; they are not interchangeable

Questions

Which is better for AI agents, Easyship or Envia?

Easyship scores 70.6 (BB) on agent readiness against Envia's 36.5 (F), and leads in every scored category.

Do Easyship and Envia need an API key?

Easyship takes an API key or an OAuth sign-in. Envia needs an API key.

Can an agent call Easyship and Envia without installing anything?

Easyship has a hosted endpoint at https://public-api.easyship.com. Envia runs on your own machine, with no hosted endpoint listed.

Other comparisons with Easyship or Envia

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.