{
  "data": {
    "a": {
      "slug": "easyship",
      "name": "Easyship",
      "vendor": "Easyship Inc.",
      "vendorUrl": "https://www.easyship.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Multi-carrier shipping platform from Easyship. Its public API and hosted MCP server quote courier rates, create shipments, buy labels, validate addresses, track parcels and book pickups across what Easyship says are 550+ courier services.",
      "url": "https://www.anchorterminal.com/tools/easyship",
      "markdownUrl": "https://www.anchorterminal.com/tools/easyship.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/easyship.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/easyship.json",
      "repo": "https://github.com/easyship/easyship-mcp-plugin",
      "license": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://public-api.easyship.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "easyship-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up, opens Connect in the dashboard, creates an API Integration and copies a Bearer token. On v2024-09 the token carries scopes of the form `public.\u003cresource\u003e:read` or `:write`, editable later, and some scopes (advanced or beta functions) are granted by Easyship on request. Sandbox tokens start `sand_` and production tokens `prod_`. Partner apps that connect other Easyship users register through a form and use OAuth 2.0 authorisation code. The MCP server accepts the same Bearer token, and also publishes OAuth metadata with PKCE and dynamic client registration.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with no card, 50 shipments a month in the US, and a sandbox, so an agent's owner can start without a contract. Plus is US$29 a month and Premier US$69, with Scale tiers from US$99 and Enterprise on request. Labels are charged at the courier rate the API quotes. Rates, address validation, tax and duty, HS code and off-platform tracking calls are metered, pay-as-you-go on Free and with monthly quotas on paid plans. Prices vary by country (https://www.easyship.com/plans, US figures, checked 2026-10-07).",
      "priceSummary": "$29 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the plans page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": null,
        "pypiWeekly": 79,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://developers.easyship.com",
      "llmsTxt": "https://developers.easyship.com/llms.txt",
      "openapi": "https://developers.easyship.com/reference/rates_request.md",
      "registryName": "com.easyship/mcp",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "sandbox",
        "webhooks",
        "python",
        "status-page"
      ],
      "lastRelease": "2026-08-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.8,
        "grade": "B",
        "agentReady": false,
        "rank": 163,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 40,
          "reliability": 80,
          "schema": 87,
          "security": 61,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "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.",
        "bestFor": "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.",
        "strengths": [
          "Tokens carry per-resource read and write scopes, with separate sandbox (sand_) and production (prod_) tokens",
          "Hosted MCP server at mcp.easyship.com with 25 tools, each carrying readOnlyHint, destructiveHint and openWorldHint",
          "llms.txt and a Markdown twin of every reference page, each with its OpenAPI 3.0.3 definition",
          "Free plan with no card and 50 shipments a month in the US, and per-call prices for the metered endpoints",
          "status.easyship.com lists no incident since 5 December 2025"
        ],
        "weaknesses": [
          "No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429",
          "The MCP server has no test mode, so a label bought through it is charged",
          "API changelog's last entry is 30 October 2025, and no deprecation policy was found",
          "security.txt expired on 5 October 2025, and the sub-processor list is dated 15 October 2020",
          "No official SDKs found, and the published limit is 60 requests a minute"
        ],
        "agentNotes": [
          "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",
          "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",
          "Don't retry a timed-out label purchase blindly. There's no idempotency key, so read the shipment's label_state first",
          "Give every item a category or an hs_code. The API rejects shipments and rates requests that have neither",
          "Stay under 60 requests a minute and 10 a second, and wait for the next window on 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.8
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 40,
          "reliability": 80,
          "schema": 87,
          "security": 61,
          "transparency": 51
        },
        "provenanceScore": 91
      },
      "connect": {
        "http": "curl -X POST https://public-api.easyship.com/2024-09/rates \\\n  -H \"Authorization: Bearer $EASYSHIP_API_ACCESS_TOKEN\" -H \"Content-Type: application/json\" \\\n  -d @rates-request.json",
        "claudeCode": "claude mcp add --transport http easyship \\\n  https://mcp.easyship.com/mcp \\\n  --header 'Authorization: Bearer YOUR_TOKEN'",
        "config": {
          "mcpServers": {
            "easyship": {
              "headers": {
                "Authorization": "Bearer YOUR_TOKEN"
              },
              "url": "https://mcp.easyship.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/easyship"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Free plan",
          "unit": "month",
          "usd": 0,
          "note": "US, 50 shipments a month, 1 team member"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 29,
          "note": "US, billed monthly; $23 billed annually; 500 shipments, 2,000 rates calls included"
        },
        {
          "item": "Premier plan",
          "unit": "month",
          "usd": 69,
          "note": "US, billed monthly; $55 billed annually; 2,500 shipments, 10,000 rates calls included"
        },
        {
          "item": "Rates API call",
          "unit": "call",
          "usd": 0.01,
          "note": "Free plan pay-as-you-go; $0.008 on Plus and $0.007 on Premier beyond the included quota"
        },
        {
          "item": "US address validation",
          "unit": "call",
          "usd": 0.02,
          "note": "Free and Plus; $0.01 on Premier"
        },
        {
          "item": "International address validation",
          "unit": "call",
          "usd": 0.08,
          "note": "Free plan; $0.07 on Plus, $0.06 on Premier"
        },
        {
          "item": "Tax and duty calculation",
          "unit": "call",
          "usd": 0.11,
          "note": "Free and Plus; $0.10 on Premier"
        },
        {
          "item": "Off-platform tracking",
          "unit": "call",
          "usd": 0.05,
          "note": "Free plan; $0.04 on Plus and Premier. Tracking of Easyship's own shipments is free"
        }
      ],
      "provenance": {
        "legalEntity": "Easyship Inc.",
        "domain": "easyship.com",
        "domainRegistered": "2001-02-22",
        "endpointOnVendorDomain": true,
        "terms": "https://www.easyship.com/legal/terms/us",
        "privacy": "https://www.easyship.com/legal/privacy-policy",
        "statusPage": "https://status.easyship.com",
        "changelog": "https://developers.easyship.com/reference/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-07",
        "notes": [
          "The terms overview (last updated 12 August 2022) names a contracting entity by origin country. Easyship Inc., 61 Broadway, Suite 1705, New York for the United States, Easyship Fulfillment Services Ltd. in Hong Kong for countries not listed, and others for Australia, Canada, the Netherlands, Singapore and the United Kingdom.",
          "The US terms were last updated on 28 July 2026 and promise 30 days' notice of material changes.",
          "The API answers at public-api.easyship.com and the MCP server at mcp.easyship.com, both on the vendor's domain.",
          "www.easyship.com/.well-known/security.txt carries Expires 2025-10-05 and a Policy link to https://vdp.easyship.com.",
          "RDAP for easyship.com gives a registration date of 2001-02-22."
        ],
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/easyship.json",
      "live": {
        "slug": "easyship",
        "probe": {
          "target": "https://public-api.easyship.com",
          "method": "get",
          "lastAt": "2026-10-08T17:36:35.058391119Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 833,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 823,
          "p95ms24h": 1197,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.easyship.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T17:38:50.913733327Z"
        },
        "versions": [
          {
            "registry": "pypi",
            "name": "easyship-mcp",
            "version": "0.6.5",
            "released": "2026-08-21",
            "seenAt": "2026-10-08T16:09:53.609079021Z"
          }
        ],
        "githubStars": 0,
        "pypiWeekly": 83,
        "securityTxt": {
          "url": "https://easyship.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:30.640097558Z"
        },
        "updatedAt": "2026-10-08T17:38:50.913733327Z"
      }
    },
    "answer": "Easyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community.",
    "b": {
      "slug": "sendcloud",
      "name": "Sendcloud",
      "vendor": "Sendcloud B.V.",
      "vendorUrl": "https://www.sendcloud.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Shipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled.",
      "url": "https://www.anchorterminal.com/tools/sendcloud",
      "markdownUrl": "https://www.anchorterminal.com/tools/sendcloud.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendcloud.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendcloud.json",
      "license": "Proprietary service under Sendcloud's terms and conditions",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.sendcloud.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up at account.sendcloud.com, adds an invoice and sender address, then creates a Sendcloud API integration in the panel, which issues a public and secret key pair. The pair works as HTTP Basic or is exchanged at https://account.sendcloud.com/oauth2/token for a one-hour Bearer token (client credentials, scope `api`). The MCP server uses an OAuth 2.0 sign-in at account.sendcloud.com, found through RFC 9728 metadata, with the same single scope. No partner or sales approval is needed for API v3.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at €0 for up to 20 parcels a month at Sendcloud's carrier rates, and a 14-day trial of paid plans with no card per the pricing page. Lite is €28 a month plus €0.10 a label, Growth €87 plus €0.09, Premium €175 plus €0.08, Pro €639 plus €0.07, Enterprise on request, with 20 per cent off for yearly billing. Carrier postage is extra. There is no sandbox, but 50 Unstamped letter test labels are free. The pricing table has an API access row whose per-plan marks we couldn't read (https://www.sendcloud.com/pricing/).",
      "priceSummary": "$31.30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://sendcloud.dev",
      "llmsTxt": "https://sendcloud.dev/llms.txt",
      "openapi": "https://sendcloud.dev/.openapi/v3/shipments/openapi.yaml",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "europe",
        "iso27001"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62,
        "grade": "B",
        "agentReady": false,
        "rank": 314,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 37,
          "reliability": 68,
          "schema": 89,
          "security": 49,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": -3,
        "negativeNotes": [
          "21 and 25 September 2026. The API v3 changelog records `insurance.currency` and `insurance.value` removed from POST /parcels/tracking, and `status_code`, `status_description` and `sub_status_code` removed from tracking event responses, with no earlier deprecation entry for those fields. The changes are documented on the day, so the deduction is the minimum (https://sendcloud.dev/api/v3/changelog.md)"
        ],
        "verdict": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.",
        "bestFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "strengths": [
          "29 public OpenAPI 3.1 specs covering 104 API v3 operations, with an llms.txt index and Markdown copies of every docs page",
          "Hosted MCP server at mcp.sendcloud.com/mcp with 24 toolsets, a `?toolsets=` filter and read-only, idempotent and destructive annotations per the docs",
          "A repeated `external_reference_id` on shipment creation returns the existing shipment with a 409 instead of buying a second label",
          "Free test labels through the `sendcloud:letter` and `sendcloud:letterreturn` shipping options, up to 50 before charges apply",
          "Dated API v3 changelog with 37 entries between 9 July and 5 October 2026"
        ],
        "weaknesses": [
          "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation",
          "Changelog entries of 21 and 25 September 2026 record removed request and response fields on parcel tracking with no earlier deprecation entry",
          "No Retry-After header or backoff guidance was found for 429 responses",
          "No official SDK was found in the reviewed documentation, and the MCP server isn't in the official MCP registry",
          "No test environment. Labels other than the Unstamped letter options are charged unless the carrier accepts a cancellation"
        ],
        "agentNotes": [
          "Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026",
          "Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline",
          "Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label",
          "Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status",
          "Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 37,
          "reliability": 68,
          "schema": 89,
          "security": 49,
          "transparency": 62
        },
        "provenanceScore": 81
      },
      "connect": {
        "http": "curl -X POST --location \"https://account.sendcloud.com/oauth2/token\" \\\n  --header \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\u0026scope=api\" \\\n  --basic --user your_sendcloud_public_key:your_sendcloud_private_key",
        "claudeCode": "claude mcp add --transport http sendcloud https://mcp.sendcloud.com/mcp",
        "config": {
          "mcpServers": {
            "sendcloud": {
              "type": "http",
              "url": "https://mcp.sendcloud.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/sendcloud"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Lite plan",
          "unit": "month",
          "usd": 31.3,
          "note": "€28, 400 labels a month, plus €0.10 a label"
        },
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 97.24,
          "note": "€87, 1,000 labels a month, plus €0.09 a label"
        },
        {
          "item": "Premium plan",
          "unit": "month",
          "usd": 195.6,
          "note": "€175, 10,000 labels a month, plus €0.08 a label"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 714.21,
          "note": "€639, 30,000 labels a month, plus €0.07 a label"
        },
        {
          "item": "Label fee on Lite",
          "unit": "tx",
          "usd": 0.11,
          "note": "€0.10 a label on top of carrier postage, €0.25 above the monthly limit"
        }
      ],
      "provenance": {
        "legalEntity": "Sendcloud B.V.",
        "domain": "sendcloud.com",
        "domainRegistered": "2008-07-29",
        "endpointOnVendorDomain": true,
        "terms": "https://www.sendcloud.com/terms-conditions/",
        "privacy": "https://www.sendcloud.com/privacy-policy/",
        "statusPage": "https://status.sendcloud.com",
        "changelog": "https://sendcloud.dev/api/v3/changelog",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The terms, last updated 1 September 2026, name Sendcloud B.V., registration 66572959, Stadhuisplein 10, 5611 EM Eindhoven, with Sendcloud GmbH, Ltd., SAS and Srl for Germany and Austria, the UK, France and Italy. Dutch law applies.",
          "The MCP server answers at mcp.sendcloud.com and tokens come from account.sendcloud.com. The REST API answers at panel.sendcloud.sc, a second Sendcloud domain.",
          "www.sendcloud.com/.well-known/security.txt and /security.txt return 404. The bug bounty page sends reports to security@sendcloud.com.",
          "RDAP for sendcloud.com gives a registration date of 2008-07-29.",
          "Unit prices are converted from euros at the ECB reference rate of 1.1177 for 7 October 2026, read through api.frankfurter.dev."
        ],
        "score": 81
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sendcloud.json",
      "live": {
        "slug": "sendcloud",
        "probe": {
          "target": "https://mcp.sendcloud.com/mcp",
          "method": "get",
          "lastAt": "2026-10-08T17:36:45.156031945Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 74,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 84,
          "p95ms24h": 126,
          "samples24h": 25,
          "samples30d": 25,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 25,
              "ok": 25
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.sendcloud.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T17:25:42.672960135Z"
        },
        "securityTxt": {
          "url": "https://sendcloud.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:40.272539649Z"
        },
        "updatedAt": "2026-10-08T17:36:45.156031945Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Easyship Inc.",
        "b": "Sendcloud B.V.",
        "name": "Vendor"
      },
      {
        "a": "https://public-api.easyship.com",
        "b": "https://mcp.sendcloud.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.01 per call",
        "b": "not published",
        "name": "Price for shipping rates"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
        "b": "Proprietary service under Sendcloud's terms and conditions",
        "name": "Licence"
      },
      {
        "a": "25",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.easyship/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-21",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2026-07-28",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-28",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "0 stars, 79 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Easyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Easyship or Sendcloud?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Easyship and Sendcloud need an API key?"
      },
      {
        "answer": "Yes. Easyship has a hosted endpoint at https://public-api.easyship.com and Sendcloud at https://mcp.sendcloud.com/mcp.",
        "question": "Can an agent call Easyship and Sendcloud without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 68",
          "Security \u0026 auth, 61 against 49"
        ],
        "also": [
          "Runs on your own machine",
          "No incidents deducted, where Sendcloud loses 3 points for them"
        ],
        "goodFor": "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.",
        "slug": "easyship",
        "watchFor": "No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429"
      },
      {
        "aheadOn": [
          "Maintenance \u0026 community, 67 against 56"
        ],
        "also": null,
        "goodFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "slug": "sendcloud",
        "watchFor": "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-easyship.json",
        "title": "EasyPost vs Easyship",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-easyship"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.json",
        "title": "EasyPost vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shippo.json",
        "title": "Easyship vs Shippo",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shipstation.json",
        "title": "Easyship vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shippo.json",
        "title": "Sendcloud vs Shippo",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.json",
        "title": "Sendcloud vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation"
      }
    ],
    "scores": [
      {
        "by": 12,
        "easyship": 80,
        "edge": "easyship",
        "key": "reliability",
        "name": "Reliability",
        "sendcloud": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "easyship": 87,
        "edge": "sendcloud",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sendcloud": 89,
        "weight": 13
      },
      {
        "by": 2,
        "easyship": 73,
        "edge": "easyship",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sendcloud": 71,
        "weight": 13
      },
      {
        "by": 12,
        "easyship": 61,
        "edge": "easyship",
        "key": "security",
        "name": "Security \u0026 auth",
        "sendcloud": 49,
        "weight": 14
      },
      {
        "by": 3,
        "easyship": 40,
        "edge": "easyship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sendcloud": 37,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "easyship": 56,
        "edge": "sendcloud",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sendcloud": 67,
        "weight": 7
      },
      {
        "by": 1,
        "easyship": 71,
        "edge": "sendcloud",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sendcloud": 72,
        "weight": 7
      }
    ],
    "summary": "Easyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community. Both do shipping rates.",
    "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.",
      "sendcloud": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud",
    "json": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud.md",
    "slim": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud.min.md"
  },
  "markdown": "Easyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community. Both do shipping rates.\n\n- Easyship: grade B, 68.8/100, rank #163 of 629. Markdown https://www.anchorterminal.com/tools/easyship.md · JSON https://www.anchorterminal.com/api/v1/tools/easyship.json\n- Sendcloud: grade B, 62/100, rank #314 of 629. Markdown https://www.anchorterminal.com/tools/sendcloud.md · JSON https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Which one, for what\n\n### Easyship (B)\n\nGood 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.\n\nAhead on:\n- Reliability, 80 against 68\n- Security \u0026 auth, 61 against 49\n\nAlso in its favour:\n- Runs on your own machine\n- No incidents deducted, where Sendcloud loses 3 points for them\n\nWatch for: No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429\n\n### Sendcloud (B)\n\nGood for: An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.\n\nAhead on:\n- Maintenance \u0026 community, 67 against 56\n\nWatch for: One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | Easyship | Sendcloud | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 68 | Easyship +12 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 89 | Sendcloud +2 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 71 | Easyship +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 49 | Easyship +12 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 37 | Easyship +3 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 67 | Sendcloud +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 72 | Sendcloud +1 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **68.8 · B** | **62 · B** | |\n\n## Facts side by side\n\n| Fact | Easyship | Sendcloud |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Easyship Inc. | Sendcloud B.V. |\n| Hosted endpoint | `https://public-api.easyship.com` | `https://mcp.sendcloud.com/mcp` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| Price for shipping rates | $0.01 per call | not published |\n| x402 | no | no |\n| Licence | Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT | Proprietary service under Sendcloud's terms and conditions |\n| Tools exposed | 25 | none |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | `com.easyship/mcp` | not listed |\n| Last release | 2026-08-21 | 2026-10-05 |\n| Terms last updated | 2026-07-28 | no date given |\n| Privacy policy last updated | 2026-07-28 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 0 stars, 79 PyPI/wk | none |\n\n## Verdicts\n\n**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.\n\n**Sendcloud.** API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.\n\n## Before you call either\n\n### Easyship\n\n1. 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\n2. 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\n3. Don't retry a timed-out label purchase blindly. There's no idempotency key, so read the shipment's label_state first\n4. Give every item a category or an hs_code. The API rejects shipments and rates requests that have neither\n5. Stay under 60 requests a minute and 10 a second, and wait for the next window on 429\n\n### Sendcloud\n\n1. Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026\n2. Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline\n3. Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label\n4. Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status\n5. Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account\n\n## Questions\n\n### Which is better for AI agents, Easyship or Sendcloud?\n\nEasyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community.\n\n### Do Easyship and Sendcloud need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Easyship and Sendcloud without installing anything?\n\nYes. Easyship has a hosted endpoint at https://public-api.easyship.com and Sendcloud at https://mcp.sendcloud.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easyship-vs-sendcloud.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easyship-vs-sendcloud.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easyship\", \"b\": \"sendcloud\"}`. From a terminal: `anchor compare easyship sendcloud`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easyship.json and https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Other comparisons with Easyship or Sendcloud\n\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)\n- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)\n- [Easyship vs Shippo](https://www.anchorterminal.com/compare/easyship-vs-shippo.md)\n- [Easyship vs ShipStation API](https://www.anchorterminal.com/compare/easyship-vs-shipstation.md)\n- [Sendcloud vs Shippo](https://www.anchorterminal.com/compare/sendcloud-vs-shippo.md)\n- [Sendcloud vs ShipStation API](https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Easyship vs Sendcloud",
        "url": ""
      }
    ],
    "description": "Easyship scores 68.8 (B) on agent readiness against Sendcloud's 62 (B), and leads in 4 of 7 scored categories. Sendcloud leads on maintenance \u0026 community. Both do shipping rates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Easyship B 68.8",
      "Sendcloud B 62",
      "scores"
    ],
    "h1": "Easyship vs Sendcloud",
    "image": "https://www.anchorterminal.com/assets/og/compare-easyship-vs-sendcloud.png",
    "path": "/compare/easyship-vs-sendcloud",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Easyship vs Sendcloud for AI agents, B 68.8 vs B 62 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud"
  },
  "tokens": {
    "markdown": 2000,
    "slim": 680
  },
  "version": 1
}
