{
  "data": {
    "a": {
      "slug": "easypost",
      "name": "EasyPost",
      "vendor": "Simpler Postage, Inc. (d/b/a EasyPost)",
      "vendorUrl": "https://www.easypost.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "EasyPost is a multi-carrier shipping API from Simpler Postage, Inc. Its REST API quotes carrier rates, buys labels, verifies addresses, tracks parcels and files refunds and insurance claims, with a hosted read-only MCP server in early release.",
      "url": "https://www.anchorterminal.com/tools/easypost",
      "markdownUrl": "https://www.anchorterminal.com/tools/easypost.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/easypost.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/easypost.json",
      "repo": "https://github.com/EasyPost/easypost-node",
      "license": "Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.easypost.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@easypost/api"
        },
        {
          "registry": "pypi",
          "name": "easypost"
        },
        {
          "registry": "go",
          "name": "github.com/EasyPost/easypost-go/v5"
        }
      ],
      "auth": "api-key",
      "authNotes": "A self-serve API key, sent as the HTTP Basic username with an empty password. The docs say a wallet and a ship-from address must be set up before keys can be seen or generated. Test and production keys exist, both with full account access, and they can be created, disabled, enabled and deleted through /api_keys or the dashboard. The hosted MCP server takes a production key as a Bearer token. No OAuth, partner review or sales approval is needed for the core API.",
      "pricing": "freemium",
      "pricingNotes": "Free for up to 3,000 labels on wallet carriers, with postage charged separately and a per-label fee after that which the pricing page doesn't state. Bringing your own carrier accounts costs $20 a month plus a per-label fee. Tracking is listed at $0.01 to $0.03 a shipment and insurance at 1 per cent of value, minimum $1.00. Test keys cost nothing, so an agent can build without a contract. Forge, GlobalShip and Luma are priced by sales (checked 2026-10-07).",
      "priceSummary": "$0.02 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the pricing page or the legal centre (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 149,
        "npmWeekly": 99736,
        "pypiWeekly": 41831,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://docs.easypost.com",
      "llmsTxt": "https://docs.easypost.com/llms.txt",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "llms-txt",
        "mcp",
        "webhooks",
        "sandbox",
        "free-tier",
        "python",
        "typescript",
        "go",
        "java",
        "php",
        "ruby",
        "dotnet",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.3,
        "grade": "C",
        "agentReady": false,
        "rank": 468,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 53,
          "schema": 55,
          "security": 47,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.",
        "bestFor": "An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.",
        "strengths": [
          "llms.txt, a Markdown copy of almost every docs page and a JSON page index with a note on when to read each page",
          "Test API keys run the rate, buy, track and webhook flow at no cost, with no postage bought and no carrier contacted",
          "Seven official SDKs (C#, Go, Java, Node, PHP, Python, Ruby), with Go 5.10.1 on 29 September 2026 and PHP 8.8.3 on 8 September",
          "Dated release notes almost every week, 10 entries between 12 July and 28 September 2026",
          "The data processing addendum names 12 subprocessors with purpose and country, and the legal centre keeps every past version of each agreement"
        ],
        "weaknesses": [
          "No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace",
          "No idempotency keys were found, and `reference` on a shipment isn't unique, so a retried buy can purchase a second label",
          "API keys allow full account access. Test and production modes and child users are the only separation, with no read-only or scoped key",
          "An outage on 23 July 2026 at the hosting provider affected all operations for about four and a half hours. Two carrier-side incidents were marked major in the same 90 days",
          "The Master Customer Agreement supplies the service as is, with no uptime commitment, and the per-label fee after 3,000 free labels isn't on the pricing page"
        ],
        "agentNotes": [
          "Use a test API key while building. It buys no postage and contacts no carrier, and test tracking codes simulate each tracking status",
          "Don't blind-retry `POST /shipments/:id/buy` after a timeout. Retrieve the shipment first and check for `postage_label`, since no idempotency key exists",
          "Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer token on the MCP server",
          "Handle `errors` as either an array of objects or an array of strings. The docs say both shapes occur",
          "Pass a scoped `carrier_accounts` list when rating. Only the first 60 accounts are rated and the call doesn't fail when more are enabled"
        ],
        "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": 54.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 53,
          "schema": 55,
          "security": 47,
          "transparency": 53
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "npm install @easypost/api",
        "http": "curl -u \"$EASYPOST_API_KEY\": https://api.easypost.com/v2/shipments",
        "claudeCode": "claude mcp add --scope project --transport http easypost \\\n  https://app-api.easypost.com/mcp \\\n  --header 'Authorization: Bearer ${EASYPOST_API_KEY}'",
        "config": {
          "mcpServers": {
            "easypost": {
              "headers": {
                "Authorization": "Bearer ${EASYPOST_API_KEY}"
              },
              "type": "http",
              "url": "https://app-api.easypost.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/easypost"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Extra tracker call",
          "unit": "call",
          "usd": 0.02,
          "note": "one included with each label bought"
        },
        {
          "item": "Extra US address verification",
          "unit": "call",
          "usd": 0.02,
          "note": "one included with each label bought; $0.06 outside the US"
        },
        {
          "item": "Extra rating call",
          "unit": "call",
          "usd": 0.02,
          "note": "three included with each label bought"
        },
        {
          "item": "SmartRate call",
          "unit": "call",
          "usd": 0.03
        },
        {
          "item": "Bring your own carrier accounts",
          "unit": "month",
          "usd": 20,
          "note": "plus a per-label fee not stated on the pricing page"
        }
      ],
      "provenance": {
        "legalEntity": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "domain": "easypost.com",
        "domainRegistered": "1998-01-18",
        "endpointOnVendorDomain": true,
        "terms": "https://legal.easypost.com/#mca",
        "privacy": "https://legal.easypost.com/#privacy-policy",
        "statusPage": "https://www.easypoststatus.com",
        "changelog": "https://docs.easypost.com/releases",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The Master Customer Agreement (version 6.1, effective 25 August 2026) names Simpler Postage, Inc. (d/b/a EasyPost), 2600 N. Ashton Blvd., Suite 300A, Lehi, UT 84043.",
          "www.easypost.com/.well-known/security.txt and api.easypost.com/.well-known/security.txt return 404. The legal centre carries a Responsible Disclosure Policy with the contact security-abuse@easypost.com.",
          "The privacy policy and the Data Protection Addendum are both version 1.0, effective 18 August 2025. The addendum's Annex D lists 12 subprocessors, all in the USA.",
          "The MCP server is on app-api.easypost.com and the REST API on api.easypost.com. The status page is on a separate domain, easypoststatus.com.",
          "trust.easypost.com answered 403 to our reader, so certifications are taken only from the addendum, which refers to a SOC 2 Type 2 report."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/easypost.json",
      "live": {
        "slug": "easypost",
        "probe": {
          "target": "https://api.easypost.com/v2",
          "method": "get",
          "lastAt": "2026-10-08T18:20:29.276874515Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 616,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 621,
          "p95ms24h": 731,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.easypoststatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T18:21:57.327218266Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "EasyPost/easypost-node",
            "version": "v8.9.0",
            "released": "2026-06-25",
            "seenAt": "2026-10-08T16:09:51.321427764Z"
          },
          {
            "registry": "npm",
            "name": "@easypost/api",
            "version": "8.9.0",
            "seenAt": "2026-10-08T16:09:46.909448157Z"
          },
          {
            "registry": "pypi",
            "name": "easypost",
            "version": "10.7.0",
            "released": "2026-06-25",
            "seenAt": "2026-10-08T16:09:51.109480743Z"
          }
        ],
        "githubStars": 149,
        "npmWeekly": 99736,
        "pypiWeekly": 43392,
        "securityTxt": {
          "url": "https://easypost.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:46.376321685Z"
        },
        "pages": [
          {
            "url": "https://docs.easypost.com/releases",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:43.380604863Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdf82a55e910"
          },
          {
            "url": "https://legal.easypost.com/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:24.366175945Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c3f1c1d70fd7"
          }
        ],
        "updatedAt": "2026-10-08T18:21:57.327218266Z"
      }
    },
    "answer": "Easyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community.",
    "b": {
      "slug": "easyship",
      "name": "Easyship",
      "vendor": "Easyship Inc.",
      "vendorUrl": "https://www.easyship.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Multi-carrier shipping platform from Easyship. Its public API and hosted MCP server quote courier rates, create shipments, buy labels, validate addresses, track parcels and book pickups across what Easyship says are 550+ courier services.",
      "url": "https://www.anchorterminal.com/tools/easyship",
      "markdownUrl": "https://www.anchorterminal.com/tools/easyship.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/easyship.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/easyship.json",
      "repo": "https://github.com/easyship/easyship-mcp-plugin",
      "license": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://public-api.easyship.com",
      "packages": [
        {
          "registry": "pypi",
          "name": "easyship-mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up, opens Connect in the dashboard, creates an API Integration and copies a Bearer token. On v2024-09 the token carries scopes of the form `public.\u003cresource\u003e:read` or `:write`, editable later, and some scopes (advanced or beta functions) are granted by Easyship on request. Sandbox tokens start `sand_` and production tokens `prod_`. Partner apps that connect other Easyship users register through a form and use OAuth 2.0 authorisation code. The MCP server accepts the same Bearer token, and also publishes OAuth metadata with PKCE and dynamic client registration.",
      "pricing": "freemium",
      "pricingNotes": "Free plan with no card, 50 shipments a month in the US, and a sandbox, so an agent's owner can start without a contract. Plus is US$29 a month and Premier US$69, with Scale tiers from US$99 and Enterprise on request. Labels are charged at the courier rate the API quotes. Rates, address validation, tax and duty, HS code and off-platform tracking calls are metered, pay-as-you-go on Free and with monthly quotas on paid plans. Prices vary by country (https://www.easyship.com/plans, US figures, checked 2026-10-07).",
      "priceSummary": "$29 / mo",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the plans page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": null,
        "pypiWeekly": 79,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://developers.easyship.com",
      "llmsTxt": "https://developers.easyship.com/llms.txt",
      "openapi": "https://developers.easyship.com/reference/rates_request.md",
      "registryName": "com.easyship/mcp",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "sandbox",
        "webhooks",
        "python",
        "status-page"
      ],
      "lastRelease": "2026-08-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 68.8,
        "grade": "B",
        "agentReady": false,
        "rank": 163,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 40,
          "reliability": 80,
          "schema": 87,
          "security": 61,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.",
        "bestFor": "An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts.",
        "strengths": [
          "Tokens carry per-resource read and write scopes, with separate sandbox (sand_) and production (prod_) tokens",
          "Hosted MCP server at mcp.easyship.com with 25 tools, each carrying readOnlyHint, destructiveHint and openWorldHint",
          "llms.txt and a Markdown twin of every reference page, each with its OpenAPI 3.0.3 definition",
          "Free plan with no card and 50 shipments a month in the US, and per-call prices for the metered endpoints",
          "status.easyship.com lists no incident since 5 December 2025"
        ],
        "weaknesses": [
          "No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429",
          "The MCP server has no test mode, so a label bought through it is charged",
          "API changelog's last entry is 30 October 2025, and no deprecation policy was found",
          "security.txt expired on 5 October 2025, and the sub-processor list is dated 15 October 2020",
          "No official SDKs found, and the published limit is 60 requests a minute"
        ],
        "agentNotes": [
          "Use a sand_ token against https://public-api-sandbox.easyship.com for API tests. Production rejects sandbox tokens, and sandbox allows 6 requests a minute",
          "The MCP server calls production only. Create the shipment without buy_label first, then call create_label once the user confirms the courier and price",
          "Don't retry a timed-out label purchase blindly. There's no idempotency key, so read the shipment's label_state first",
          "Give every item a category or an hs_code. The API rejects shipments and rates requests that have neither",
          "Stay under 60 requests a minute and 10 a second, and wait for the next window on 429"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 68.8
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 56,
          "payments": 40,
          "reliability": 80,
          "schema": 87,
          "security": 61,
          "transparency": 51
        },
        "provenanceScore": 91
      },
      "connect": {
        "http": "curl -X POST https://public-api.easyship.com/2024-09/rates \\\n  -H \"Authorization: Bearer $EASYSHIP_API_ACCESS_TOKEN\" -H \"Content-Type: application/json\" \\\n  -d @rates-request.json",
        "claudeCode": "claude mcp add --transport http easyship \\\n  https://mcp.easyship.com/mcp \\\n  --header 'Authorization: Bearer YOUR_TOKEN'",
        "config": {
          "mcpServers": {
            "easyship": {
              "headers": {
                "Authorization": "Bearer YOUR_TOKEN"
              },
              "url": "https://mcp.easyship.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/easyship"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Free plan",
          "unit": "month",
          "usd": 0,
          "note": "US, 50 shipments a month, 1 team member"
        },
        {
          "item": "Plus plan",
          "unit": "month",
          "usd": 29,
          "note": "US, billed monthly; $23 billed annually; 500 shipments, 2,000 rates calls included"
        },
        {
          "item": "Premier plan",
          "unit": "month",
          "usd": 69,
          "note": "US, billed monthly; $55 billed annually; 2,500 shipments, 10,000 rates calls included"
        },
        {
          "item": "Rates API call",
          "unit": "call",
          "usd": 0.01,
          "note": "Free plan pay-as-you-go; $0.008 on Plus and $0.007 on Premier beyond the included quota"
        },
        {
          "item": "US address validation",
          "unit": "call",
          "usd": 0.02,
          "note": "Free and Plus; $0.01 on Premier"
        },
        {
          "item": "International address validation",
          "unit": "call",
          "usd": 0.08,
          "note": "Free plan; $0.07 on Plus, $0.06 on Premier"
        },
        {
          "item": "Tax and duty calculation",
          "unit": "call",
          "usd": 0.11,
          "note": "Free and Plus; $0.10 on Premier"
        },
        {
          "item": "Off-platform tracking",
          "unit": "call",
          "usd": 0.05,
          "note": "Free plan; $0.04 on Plus and Premier. Tracking of Easyship's own shipments is free"
        }
      ],
      "provenance": {
        "legalEntity": "Easyship Inc.",
        "domain": "easyship.com",
        "domainRegistered": "2001-02-22",
        "endpointOnVendorDomain": true,
        "terms": "https://www.easyship.com/legal/terms/us",
        "privacy": "https://www.easyship.com/legal/privacy-policy",
        "statusPage": "https://status.easyship.com",
        "changelog": "https://developers.easyship.com/reference/changelog",
        "securityTxt": "expired",
        "checked": "2026-10-07",
        "notes": [
          "The terms overview (last updated 12 August 2022) names a contracting entity by origin country. Easyship Inc., 61 Broadway, Suite 1705, New York for the United States, Easyship Fulfillment Services Ltd. in Hong Kong for countries not listed, and others for Australia, Canada, the Netherlands, Singapore and the United Kingdom.",
          "The US terms were last updated on 28 July 2026 and promise 30 days' notice of material changes.",
          "The API answers at public-api.easyship.com and the MCP server at mcp.easyship.com, both on the vendor's domain.",
          "www.easyship.com/.well-known/security.txt carries Expires 2025-10-05 and a Policy link to https://vdp.easyship.com.",
          "RDAP for easyship.com gives a registration date of 2001-02-22."
        ],
        "score": 91
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/easyship.json",
      "live": {
        "slug": "easyship",
        "probe": {
          "target": "https://public-api.easyship.com",
          "method": "get",
          "lastAt": "2026-10-08T18:20:29.286038003Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 640,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 788,
          "p95ms24h": 1772,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.easyship.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T18:21:57.427080033Z"
        },
        "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"
          }
        ],
        "updatedAt": "2026-10-08T18:21:57.427080033Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "b": "Easyship Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.easypost.com/v2",
        "b": "https://public-api.easyship.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$0.01 per call",
        "name": "Price for shipping rates"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC",
        "b": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "com.easyship/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-09-28",
        "b": "2026-08-21",
        "name": "Last release"
      },
      {
        "a": "2026-08-25",
        "b": "2026-07-28",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "2026-07-28",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "149 stars, 100k npm/wk, 42k PyPI/wk",
        "b": "0 stars, 79 PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Easyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community.",
        "question": "Which is better for AI agents, EasyPost or Easyship?"
      },
      {
        "answer": "EasyPost needs an API key. Easyship takes an API key or an OAuth sign-in.",
        "question": "Do EasyPost and Easyship need an API key?"
      },
      {
        "answer": "Yes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and Easyship at https://public-api.easyship.com.",
        "question": "Can an agent call EasyPost and Easyship without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 85 against 56"
        ],
        "also": null,
        "goodFor": "An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.",
        "slug": "easypost",
        "watchFor": "No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 53",
          "Schema \u0026 documentation, 87 against 55",
          "Agent ergonomics, 73 against 63",
          "Security \u0026 auth, 61 against 47",
          "Payments \u0026 pricing, 40 against 22"
        ],
        "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"
      }
    ],
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.json",
        "title": "EasyPost vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shippo.json",
        "title": "EasyPost vs Shippo",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shipstation.json",
        "title": "EasyPost vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shipstation"
      },
      {
        "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"
      }
    ],
    "scores": [
      {
        "by": 27,
        "easypost": 53,
        "easyship": 80,
        "edge": "easyship",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 32,
        "easypost": 55,
        "easyship": 87,
        "edge": "easyship",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 10,
        "easypost": 63,
        "easyship": 73,
        "edge": "easyship",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 14,
        "easypost": 47,
        "easyship": 61,
        "edge": "easyship",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 18,
        "easypost": 22,
        "easyship": 40,
        "edge": "easyship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 29,
        "easypost": 85,
        "easyship": 56,
        "edge": "easypost",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 1,
        "easypost": 70,
        "easyship": 71,
        "edge": "easyship",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Easyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community. Both do shipping rates.",
    "verdicts": {
      "easypost": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.",
      "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easypost-vs-easyship",
    "json": "https://www.anchorterminal.com/compare/easypost-vs-easyship.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easypost-vs-easyship.md",
    "slim": "https://www.anchorterminal.com/compare/easypost-vs-easyship.min.md"
  },
  "markdown": "Easyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community. Both do shipping rates.\n\n- EasyPost: grade C, 54.3/100, rank #468 of 629. Markdown https://www.anchorterminal.com/tools/easypost.md · JSON https://www.anchorterminal.com/api/v1/tools/easypost.json\n- Easyship: grade B, 68.8/100, rank #163 of 629. Markdown https://www.anchorterminal.com/tools/easyship.md · JSON https://www.anchorterminal.com/api/v1/tools/easyship.json\n\n## Which one, for what\n\n### EasyPost (C)\n\nGood for: An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.\n\nAhead on:\n- Maintenance \u0026 community, 85 against 56\n\nWatch for: No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace\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 53\n- Schema \u0026 documentation, 87 against 55\n- Agent ergonomics, 73 against 63\n- Security \u0026 auth, 61 against 47\n- Payments \u0026 pricing, 40 against 22\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\n## Score by category\n\n| Category | Weight | EasyPost | Easyship | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 80 | Easyship +27 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 87 | Easyship +32 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 73 | Easyship +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 61 | Easyship +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 22 | 40 | Easyship +18 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 56 | EasyPost +29 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 71 | Easyship +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **54.3 · C** | **68.8 · B** | |\n\n## Facts side by side\n\n| Fact | EasyPost | Easyship |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Simpler Postage, Inc. (d/b/a EasyPost) | Easyship Inc. |\n| Hosted endpoint | `https://api.easypost.com/v2` | `https://public-api.easyship.com` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| Price for shipping rates | not published | $0.01 per call |\n| x402 | no | no |\n| Licence | Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC | Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT |\n| Tools exposed | none | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `com.easyship/mcp` |\n| Last release | 2026-09-28 | 2026-08-21 |\n| Terms last updated | 2026-08-25 | 2026-07-28 |\n| Privacy policy last updated | 2026-08-25 | 2026-07-28 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n| Popularity | 149 stars, 100k npm/wk, 42k PyPI/wk | 0 stars, 79 PyPI/wk |\n\n## Verdicts\n\n**EasyPost.** Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.\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## Before you call either\n\n### EasyPost\n\n1. Use a test API key while building. It buys no postage and contacts no carrier, and test tracking codes simulate each tracking status\n2. Don't blind-retry `POST /shipments/:id/buy` after a timeout. Retrieve the shipment first and check for `postage_label`, since no idempotency key exists\n3. Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer token on the MCP server\n4. Handle `errors` as either an array of objects or an array of strings. The docs say both shapes occur\n5. Pass a scoped `carrier_accounts` list when rating. Only the first 60 accounts are rated and the call doesn't fail when more are enabled\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## Questions\n\n### Which is better for AI agents, EasyPost or Easyship?\n\nEasyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community.\n\n### Do EasyPost and Easyship need an API key?\n\nEasyPost needs an API key. Easyship takes an API key or an OAuth sign-in.\n\n### Can an agent call EasyPost and Easyship without installing anything?\n\nYes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and Easyship at https://public-api.easyship.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easypost-vs-easyship.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easypost-vs-easyship.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easypost\", \"b\": \"easyship\"}`. From a terminal: `anchor compare easypost easyship`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easypost.json and https://www.anchorterminal.com/api/v1/tools/easyship.json\n\n## Other comparisons with EasyPost or Easyship\n\n- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)\n- [EasyPost vs Shippo](https://www.anchorterminal.com/compare/easypost-vs-shippo.md)\n- [EasyPost vs ShipStation API](https://www.anchorterminal.com/compare/easypost-vs-shipstation.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",
  "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": "EasyPost vs Easyship",
        "url": ""
      }
    ],
    "description": "Easyship scores 68.8 (B) on agent readiness against EasyPost's 54.3 (C), and leads in 6 of 7 scored categories. EasyPost leads on maintenance \u0026 community. Both do shipping rates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "EasyPost C 54.3",
      "Easyship B 68.8",
      "scores"
    ],
    "h1": "EasyPost vs Easyship",
    "image": "https://www.anchorterminal.com/assets/og/compare-easypost-vs-easyship.png",
    "path": "/compare/easypost-vs-easyship",
    "published": "2026-10-01",
    "section": "tools",
    "title": "EasyPost vs Easyship for AI agents, C 54.3 vs B 68.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easypost-vs-easyship"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 780
  },
  "version": 1
}
