{
  "data": {
    "a": {
      "slug": "envia",
      "name": "Envia",
      "vendor": "Envia Shipping",
      "vendorUrl": "https://envia.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Envia is a multi-carrier shipping platform, strongest in Latin America, with REST APIs for rates, labels, tracking, pickups, commercial invoices and address data. An official stdio MCP server exposes ten of those operations to agents.",
      "url": "https://www.anchorterminal.com/tools/envia",
      "markdownUrl": "https://www.anchorterminal.com/tools/envia.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/envia.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/envia.json",
      "dns": "envia.grade.anchorterminal.com",
      "transports": [
        "stdio"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@envia/envia-mcp"
        }
      ],
      "auth": "api-key",
      "authNotes": "Bearer API tokens created in the dashboard under `Desarrolladores \u003e Acceso de API`, one environment each: sandbox tokens work only against api-test.envia.com and production tokens only against api.envia.com. Several tokens can exist and each can be deleted to revoke it. No scopes were found. The MCP server reads the token from `ENVIA_API_KEY` and defaults to sandbox.",
      "pricing": "usage",
      "pricingNotes": "Prepaid balance: labels, notifications, insurance and add-ons draw on money added to the Envia account, and each price is shown when quoting. There is no public price list; volume plans go through sales. A free sandbox account returns simulated rates and creates test labels with no charges.",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the MCP package or the pricing page (checked 2026-11-06). Charges come from a prepaid balance.",
        "endpoints": []
      },
      "toolCount": 10,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.envia.com/docs/getting-started",
      "llmsTxt": "https://docs.envia.com/llms.txt",
      "openapi": "https://docs.envia.com/reference/shipping-rates.md",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "sandbox",
        "prepaid",
        "webhooks",
        "latam",
        "typescript"
      ],
      "lastRelease": "2026-03-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 36.5,
        "grade": "F",
        "agentReady": false,
        "rank": 1362,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 20,
          "reliability": 20,
          "schema": 80,
          "security": 35,
          "transparency": 16
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "Shops and platforms shipping in Mexico and Latin America that want rates and labels from many local carriers.",
        "strengths": [
          "Free sandbox with simulated rates and test labels, kept apart from production by separate tokens",
          "OpenAPI definitions embedded in every reference page, plus llms.txt and Markdown docs",
          "Ten MCP tools that default to the sandbox environment",
          "Labels cancelled before the first carrier scan are refunded to the balance automatically",
          "Postal code and address-structure lookups work without a token"
        ],
        "weaknesses": [
          "No status page or rate limits found",
          "No public price list; costs appear only when quoting",
          "Terms and privacy text could not be read, and no legal entity was found",
          "MCP tools carry no readOnly or destructive annotations, and the package has one release, 0.1.0",
          "The docs changelog stops at March 2026"
        ],
        "agentNotes": [
          "Leave `ENVIA_ENVIRONMENT` unset until the user confirms live shipping; the default is sandbox",
          "Ask the user before `envia_create_label` in production, since it spends the account balance",
          "Validate the postal code at geocodes.envia.com before quoting to avoid no-coverage errors",
          "Cancel an unwanted label before the carrier scans it to get the automatic refund",
          "Use a sandbox token with sandbox hosts and a production token with production hosts; they are not interchangeable"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 36.5
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 20,
          "reliability": 20,
          "schema": 80,
          "security": 35,
          "transparency": 0
        },
        "provenanceScore": 32,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y @envia/envia-mcp@latest",
        "config": {
          "mcpServers": {
            "envia": {
              "args": [
                "-y",
                "@envia/envia-mcp@latest"
              ],
              "command": "npx",
              "env": {
                "ENVIA_API_KEY": "your_api_key_here"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/envia"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "",
        "domain": "envia.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "https://envia.com/en-US/legal/privacy-policy?n=privacy_policy",
        "statusPage": "",
        "changelog": "https://docs.envia.com/docs/changelog",
        "securityTxt": "unknown",
        "checked": "2026-11-06",
        "notes": [
          "envia.com/robots.txt allows all but language-change paths; docs.envia.com disallows edit, login and api-next paths and links llms.txt.",
          "The privacy policy page renders only a heading without script, and every terms URL tried answered 500, so neither text was read.",
          "status.envia.com did not connect and no status page is linked. security.txt was not checked."
        ],
        "score": 32
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/envia.json",
      "live": {
        "slug": "envia",
        "versions": [
          {
            "registry": "npm",
            "name": "@envia/envia-mcp",
            "version": "0.1.0",
            "seenAt": "2026-11-06T23:24:27.893485506Z"
          }
        ],
        "npmWeekly": 81,
        "securityTxt": {
          "url": "https://envia.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:01:23.154161694Z"
        },
        "llmsTxt": {
          "url": "https://docs.envia.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:25.501362093Z"
        },
        "pages": [
          {
            "url": "https://docs.envia.com/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:16.542743112Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b3c01b7da2e7"
          },
          {
            "url": "https://envia.com/en-US/legal/privacy-policy?n=privacy_policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:09:20.480053366Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "52e5d34d2a62"
          }
        ],
        "updatedAt": "2026-11-07T16:01:23.154161694Z"
      }
    },
    "answer": "ShippyPro and Envia score within a point of each other on agent readiness, 37 (F) and 36.5 (F). Envia leads on schema \u0026 documentation, agent ergonomics and payments \u0026 pricing.",
    "b": {
      "slug": "shippypro",
      "name": "ShippyPro",
      "vendor": "Italian Valley S.r.l.",
      "vendorUrl": "https://www.shippypro.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Multi-carrier shipping platform from ShippyPro (Italian Valley S.r.l., Florence). Its REST API quotes rates on a customer's own carrier contracts, creates labels and returns, validates addresses, books pickups and tracks parcels. API access is sold with the Enterprise plan.",
      "url": "https://www.anchorterminal.com/tools/shippypro",
      "markdownUrl": "https://www.anchorterminal.com/tools/shippypro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shippypro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shippypro.json",
      "dns": "shippypro.grade.anchorterminal.com",
      "license": "Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.shippypro.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Sales approval, then a key. The pricing page lists full access to the Multicarrier APIs only on the Enterprise plan, through sales, and the help centre says to check that the subscription includes API access. Keys are created in the account panel under API, more than one per account, as Full Access, Maps (pickup-point map only) or PII Excluded (personal data hidden). The authentication scheme is set out in the API reference, which loads its OpenAPI files by script and wasn't read on 4 November. No expiry or rotation was found in the reviewed documentation.",
      "pricing": "paid",
      "pricingNotes": "Enterprise plan, custom price through sales, billed annually. It is the only plan the pricing page lists with full access to the Multicarrier APIs. The self-serve plans (49 to 259 EUR a month at regular monthly prices, up to 4,000 shipments) are marked UI only. A 14-day, 30-order trial needs no card per the terms, and whether a trial account can call the API was not established. No sandbox. The Generic carrier creates test labels and rates. A higher rate limit costs extra (https://www.shippypro.com/en/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI files, the API page or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://api.shippypro.com/docs",
      "openapi": "https://api.shippypro.com/docs/v1.json",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "paid",
        "sales-led",
        "enterprise",
        "api-key",
        "openapi",
        "webhooks",
        "soap",
        "status-page",
        "sla",
        "europe"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 37,
        "grade": "F",
        "agentReady": false,
        "rank": 1359,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 19,
          "maintenance": 7,
          "payments": 5,
          "reliability": 80,
          "schema": 18,
          "security": 48,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found.",
        "bestFor": "A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.",
        "strengths": [
          "Statuspage with a ShippyPro API \u0026 Webhooks component and one per carrier, with the whole 90 days readable",
          "Published SLA of 99.5 per cent monthly availability with service credits of 0.5 to 5 per cent",
          "API keys come in three types, Full Access, Maps and PII Excluded, and an account can hold several",
          "The account panel keeps API request and response logs, an API error history and webhook logs",
          "The Generic carrier creates test labels and rates without a real carrier or tracking number",
          "The privacy policy lists sub-processors per product area and says customer data is never sold"
        ],
        "weaknesses": [
          "The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales",
          "The reference loads its OpenAPI files by script, and no downloadable spec, Markdown docs or SDK was found",
          "No API changelog, release notes or deprecation policy was found, and the terms allow changes without notice",
          "No idempotency key is documented for label creation outside those files, and the help centre says a timed-out `Ship` call can still create a label",
          "Carrier label incidents marked critical appear on the status page on most days from August to November 2026",
          "Label failures come back with `Status` 2 in the response body, per the help centre"
        ],
        "agentNotes": [
          "POST every call. The help centre says the API accepts POST only and that parameter names are case-sensitive",
          "Check `Status` and the error message in every `Ship` response. `Status` 2 means no label was created",
          "Before retrying a `Ship` call that failed or timed out, look the order up by `TransactionID`. A timed-out call can still create a label, and each label counts against the plan",
          "Test with the Generic carrier. `Ship` and `Edit` calls on a real carrier create real labels",
          "Stay under 20 calls per 10 seconds, and use webhooks for tracking rather than bulk `GetTracking` calls"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 37
          }
        ],
        "editorialScores": {
          "ergonomics": 19,
          "maintenance": 7,
          "payments": 5,
          "reliability": 80,
          "schema": 18,
          "security": 48,
          "transparency": 48
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST https://api.shippypro.com/v1/Ping \\\n  -H \"Authorization: Bearer \u003cAPI_KEY\u003e\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"Method\": \"Ping\", \"Params\": {}}'"
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/shippypro"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Italian Valley S.r.l.",
        "domain": "shippypro.com",
        "domainRegistered": "2016-10-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.shippypro.com/en/legal/terms",
        "privacy": "https://www.shippypro.com/en/legal/privacy",
        "statusPage": "https://status.shippypro.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-11-04",
        "notes": [
          "The Terms \u0026 Conditions name Italian Valley Srl, registered number 06587610483, Piazza Francesca Morvillo 15, 50144 Firenze, Italy, as owner of the ShippyPro software. They cover every ShippyPro product and service, the API included, and carry no date or version.",
          "The privacy policy names ShippyPro by Italian Valley S.r.l. as data controller and covers shipment sender and recipient data handled by the product, not only the website.",
          "The API answers at api.shippypro.com and the reference page is served from the same host, loading its OpenAPI files by script.",
          "www.shippypro.com/robots.txt disallows every path outside the language folders, the blog, llms.txt and a short list, so /.well-known/security.txt was not requested. llms.txt is allowed since 21 October 2026 and was read on 4 November.",
          "No API changelog or release notes page was found on the API page, the reference or the help centre's API section.",
          "The SLA at https://www.shippypro.com/en/legal/sla is stated to be part of the agreement with the customer."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shippypro.json",
      "live": {
        "slug": "shippypro",
        "probe": {
          "target": "https://api.shippypro.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:54.151093183Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 96,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 48,
          "p95ms24h": 149,
          "samples24h": 239,
          "samples30d": 7289,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shippypro.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-11-07T18:22:00.894893396Z"
        },
        "securityTxt": {
          "url": "https://shippypro.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:02:01.764416864Z"
        },
        "domain": {
          "domain": "shippypro.com",
          "registered": "2016-10-24",
          "source": "https://rdap.verisign.com/com/v1/domain/shippypro.com",
          "checkedAt": "2026-11-01T14:11:55.446503256Z"
        },
        "pages": [
          {
            "url": "https://www.shippypro.com/en/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:29.82163517Z",
            "changedAt": "2026-11-04T08:45:18.671052265Z",
            "fingerprint": "f0fd3c4f9b1a"
          },
          {
            "url": "https://www.shippypro.com/en/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:25.338600237Z",
            "changedAt": "2026-11-04T08:45:13.812839268Z",
            "fingerprint": "bc118e7e931c"
          },
          {
            "url": "https://www.shippypro.com/en/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:27.784315164Z",
            "changedAt": "2026-11-04T08:45:16.707406212Z",
            "fingerprint": "4d9ac705d49e"
          }
        ],
        "updatedAt": "2026-11-07T18:22:00.894893396Z"
      }
    },
    "edges": [
      {
        "by": 62,
        "category": "schema",
        "leads": "envia",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "Each reference page's Markdown copy embeds an OpenAPI definition with sandbox and production servers (25). llms.txt and a Markdown copy of each page (10). Endpoint descriptions say what each is for and which call comes next in the workflow, and the rate tool warns that sandbox rates are simulated (15 of 20). The quote definition has 17 enums and required lists (11 of 15). Workflow examples and an error-formats guide named in the changelog, though its Markdown address answered 404 and the quote definition documents only 200 (9 of 15). A dated docs changelog by month, the latest March 2026 (10 of 15). 25 + 10 + 15 + 11 + 9 + 10 = 80.",
          "b": "The API reference at api.shippypro.com/docs loads its two OpenAPI files (/docs/v1.json and /docs/v2.json) by script, and neither it, the API product page, llms.txt nor the help centre links them as a visible download. This run counts a spec only where a docs page links it as a download, so the contract line is 0 (from 25) and the 9 October readings taken from the files are withdrawn. www.shippypro.com/llms.txt, which robots.txt now allows, lists marketing pages and one link to the reference, and no Markdown docs were found, so it doesn't meet the line (0). The help centre's API articles say what the API is for, that Ship and Edit calls create real labels while the Generic carrier is for tests, that only successful Ship calls count against the plan, and how field validation can block a call (6 of 20, from 14). No typed parameter reference was found outside the script-loaded files (0, from 9). The API errors article explains `Status` 1 and 2 and names common error messages with their fixes, and the panel keeps an error history. No request examples were found outside the files (6 of 15, from 10). The reference page names v1 and v2, and no changelog was found (6 of 15). 0+0+6+0+6+6 = 18."
        },
        "scores": {
          "a": 80,
          "b": 18
        }
      },
      {
        "by": 60,
        "category": "reliability",
        "leads": "shippypro",
        "name": "Reliability",
        "reasons": {
          "a": "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.",
          "b": "Read with the hosted lines and scored on the v1 REST API, where rates, labels and tracking live. Statuspage at status.shippypro.com, read under its own robots.txt on 4 November, with components for ShippyPro Platform (UI), ShippyPro API \u0026 Webhooks and each carrier (20). Its history pages and feed cover the whole 90 days from 6 August, with 122 entries outside scheduled maintenance. Nearly all are one carrier's label creation, marked critical. The others are Orders page problems on 10 August, unsent SMS one-time codes and notifications (29 August to 3 September and 19 September to 5 October), a platform login problem of 3 hours 6 minutes on 18 September, pickup point search for some carriers on 22 October (47 minutes), PDF label retrieval on 22 October and website timeouts for some users on 27 October. None names the API, and each touches one carrier, one function or the web app, so all are partial and read as minor, as on Shippo, ShipStation, Sendcloud and EasyPost (20, from 10, where the 9 October check read the login problem as a major). 20 API calls every 10 seconds, with a 429 above it and a higher limit for a fee, per the help centre re-read on 4 November (15). The help centre documents the 429 with no backoff or Retry-After guidance and suggests spreading calls over several IP addresses. Its API errors article says a Ship call that times out can still create a label, recommends the asynchronous Ship option and names the error for a repeated Transaction ID, which is safe-retry guidance for the core write. The 9 October reading of v2's Retry-After and Idempotency-Key came from files this run doesn't read (see Schema), so the earlier partial is kept on the help centre alone (5). The SLA commits to 99.5 per cent a month with service credits, per the 9 October check, not re-read on 4 November (10). GA (10). 20+20+15+5+10+10 = 80."
        },
        "scores": {
          "a": 20,
          "b": 80
        }
      },
      {
        "by": 45,
        "category": "transparency",
        "leads": "shippypro",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "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.",
          "b": "Closed service. The Terms \u0026 Conditions, re-read on 4 November, are public and name the contracting entity, but carry no date and reserve the right to change the agreement without notice. No automated-access ban was found (12 of 30). The privacy policy covers shipment sender and recipient data per product area, anonymises Amazon customer data 30 days after delivery, keeps staff impersonation logs for 19 months and says personal data is never sold. General retention is stated only as long as necessary, and no DPA was found, per the 9 October check (18 of 30). No deprecation policy. The terms allow any service to be discontinued without notice. The status page carries dated carrier notices, among them the FedEx SOAP API deprecation notice (posted 30 March, closed 22 October 2026) and Deutsche Post (17 August), and the SLA promises seven days' notice of planned downtime (6 of 20). Sub-processors are named per product area, and the full list with countries is a PDF whose file name is dated 15 September 2022, which we did not read (12 of 20). 12+18+6+12 = 48."
        },
        "scores": {
          "a": 16,
          "b": 61
        }
      },
      {
        "by": 34,
        "category": "ergonomics",
        "leads": "envia",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "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.",
          "b": "Scored on the REST API from the help centre, since the OpenAPI files aren't read. No response sizing or field selection (0 of 25, from 12) and no pagination or filtering (0 of 20, from 10) is documented outside the files. Label failures return `Status` 2 with an error message, and the errors article gives causes and fixes for common errors, with an error history in the panel (12 of 20, kept). No idempotency key is documented outside the files, but a repeated Transaction ID is refused with a pointer to the Edit call, and Ship can run asynchronously so a timeout doesn't leave its result unknown (7 of 20, kept). No official SDK was found, though the API page's FAQ mentions SDKs, and required parameters can't be read outside the files (0 of 15, from 5). 0+0+12+7+0 = 19."
        },
        "scores": {
          "a": 53,
          "b": 19
        }
      },
      {
        "by": 15,
        "category": "payments",
        "leads": "envia",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "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.",
          "b": "No x402, MPP or L402 (0). The pricing page, re-read on 4 November, lists full access to the Multicarrier APIs only on the Enterprise plan at a custom price through sales, and marks Professional (159 EUR a month) as Multicarrier API Access not included (0). The terms describe a 14-day, 30-order trial with no card. The help centre now says to check that the subscription includes API access, so we could not establish that a trial account can call the API, and give part credit (5 of 20). A person signs up in a browser and sales activates the API (0). 0+0+5+0 = 5."
        },
        "scores": {
          "a": 20,
          "b": 5
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "shippypro",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "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.",
          "b": "API keys are created in the panel, several per account, in three types (Full Access, Maps, PII Excluded), per the help centre re-read on 4 November. No expiry or rotation was found, and the 9 October reading of a 401 for a revoked key came from the unread v2 file, so the earlier partial is kept (22 of 30). The Maps and PII Excluded types narrow a key, but there is no read-only key and no confirmation step for label creation or voiding. The Generic carrier allows tests without a real shipment (8 of 20). Tracking messages and marketplace order text come from third parties, and no guidance on untrusted content was found. The errors article says requests are screened for script-like strings (3 of 15). The panel has API logs with requests and responses, an API error history and webhook logs (10 of 15). llms.txt and the site footer state SOC 2 Type II and ISO 27001, with no certificate, report, trust page or disclosure route found, and robots.txt still disallows /.well-known/security.txt. This run scores a certification claim with no report or disclosure route 5 (from 8). 22+8+3+10+5 = 48."
        },
        "scores": {
          "a": 35,
          "b": 48
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Envia Shipping",
        "b": "Italian Valley S.r.l.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.shippypro.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary",
        "name": "Licence"
      },
      {
        "a": "10",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-03-06",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "ShippyPro and Envia score within a point of each other on agent readiness, 37 (F) and 36.5 (F). Envia leads on schema \u0026 documentation, agent ergonomics and payments \u0026 pricing.",
        "question": "Which is better for AI agents, Envia or ShippyPro?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Envia and ShippyPro need an API key?"
      },
      {
        "answer": "Envia runs on your own machine, with no hosted endpoint listed. ShippyPro has a hosted endpoint at https://api.shippypro.com.",
        "question": "Can an agent call Envia and ShippyPro without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 80 against 18",
          "Agent ergonomics, 53 against 19",
          "Payments \u0026 pricing, 20 against 5"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Shops and platforms shipping in Mexico and Latin America that want rates and labels from many local carriers.",
        "slug": "envia",
        "watchFor": "No status page or rate limits found"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 20",
          "Security \u0026 auth, 48 against 35",
          "Transparency \u0026 trust, 61 against 16"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.",
        "slug": "shippypro",
        "watchFor": "The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales"
      }
    ],
    "history": {
      "envia": null,
      "shippypro": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -11.9,
          "from": 48.9,
          "fromGrade": "D",
          "to": 37,
          "toGrade": "F"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 49,
          "fromGrade": "D",
          "to": 48.9,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 48.7,
          "fromGrade": "D",
          "to": 49,
          "toGrade": "D"
        }
      ]
    },
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-envia.json",
        "title": "atoship vs Envia",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shippypro.json",
        "title": "atoship vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-envia.json",
        "title": "EasyPost vs Envia",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shippypro.json",
        "title": "EasyPost vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-envia.json",
        "title": "Easyship vs Envia",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shippypro.json",
        "title": "Easyship vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-karrio.json",
        "title": "Envia vs Karrio",
        "url": "https://www.anchorterminal.com/compare/envia-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-sendcloud.json",
        "title": "Envia vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/envia-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-shipbob.json",
        "title": "Envia vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/envia-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-shippo.json",
        "title": "Envia vs Shippo",
        "url": "https://www.anchorterminal.com/compare/envia-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-shipstation.json",
        "title": "Envia vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/envia-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-shippypro.json",
        "title": "Karrio vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shippypro.json",
        "title": "Sendcloud vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipbob-vs-shippypro.json",
        "title": "ShipBob vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/shipbob-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippo-vs-shippypro.json",
        "title": "Shippo vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/shippo-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippypro-vs-shipstation.json",
        "title": "ShippyPro vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/shippypro-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-ship24.json",
        "title": "Envia vs Ship24",
        "url": "https://www.anchorterminal.com/compare/envia-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-trackingmore.json",
        "title": "Envia vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/envia-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-shippypro.json",
        "title": "Ship24 vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.json",
        "title": "ShippyPro vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 60,
        "edge": "shippypro",
        "envia": 20,
        "key": "reliability",
        "name": "Reliability",
        "shippypro": 80,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 62,
        "edge": "envia",
        "envia": 80,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "shippypro": 18,
        "weight": 13
      },
      {
        "by": 34,
        "edge": "envia",
        "envia": 53,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "shippypro": 19,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "shippypro",
        "envia": 35,
        "key": "security",
        "name": "Security \u0026 auth",
        "shippypro": 48,
        "weight": 14
      },
      {
        "by": 15,
        "edge": "envia",
        "envia": 20,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "shippypro": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 3,
        "edge": "envia",
        "envia": 10,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "shippypro": 7,
        "weight": 7
      },
      {
        "by": 45,
        "edge": "shippypro",
        "envia": 16,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "shippypro": 61,
        "weight": 7
      }
    ],
    "summary": "ShippyPro and Envia score within a point of each other on agent readiness, 37 (F) and 36.5 (F). Envia leads on schema \u0026 documentation, agent ergonomics and payments \u0026 pricing. Both do shipping rates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "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.",
      "shippypro": "ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/envia-vs-shippypro",
    "json": "https://www.anchorterminal.com/compare/envia-vs-shippypro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/envia-vs-shippypro.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/envia-vs-shippypro.min.md"
  },
  "markdown": "ShippyPro and Envia score within a point of each other on agent readiness, 37 (F) and 36.5 (F). Envia leads on schema \u0026 documentation, agent ergonomics and payments \u0026 pricing. Both do shipping rates.\n\n- Envia: grade F, 36.5/100, rank #1362 of 1486. Markdown https://www.anchorterminal.com/tools/envia.md · JSON https://www.anchorterminal.com/api/v1/tools/envia.json\n- ShippyPro: grade F, 37/100, rank #1359 of 1486. Markdown https://www.anchorterminal.com/tools/shippypro.md · JSON https://www.anchorterminal.com/api/v1/tools/shippypro.json\n- Best shipping and fulfilment APIs for AI agents: https://www.anchorterminal.com/best/shipping/index.md\n- All 66 shipping comparisons: https://www.anchorterminal.com/compare/shipping/index.md\n\n## Which one, for what\n\n### Envia (F)\n\nGood for: Shops and platforms shipping in Mexico and Latin America that want rates and labels from many local carriers.\n\nAhead on:\n- Schema \u0026 documentation, 80 against 18\n- Agent ergonomics, 53 against 19\n- Payments \u0026 pricing, 20 against 5\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No status page or rate limits found\n\n### ShippyPro (F)\n\nGood for: A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.\n\nAhead on:\n- Reliability, 80 against 20\n- Security \u0026 auth, 48 against 35\n- Transparency \u0026 trust, 61 against 16\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Envia +62\n\n- Envia (80): Each reference page's Markdown copy embeds an OpenAPI definition with sandbox and production servers (25). llms.txt and a Markdown copy of each page (10). Endpoint descriptions say what each is for and which call comes next in the workflow, and the rate tool warns that sandbox rates are simulated (15 of 20). The quote definition has 17 enums and required lists (11 of 15). Workflow examples and an error-formats guide named in the changelog, though its Markdown address answered 404 and the quote definition documents only 200 (9 of 15). A dated docs changelog by month, the latest March 2026 (10 of 15). 25 + 10 + 15 + 11 + 9 + 10 = 80.\n- ShippyPro (18): The API reference at api.shippypro.com/docs loads its two OpenAPI files (/docs/v1.json and /docs/v2.json) by script, and neither it, the API product page, llms.txt nor the help centre links them as a visible download. This run counts a spec only where a docs page links it as a download, so the contract line is 0 (from 25) and the 9 October readings taken from the files are withdrawn. www.shippypro.com/llms.txt, which robots.txt now allows, lists marketing pages and one link to the reference, and no Markdown docs were found, so it doesn't meet the line (0). The help centre's API articles say what the API is for, that Ship and Edit calls create real labels while the Generic carrier is for tests, that only successful Ship calls count against the plan, and how field validation can block a call (6 of 20, from 14). No typed parameter reference was found outside the script-loaded files (0, from 9). The API errors article explains `Status` 1 and 2 and names common error messages with their fixes, and the panel keeps an error history. No request examples were found outside the files (6 of 15, from 10). The reference page names v1 and v2, and no changelog was found (6 of 15). 0+0+6+0+6+6 = 18.\n\n### Reliability: ShippyPro +60\n\n- 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.\n- ShippyPro (80): Read with the hosted lines and scored on the v1 REST API, where rates, labels and tracking live. Statuspage at status.shippypro.com, read under its own robots.txt on 4 November, with components for ShippyPro Platform (UI), ShippyPro API \u0026 Webhooks and each carrier (20). Its history pages and feed cover the whole 90 days from 6 August, with 122 entries outside scheduled maintenance. Nearly all are one carrier's label creation, marked critical. The others are Orders page problems on 10 August, unsent SMS one-time codes and notifications (29 August to 3 September and 19 September to 5 October), a platform login problem of 3 hours 6 minutes on 18 September, pickup point search for some carriers on 22 October (47 minutes), PDF label retrieval on 22 October and website timeouts for some users on 27 October. None names the API, and each touches one carrier, one function or the web app, so all are partial and read as minor, as on Shippo, ShipStation, Sendcloud and EasyPost (20, from 10, where the 9 October check read the login problem as a major). 20 API calls every 10 seconds, with a 429 above it and a higher limit for a fee, per the help centre re-read on 4 November (15). The help centre documents the 429 with no backoff or Retry-After guidance and suggests spreading calls over several IP addresses. Its API errors article says a Ship call that times out can still create a label, recommends the asynchronous Ship option and names the error for a repeated Transaction ID, which is safe-retry guidance for the core write. The 9 October reading of v2's Retry-After and Idempotency-Key came from files this run doesn't read (see Schema), so the earlier partial is kept on the help centre alone (5). The SLA commits to 99.5 per cent a month with service credits, per the 9 October check, not re-read on 4 November (10). GA (10). 20+20+15+5+10+10 = 80.\n\n### Transparency \u0026 trust: ShippyPro +45\n\n- 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.\n- ShippyPro (61): Closed service. The Terms \u0026 Conditions, re-read on 4 November, are public and name the contracting entity, but carry no date and reserve the right to change the agreement without notice. No automated-access ban was found (12 of 30). The privacy policy covers shipment sender and recipient data per product area, anonymises Amazon customer data 30 days after delivery, keeps staff impersonation logs for 19 months and says personal data is never sold. General retention is stated only as long as necessary, and no DPA was found, per the 9 October check (18 of 30). No deprecation policy. The terms allow any service to be discontinued without notice. The status page carries dated carrier notices, among them the FedEx SOAP API deprecation notice (posted 30 March, closed 22 October 2026) and Deutsche Post (17 August), and the SLA promises seven days' notice of planned downtime (6 of 20). Sub-processors are named per product area, and the full list with countries is a PDF whose file name is dated 15 September 2022, which we did not read (12 of 20). 12+18+6+12 = 48.\n\n### Agent ergonomics: Envia +34\n\n- 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.\n- ShippyPro (19): Scored on the REST API from the help centre, since the OpenAPI files aren't read. No response sizing or field selection (0 of 25, from 12) and no pagination or filtering (0 of 20, from 10) is documented outside the files. Label failures return `Status` 2 with an error message, and the errors article gives causes and fixes for common errors, with an error history in the panel (12 of 20, kept). No idempotency key is documented outside the files, but a repeated Transaction ID is refused with a pointer to the Edit call, and Ship can run asynchronously so a timeout doesn't leave its result unknown (7 of 20, kept). No official SDK was found, though the API page's FAQ mentions SDKs, and required parameters can't be read outside the files (0 of 15, from 5). 0+0+12+7+0 = 19.\n\n### Payments \u0026 pricing: Envia +15\n\n- 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.\n- ShippyPro (5): No x402, MPP or L402 (0). The pricing page, re-read on 4 November, lists full access to the Multicarrier APIs only on the Enterprise plan at a custom price through sales, and marks Professional (159 EUR a month) as Multicarrier API Access not included (0). The terms describe a 14-day, 30-order trial with no card. The help centre now says to check that the subscription includes API access, so we could not establish that a trial account can call the API, and give part credit (5 of 20). A person signs up in a browser and sales activates the API (0). 0+0+5+0 = 5.\n\n### Security \u0026 auth: ShippyPro +13\n\n- 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.\n- ShippyPro (48): API keys are created in the panel, several per account, in three types (Full Access, Maps, PII Excluded), per the help centre re-read on 4 November. No expiry or rotation was found, and the 9 October reading of a 401 for a revoked key came from the unread v2 file, so the earlier partial is kept (22 of 30). The Maps and PII Excluded types narrow a key, but there is no read-only key and no confirmation step for label creation or voiding. The Generic carrier allows tests without a real shipment (8 of 20). Tracking messages and marketplace order text come from third parties, and no guidance on untrusted content was found. The errors article says requests are screened for script-like strings (3 of 15). The panel has API logs with requests and responses, an API error history and webhook logs (10 of 15). llms.txt and the site footer state SOC 2 Type II and ISO 27001, with no certificate, report, trust page or disclosure route found, and robots.txt still disallows /.well-known/security.txt. This run scores a certification claim with no report or disclosure route 5 (from 8). 22+8+3+10+5 = 48.\n\n## Score by category\n\n| Category | Weight | Envia | ShippyPro | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 20 | 80 | ShippyPro +60 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 18 | Envia +62 |\n| Agent ergonomics | 13% (16.2 this run) | 53 | 19 | Envia +34 |\n| Security \u0026 auth | 14% (17.5 this run) | 35 | 48 | ShippyPro +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 5 | Envia +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 10 | 7 | Envia +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 16 | 61 | ShippyPro +45 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **36.5 · F** | **37 · F** | |\n\n## Facts side by side\n\n| Fact | Envia | ShippyPro |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Envia Shipping | Italian Valley S.r.l. |\n| Hosted endpoint | no (local only) | `https://api.shippypro.com` |\n| Transports | stdio | HTTP |\n| Auth | API key | API key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| Licence | none | Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary |\n| Tools exposed | 10 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-03-06 | none |\n| Terms last updated | no document linked | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not read yet | not found in the text |\n| Terms restrict automated access | not read yet | not found in the text |\n| Terms restrict benchmarking | not read yet | not found in the text |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n\n## How the scores have moved\n\n### Envia\n\nNo score change since it was listed.\n\n### ShippyPro\n\n- -11.9 on 4 November 2026 (D to F): correction\n- -0.1 on 28 October 2026: correction\n- +0.3 on 27 October 2026: checklist\n\n## Verdicts\n\n**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.\n\n**ShippyPro.** ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found.\n\n## Before you call either\n\n### Envia\n\n1. Leave `ENVIA_ENVIRONMENT` unset until the user confirms live shipping; the default is sandbox\n2. Ask the user before `envia_create_label` in production, since it spends the account balance\n3. Validate the postal code at geocodes.envia.com before quoting to avoid no-coverage errors\n4. Cancel an unwanted label before the carrier scans it to get the automatic refund\n5. Use a sandbox token with sandbox hosts and a production token with production hosts; they are not interchangeable\n\n### ShippyPro\n\n1. POST every call. The help centre says the API accepts POST only and that parameter names are case-sensitive\n2. Check `Status` and the error message in every `Ship` response. `Status` 2 means no label was created\n3. Before retrying a `Ship` call that failed or timed out, look the order up by `TransactionID`. A timed-out call can still create a label, and each label counts against the plan\n4. Test with the Generic carrier. `Ship` and `Edit` calls on a real carrier create real labels\n5. Stay under 20 calls per 10 seconds, and use webhooks for tracking rather than bulk `GetTracking` calls\n\n## Questions\n\n### Which is better for AI agents, Envia or ShippyPro?\n\nShippyPro and Envia score within a point of each other on agent readiness, 37 (F) and 36.5 (F). Envia leads on schema \u0026 documentation, agent ergonomics and payments \u0026 pricing.\n\n### Do Envia and ShippyPro need an API key?\n\nBoth need an API key.\n\n### Can an agent call Envia and ShippyPro without installing anything?\n\nEnvia runs on your own machine, with no hosted endpoint listed. ShippyPro has a hosted endpoint at https://api.shippypro.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/envia-vs-shippypro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/envia-vs-shippypro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"envia\", \"b\": \"shippypro\"}`. From a terminal: `anchor compare envia shippypro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/envia.json and https://www.anchorterminal.com/api/v1/tools/shippypro.json\n\n## Other comparisons with Envia or ShippyPro\n\n- [atoship vs Envia](https://www.anchorterminal.com/compare/atoship-vs-envia.md)\n- [atoship vs ShippyPro](https://www.anchorterminal.com/compare/atoship-vs-shippypro.md)\n- [EasyPost vs Envia](https://www.anchorterminal.com/compare/easypost-vs-envia.md)\n- [EasyPost vs ShippyPro](https://www.anchorterminal.com/compare/easypost-vs-shippypro.md)\n- [Easyship vs Envia](https://www.anchorterminal.com/compare/easyship-vs-envia.md)\n- [Easyship vs ShippyPro](https://www.anchorterminal.com/compare/easyship-vs-shippypro.md)\n- [Envia vs Karrio](https://www.anchorterminal.com/compare/envia-vs-karrio.md)\n- [Envia vs Sendcloud](https://www.anchorterminal.com/compare/envia-vs-sendcloud.md)\n- [Envia vs ShipBob](https://www.anchorterminal.com/compare/envia-vs-shipbob.md)\n- [Envia vs Shippo](https://www.anchorterminal.com/compare/envia-vs-shippo.md)\n- [Envia vs ShipStation API](https://www.anchorterminal.com/compare/envia-vs-shipstation.md)\n- [Karrio vs ShippyPro](https://www.anchorterminal.com/compare/karrio-vs-shippypro.md)\n- [Sendcloud vs ShippyPro](https://www.anchorterminal.com/compare/sendcloud-vs-shippypro.md)\n- [ShipBob vs ShippyPro](https://www.anchorterminal.com/compare/shipbob-vs-shippypro.md)\n- [Shippo vs ShippyPro](https://www.anchorterminal.com/compare/shippo-vs-shippypro.md)\n- [ShippyPro vs ShipStation API](https://www.anchorterminal.com/compare/shippypro-vs-shipstation.md)\n- [Envia vs Ship24](https://www.anchorterminal.com/compare/envia-vs-ship24.md)\n- [Envia vs TrackingMore](https://www.anchorterminal.com/compare/envia-vs-trackingmore.md)\n- [Ship24 vs ShippyPro](https://www.anchorterminal.com/compare/ship24-vs-shippypro.md)\n- [ShippyPro vs TrackingMore](https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Envia vs ShippyPro",
        "url": ""
      }
    ],
    "description": "ShippyPro and Envia score within a point of each other for shipping rates, 37 and 36.5 out of 100. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Envia F 36.5",
      "ShippyPro F 37",
      "scores"
    ],
    "h1": "Envia vs ShippyPro",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/envia-vs-shippypro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Envia vs ShippyPro for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/envia-vs-shippypro"
  },
  "tokens": {
    "markdown": 4700,
    "slim": 3130
  },
  "version": 1
}
