{
  "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-08T19:08:45.499007427Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 609,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 621,
          "p95ms24h": 709,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.easypoststatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:35.315062328Z"
        },
        "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-08T19:08:45.499007427Z"
      }
    },
    "answer": "Sendcloud scores 62 (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": "sendcloud",
      "name": "Sendcloud",
      "vendor": "Sendcloud B.V.",
      "vendorUrl": "https://www.sendcloud.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Shipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled.",
      "url": "https://www.anchorterminal.com/tools/sendcloud",
      "markdownUrl": "https://www.anchorterminal.com/tools/sendcloud.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendcloud.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendcloud.json",
      "license": "Proprietary service under Sendcloud's terms and conditions",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.sendcloud.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up at account.sendcloud.com, adds an invoice and sender address, then creates a Sendcloud API integration in the panel, which issues a public and secret key pair. The pair works as HTTP Basic or is exchanged at https://account.sendcloud.com/oauth2/token for a one-hour Bearer token (client credentials, scope `api`). The MCP server uses an OAuth 2.0 sign-in at account.sendcloud.com, found through RFC 9728 metadata, with the same single scope. No partner or sales approval is needed for API v3.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at €0 for up to 20 parcels a month at Sendcloud's carrier rates, and a 14-day trial of paid plans with no card per the pricing page. Lite is €28 a month plus €0.10 a label, Growth €87 plus €0.09, Premium €175 plus €0.08, Pro €639 plus €0.07, Enterprise on request, with 20 per cent off for yearly billing. Carrier postage is extra. There is no sandbox, but 50 Unstamped letter test labels are free. The pricing table has an API access row whose per-plan marks we couldn't read (https://www.sendcloud.com/pricing/).",
      "priceSummary": "$31.30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://sendcloud.dev",
      "llmsTxt": "https://sendcloud.dev/llms.txt",
      "openapi": "https://sendcloud.dev/.openapi/v3/shipments/openapi.yaml",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "europe",
        "iso27001"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62,
        "grade": "B",
        "agentReady": false,
        "rank": 314,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 37,
          "reliability": 68,
          "schema": 89,
          "security": 49,
          "transparency": 72
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": -3,
        "negativeNotes": [
          "21 and 25 September 2026. The API v3 changelog records `insurance.currency` and `insurance.value` removed from POST /parcels/tracking, and `status_code`, `status_description` and `sub_status_code` removed from tracking event responses, with no earlier deprecation entry for those fields. The changes are documented on the day, so the deduction is the minimum (https://sendcloud.dev/api/v3/changelog.md)"
        ],
        "verdict": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.",
        "bestFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "strengths": [
          "29 public OpenAPI 3.1 specs covering 104 API v3 operations, with an llms.txt index and Markdown copies of every docs page",
          "Hosted MCP server at mcp.sendcloud.com/mcp with 24 toolsets, a `?toolsets=` filter and read-only, idempotent and destructive annotations per the docs",
          "A repeated `external_reference_id` on shipment creation returns the existing shipment with a 409 instead of buying a second label",
          "Free test labels through the `sendcloud:letter` and `sendcloud:letterreturn` shipping options, up to 50 before charges apply",
          "Dated API v3 changelog with 37 entries between 9 July and 5 October 2026"
        ],
        "weaknesses": [
          "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation",
          "Changelog entries of 21 and 25 September 2026 record removed request and response fields on parcel tracking with no earlier deprecation entry",
          "No Retry-After header or backoff guidance was found for 429 responses",
          "No official SDK was found in the reviewed documentation, and the MCP server isn't in the official MCP registry",
          "No test environment. Labels other than the Unstamped letter options are charged unless the carrier accepts a cancellation"
        ],
        "agentNotes": [
          "Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026",
          "Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline",
          "Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label",
          "Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status",
          "Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62
          }
        ],
        "editorialScores": {
          "ergonomics": 71,
          "maintenance": 67,
          "payments": 37,
          "reliability": 68,
          "schema": 89,
          "security": 49,
          "transparency": 62
        },
        "provenanceScore": 81
      },
      "connect": {
        "http": "curl -X POST --location \"https://account.sendcloud.com/oauth2/token\" \\\n  --header \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\u0026scope=api\" \\\n  --basic --user your_sendcloud_public_key:your_sendcloud_private_key",
        "claudeCode": "claude mcp add --transport http sendcloud https://mcp.sendcloud.com/mcp",
        "config": {
          "mcpServers": {
            "sendcloud": {
              "type": "http",
              "url": "https://mcp.sendcloud.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/sendcloud"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Lite plan",
          "unit": "month",
          "usd": 31.3,
          "note": "€28, 400 labels a month, plus €0.10 a label"
        },
        {
          "item": "Growth plan",
          "unit": "month",
          "usd": 97.24,
          "note": "€87, 1,000 labels a month, plus €0.09 a label"
        },
        {
          "item": "Premium plan",
          "unit": "month",
          "usd": 195.6,
          "note": "€175, 10,000 labels a month, plus €0.08 a label"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 714.21,
          "note": "€639, 30,000 labels a month, plus €0.07 a label"
        },
        {
          "item": "Label fee on Lite",
          "unit": "tx",
          "usd": 0.11,
          "note": "€0.10 a label on top of carrier postage, €0.25 above the monthly limit"
        }
      ],
      "provenance": {
        "legalEntity": "Sendcloud B.V.",
        "domain": "sendcloud.com",
        "domainRegistered": "2008-07-29",
        "endpointOnVendorDomain": true,
        "terms": "https://www.sendcloud.com/terms-conditions/",
        "privacy": "https://www.sendcloud.com/privacy-policy/",
        "statusPage": "https://status.sendcloud.com",
        "changelog": "https://sendcloud.dev/api/v3/changelog",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The terms, last updated 1 September 2026, name Sendcloud B.V., registration 66572959, Stadhuisplein 10, 5611 EM Eindhoven, with Sendcloud GmbH, Ltd., SAS and Srl for Germany and Austria, the UK, France and Italy. Dutch law applies.",
          "The MCP server answers at mcp.sendcloud.com and tokens come from account.sendcloud.com. The REST API answers at panel.sendcloud.sc, a second Sendcloud domain.",
          "www.sendcloud.com/.well-known/security.txt and /security.txt return 404. The bug bounty page sends reports to security@sendcloud.com.",
          "RDAP for sendcloud.com gives a registration date of 2008-07-29.",
          "Unit prices are converted from euros at the ECB reference rate of 1.1177 for 7 October 2026, read through api.frankfurter.dev."
        ],
        "score": 81
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/sendcloud.json",
      "live": {
        "slug": "sendcloud",
        "probe": {
          "target": "https://mcp.sendcloud.com/mcp",
          "method": "get",
          "lastAt": "2026-10-08T19:08:58.190790907Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 115,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 84,
          "p95ms24h": 126,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.sendcloud.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:58.581184773Z"
        },
        "securityTxt": {
          "url": "https://sendcloud.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:40.272539649Z"
        },
        "pages": [
          {
            "url": "https://sendcloud.dev/api/v3/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:08.110707574Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6b29c4fd1275"
          },
          {
            "url": "https://www.sendcloud.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:21.328528089Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5f1544b931db"
          },
          {
            "url": "https://www.sendcloud.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:23.449806516Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1a787a780068"
          },
          {
            "url": "https://www.sendcloud.com/terms-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:25.410182173Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eef98aa87449"
          }
        ],
        "updatedAt": "2026-10-08T19:08:58.190790907Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "b": "Sendcloud B.V.",
        "name": "Vendor"
      },
      {
        "a": "https://api.easypost.com/v2",
        "b": "https://mcp.sendcloud.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "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 Sendcloud's terms and conditions",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2026-08-25",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "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": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Sendcloud scores 62 (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 Sendcloud?"
      },
      {
        "answer": "EasyPost needs an API key. Sendcloud takes an API key or an OAuth sign-in.",
        "question": "Do EasyPost and Sendcloud need an API key?"
      },
      {
        "answer": "Yes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and Sendcloud at https://mcp.sendcloud.com/mcp.",
        "question": "Can an agent call EasyPost and Sendcloud without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Maintenance \u0026 community, 85 against 67"
        ],
        "also": [
          "No incidents deducted, where Sendcloud loses 3 points for them"
        ],
        "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, 68 against 53",
          "Schema \u0026 documentation, 89 against 55",
          "Agent ergonomics, 71 against 63",
          "Payments \u0026 pricing, 37 against 22"
        ],
        "also": null,
        "goodFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "slug": "sendcloud",
        "watchFor": "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-easyship.json",
        "title": "EasyPost vs Easyship",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-easyship"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-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/sendcloud-vs-shippo.json",
        "title": "Sendcloud vs Shippo",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.json",
        "title": "Sendcloud vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation"
      }
    ],
    "scores": [
      {
        "by": 15,
        "easypost": 53,
        "edge": "sendcloud",
        "key": "reliability",
        "name": "Reliability",
        "sendcloud": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 34,
        "easypost": 55,
        "edge": "sendcloud",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sendcloud": 89,
        "weight": 13
      },
      {
        "by": 8,
        "easypost": 63,
        "edge": "sendcloud",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sendcloud": 71,
        "weight": 13
      },
      {
        "by": 2,
        "easypost": 47,
        "edge": "sendcloud",
        "key": "security",
        "name": "Security \u0026 auth",
        "sendcloud": 49,
        "weight": 14
      },
      {
        "by": 15,
        "easypost": 22,
        "edge": "sendcloud",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sendcloud": 37,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "easypost": 85,
        "edge": "easypost",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sendcloud": 67,
        "weight": 7
      },
      {
        "by": 2,
        "easypost": 70,
        "edge": "sendcloud",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sendcloud": 72,
        "weight": 7
      }
    ],
    "summary": "Sendcloud scores 62 (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.",
      "sendcloud": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud",
    "json": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md",
    "slim": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.min.md"
  },
  "markdown": "Sendcloud scores 62 (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- Sendcloud: grade B, 62/100, rank #314 of 629. Markdown https://www.anchorterminal.com/tools/sendcloud.md · JSON https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Which one, for what\n\n### 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 67\n\nAlso in its favour:\n- No incidents deducted, where Sendcloud loses 3 points for them\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### Sendcloud (B)\n\nGood for: An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.\n\nAhead on:\n- Reliability, 68 against 53\n- Schema \u0026 documentation, 89 against 55\n- Agent ergonomics, 71 against 63\n- Payments \u0026 pricing, 37 against 22\n\nWatch for: One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | EasyPost | Sendcloud | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 68 | Sendcloud +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 89 | Sendcloud +34 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 71 | Sendcloud +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 49 | Sendcloud +2 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 22 | 37 | Sendcloud +15 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 67 | EasyPost +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 72 | Sendcloud +2 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **54.3 · C** | **62 · B** | |\n\n## Facts side by side\n\n| Fact | EasyPost | Sendcloud |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Simpler Postage, Inc. (d/b/a EasyPost) | Sendcloud B.V. |\n| Hosted endpoint | `https://api.easypost.com/v2` | `https://mcp.sendcloud.com/mcp` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\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 Sendcloud's terms and conditions |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-28 | 2026-10-05 |\n| Terms last updated | 2026-08-25 | no date given |\n| Privacy policy last updated | 2026-08-25 | no date given |\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 | yes |\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 | none |\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**Sendcloud.** API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.\n\n## Before you call either\n\n### 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### Sendcloud\n\n1. Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026\n2. Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline\n3. Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label\n4. Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status\n5. Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account\n\n## Questions\n\n### Which is better for AI agents, EasyPost or Sendcloud?\n\nSendcloud scores 62 (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 Sendcloud need an API key?\n\nEasyPost needs an API key. Sendcloud takes an API key or an OAuth sign-in.\n\n### Can an agent call EasyPost and Sendcloud without installing anything?\n\nYes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and Sendcloud at https://mcp.sendcloud.com/mcp.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easypost-vs-sendcloud.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easypost-vs-sendcloud.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easypost\", \"b\": \"sendcloud\"}`. From a terminal: `anchor compare easypost sendcloud`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easypost.json and https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Other comparisons with EasyPost or Sendcloud\n\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.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- [Sendcloud vs Shippo](https://www.anchorterminal.com/compare/sendcloud-vs-shippo.md)\n- [Sendcloud vs ShipStation API](https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "EasyPost vs Sendcloud",
        "url": ""
      }
    ],
    "description": "Sendcloud scores 62 (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",
      "Sendcloud B 62",
      "scores"
    ],
    "h1": "EasyPost vs Sendcloud",
    "image": "https://www.anchorterminal.com/assets/og/compare-easypost-vs-sendcloud.png",
    "path": "/compare/easypost-vs-sendcloud",
    "published": "2026-10-01",
    "section": "tools",
    "title": "EasyPost vs Sendcloud for AI agents, C 54.3 vs B 62 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud"
  },
  "tokens": {
    "markdown": 2000,
    "slim": 680
  },
  "version": 1
}
