{
  "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"
  },
  "tool": {
    "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"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 80,
          "points": 16,
          "reason": "Graded on the public API v2024-09, which the hosted MCP server calls. Statuspage at status.easyship.com with nine Easyship components, among them Core API, Open API and Rates API (20). The incident feed holds 42 entries back to 2020 and none in the last 90 days. The latest are a Cloudflare-related website outage of 11 minutes on 5 December 2025 and a critical Cloudflare incident of 6 hours 43 minutes on 18 November 2025 (30). Limits are published as 60 requests a minute and 10 a second, 6 a minute in sandbox (15). The 429 `too_many_requests` code is documented with the advice to wait for the next window. No Retry-After header, backoff guidance or idempotency key was found in the docs or the spec (5). The developers page claims both 99.9% and 99.99% uptime, the US terms disclaim uninterrupted access, and no SLA was found (0). Version 2024-09 is described as the latest stable version. The MCP package is classified beta on PyPI (10)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 87,
          "points": 14.14,
          "reason": "Every reference page has a Markdown twin with its OpenAPI 3.0.3 definition, and the full v2024-09 spec (132 operations on 98 paths) ships in the easyship-mcp source package. No single spec URL was found on the docs site. MCP inputs are typed with Pydantic (25). llms.txt at developers.easyship.com lists 240 lines of Markdown pages (10). MCP descriptions state what to collect before calling, when to buy a label or only draft a shipment, and which tool to use for detail. Not every tool says when not to use it (17). The spec has 177 enum declarations and required fields. In the MCP, incoterms, currency and item category are free strings (12). Twelve error codes are documented with HTTP status and a worked example, and endpoints list 402 and 422 responses (13). Versions are dated in the path (2023-01, 2024-09) with migration guides. The changelog's last entry is 30 October 2025, and the MCP server has no changelog (10)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 73,
          "points": 11.86,
          "reason": "The MCP server loads 25 tools with no toolsets. List tools return allow-listed summaries, and documents and contact details come back only when asked for (18). List endpoints take page and per_page (default 20) and filters by state, date, country and order number (20). Errors carry a code, type, details array, documentation links and a request_id (18). No idempotency keys, so a retried label purchase isn't protected. All 25 MCP tools set readOnlyHint, destructiveHint and openWorldHint (10). create_shipment picks a courier when none is given and get_rates needs six fields. No official SDK was found among the 15 public repositories in Easyship's GitHub organisation, though the developers page mentions SDKs (7)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 61,
          "points": 10.68,
          "reason": "API tokens are created in the dashboard with per-resource scopes such as `public.shipment:read` and `public.label:write` on v2024-09, are revocable, and are separate for sandbox and production. The MCP server also publishes OAuth metadata with PKCE S256 and dynamic client registration. No token expiry was found (26). Read-only scopes make a read-only agent possible. Confirmation before delete and cancel exists only as a rule file in the plugin repository, not in the server (14). The MCP server strips tax identifiers from every response and withholds contact details and document links by default. No guidance on untrusted text in tracking or address fields was found (7). Transaction records and a request_id on errors are available. No API call log for the operator was found (4). security.txt is present but expired on 5 October 2025. It points to a disclosure policy at vdp.easyship.com, which needs JavaScript and went unread. The developers page claims SOC certification with no report or trust page found (10)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 40,
          "points": 5,
          "reason": "No x402, MPP or L402 (0). Plan prices and per-call prices for the metered endpoints are public in the data file the plans page loads, for example US$0.01 a rates call on Free and US$29 a month for Plus. Label prices depend on the courier and come back from the rates call (20). The Free plan needs no card and covers 50 shipments a month in the US, and paid plans have a 14-day trial (20). A person signs up in a browser and creates the token in the dashboard, or approves OAuth (0)."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 56,
          "points": 4.9,
          "reason": "easyship-mcp 0.6.5 was published on 21 August 2026, 47 days ago. The API changelog's last entry is 30 October 2025 (20). Three releases fall in the last 90 days, 0.6.3 to 0.6.5, all on 21 August, so half credit (10). Closed service with a support desk and a bug report form. The plugin repository has seven commits, the last on 23 June 2026, and the API changelog has been silent for 11 months (6). Listed in the official MCP registry as com.easyship/mcp, a domain-verified namespace, with 0.6.5 as latest (15). The package pins fastmcp below 4 with a uv.lock and has version-check and deploy workflows. No tests ship in the source package (5)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 71,
          "points": 6.21,
          "note": "editorial 51, provenance 91",
          "reason": "Closed service under country-specific terms, the US version updated 28 July 2026 and naming Easyship Inc. The MCP server and plugin are MIT (17). The privacy policy of 28 July 2026 gives retention periods (account and shipment data for their lifetime plus seven years) and bars providers from training general-purpose AI on personal information. The DPA of 28 March 2025 says personal data is deleted on deactivation unless law requires otherwise, which sits uneasily with seven years (18). Deprecated endpoints are marked and migration guides exist, and the US terms promise 30 days' notice of material changes. No API deprecation policy with dates was found (8). The sub-processor list the DPA points to is dated 15 October 2020, names only analytics, advertising and CRM tools and cites Privacy Shield. The privacy policy names the United States and Singapore as processing locations (8)."
        }
      ],
      "assessment": {
        "date": "2026-10-07",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "The MCP server loads 25 tools with no toolsets. List tools return allow-listed summaries, and documents and contact details come back only when asked for (18). List endpoints take page and per_page (default 20) and filters by state, date, country and order number (20). Errors carry a code, type, details array, documentation links and a request_id (18). No idempotency keys, so a retried label purchase isn't protected. All 25 MCP tools set readOnlyHint, destructiveHint and openWorldHint (10). create_shipment picks a courier when none is given and get_rates needs six fields. No official SDK was found among the 15 public repositories in Easyship's GitHub organisation, though the developers page mentions SDKs (7).",
          "maintenance": "easyship-mcp 0.6.5 was published on 21 August 2026, 47 days ago. The API changelog's last entry is 30 October 2025 (20). Three releases fall in the last 90 days, 0.6.3 to 0.6.5, all on 21 August, so half credit (10). Closed service with a support desk and a bug report form. The plugin repository has seven commits, the last on 23 June 2026, and the API changelog has been silent for 11 months (6). Listed in the official MCP registry as com.easyship/mcp, a domain-verified namespace, with 0.6.5 as latest (15). The package pins fastmcp below 4 with a uv.lock and has version-check and deploy workflows. No tests ship in the source package (5).",
          "payments": "No x402, MPP or L402 (0). Plan prices and per-call prices for the metered endpoints are public in the data file the plans page loads, for example US$0.01 a rates call on Free and US$29 a month for Plus. Label prices depend on the courier and come back from the rates call (20). The Free plan needs no card and covers 50 shipments a month in the US, and paid plans have a 14-day trial (20). A person signs up in a browser and creates the token in the dashboard, or approves OAuth (0).",
          "reliability": "Graded on the public API v2024-09, which the hosted MCP server calls. Statuspage at status.easyship.com with nine Easyship components, among them Core API, Open API and Rates API (20). The incident feed holds 42 entries back to 2020 and none in the last 90 days. The latest are a Cloudflare-related website outage of 11 minutes on 5 December 2025 and a critical Cloudflare incident of 6 hours 43 minutes on 18 November 2025 (30). Limits are published as 60 requests a minute and 10 a second, 6 a minute in sandbox (15). The 429 `too_many_requests` code is documented with the advice to wait for the next window. No Retry-After header, backoff guidance or idempotency key was found in the docs or the spec (5). The developers page claims both 99.9% and 99.99% uptime, the US terms disclaim uninterrupted access, and no SLA was found (0). Version 2024-09 is described as the latest stable version. The MCP package is classified beta on PyPI (10).",
          "schema": "Every reference page has a Markdown twin with its OpenAPI 3.0.3 definition, and the full v2024-09 spec (132 operations on 98 paths) ships in the easyship-mcp source package. No single spec URL was found on the docs site. MCP inputs are typed with Pydantic (25). llms.txt at developers.easyship.com lists 240 lines of Markdown pages (10). MCP descriptions state what to collect before calling, when to buy a label or only draft a shipment, and which tool to use for detail. Not every tool says when not to use it (17). The spec has 177 enum declarations and required fields. In the MCP, incoterms, currency and item category are free strings (12). Twelve error codes are documented with HTTP status and a worked example, and endpoints list 402 and 422 responses (13). Versions are dated in the path (2023-01, 2024-09) with migration guides. The changelog's last entry is 30 October 2025, and the MCP server has no changelog (10).",
          "security": "API tokens are created in the dashboard with per-resource scopes such as `public.shipment:read` and `public.label:write` on v2024-09, are revocable, and are separate for sandbox and production. The MCP server also publishes OAuth metadata with PKCE S256 and dynamic client registration. No token expiry was found (26). Read-only scopes make a read-only agent possible. Confirmation before delete and cancel exists only as a rule file in the plugin repository, not in the server (14). The MCP server strips tax identifiers from every response and withholds contact details and document links by default. No guidance on untrusted text in tracking or address fields was found (7). Transaction records and a request_id on errors are available. No API call log for the operator was found (4). security.txt is present but expired on 5 October 2025. It points to a disclosure policy at vdp.easyship.com, which needs JavaScript and went unread. The developers page claims SOC certification with no report or trust page found (10).",
          "transparency": "Closed service under country-specific terms, the US version updated 28 July 2026 and naming Easyship Inc. The MCP server and plugin are MIT (17). The privacy policy of 28 July 2026 gives retention periods (account and shipment data for their lifetime plus seven years) and bars providers from training general-purpose AI on personal information. The DPA of 28 March 2025 says personal data is deleted on deactivation unless law requires otherwise, which sits uneasily with seven years (18). Deprecated endpoints are marked and migration guides exist, and the US terms promise 30 days' notice of material changes. No API deprecation policy with dates was found (8). The sub-processor list the DPA points to is dated 15 October 2020, names only analytics, advertising and CRM tools and cites Privacy Shield. The privacy policy names the United States and Singapore as processing locations (8)."
        },
        "sources": [
          {
            "what": "developer docs index (llms.txt)",
            "url": "https://developers.easyship.com/llms.txt",
            "seen": "2026-10-07"
          },
          {
            "what": "MCP server documentation",
            "url": "https://developers.easyship.com/docs/easyship-mcp-server",
            "seen": "2026-10-07"
          },
          {
            "what": "rate limits",
            "url": "https://developers.easyship.com/reference/rate-limit",
            "seen": "2026-10-07"
          },
          {
            "what": "error codes",
            "url": "https://developers.easyship.com/reference/errors",
            "seen": "2026-10-07"
          },
          {
            "what": "scopes and token creation",
            "url": "https://developers.easyship.com/reference/scopes",
            "seen": "2026-10-07"
          },
          {
            "what": "API changelog",
            "url": "https://developers.easyship.com/reference/changelog",
            "seen": "2026-10-07"
          },
          {
            "what": "sandbox domains and tokens",
            "url": "https://developers.easyship.com/docs/sandbox",
            "seen": "2026-10-07"
          },
          {
            "what": "webhooks guide",
            "url": "https://developers.easyship.com/reference/webhooks-guide",
            "seen": "2026-10-07"
          },
          {
            "what": "status incidents feed",
            "url": "https://status.easyship.com/api/v2/incidents.json",
            "seen": "2026-10-07"
          },
          {
            "what": "plans and API pricing",
            "url": "https://www.easyship.com/plans",
            "seen": "2026-10-07"
          },
          {
            "what": "pricing data file loaded by the plans page",
            "url": "https://cdn.prod.website-files.com/660e658c0cfb31720d893396/699e346b97e159ba26b10a99_7276f43ce380239400b5ee5f0056828c_Easyship%202026%20Updated%20Plan%20Pricing%20Page%20with%20API%20Billing%20%28February%202026%29.csv%20-%20Sheet1.csv",
            "seen": "2026-10-07"
          },
          {
            "what": "easyship-mcp on PyPI, releases and source package",
            "url": "https://pypi.org/pypi/easyship-mcp/json",
            "seen": "2026-10-07"
          },
          {
            "what": "MCP plugin repository",
            "url": "https://github.com/easyship/easyship-mcp-plugin",
            "seen": "2026-10-07"
          },
          {
            "what": "official MCP registry entry",
            "url": "https://registry.modelcontextprotocol.io/v0.1/servers?search=easyship",
            "seen": "2026-10-07"
          },
          {
            "what": "MCP OAuth authorisation server metadata",
            "url": "https://mcp.easyship.com/.well-known/oauth-authorization-server",
            "seen": "2026-10-07"
          },
          {
            "what": "security.txt",
            "url": "https://www.easyship.com/.well-known/security.txt",
            "seen": "2026-10-07"
          },
          {
            "what": "US terms of service",
            "url": "https://www.easyship.com/legal/terms/us",
            "seen": "2026-10-07"
          },
          {
            "what": "privacy policy",
            "url": "https://www.easyship.com/legal/privacy-policy",
            "seen": "2026-10-07"
          },
          {
            "what": "data processing agreement",
            "url": "https://www.easyship.com/legal/dpa",
            "seen": "2026-10-07"
          },
          {
            "what": "sub-processor list",
            "url": "https://www.easyship.com/legal/data-usage-and-cookies",
            "seen": "2026-10-07"
          },
          {
            "what": "developers page",
            "url": "https://www.easyship.com/developers",
            "seen": "2026-10-07"
          },
          {
            "what": "public repositories in the GitHub organisation",
            "url": "https://api.github.com/orgs/easyship/repos",
            "seen": "2026-10-07"
          }
        ],
        "openQuestions": [
          "unchecked: the vulnerability disclosure policy at vdp.easyship.com/p/policy, which renders only with JavaScript",
          "unchecked: the authentication guide at developers.easyship.com/docs/authentication, whose Markdown twin didn't load",
          "The static markup of the plans page shows other per-call figures (US$0.003 to US$0.005 overage) than the data file the page loads (US$0.006 to US$0.01 for rates). We used the data file's US rows",
          "Whether the 30 October 2025 sandbox domain change, marked breaking in the changelog, was announced in advance. No deduction was taken",
          "Whether 429 responses carry a Retry-After header in practice",
          "What the SOC certification claimed on the developers page covers. No report, type or trust page was found",
          "Whether an SLA exists on Enterprise contracts",
          "When the public API first launched. firstReleased is left empty",
          "GitHub star count for the plugin repository read 0 through the API on 7 October 2026"
        ]
      },
      "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"
    },
    "notable": [
      "The hosted MCP server at https://mcp.easyship.com/mcp lists 25 tools across rates, shipments, pickups, address validation, billing and analytics (https://developers.easyship.com/docs/easyship-mcp-server)",
      "The server's README says there is no separate test environment for MCP actions, and any action that consumes credits incurs real charges (https://pypi.org/project/easyship-mcp/)",
      "Since 30 October 2025 the sandbox has its own domain and production no longer accepts sandbox tokens (https://developers.easyship.com/reference/changelog)",
      "Rate limit is 60 requests a minute and 10 a second on every endpoint, 6 a minute and 1 a second in sandbox (https://developers.easyship.com/reference/rate-limit)",
      "Webhooks are signed with an HS256 JSON web token in X-EASYSHIP-SIGNATURE and retried 30 times at 1-minute intervals before the webhook is deactivated (https://developers.easyship.com/reference/webhooks-guide)",
      "The MCP server publishes OAuth metadata with PKCE S256 and a dynamic client registration endpoint. The MCP docs say ChatGPT's consumer app is still waiting on OAuth support (https://mcp.easyship.com/.well-known/oauth-authorization-server)",
      "www.easyship.com/.well-known/security.txt points to a disclosure policy at vdp.easyship.com and carries an Expires date of 5 October 2025 (https://www.easyship.com/.well-known/security.txt)"
    ],
    "area": "business",
    "details": [
      {
        "label": "API",
        "value": "Public API v2024-09 at https://public-api.easyship.com, 132 operations on 98 paths (OpenAPI 3.0.3). Legacy versions before v2023 answer at https://api.easyship.com"
      },
      {
        "label": "MCP server",
        "value": "Official, hosted at https://mcp.easyship.com/mcp (Streamable HTTP) or local with uvx easyship-mcp, 25 tools, version 0.6.5, targets v2024-09"
      },
      {
        "label": "Credentials",
        "value": "Dashboard-issued Bearer tokens with scopes of the form public.\u003cresource\u003e:read or :write. OAuth 2.0 authorisation code for registered partner apps, and PKCE with dynamic client registration on the MCP server"
      },
      {
        "label": "Sandbox",
        "value": "https://public-api-sandbox.easyship.com with sand_ tokens, sample rates and labels, a reduced courier list. The MCP server has no test mode"
      },
      {
        "label": "Free tier",
        "value": "Free plan, no card, 50 shipments a month and 1 team member in the US. Metered endpoints are pay-as-you-go"
      },
      {
        "label": "Rate limits",
        "value": "60 requests a minute and 10 a second on all endpoints, 6 a minute and 1 a second in sandbox"
      },
      {
        "label": "Errors",
        "value": "JSON with code, type, details, links, message and request_id. Twelve documented codes, among them payment_required (402), over_limit (402) and too_many_requests (429)"
      },
      {
        "label": "Webhooks",
        "value": "13 event types listed in the guide, HS256 JWT signature in X-EASYSHIP-SIGNATURE, 30 retries at 1-minute intervals, then deactivation"
      },
      {
        "label": "Label refunds",
        "value": "A shipment can be cancelled after a label is requested if it isn't yet in transit. The US terms say unused labels are refunded within ten days of the cancellation request"
      },
      {
        "label": "Coverage",
        "value": "Easyship says 550+ courier services in 200+ countries and territories"
      },
      {
        "label": "SDKs",
        "value": "None found. The reference pages generate request samples"
      },
      {
        "label": "Status",
        "value": "status.easyship.com on Statuspage, nine Easyship components, last incident 5 December 2025"
      }
    ],
    "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,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "Easyship Inc.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "easyship.com, registered 2001-02-22 (25 years)",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "public-api.easyship.com",
          "points": 15,
          "max": 15,
          "state": "ok"
        },
        {
          "check": "Terms of service",
          "value": "read, states 7 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 6,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "status.easyship.com",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "published but past its Expires date",
          "points": 5,
          "max": 10,
          "state": "part"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.easyship.com/legal/terms/us",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-07-28",
          "words": 10110,
          "points": 6,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated on Jul 28, 2026",
              "says": "Last updated 2026-07-28"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "These Terms of Service shall be governed by and construed in accordance with the laws of the State of New York, including its conflicts of law rules, in the United States of America, and the United Nations Convention on Contracts for the International Sale of Goods shall not be applicable hereto.",
              "says": "The law of the State of New York"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "In no event shall Easyship be liable for any indirect, incidental, special or consequential damages, or damages for loss or damage of Shipments, loss of profits, revenue, data or use, incurred by you or any third party, whether in an action in contract or tort, arising from your access to, or use of, the Website, any…",
              "says": "Rules out indirect and consequential losses, with no cap named in this sentence"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "If you do not agree to a material change, you must stop using the Services and may terminate your account in accordance with Section 12."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "You agree that Easyship may provide notice to you (including notices of changes to these Terms of Service and the Privacy Policy, and other transactional, legal and account communications) by: posting on the Website;",
              "says": "Says it gives notice of a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "If you do not have such authority, or if you do not agree with these Terms of Service, you shall not accept the Terms of Service on behalf of such entity and you are not authorized to use this Website or the Services."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": true,
              "quote": "Statements, quotes, pricing, discounts, offers, timelines, service-level commitments and other representations made by an AI agent are provided for informational purposes only and are not binding on Easyship."
            }
          ],
          "toKnow": [
            {
              "key": "terms.automated",
              "label": "Restricts automated access",
              "found": true,
              "quote": "You shall not (and you shall not permit others on your behalf to): (i) use any robot, spider, scraper or other automated means to access the Easyship Website or Services for any purpose without Easyship’s express written permission, (ii) interfere or attempt to interfere with the proper working of our Website or any a…",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "We reserve the sole right to discontinue the Website and our Services, including any of the Website’s features, at any time with or without notice to you.",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "Subject to earlier termination as provided below, Easyship may terminate your account and these Terms of Service at any time by providing thirty (30) days prior notice to the administrative email address associated with your account."
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Content posted through the Services carries a perpetual, irrevocable, sublicensable licence to Easyship, for use with the Services and to improve its products.",
              "quote": "grant Easyship a worldwide, non-exclusive, perpetual, irrevocable, royalty-free, fully paid, sub licensable and transferable license to use, modify, reproduce, distribute, display, publish and perform Your Content in connection with the Services and to improve Easyship’s products and Services"
            },
            {
              "date": "2026-10-08",
              "text": "After an account is terminated Easyship may keep the customer's content or delete it permanently, at its sole discretion.",
              "quote": "Except as provided above, upon any termination of your account, Easyship may store all of Your Content on the Services (if any), or it may be permanently deleted by Easyship, in its sole discretion."
            },
            {
              "date": "2026-10-08",
              "text": "Passwords, account information and account access information may not be shared with any third party.",
              "quote": "You agree not to share your password(s), account information, or account access information to any third party."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.easyship.com/legal/privacy-policy",
          "state": "read",
          "readAt": "2026-10-08",
          "statedDate": "2026-07-28",
          "words": 6414,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated on Jul 28, 2026",
              "says": "Last updated 2026-07-28"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "What Personal Information of the senders do we collect and when?"
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "Users may rest assured that their personal information and data will only be kept for as long as is necessary to fulfill the purpose for which it is collected, unless Users request Easyship to cease to hold the same or terminate his/her membership account with Easyship.",
              "says": "For as long as needed, with no period named"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "• Lead qualification and enrichment: enriching account and prospect records with data from third-party providers (firmographic, technographic and business-contact information such as job title, seniority, company size, industry, LinkedIn URL and business phone number) for the purposes of identifying, scoring, segmenti…"
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "…(CCPA/CPRA), you may exercise your right to opt out by emailing [email protected] with the subject line \"Do Not Sell or Share\".",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "This processing is limited to information used in a business or professional capacity, is balanced against your rights and interests, and is subject to your right to object at any time as described in Section 12."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "…about our collection, use, or disclosure of your information under this Policy, please contact our Data Protection Officer at [email protected].",
              "says": "Names a data protection officer"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "In the context of an onward transfer Easyship has responsibility for the processing of personal information it receives under the Data Privacy Framework and subsequently transfers to a third party acting as an agent on its behalf.",
              "says": "Relies on the Data Privacy Framework"
            }
          ],
          "notes": [
            {
              "date": "2026-10-08",
              "text": "Easyship says it does not sell personal information for money, and gives an opt-out where its analytics, advertising, enrichment or visitor identification tools count as a sale or sharing under California law.",
              "quote": "To the extent that any such use constitutes a \"sale\" or \"sharing\" of Personal Information under California law, you may opt out as described in Section 12."
            },
            {
              "date": "2026-10-08",
              "text": "Easyship says its AI service providers are not authorised to use personal information to train general-purpose AI or machine-learning models for third parties.",
              "quote": "Easyship does not authorise these providers to use your Personal Information to develop their own general-purpose AI products or to train their general-purpose AI or machine-learning models for the benefit of third parties."
            },
            {
              "date": "2026-10-08",
              "text": "The policy's definition of Personal Information leaves out the name, business address and telephone number of an employee of an organisation.",
              "quote": "The term doesn’t include the name, business address, telephone number of an employee of an organization."
            }
          ]
        }
      ]
    },
    "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"
    }
  }
}
