{
  "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": 173,
        "ranked": true,
        "rankOf": 722,
        "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-08T22:39:46.506036824Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 610,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 788,
          "p95ms24h": 1367,
          "samples24h": 79,
          "samples30d": 79,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 79,
              "ok": 79
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.easyship.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T22:39:17.528617785Z"
        },
        "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"
        },
        "pages": [
          {
            "url": "https://developers.easyship.com/reference/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:33.323091568Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c61b1b5ffd8f"
          },
          {
            "url": "https://www.easyship.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:33.100757089Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e83631b37fda"
          },
          {
            "url": "https://www.easyship.com/legal/terms/us",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:35.346858405Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "040fb19e8b62"
          }
        ],
        "updatedAt": "2026-10-08T22:39:46.506036824Z"
      }
    },
    "answer": "Easyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community.",
    "b": {
      "slug": "ship24",
      "name": "Ship24",
      "vendor": "Ship24 Limited",
      "vendorUrl": "https://www.ship24.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Ship24 is a parcel tracking API from Ship24 Limited in Hong Kong. Its REST API and hosted MCP server create trackers, return normalised tracking events across couriers and push updates by webhook.",
      "url": "https://www.anchorterminal.com/tools/ship24",
      "markdownUrl": "https://www.anchorterminal.com/tools/ship24.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/ship24.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/ship24.json",
      "repo": "https://github.com/ship24/ship24-node",
      "license": "Proprietary service under Ship24's Terms and Conditions. The Node SDK and the AI plugin on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.ship24.com/public/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "ship24"
        }
      ],
      "auth": "api-key",
      "authNotes": "A self-serve API key, sent as `Authorization: Bearer apik_...`. A default key is created once a plan (free or paid) is chosen in the dashboard, and an account can hold up to 20 active keys. Keys have no scopes. The hosted MCP server takes the same key in the same header. No OAuth, partner review or sales approval is needed for the listed plans.",
      "pricing": "freemium",
      "pricingNotes": "Free for 10 shipments a month on the Tracking API, blocked at the limit, so an agent can start without a contract. Paid per-shipment plans start at $39 a month for 1,000 shipments with $0.045 for each extra. Per-call plans start at $99 a month for 10,000 calls with $0.015 for each extra. Above 1,000,000 shipments a month pricing is by sales. Whether the free plan needs a card wasn't established (checked 2026-10-08).",
      "priceSummary": "$39 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 12,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 79,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.ship24.com",
      "llmsTxt": "https://docs.ship24.com/llms.txt",
      "openapi": "https://docs.ship24.com/assets/openapi/ship24-tracking-api.yaml",
      "registryName": "com.ship24/tracking-mcp",
      "capabilities": [
        "shipping.tracking"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "openapi",
        "llms-txt",
        "mcp",
        "webhooks",
        "free-tier",
        "typescript",
        "tracking"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 55,
        "grade": "C",
        "agentReady": false,
        "rank": 522,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 80,
          "payments": 30,
          "reliability": 45,
          "schema": 81,
          "security": 37,
          "transparency": 52
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "The REST API and the hosted MCP server share one public OpenAPI 3.1 spec, numbered rate limits with Retry-After, and tracker creation that is idempotent by payload. No status page, SLA or security certification was found, API keys carry no scopes, and the API agreement and data processing agreement named in the terms aren't published.",
        "bestFor": "An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone.",
        "strengths": [
          "Public OpenAPI 3.1 spec with 12 operations and two webhook definitions, plus llms.txt and a hosted `SKILL.md` integration guide",
          "Hosted MCP server at `https://api.ship24.com/mcp` with 12 tools, each carrying read-only, destructive and idempotent annotations and an output schema",
          "Rate limits are published per endpoint (1 to 10 requests a second) with `RateLimit-*`, `X-RateLimit-*` and `Retry-After` headers",
          "`POST /trackers` and `POST /trackers/track` are idempotent for an identical payload, and `clientTrackerId` is checked for uniqueness",
          "Prices are public for both billing models, with a free API plan of 10 shipments a month and sample tracking numbers for each status"
        ],
        "weaknesses": [
          "No status page was found. `status.ship24.com` doesn't resolve, and neither the site nor the docs link to one",
          "The terms supply the service as is, with no uptime commitment, and allow account termination and data deletion without notice",
          "API keys have no scopes or read-only mode. The docs describe up to 20 keys an account, managed in the dashboard",
          "Webhooks are authenticated by a static secret in the `Authorization` header, with no payload signature",
          "The API agreement and the data processing agreement named in the terms, and a subprocessor list, were not found on the site"
        ],
        "agentNotes": [
          "Send `Authorization: Bearer apik_...` to `https://api.ship24.com/public/v1`. The same key works on the MCP server, which lists tools without a key but answers 401 on calls",
          "Store the `trackerId` or set a unique `clientTrackerId`. Tracking numbers aren't unique, and any changed field on a repeat `POST /trackers` creates a second tracker that uses quota",
          "Allow up to 60 seconds for the first `POST /trackers/track` or `POST /tracking/search` call, since results are fetched from the courier synchronously",
          "Cache `GET /couriers`. It is limited to one request a second and returns the whole courier list, and courier auto-detection usually makes `courierCode` unnecessary",
          "Check for `quota_limit_reached` and `no_active_subscription`. `POST /tracking/search` needs a separate per-call plan, and the free plan blocks at 10 shipments a month"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 55
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 80,
          "payments": 30,
          "reliability": 45,
          "schema": 81,
          "security": 37,
          "transparency": 38
        },
        "provenanceScore": 65
      },
      "connect": {
        "install": "npm install ship24",
        "http": "curl -sS -X POST https://api.ship24.com/public/v1/trackers/track \\\n  -H \"Authorization: Bearer $SHIP24_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{ \"trackingNumber\": \"SHIP24_SAMPLE_DELIVERED_000\" }'",
        "claudeCode": "claude mcp add --transport http ship24-tracking https://api.ship24.com/mcp -H \"Authorization: Bearer apik_your_key_here\"",
        "config": {
          "mcpServers": {
            "ship24-tracking": {
              "headers": {
                "Authorization": "Bearer apik_your_key_here"
              },
              "type": "http",
              "url": "https://api.ship24.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.tracking",
        "tool": "https://letme.dev/ship24"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Tracking API Pro, 1,000 shipments",
          "unit": "month",
          "usd": 39,
          "note": "$0.039 a shipment; tiers up to 1,000,000 a month"
        },
        {
          "item": "Extra tracked shipment",
          "unit": "tx",
          "usd": 0.045,
          "note": "on the 1,000 tier; $0.010 on the 1,000,000 tier"
        },
        {
          "item": "Per-call plan, 10,000 calls",
          "unit": "month",
          "usd": 99,
          "note": "separate subscription for `POST /tracking/search`"
        },
        {
          "item": "Extra per-call lookup",
          "unit": "call",
          "usd": 0.015,
          "note": "on the 10,000 tier; $0.007 on the 1.5 million tier"
        }
      ],
      "provenance": {
        "legalEntity": "Ship24 Limited",
        "domain": "ship24.com",
        "domainRegistered": "2005-09-18",
        "endpointOnVendorDomain": true,
        "terms": "https://www.ship24.com/terms",
        "privacy": "https://www.ship24.com/privacy-policy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms and Conditions say Ship24 Limited, a company registered in Hong Kong, is the party called Ship24, and place disputes with the courts of Hong Kong. They carry no date or version.",
          "The terms govern accounts, fees and the API, and say an Application developer and API agreement and a Data Processing Agreement also apply. Neither document was found on the site.",
          "The privacy policy was last updated in August 2026 and has a section on the MCP integration. It names UAB Clefino of Lithuania as a group company for the IOSS service.",
          "The about page lists offices in Hong Kong, Tremblay-en-France and Vilnius.",
          "www.ship24.com, docs.ship24.com and api.ship24.com have no security.txt. SECURITY.md in ship24-ai-plugin gives contact@ship24.com for reports.",
          "No status page and no API changelog were found. The Node SDK and the plugin each keep a CHANGELOG.md on GitHub.",
          "RDAP for ship24.com gives a registration date of 2005-09-18."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/ship24.json",
      "live": {
        "slug": "ship24",
        "probe": {
          "target": "https://api.ship24.com/public/v1",
          "method": "get",
          "lastAt": "2026-10-08T22:39:58.65233238Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 244,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 254,
          "p95ms24h": 369,
          "samples24h": 36,
          "samples30d": 36,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 36,
              "ok": 36
            }
          ]
        },
        "updatedAt": "2026-10-08T22:39:58.65233238Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Easyship Inc.",
        "b": "Ship24 Limited",
        "name": "Vendor"
      },
      {
        "a": "https://public-api.easyship.com",
        "b": "https://api.ship24.com/public/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "$0.05 per call",
        "b": "$0.045 per transaction",
        "name": "Price for shipping tracking"
      },
      {
        "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 Ship24's Terms and Conditions. The Node SDK and the AI plugin on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "25",
        "b": "12",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.easyship/mcp",
        "b": "com.ship24/tracking-mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-21",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2026-07-28",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-28",
        "b": "2026-08-01",
        "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": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "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": "0 stars, 79 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Easyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, Easyship or Ship24?"
      },
      {
        "answer": "Easyship takes an API key or an OAuth sign-in. Ship24 needs an API key.",
        "question": "Do Easyship and Ship24 need an API key?"
      },
      {
        "answer": "Yes. Easyship has a hosted endpoint at https://public-api.easyship.com and Ship24 at https://api.ship24.com/public/v1.",
        "question": "Can an agent call Easyship and Ship24 without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 45",
          "Schema \u0026 documentation, 87 against 81",
          "Agent ergonomics, 73 against 68",
          "Security \u0026 auth, 61 against 37",
          "Payments \u0026 pricing, 40 against 30",
          "Transparency \u0026 trust, 71 against 52"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "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, 80 against 56"
        ],
        "also": null,
        "goodFor": "An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone.",
        "slug": "ship24",
        "watchFor": "No status page was found. `status.ship24.com` doesn't resolve, and neither the site nor the docs link to one"
      }
    ],
    "job": {
      "capability": "shipping.tracking",
      "name": "Shipping tracking"
    },
    "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/easyship-vs-karrio.json",
        "title": "Easyship vs Karrio",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud.json",
        "title": "Easyship vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shipbob.json",
        "title": "Easyship vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shipbob"
      },
      {
        "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/easypost-vs-ship24.json",
        "title": "EasyPost vs Ship24",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-ship24.json",
        "title": "Karrio vs Ship24",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-ship24.json",
        "title": "Sendcloud vs Ship24",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-shipbob.json",
        "title": "Ship24 vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-shippo.json",
        "title": "Ship24 vs Shippo",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-shipstation.json",
        "title": "Ship24 vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-shipstation"
      }
    ],
    "scores": [
      {
        "by": 35,
        "easyship": 80,
        "edge": "easyship",
        "key": "reliability",
        "name": "Reliability",
        "ship24": 45,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "easyship": 87,
        "edge": "easyship",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "ship24": 81,
        "weight": 13
      },
      {
        "by": 5,
        "easyship": 73,
        "edge": "easyship",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "ship24": 68,
        "weight": 13
      },
      {
        "by": 24,
        "easyship": 61,
        "edge": "easyship",
        "key": "security",
        "name": "Security \u0026 auth",
        "ship24": 37,
        "weight": 14
      },
      {
        "by": 10,
        "easyship": 40,
        "edge": "easyship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "ship24": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 24,
        "easyship": 56,
        "edge": "ship24",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "ship24": 80,
        "weight": 7
      },
      {
        "by": 19,
        "easyship": 71,
        "edge": "easyship",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "ship24": 52,
        "weight": 7
      }
    ],
    "summary": "Easyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community. Both do shipping tracking.",
    "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.",
      "ship24": "The REST API and the hosted MCP server share one public OpenAPI 3.1 spec, numbered rate limits with Retry-After, and tracker creation that is idempotent by payload. No status page, SLA or security certification was found, API keys carry no scopes, and the API agreement and data processing agreement named in the terms aren't published."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easyship-vs-ship24",
    "json": "https://www.anchorterminal.com/compare/easyship-vs-ship24.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easyship-vs-ship24.md",
    "slim": "https://www.anchorterminal.com/compare/easyship-vs-ship24.min.md"
  },
  "markdown": "Easyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community. Both do shipping tracking.\n\n- Easyship: grade B, 68.8/100, rank #173 of 722. Markdown https://www.anchorterminal.com/tools/easyship.md · JSON https://www.anchorterminal.com/api/v1/tools/easyship.json\n- Ship24: grade C, 55/100, rank #522 of 722. Markdown https://www.anchorterminal.com/tools/ship24.md · JSON https://www.anchorterminal.com/api/v1/tools/ship24.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 45\n- Schema \u0026 documentation, 87 against 81\n- Agent ergonomics, 73 against 68\n- Security \u0026 auth, 61 against 37\n- Payments \u0026 pricing, 40 against 30\n- Transparency \u0026 trust, 71 against 52\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429\n\n### Ship24 (C)\n\nGood for: An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone.\n\nAhead on:\n- Maintenance \u0026 community, 80 against 56\n\nWatch for: No status page was found. `status.ship24.com` doesn't resolve, and neither the site nor the docs link to one\n\n\n## Score by category\n\n| Category | Weight | Easyship | Ship24 | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 45 | Easyship +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 81 | Easyship +6 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 68 | Easyship +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 37 | Easyship +24 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Easyship +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 80 | Ship24 +24 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 52 | Easyship +19 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **68.8 · B** | **55 · C** | |\n\n## Facts side by side\n\n| Fact | Easyship | Ship24 |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Easyship Inc. | Ship24 Limited |\n| Hosted endpoint | `https://public-api.easyship.com` | `https://api.ship24.com/public/v1` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Freemium | Freemium |\n| Price for shipping tracking | $0.05 per call | $0.045 per transaction |\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 Ship24's Terms and Conditions. The Node SDK and the AI plugin on GitHub are MIT |\n| Tools exposed | 25 | 12 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| MCP registry | `com.easyship/mcp` | `com.ship24/tracking-mcp` |\n| Last release | 2026-08-21 | 2026-10-06 |\n| Terms last updated | 2026-07-28 | no date given |\n| Privacy policy last updated | 2026-07-28 | 2026-08-01 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 0 stars, 79 PyPI/wk | 0 stars, 79 npm/wk |\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**Ship24.** The REST API and the hosted MCP server share one public OpenAPI 3.1 spec, numbered rate limits with Retry-After, and tracker creation that is idempotent by payload. No status page, SLA or security certification was found, API keys carry no scopes, and the API agreement and data processing agreement named in the terms aren't published.\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### Ship24\n\n1. Send `Authorization: Bearer apik_...` to `https://api.ship24.com/public/v1`. The same key works on the MCP server, which lists tools without a key but answers 401 on calls\n2. Store the `trackerId` or set a unique `clientTrackerId`. Tracking numbers aren't unique, and any changed field on a repeat `POST /trackers` creates a second tracker that uses quota\n3. Allow up to 60 seconds for the first `POST /trackers/track` or `POST /tracking/search` call, since results are fetched from the courier synchronously\n4. Cache `GET /couriers`. It is limited to one request a second and returns the whole courier list, and courier auto-detection usually makes `courierCode` unnecessary\n5. Check for `quota_limit_reached` and `no_active_subscription`. `POST /tracking/search` needs a separate per-call plan, and the free plan blocks at 10 shipments a month\n\n## Questions\n\n### Which is better for AI agents, Easyship or Ship24?\n\nEasyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community.\n\n### Do Easyship and Ship24 need an API key?\n\nEasyship takes an API key or an OAuth sign-in. Ship24 needs an API key.\n\n### Can an agent call Easyship and Ship24 without installing anything?\n\nYes. Easyship has a hosted endpoint at https://public-api.easyship.com and Ship24 at https://api.ship24.com/public/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easyship-vs-ship24.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easyship-vs-ship24.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easyship\", \"b\": \"ship24\"}`. From a terminal: `anchor compare easyship ship24`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easyship.json and https://www.anchorterminal.com/api/v1/tools/ship24.json\n\n## Other comparisons with Easyship or Ship24\n\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)\n- [Easyship vs Karrio](https://www.anchorterminal.com/compare/easyship-vs-karrio.md)\n- [Easyship vs Sendcloud](https://www.anchorterminal.com/compare/easyship-vs-sendcloud.md)\n- [Easyship vs ShipBob](https://www.anchorterminal.com/compare/easyship-vs-shipbob.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- [EasyPost vs Ship24](https://www.anchorterminal.com/compare/easypost-vs-ship24.md)\n- [Karrio vs Ship24](https://www.anchorterminal.com/compare/karrio-vs-ship24.md)\n- [Sendcloud vs Ship24](https://www.anchorterminal.com/compare/sendcloud-vs-ship24.md)\n- [Ship24 vs ShipBob](https://www.anchorterminal.com/compare/ship24-vs-shipbob.md)\n- [Ship24 vs Shippo](https://www.anchorterminal.com/compare/ship24-vs-shippo.md)\n- [Ship24 vs ShipStation API](https://www.anchorterminal.com/compare/ship24-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 Ship24",
        "url": ""
      }
    ],
    "description": "Easyship scores 68.8 (B) on agent readiness against Ship24's 55 (C), and leads in 6 of 7 scored categories. Ship24 leads on maintenance \u0026 community. Both do shipping tracking. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Easyship B 68.8",
      "Ship24 C 55",
      "scores"
    ],
    "h1": "Easyship vs Ship24",
    "image": "https://www.anchorterminal.com/assets/og/compare-easyship-vs-ship24.png",
    "path": "/compare/easyship-vs-ship24",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Easyship vs Ship24 for AI agents, B 68.8 vs C 55 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easyship-vs-ship24"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 730
  },
  "version": 1
}
