{
  "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 ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust.",
    "b": {
      "slug": "shipbob",
      "name": "ShipBob",
      "vendor": "ShipBob, Inc.",
      "vendorUrl": "https://www.shipbob.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Outsourced fulfilment service from ShipBob, Inc. of Chicago. Merchants send orders, products, inbound stock and returns to its warehouse network through a REST API with date-based versions, a hosted MCP server and webhooks, with a separate sandbox.",
      "url": "https://www.anchorterminal.com/tools/shipbob",
      "markdownUrl": "https://www.anchorterminal.com/tools/shipbob.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shipbob.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shipbob.json",
      "repo": "https://github.com/ShipBob/mcp-ai-tutorials",
      "license": "Proprietary service under ShipBob's Terms of Service. The MCP tutorials repository on GitHub has no licence file",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.shipbob.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve, with no review. A person signs up in a browser and creates a Personal Access Token in the dashboard under Integrations, API Tokens, sent as `Authorization: Bearer \u003ctoken\u003e`. These tokens have every scope, don't expire, act as the account's root user and can be revoked. Multi-user apps use the OAuth 2.0 authorisation code grant with PKCE at auth.shipbob.com, with read and write scopes per domain, one-hour access tokens and 30-day refresh tokens. The hosted MCP server uses OAuth with dynamic client registration, or a token as Bearer. Writes need a `shipbob_channel_id` header. Logistics API credentials come from a ShipBob representative.",
      "pricing": "paid",
      "pricingNotes": "Quote only. The pricing page names the fee types (implementation, receiving, storage, and pick, pack and ship) with no figures and a form for a quote. The developer docs say an account is free until physical inventory arrives and that the sandbox is free, so an agent can build and test without a contract. The API and MCP server carry no separate charge (https://www.shipbob.com/pricing/, https://developer.shipbob.com/introduction).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 73,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.shipbob.com",
      "llmsTxt": "https://developer.shipbob.com/llms.txt",
      "openapi": "https://marketplaceapi.shipbob.com/docs/2026-07.json",
      "capabilities": [
        "shipping.rates",
        "shipping.tracking",
        "shipping.returns",
        "shipping.labels"
      ],
      "tags": [
        "hosted",
        "paid",
        "sales-led",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-07-31",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.8,
        "grade": "C",
        "agentReady": false,
        "rank": 387,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 41,
          "payments": 20,
          "reliability": 77,
          "schema": 85,
          "security": 55,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "OAuth with PKCE and read and write scopes per domain, a free sandbox, a public OpenAPI spec per version and a 24-month support window for each API version are documented. Fulfilment prices are by quote only, the status page has no API component, no official SDK was found, and Personal Access Tokens never expire and carry full account access.",
        "bestFor": "An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns.",
        "strengths": [
          "OAuth 2.0 with PKCE, separate read and write scopes for nine domains, one-hour access tokens and 30-day refresh tokens",
          "Free sandbox at `sandbox-api.shipbob.com` with its own accounts, a test card number and a simulation terminal for shipments, receiving and stock changes",
          "OpenAPI 3.0 spec for each API version with 89 operations and 504 examples in 2026-07, plus llms.txt and a Markdown copy of each docs page",
          "A new API version each January and July, each supported for 24 months, with an upgrade guide per step",
          "Hosted MCP server with 73 tools, OAuth with dynamic client registration, and writes limited to the channel created at consent",
          "Rate limit of 150 requests a minute published, with `x-retry-after` and `x-remaining-calls` response headers"
        ],
        "weaknesses": [
          "No public price. Receiving, storage and pick, pack and ship fees come only in a quote from sales",
          "The status page lists the merchant dashboard and two warehouse systems, with no component for the API and no incident posted",
          "Personal Access Tokens don't expire and carry every scope, with no read-only option",
          "No official SDK was found, and the MCP server is not in the official MCP registry",
          "No idempotency key. A retried create is caught only by the unique `reference_id`, which returns 422",
          "No security.txt, disclosure policy or bug bounty was found, and no API uptime SLA is published"
        ],
        "agentNotes": [
          "Call `GET /2026-07/channel` first and send the ID of the channel with `_write` scopes in the `shipbob_channel_id` header on every write",
          "Build against `https://sandbox-api.shipbob.com` with a sandbox account. Sandbox and production accounts, tokens and data are separate",
          "Set a stable `reference_id` on each order, product and return. A duplicate returns 422, which is the only guard against a double create",
          "Stay under 150 requests a minute per user and application, and wait the seconds given in `x-retry-after` after a 429",
          "Over MCP, writes work only on records in the channel created at consent. A 403 or 404 on a cancel usually means the record belongs to another channel"
        ],
        "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": 60.8
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 41,
          "payments": 20,
          "reliability": 77,
          "schema": 85,
          "security": 55,
          "transparency": 69
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl -X GET \"https://api.shipbob.com/2026-07/channel\" \\\n  -H \"Authorization: Bearer YOUR_API_TOKEN\"",
        "claudeCode": "claude mcp add --transport http shipbob-mcp --scope user https://api.shipbob.com/developer-api/mcp",
        "config": {
          "mcpServers": {
            "shipbob": {
              "url": "https://api.shipbob.com/developer-api/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/shipbob"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "ShipBob, Inc.",
        "domain": "shipbob.com",
        "domainRegistered": "2014-03-12",
        "endpointOnVendorDomain": true,
        "terms": "https://www.shipbob.com/terms-of-service/",
        "privacy": "https://www.shipbob.com/privacy-policy/",
        "statusPage": "https://status.shipbob.com",
        "changelog": "https://developer.shipbob.com/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Service (updated 22 May 2026) define ShipBob as ShipBob, Inc. and its affiliates, give 120 N Racine Ave, Suite 100, Chicago, IL 60607, and are governed by Illinois law. They are the agreement for the fulfilment service and its platform, and no separate API terms were found.",
          "The privacy policy (last updated 29 March 2024) names ShipBob, Inc. and says it doesn't apply where commercial contracts govern the processing. Merchant data is covered by the DPA dated April 2026, which the terms incorporate.",
          "The API answers at api.shipbob.com and sandbox-api.shipbob.com, OAuth at auth.shipbob.com, and the MCP server at api.shipbob.com/developer-api/mcp. Sandbox accounts are created at webstage.shipbob.dev.",
          "security.txt returns 404 on www.shipbob.com, developer.shipbob.com and api.shipbob.com. No disclosure address was found on the trust page.",
          "RDAP for shipbob.com gives a registration date of 2014-03-12.",
          "The status page has components for the merchant dashboard and two warehouse systems, and none for the API."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shipbob.json",
      "live": {
        "slug": "shipbob",
        "probe": {
          "target": "https://api.shipbob.com",
          "method": "get",
          "lastAt": "2026-10-08T22:39:58.682153763Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 128,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 134,
          "p95ms24h": 297,
          "samples24h": 36,
          "samples30d": 36,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 36,
              "ok": 36
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shipbob.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T22:39:40.455114726Z"
        },
        "updatedAt": "2026-10-08T22:39:58.682153763Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Easyship Inc.",
        "b": "ShipBob, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://public-api.easyship.com",
        "b": "https://api.shipbob.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "$0.01 per call",
        "b": "not published",
        "name": "Price for shipping rates"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
        "b": "Proprietary service under ShipBob's Terms of Service. The MCP tutorials repository on GitHub has no licence file",
        "name": "Licence"
      },
      {
        "a": "25",
        "b": "73",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "com.easyship/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-08-21",
        "b": "2026-07-31",
        "name": "Last release"
      },
      {
        "a": "2026-07-28",
        "b": "2026-05-22",
        "name": "Terms last updated"
      },
      {
        "a": "2026-07-28",
        "b": "2024-03-29",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "0 stars, 79 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Easyship scores 68.8 (B) on agent readiness against ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, Easyship or ShipBob?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Easyship and ShipBob need an API key?"
      },
      {
        "answer": "Yes. Easyship has a hosted endpoint at https://public-api.easyship.com and ShipBob at https://api.shipbob.com.",
        "question": "Can an agent call Easyship and ShipBob without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 73 against 56",
          "Security \u0026 auth, 61 against 55",
          "Payments \u0026 pricing, 40 against 20",
          "Maintenance \u0026 community, 56 against 41"
        ],
        "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": [
          "Transparency \u0026 trust, 77 against 71"
        ],
        "also": null,
        "goodFor": "An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns.",
        "slug": "shipbob",
        "watchFor": "No public price. Receiving, storage and pick, pack and ship fees come only in a quote from sales"
      }
    ],
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-easyship.json",
        "title": "EasyPost vs Easyship",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-easyship"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shipbob.json",
        "title": "EasyPost vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shipbob"
      },
      {
        "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-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/karrio-vs-shipbob.json",
        "title": "Karrio vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipbob.json",
        "title": "Sendcloud vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipbob-vs-shippo.json",
        "title": "ShipBob vs Shippo",
        "url": "https://www.anchorterminal.com/compare/shipbob-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipbob-vs-shipstation.json",
        "title": "ShipBob vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/shipbob-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-ship24.json",
        "title": "Easyship vs Ship24",
        "url": "https://www.anchorterminal.com/compare/easyship-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"
      }
    ],
    "scores": [
      {
        "by": 3,
        "easyship": 80,
        "edge": "easyship",
        "key": "reliability",
        "name": "Reliability",
        "shipbob": 77,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 2,
        "easyship": 87,
        "edge": "easyship",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "shipbob": 85,
        "weight": 13
      },
      {
        "by": 17,
        "easyship": 73,
        "edge": "easyship",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "shipbob": 56,
        "weight": 13
      },
      {
        "by": 6,
        "easyship": 61,
        "edge": "easyship",
        "key": "security",
        "name": "Security \u0026 auth",
        "shipbob": 55,
        "weight": 14
      },
      {
        "by": 20,
        "easyship": 40,
        "edge": "easyship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "shipbob": 20,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "easyship": 56,
        "edge": "easyship",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "shipbob": 41,
        "weight": 7
      },
      {
        "by": 6,
        "easyship": 71,
        "edge": "shipbob",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "shipbob": 77,
        "weight": 7
      }
    ],
    "summary": "Easyship scores 68.8 (B) on agent readiness against ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust. Both do shipping rates.",
    "verdicts": {
      "easyship": "Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.",
      "shipbob": "OAuth with PKCE and read and write scopes per domain, a free sandbox, a public OpenAPI spec per version and a 24-month support window for each API version are documented. Fulfilment prices are by quote only, the status page has no API component, no official SDK was found, and Personal Access Tokens never expire and carry full account access."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easyship-vs-shipbob",
    "json": "https://www.anchorterminal.com/compare/easyship-vs-shipbob.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easyship-vs-shipbob.md",
    "slim": "https://www.anchorterminal.com/compare/easyship-vs-shipbob.min.md"
  },
  "markdown": "Easyship scores 68.8 (B) on agent readiness against ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust. Both do shipping rates.\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- ShipBob: grade C, 60.8/100, rank #387 of 722. Markdown https://www.anchorterminal.com/tools/shipbob.md · JSON https://www.anchorterminal.com/api/v1/tools/shipbob.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- Agent ergonomics, 73 against 56\n- Security \u0026 auth, 61 against 55\n- Payments \u0026 pricing, 40 against 20\n- Maintenance \u0026 community, 56 against 41\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### ShipBob (C)\n\nGood for: An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns.\n\nAhead on:\n- Transparency \u0026 trust, 77 against 71\n\nWatch for: No public price. Receiving, storage and pick, pack and ship fees come only in a quote from sales\n\n\n## Score by category\n\n| Category | Weight | Easyship | ShipBob | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 77 | Easyship +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 87 | 85 | Easyship +2 |\n| Agent ergonomics | 13% (16.2 this run) | 73 | 56 | Easyship +17 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 55 | Easyship +6 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 20 | Easyship +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 56 | 41 | Easyship +15 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 71 | 77 | ShipBob +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **68.8 · B** | **60.8 · C** | |\n\n## Facts side by side\n\n| Fact | Easyship | ShipBob |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Easyship Inc. | ShipBob, Inc. |\n| Hosted endpoint | `https://public-api.easyship.com` | `https://api.shipbob.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| Price for shipping rates | $0.01 per call | not published |\n| x402 | no | no |\n| Licence | Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT | Proprietary service under ShipBob's Terms of Service. The MCP tutorials repository on GitHub has no licence file |\n| Tools exposed | 25 | 73 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `com.easyship/mcp` | not listed |\n| Last release | 2026-08-21 | 2026-07-31 |\n| Terms last updated | 2026-07-28 | 2026-05-22 |\n| Privacy policy last updated | 2026-07-28 | 2024-03-29 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 0 stars, 79 PyPI/wk | none |\n\n## Verdicts\n\n**Easyship.** Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.\n\n**ShipBob.** OAuth with PKCE and read and write scopes per domain, a free sandbox, a public OpenAPI spec per version and a 24-month support window for each API version are documented. Fulfilment prices are by quote only, the status page has no API component, no official SDK was found, and Personal Access Tokens never expire and carry full account access.\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### ShipBob\n\n1. Call `GET /2026-07/channel` first and send the ID of the channel with `_write` scopes in the `shipbob_channel_id` header on every write\n2. Build against `https://sandbox-api.shipbob.com` with a sandbox account. Sandbox and production accounts, tokens and data are separate\n3. Set a stable `reference_id` on each order, product and return. A duplicate returns 422, which is the only guard against a double create\n4. Stay under 150 requests a minute per user and application, and wait the seconds given in `x-retry-after` after a 429\n5. Over MCP, writes work only on records in the channel created at consent. A 403 or 404 on a cancel usually means the record belongs to another channel\n\n## Questions\n\n### Which is better for AI agents, Easyship or ShipBob?\n\nEasyship scores 68.8 (B) on agent readiness against ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust.\n\n### Do Easyship and ShipBob need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Easyship and ShipBob without installing anything?\n\nYes. Easyship has a hosted endpoint at https://public-api.easyship.com and ShipBob at https://api.shipbob.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easyship-vs-shipbob.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easyship-vs-shipbob.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easyship\", \"b\": \"shipbob\"}`. From a terminal: `anchor compare easyship shipbob`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easyship.json and https://www.anchorterminal.com/api/v1/tools/shipbob.json\n\n## Other comparisons with Easyship or ShipBob\n\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)\n- [EasyPost vs ShipBob](https://www.anchorterminal.com/compare/easypost-vs-shipbob.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 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- [Karrio vs ShipBob](https://www.anchorterminal.com/compare/karrio-vs-shipbob.md)\n- [Sendcloud vs ShipBob](https://www.anchorterminal.com/compare/sendcloud-vs-shipbob.md)\n- [ShipBob vs Shippo](https://www.anchorterminal.com/compare/shipbob-vs-shippo.md)\n- [ShipBob vs ShipStation API](https://www.anchorterminal.com/compare/shipbob-vs-shipstation.md)\n- [Easyship vs Ship24](https://www.anchorterminal.com/compare/easyship-vs-ship24.md)\n- [Ship24 vs ShipBob](https://www.anchorterminal.com/compare/ship24-vs-shipbob.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 ShipBob",
        "url": ""
      }
    ],
    "description": "Easyship scores 68.8 (B) on agent readiness against ShipBob's 60.8 (C), and leads in 6 of 7 scored categories. ShipBob leads on transparency \u0026 trust. Both do shipping rates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Easyship B 68.8",
      "ShipBob C 60.8",
      "scores"
    ],
    "h1": "Easyship vs ShipBob",
    "image": "https://www.anchorterminal.com/assets/og/compare-easyship-vs-shipbob.png",
    "path": "/compare/easyship-vs-shipbob",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Easyship vs ShipBob for AI agents, B 68.8 vs C 60.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easyship-vs-shipbob"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 680
  },
  "version": 1
}
