{
  "data": {
    "a": {
      "slug": "atoship",
      "name": "atoship",
      "vendor": "atoship LLC",
      "vendorUrl": "https://atoship.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "atoship is US shipping software for e-commerce sellers that sells discounted USPS, UPS, FedEx and DHL labels with no subscription. Agents use its REST API v1 or an MCP server, hosted with OAuth or local through npx.",
      "url": "https://www.anchorterminal.com/tools/atoship",
      "markdownUrl": "https://www.anchorterminal.com/tools/atoship.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/atoship.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/atoship.json",
      "dns": "atoship.grade.anchorterminal.com",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://atoship.com/api/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@atoship/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST and the local MCP server take API keys from the dashboard, `ak_live_` for production and `ak_test_` for sandbox, sent as Bearer tokens; the docs advise separate keys with limited scopes and periodic rotation. The hosted MCP server uses OAuth with PKCE (S256) and dynamic registration or a published public client ID, and its approval screen lists what the assistant may do, including buying and voiding labels.",
      "pricing": "usage",
      "pricingNotes": "No subscription or seat fee. Wallet-funded labels cost the discounted carrier rate shown live when quoting. Metered fees are $0.08 a label on your own carrier account, $0.03 a number for tracking labels bought elsewhere and $0.03 a call for the standalone Address Verification API. Sign-up is free with no card, and test keys create no real labels.",
      "priceSummary": "$0.08 / tx",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the MCP docs, API docs, llms.txt or pricing page (checked 2026-11-06). Labels are paid from a prefunded wallet.",
        "endpoints": []
      },
      "toolCount": 12,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://atoship.com/docs/mcp",
      "llmsTxt": "https://atoship.com/llms.txt",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "llms-txt",
        "usage",
        "prepaid",
        "no-card",
        "sandbox",
        "webhooks",
        "postman"
      ],
      "lastRelease": "2026-02-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43,
        "grade": "E",
        "agentReady": false,
        "rank": 1247,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 40,
          "reliability": 30,
          "schema": 55,
          "security": 55,
          "transparency": 45
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.",
        "bestFor": "US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.",
        "strengths": [
          "Free account with no card, and `ak_test_` keys that create no real labels",
          "Per-unit fees published: $0.08 a label on your own carrier account, $0.03 a tracking number or address check",
          "Hosted MCP server with OAuth and PKCE, whose consent screen names label buying and voiding",
          "An agent can spend only what is already in the wallet",
          "Errors carry machine-readable codes and a `retryAfter` on 429"
        ],
        "weaknesses": [
          "No status page; status.atoship.com serves the home page",
          "Rate limits are not given in numbers, and no OpenAPI spec was found",
          "No changelog, and @atoship/mcp was last published on 18 February 2026",
          "Most listed SDKs are not published; only Go installs",
          "No security certification, subprocessor list or retention periods found"
        ],
        "agentNotes": [
          "Use an `ak_test_` key until the user confirms live labels; test mode creates no real labels",
          "Ask the user before `purchase_label`, since it spends the wallet balance",
          "Call `void_label` promptly for a mistaken label, and check the carrier's refund rules",
          "Branch on `error.code`, and on 429 wait `error.retryAfter` seconds",
          "Validate the address with `validate_address` before buying; the standalone endpoint costs $0.03 a call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 40,
          "reliability": 30,
          "schema": 55,
          "security": 55,
          "transparency": 25
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y @atoship/mcp",
        "claudeCode": "claude mcp add --transport http atoship https://atoship.com/api/mcp",
        "config": {
          "mcpServers": {
            "atoship": {
              "url": "https://atoship.com/api/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/atoship"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Label on your own carrier account",
          "unit": "tx",
          "usd": 0.08,
          "note": "Per label; the carrier bills postage"
        },
        {
          "item": "External tracking number",
          "unit": "tx",
          "usd": 0.03,
          "note": "Only for labels bought elsewhere"
        },
        {
          "item": "Address Verification API call",
          "unit": "call",
          "usd": 0.03,
          "note": "Standalone endpoint only; checks inside rate quotes are free"
        }
      ],
      "provenance": {
        "legalEntity": "atoship LLC",
        "domain": "atoship.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://atoship.com/terms",
        "privacy": "https://atoship.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "atoship.com/robots.txt disallows /api/, /dashboard/, /admin/, /_next/ and /static/ for all agents, so the MCP and REST endpoints under /api/ were not requested.",
          "Terms last updated 20 August 2026 and privacy policy 7 May 2026. The terms forbid decompiling or reverse engineering the platform; no clause on reading public pages was found.",
          "security.txt names security@atoship.com, points its policy to the terms and expires 31 December 2027.",
          "status.atoship.com answers with the marketing home page and /docs/status rendered no status content, so no status page is recorded."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/atoship.json",
      "live": {
        "slug": "atoship",
        "probe": {
          "target": "https://atoship.com/api/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:11.359764372Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 404,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 366,
          "p95ms24h": 457,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@atoship/mcp",
            "version": "1.0.2",
            "seenAt": "2026-11-06T23:07:48.297476849Z"
          }
        ],
        "npmWeekly": 6,
        "securityTxt": {
          "url": "https://atoship.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-12-31T23:59:59.000Z",
          "checkedAt": "2026-11-07T16:01:05.350843408Z"
        },
        "llmsTxt": {
          "url": "https://atoship.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:37.315201154Z"
        },
        "pages": [
          {
            "url": "https://atoship.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:42.701099832Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a06a9e463f87"
          },
          {
            "url": "https://atoship.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:44.734681167Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b9b07e284da6"
          }
        ],
        "mcpTools": {
          "url": "https://atoship.com/api/mcp",
          "checkedAt": "2026-11-07T01:42:32.687477466Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:42:32.687477466Z"
        },
        "updatedAt": "2026-11-07T18:20:11.359764372Z"
      }
    },
    "answer": "EasyPost scores 57.4 (C) on agent readiness against atoship's 43 (E), and leads in 4 of 7 scored categories. atoship leads on security \u0026 auth and payments \u0026 pricing.",
    "b": {
      "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",
      "dns": "easypost.grade.anchorterminal.com",
      "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": null,
        "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-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.4,
        "grade": "C",
        "agentReady": false,
        "rank": 790,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 5,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 68,
          "schema": 55,
          "security": 47,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs updated in late October 2026 and free test keys make the REST API easy to start on. No OpenAPI spec or REST idempotency keys were found, and every key has full account access. The MCP server now buys labels, with retry-safe buys.",
        "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), each with a release on 27 or 29 October 2026",
          "Dated release notes almost every week, 8 entries between 8 August and 29 October 2026",
          "The hosted MCP server's `buy_shipment` refuses a price other than the approved one, and a retried buy returns the label already bought"
        ],
        "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",
          "The REST API has no idempotency keys, 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",
          "The load-based limiter on buying and rating publishes no number, and the 429 guidance gives no Retry-After header",
          "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 the REST API has no idempotency key",
          "Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer production key on the MCP server",
          "On the MCP server, pass the approved price to `buy_shipment` and keep client approval on for buy, insure and refund; it runs in production mode only",
          "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.4
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 68,
          "schema": 55,
          "security": 47,
          "transparency": 53
        },
        "provenanceScore": 89,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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"
        },
        {
          "item": "Amazon label",
          "unit": "tx",
          "usd": 0.2,
          "note": "API Addendum 4.3, effective 30 October 2026; per label bought"
        },
        {
          "item": "Pay-On-Delivery label",
          "unit": "tx",
          "usd": 0.15,
          "note": "API Addendum 4.3, effective 30 October 2026; per label bought"
        }
      ],
      "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": 89
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/easypost.json",
      "live": {
        "slug": "easypost",
        "probe": {
          "target": "https://api.easypost.com/v2",
          "method": "get",
          "lastAt": "2026-11-07T18:20:22.075173999Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 722,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 638,
          "p95ms24h": 752,
          "samples24h": 239,
          "samples30d": 7463,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.easypoststatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-11-07T18:21:04.305607054Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "EasyPost/easypost-node",
            "version": "v9.1.0",
            "released": "2026-10-29",
            "seenAt": "2026-11-06T23:23:16.065201068Z"
          },
          {
            "registry": "npm",
            "name": "@easypost/api",
            "version": "9.1.0",
            "seenAt": "2026-11-06T23:23:15.533378968Z"
          },
          {
            "registry": "pypi",
            "name": "easypost",
            "version": "10.8.0",
            "released": "2026-10-27",
            "seenAt": "2026-11-06T23:23:15.755248342Z"
          }
        ],
        "githubStars": 149,
        "npmWeekly": 102012,
        "pypiWeekly": 53087,
        "securityTxt": {
          "url": "https://easypost.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-07T15:59:51.434551522Z"
        },
        "llmsTxt": {
          "url": "https://docs.easypost.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:32:20.754835539Z"
        },
        "domain": {
          "domain": "easypost.com",
          "registered": "1998-01-18",
          "source": "https://rdap.verisign.com/com/v1/domain/easypost.com",
          "checkedAt": "2026-11-01T14:19:24.344804688Z"
        },
        "pages": [
          {
            "url": "https://docs.easypost.com/releases",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-07T14:06:14.751979914Z",
            "changedAt": "2026-10-30T05:37:17.396564341Z",
            "fingerprint": "4d4d10092075"
          },
          {
            "url": "https://legal.easypost.com/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-07T14:12:54.12231437Z",
            "changedAt": "2026-10-31T06:15:06.468473081Z",
            "fingerprint": "64ee0b96e376"
          }
        ],
        "mcpTools": {
          "url": "https://app-api.easypost.com/mcp",
          "checkedAt": "2026-11-07T01:44:00.380144193Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:44:00.380144193Z"
        },
        "github": {
          "repo": "easypost/easypost-node",
          "checkedAt": "2026-11-02T08:45:46.426816178Z",
          "stars": 149,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-29T21:40:19Z",
          "openIssues": 0,
          "openPRs": 2,
          "issuesOpened90d": 0,
          "issuesClosed90d": 2,
          "prsMerged90d": 35,
          "ci": {
            "branch": "master",
            "runs": 42,
            "success": 36,
            "failure": 6,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-10-29T21:35:40Z"
          },
          "replies": {
            "sampled": 25,
            "unanswered": 0,
            "medianDays": 0.9
          }
        },
        "updatedAt": "2026-11-07T18:20:22.075173999Z"
      }
    },
    "edges": [
      {
        "by": 75,
        "category": "maintenance",
        "leads": "easypost",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "No changelog or release notes found. The newest dated release is @atoship/mcp 1.0.2 on 18 February 2026, more than 180 days ago (0). No dated releases in the 90 days from 8 August (0). Support by email, with no public tracker; the repository named on npm is not public (5 of 15). The MCP package is official, and only the Go SDK of eight listed is installable (5 of 15). No public CI (0). 0 + 0 + 5 + 5 + 0 = 10.",
          "b": "The releases page has an entry dated 29 October 2026, six days before this check, and the Node, Go, Java and C# libraries were tagged the same day (30). Eight dated release notes fall in the 90 days from 6 August (8, 15, 22 and 29 August, 25 and 28 September, 8 and 29 October), and every library had a release on 27 or 29 October (20). A closed service with public release notes, support@easypost.com, a help centre, ai@easypost.com for the MCP server and a published four-hour response target on the Base support tier. We didn't read GitHub issues or test response times (11 of 15). Seven official SDKs, each with a release on 27 or 29 October 2026: Node 9.1.0, Python 10.8.0, Go 5.12.0, Java 8.10.0, C# 7.12.0, PHP 8.9.0 and Ruby 7.8.0 (15). The Python library's CI lints and runs tests, per the 7 October check, and Node 9.0.0 moved to TypeScript and fetch (9 of 10, partly met). 30 + 20 + 11 + 15 + 9 = 85."
        },
        "scores": {
          "a": 10,
          "b": 85
        }
      },
      {
        "by": 38,
        "category": "reliability",
        "leads": "easypost",
        "name": "Reliability",
        "reasons": {
          "a": "Graded as a hosted service on the MCP server at atoship.com/api/mcp and REST API v1. status.atoship.com serves the marketing home page and the docs' API Status page rendered no status content, so no status page is counted (0). No readable incident history (5). 429 and a `RATE_LIMIT_EXCEEDED` code are documented, without numbers (5 of 15). A 429 carries `error.retryAfter` and Retry-After; no idempotency key for label purchases was found (10 of 15). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 10 + 0 + 10 = 30.",
          "b": "Read with the hosted lines and scored on the REST API at api.easypost.com/v2, the surface an agent would use to rate, buy and track. www.easypoststatus.com on Statuspage lists 44 components on its page, re-read 4 November 2026 (20). Its history feed covers the whole 90 days from 6 August. Five incidents fall in that window, each partial. On 27 August the Core APIs degraded briefly during a deployment, resolved 14 minutes after it was identified. On 20 September USPS Ship requests failed most of the time for about five and a half hours (09:55 to 15:19 PDT) on a USPS-side fault, on 23 September a subset of USPS Ship buys failed, on 5 October UPS Mail Innovations returned elevated errors, and on 8 October some rating and tracking requests timed out for about 73 minutes at the hosting provider. Announced maintenance windows (14, 21 and 28 August, and the USPS windows in October and November) are maintenance, not incidents. Minor incidents only (20). The rate-limiting guide gives five requests a second on index endpoints and a 60-account cap on rating, but the load-based limiter on buying and rating has no published number (8 of 15, partly met). The guide asks for retry with growing backoff on 429 and gives a code sample that retries only GET and DELETE. No Retry-After header, no idempotency keys and no stated safe-retry rule for writes on the REST API (10). The Master Customer Agreement supplies the service as is and as available, and the support addendum sets response targets only (0). The v2 API is generally available (10). 20 + 20 + 8 + 10 + 0 + 10 = 68."
        },
        "scores": {
          "a": 30,
          "b": 68
        }
      },
      {
        "by": 26,
        "category": "transparency",
        "leads": "easypost",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms naming atoship LLC of California (15 of 30). The privacy policy (7 May 2026) keeps data as long as necessary with no periods and names no processors (10 of 30). No deprecation policy or dated notices found (0). No subprocessor list or data locations found (0). 15 + 10 + 0 + 0 = 25.",
          "b": "The service is closed, under a Master Customer Agreement (version 6.1, effective 25 August 2026) and seven addenda in a legal centre that keeps every past version. The SDKs are MIT or ISC (15). The privacy policy (18 August 2025) gives no retention period. The agreement points to a Data Retention Policy in the help centre, which refused our reader, and it grants EasyPost a licence to use customer data to improve its services and develop new products during and after the term. A data processing addendum with EU and UK standard clauses is public (15 of 30). The agreement says EasyPost will use reasonable efforts to notify customers before API changes that aren't backwards compatible, with no notice period, and allows termination with a refund within 15 days if functionality is materially reduced. No deprecation policy with dates was found (6 of 20). Annex D of the addendum lists 12 subprocessors with purpose and country, all in the USA, and customers have 10 days to object to a new one (17 of 20). The legal centre was re-read on 4 November; the MCA is still version 6.1. 15 + 15 + 6 + 17 = 53."
        },
        "scores": {
          "a": 45,
          "b": 71
        }
      },
      {
        "by": 18,
        "category": "payments",
        "leads": "atoship",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-unit fees are published without a login ($0.08 a BYOCA label, $0.03 a tracking number or address check), and wallet postage is priced live in a public calculator (20). Free account with no card, and test keys (20). A person signs up in a browser and funds the wallet (0). 0 + 20 + 20 + 0 = 40.",
          "b": "Read with the hosted rubric. No x402, MPP or L402 (0). The API Addendum (version 4.3, effective 30 October 2026) publishes unit fees without a login ($0.02 for each extra tracker, US address verification or rating call, $0.06 for an international verification, $0.03 a SmartRate call), and the pricing page lists tracking at $0.01 to $0.03 a shipment and insurance at 1 per cent. The per-label fee after 3,000 free labels isn't stated, and Forge, GlobalShip and Luma are priced by sales (12 of 20). Up to 3,000 labels carry no EasyPost fee and test keys cost nothing, but postage is always paid, and the docs say a wallet must be set up before keys are issued. Whether that needs a card wasn't established (10 of 20). A person signs up in a browser. Keys can be created by API only with an existing production key (0). The MCP apps in ChatGPT and Claude still need a person to sign in to an EasyPost account. 0 + 12 + 10 + 0 = 22."
        },
        "scores": {
          "a": 40,
          "b": 22
        }
      },
      {
        "by": 10,
        "category": "ergonomics",
        "leads": "easypost",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "12 MCP tools (15, for 11 to 30). List tools for orders and labels, with paging not documented in the pages read (8 of 20). Machine-readable error codes with a retry delay (18 of 20). The npm package's tools carry no readOnlyHint or destructiveHint, and no idempotency key was found; `void_label` undoes a mistaken purchase (5 of 20). Only the Go SDK installs, the hosted server is one URL, and test keys give a safe default (7 of 15). 15 + 8 + 18 + 5 + 7 = 53.",
          "b": "List calls take `page_size` up to 100 with a default of 20 on most endpoints. No field selection was found, and a shipment response nests addresses, parcel, rates and tracker (12 of 25). Cursor pagination by `before_id` and `after_id`, date ranges and a `has_more` flag, with support that varies by endpoint (16 of 20). Errors carry a machine-readable `code`, a message and per-field entries with an occasional suggestion. The `errors` array arrives as objects or as strings, so a client has to handle both (15 of 20). The REST API has no idempotency keys. Trackers are deduplicated by tracking code and carrier for three months, but `reference` on a shipment isn't unique and nothing guards a repeated buy. Since 29 October 2026 the MCP server's `buy_shipment` returns the label already bought when a timed-out buy is retried, and the guide says three write tools are marked destructive; the tool definitions weren't read (5 of 20, partly met, held). One-call buy creates and purchases in one request, addresses and parcels can be nested or reused by id, and official SDKs cover seven languages (15). 12 + 16 + 15 + 5 + 15 = 63."
        },
        "scores": {
          "a": 53,
          "b": 63
        }
      },
      {
        "by": 8,
        "category": "security",
        "leads": "atoship",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Live and test API keys sent as Bearer tokens, with the docs advising separate keys with limited scopes and rotation, and OAuth with PKCE for the hosted MCP server (25 of 30). Test keys create no real labels, the consent screen names label buying and voiding, and the docs say the agent can spend only funds already in the wallet, with no per-call confirmation (12 of 20). Responses carry addresses and carrier tracking data rather than free text from strangers (10). No audit log found (0). security.txt valid to December 2027 with a security contact; no certification, bounty or disclosure policy beyond the terms (8 of 20). 25 + 12 + 10 + 0 + 8 = 55.",
          "b": "API keys go in the HTTP Basic username over TLS 1.2. Keys can be created, disabled, enabled and deleted through the API or the dashboard, and the docs say a key allows full account access. Plain revocable keys, with no secret in a query string. The MCP server also takes a sign-in with an EasyPost account from the ChatGPT and Claude apps (20 of 30). Test keys buy no postage and child users hold separate keys. The REST API has no read-only or scoped key and no confirmation step before a purchase. Since 29 October 2026 the MCP server buys labels too (20 tools, 7 of them writes); `buy_shipment` refuses a price that differs from the one the user approved, and the guide asks users to keep client approval on for the three paid or destructive writes (8 of 20, held). Responses carry addresses and carrier tracking text. The MCP guide advises connecting only to trusted clients and servers, and no injection guidance was found (4 of 15). Events and their payloads can be retrieved and each shipment lists its fees, but no audit log of API calls or key use was found in the reviewed documentation (5 of 15). A Responsible Disclosure Policy with a safe-harbour commitment and the contact security-abuse@easypost.com, with no acknowledgement time, HMAC-signed webhooks, and a SOC 2 Type 2 report referred to in the data processing addendum. No security.txt (per the 7 October check) and no bug bounty were found, and OSV lists no advisory for EasyPost packages (10 of 20). 20 + 8 + 4 + 5 + 10 = 47."
        },
        "scores": {
          "a": 55,
          "b": 47
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "atoship LLC",
        "b": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "name": "Vendor"
      },
      {
        "a": "https://atoship.com/api/mcp",
        "b": "https://api.easypost.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC",
        "name": "Licence"
      },
      {
        "a": "12",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-02-18",
        "b": "2026-10-29",
        "name": "Last release"
      },
      {
        "a": "2026-08-20",
        "b": "2026-08-25",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-07",
        "b": "2026-08-25",
        "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": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "149 stars, 100k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "EasyPost scores 57.4 (C) on agent readiness against atoship's 43 (E), and leads in 4 of 7 scored categories. atoship leads on security \u0026 auth and payments \u0026 pricing.",
        "question": "Which is better for AI agents, atoship or EasyPost?"
      },
      {
        "answer": "atoship takes an API key or an OAuth sign-in. EasyPost needs an API key.",
        "question": "Do atoship and EasyPost need an API key?"
      },
      {
        "answer": "Yes. atoship has a hosted endpoint at https://atoship.com/api/mcp and EasyPost at https://api.easypost.com/v2.",
        "question": "Can an agent call atoship and EasyPost without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 55 against 47",
          "Payments \u0026 pricing, 40 against 22"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.",
        "slug": "atoship",
        "watchFor": "No status page; status.atoship.com serves the home page"
      },
      {
        "aheadOn": [
          "Reliability, 68 against 30",
          "Agent ergonomics, 63 against 53",
          "Maintenance \u0026 community, 85 against 10",
          "Transparency \u0026 trust, 71 against 45"
        ],
        "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"
      }
    ],
    "history": {
      "atoship": null,
      "easypost": [
        {
          "causes": [
            "time"
          ],
          "date": "2026-11-04",
          "delta": 3,
          "from": 54.4,
          "fromGrade": "C",
          "to": 57.4,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.1,
          "from": 54.3,
          "fromGrade": "C",
          "to": 54.4,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-easyship.json",
        "title": "atoship vs Easyship",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-easyship"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-envia.json",
        "title": "atoship vs Envia",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-karrio.json",
        "title": "atoship vs Karrio",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-sendcloud.json",
        "title": "atoship vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shipbob.json",
        "title": "atoship vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shippo.json",
        "title": "atoship vs Shippo",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shippypro.json",
        "title": "atoship vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shipstation.json",
        "title": "atoship vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shipstation"
      },
      {
        "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-envia.json",
        "title": "EasyPost vs Envia",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-karrio.json",
        "title": "EasyPost vs Karrio",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-karrio"
      },
      {
        "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-shipbob.json",
        "title": "EasyPost vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shipbob"
      },
      {
        "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-shippypro.json",
        "title": "EasyPost vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shippypro"
      },
      {
        "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/atoship-vs-ship24.json",
        "title": "atoship vs Ship24",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-trackingmore.json",
        "title": "atoship vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-ship24.json",
        "title": "EasyPost vs Ship24",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-trackingmore.json",
        "title": "EasyPost vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-trackingmore"
      }
    ],
    "panel": null,
    "scores": [
      {
        "atoship": 30,
        "by": 38,
        "easypost": 68,
        "edge": "easypost",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "atoship": 55,
        "by": 0,
        "easypost": 55,
        "edge": "",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "atoship": 53,
        "by": 10,
        "easypost": 63,
        "edge": "easypost",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "atoship": 55,
        "by": 8,
        "easypost": 47,
        "edge": "atoship",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "atoship": 40,
        "by": 18,
        "easypost": 22,
        "edge": "atoship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "atoship": 10,
        "by": 75,
        "easypost": 85,
        "edge": "easypost",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "atoship": 45,
        "by": 26,
        "easypost": 71,
        "edge": "easypost",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "EasyPost scores 57.4 (C) on agent readiness against atoship's 43 (E), and leads in 4 of 7 scored categories. atoship leads on security \u0026 auth and payments \u0026 pricing. Both do shipping rates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "atoship": "atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.",
      "easypost": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs updated in late October 2026 and free test keys make the REST API easy to start on. No OpenAPI spec or REST idempotency keys were found, and every key has full account access. The MCP server now buys labels, with retry-safe buys."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/atoship-vs-easypost",
    "json": "https://www.anchorterminal.com/compare/atoship-vs-easypost.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/atoship-vs-easypost.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/atoship-vs-easypost.min.md"
  },
  "markdown": "EasyPost scores 57.4 (C) on agent readiness against atoship's 43 (E), and leads in 4 of 7 scored categories. atoship leads on security \u0026 auth and payments \u0026 pricing. Both do shipping rates.\n\n- atoship: grade E, 43/100, rank #1247 of 1486. Markdown https://www.anchorterminal.com/tools/atoship.md · JSON https://www.anchorterminal.com/api/v1/tools/atoship.json\n- EasyPost: grade C, 57.4/100, rank #790 of 1486. Markdown https://www.anchorterminal.com/tools/easypost.md · JSON https://www.anchorterminal.com/api/v1/tools/easypost.json\n- Best shipping and fulfilment APIs for AI agents: https://www.anchorterminal.com/best/shipping/index.md\n- All 66 shipping comparisons: https://www.anchorterminal.com/compare/shipping/index.md\n\n## Which one, for what\n\n### atoship (E)\n\nGood for: US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.\n\nAhead on:\n- Security \u0026 auth, 55 against 47\n- Payments \u0026 pricing, 40 against 22\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: No status page; status.atoship.com serves the home page\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- Reliability, 68 against 30\n- Agent ergonomics, 63 against 53\n- Maintenance \u0026 community, 85 against 10\n- Transparency \u0026 trust, 71 against 45\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\n## Why the edge\n\n### Maintenance \u0026 community: EasyPost +75\n\n- atoship (10): No changelog or release notes found. The newest dated release is @atoship/mcp 1.0.2 on 18 February 2026, more than 180 days ago (0). No dated releases in the 90 days from 8 August (0). Support by email, with no public tracker; the repository named on npm is not public (5 of 15). The MCP package is official, and only the Go SDK of eight listed is installable (5 of 15). No public CI (0). 0 + 0 + 5 + 5 + 0 = 10.\n- EasyPost (85): The releases page has an entry dated 29 October 2026, six days before this check, and the Node, Go, Java and C# libraries were tagged the same day (30). Eight dated release notes fall in the 90 days from 6 August (8, 15, 22 and 29 August, 25 and 28 September, 8 and 29 October), and every library had a release on 27 or 29 October (20). A closed service with public release notes, support@easypost.com, a help centre, ai@easypost.com for the MCP server and a published four-hour response target on the Base support tier. We didn't read GitHub issues or test response times (11 of 15). Seven official SDKs, each with a release on 27 or 29 October 2026: Node 9.1.0, Python 10.8.0, Go 5.12.0, Java 8.10.0, C# 7.12.0, PHP 8.9.0 and Ruby 7.8.0 (15). The Python library's CI lints and runs tests, per the 7 October check, and Node 9.0.0 moved to TypeScript and fetch (9 of 10, partly met). 30 + 20 + 11 + 15 + 9 = 85.\n\n### Reliability: EasyPost +38\n\n- atoship (30): Graded as a hosted service on the MCP server at atoship.com/api/mcp and REST API v1. status.atoship.com serves the marketing home page and the docs' API Status page rendered no status content, so no status page is counted (0). No readable incident history (5). 429 and a `RATE_LIMIT_EXCEEDED` code are documented, without numbers (5 of 15). A 429 carries `error.retryAfter` and Retry-After; no idempotency key for label purchases was found (10 of 15). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 10 + 0 + 10 = 30.\n- EasyPost (68): Read with the hosted lines and scored on the REST API at api.easypost.com/v2, the surface an agent would use to rate, buy and track. www.easypoststatus.com on Statuspage lists 44 components on its page, re-read 4 November 2026 (20). Its history feed covers the whole 90 days from 6 August. Five incidents fall in that window, each partial. On 27 August the Core APIs degraded briefly during a deployment, resolved 14 minutes after it was identified. On 20 September USPS Ship requests failed most of the time for about five and a half hours (09:55 to 15:19 PDT) on a USPS-side fault, on 23 September a subset of USPS Ship buys failed, on 5 October UPS Mail Innovations returned elevated errors, and on 8 October some rating and tracking requests timed out for about 73 minutes at the hosting provider. Announced maintenance windows (14, 21 and 28 August, and the USPS windows in October and November) are maintenance, not incidents. Minor incidents only (20). The rate-limiting guide gives five requests a second on index endpoints and a 60-account cap on rating, but the load-based limiter on buying and rating has no published number (8 of 15, partly met). The guide asks for retry with growing backoff on 429 and gives a code sample that retries only GET and DELETE. No Retry-After header, no idempotency keys and no stated safe-retry rule for writes on the REST API (10). The Master Customer Agreement supplies the service as is and as available, and the support addendum sets response targets only (0). The v2 API is generally available (10). 20 + 20 + 8 + 10 + 0 + 10 = 68.\n\n### Transparency \u0026 trust: EasyPost +26\n\n- atoship (45): Closed service under terms naming atoship LLC of California (15 of 30). The privacy policy (7 May 2026) keeps data as long as necessary with no periods and names no processors (10 of 30). No deprecation policy or dated notices found (0). No subprocessor list or data locations found (0). 15 + 10 + 0 + 0 = 25.\n- EasyPost (71): The service is closed, under a Master Customer Agreement (version 6.1, effective 25 August 2026) and seven addenda in a legal centre that keeps every past version. The SDKs are MIT or ISC (15). The privacy policy (18 August 2025) gives no retention period. The agreement points to a Data Retention Policy in the help centre, which refused our reader, and it grants EasyPost a licence to use customer data to improve its services and develop new products during and after the term. A data processing addendum with EU and UK standard clauses is public (15 of 30). The agreement says EasyPost will use reasonable efforts to notify customers before API changes that aren't backwards compatible, with no notice period, and allows termination with a refund within 15 days if functionality is materially reduced. No deprecation policy with dates was found (6 of 20). Annex D of the addendum lists 12 subprocessors with purpose and country, all in the USA, and customers have 10 days to object to a new one (17 of 20). The legal centre was re-read on 4 November; the MCA is still version 6.1. 15 + 15 + 6 + 17 = 53.\n\n### Payments \u0026 pricing: atoship +18\n\n- atoship (40): No x402, MPP or L402 (0). Per-unit fees are published without a login ($0.08 a BYOCA label, $0.03 a tracking number or address check), and wallet postage is priced live in a public calculator (20). Free account with no card, and test keys (20). A person signs up in a browser and funds the wallet (0). 0 + 20 + 20 + 0 = 40.\n- EasyPost (22): Read with the hosted rubric. No x402, MPP or L402 (0). The API Addendum (version 4.3, effective 30 October 2026) publishes unit fees without a login ($0.02 for each extra tracker, US address verification or rating call, $0.06 for an international verification, $0.03 a SmartRate call), and the pricing page lists tracking at $0.01 to $0.03 a shipment and insurance at 1 per cent. The per-label fee after 3,000 free labels isn't stated, and Forge, GlobalShip and Luma are priced by sales (12 of 20). Up to 3,000 labels carry no EasyPost fee and test keys cost nothing, but postage is always paid, and the docs say a wallet must be set up before keys are issued. Whether that needs a card wasn't established (10 of 20). A person signs up in a browser. Keys can be created by API only with an existing production key (0). The MCP apps in ChatGPT and Claude still need a person to sign in to an EasyPost account. 0 + 12 + 10 + 0 = 22.\n\n### Agent ergonomics: EasyPost +10\n\n- atoship (53): 12 MCP tools (15, for 11 to 30). List tools for orders and labels, with paging not documented in the pages read (8 of 20). Machine-readable error codes with a retry delay (18 of 20). The npm package's tools carry no readOnlyHint or destructiveHint, and no idempotency key was found; `void_label` undoes a mistaken purchase (5 of 20). Only the Go SDK installs, the hosted server is one URL, and test keys give a safe default (7 of 15). 15 + 8 + 18 + 5 + 7 = 53.\n- EasyPost (63): List calls take `page_size` up to 100 with a default of 20 on most endpoints. No field selection was found, and a shipment response nests addresses, parcel, rates and tracker (12 of 25). Cursor pagination by `before_id` and `after_id`, date ranges and a `has_more` flag, with support that varies by endpoint (16 of 20). Errors carry a machine-readable `code`, a message and per-field entries with an occasional suggestion. The `errors` array arrives as objects or as strings, so a client has to handle both (15 of 20). The REST API has no idempotency keys. Trackers are deduplicated by tracking code and carrier for three months, but `reference` on a shipment isn't unique and nothing guards a repeated buy. Since 29 October 2026 the MCP server's `buy_shipment` returns the label already bought when a timed-out buy is retried, and the guide says three write tools are marked destructive; the tool definitions weren't read (5 of 20, partly met, held). One-call buy creates and purchases in one request, addresses and parcels can be nested or reused by id, and official SDKs cover seven languages (15). 12 + 16 + 15 + 5 + 15 = 63.\n\n### Security \u0026 auth: atoship +8\n\n- atoship (55): Live and test API keys sent as Bearer tokens, with the docs advising separate keys with limited scopes and rotation, and OAuth with PKCE for the hosted MCP server (25 of 30). Test keys create no real labels, the consent screen names label buying and voiding, and the docs say the agent can spend only funds already in the wallet, with no per-call confirmation (12 of 20). Responses carry addresses and carrier tracking data rather than free text from strangers (10). No audit log found (0). security.txt valid to December 2027 with a security contact; no certification, bounty or disclosure policy beyond the terms (8 of 20). 25 + 12 + 10 + 0 + 8 = 55.\n- EasyPost (47): API keys go in the HTTP Basic username over TLS 1.2. Keys can be created, disabled, enabled and deleted through the API or the dashboard, and the docs say a key allows full account access. Plain revocable keys, with no secret in a query string. The MCP server also takes a sign-in with an EasyPost account from the ChatGPT and Claude apps (20 of 30). Test keys buy no postage and child users hold separate keys. The REST API has no read-only or scoped key and no confirmation step before a purchase. Since 29 October 2026 the MCP server buys labels too (20 tools, 7 of them writes); `buy_shipment` refuses a price that differs from the one the user approved, and the guide asks users to keep client approval on for the three paid or destructive writes (8 of 20, held). Responses carry addresses and carrier tracking text. The MCP guide advises connecting only to trusted clients and servers, and no injection guidance was found (4 of 15). Events and their payloads can be retrieved and each shipment lists its fees, but no audit log of API calls or key use was found in the reviewed documentation (5 of 15). A Responsible Disclosure Policy with a safe-harbour commitment and the contact security-abuse@easypost.com, with no acknowledgement time, HMAC-signed webhooks, and a SOC 2 Type 2 report referred to in the data processing addendum. No security.txt (per the 7 October check) and no bug bounty were found, and OSV lists no advisory for EasyPost packages (10 of 20). 20 + 8 + 4 + 5 + 10 = 47.\n\n## Score by category\n\n| Category | Weight | atoship | EasyPost | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 30 | 68 | EasyPost +38 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 55 | even |\n| Agent ergonomics | 13% (16.2 this run) | 53 | 63 | EasyPost +10 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 47 | atoship +8 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 22 | atoship +18 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 10 | 85 | EasyPost +75 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 45 | 71 | EasyPost +26 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43 · E** | **57.4 · C** | |\n\n## Facts side by side\n\n| Fact | atoship | EasyPost |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | atoship LLC | Simpler Postage, Inc. (d/b/a EasyPost) |\n| Hosted endpoint | `https://atoship.com/api/mcp` | `https://api.easypost.com/v2` |\n| Transports | Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | none | Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC |\n| Tools exposed | 12 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-02-18 | 2026-10-29 |\n| Terms last updated | 2026-08-20 | 2026-08-25 |\n| Privacy policy last updated | 2026-05-07 | 2026-08-25 |\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 | not found in the text |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | none | 149 stars, 100k npm/wk |\n\n## How the scores have moved\n\n### atoship\n\nNo score change since it was listed.\n\n### EasyPost\n\n- +3.0 on 4 November 2026: time\n- +0.1 on 27 October 2026: checklist\n\n## Verdicts\n\n**atoship.** atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.\n\n**EasyPost.** Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs updated in late October 2026 and free test keys make the REST API easy to start on. No OpenAPI spec or REST idempotency keys were found, and every key has full account access. The MCP server now buys labels, with retry-safe buys.\n\n## Before you call either\n\n### atoship\n\n1. Use an `ak_test_` key until the user confirms live labels; test mode creates no real labels\n2. Ask the user before `purchase_label`, since it spends the wallet balance\n3. Call `void_label` promptly for a mistaken label, and check the carrier's refund rules\n4. Branch on `error.code`, and on 429 wait `error.retryAfter` seconds\n5. Validate the address with `validate_address` before buying; the standalone endpoint costs $0.03 a call\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 the REST API has no idempotency key\n3. Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer production key on the MCP server\n4. On the MCP server, pass the approved price to `buy_shipment` and keep client approval on for buy, insure and refund; it runs in production mode only\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## Questions\n\n### Which is better for AI agents, atoship or EasyPost?\n\nEasyPost scores 57.4 (C) on agent readiness against atoship's 43 (E), and leads in 4 of 7 scored categories. atoship leads on security \u0026 auth and payments \u0026 pricing.\n\n### Do atoship and EasyPost need an API key?\n\natoship takes an API key or an OAuth sign-in. EasyPost needs an API key.\n\n### Can an agent call atoship and EasyPost without installing anything?\n\nYes. atoship has a hosted endpoint at https://atoship.com/api/mcp and EasyPost at https://api.easypost.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/atoship-vs-easypost.json, and with the fewest tokens: https://www.anchorterminal.com/compare/atoship-vs-easypost.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"atoship\", \"b\": \"easypost\"}`. From a terminal: `anchor compare atoship easypost`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/atoship.json and https://www.anchorterminal.com/api/v1/tools/easypost.json\n\n## Other comparisons with atoship or EasyPost\n\n- [atoship vs Easyship](https://www.anchorterminal.com/compare/atoship-vs-easyship.md)\n- [atoship vs Envia](https://www.anchorterminal.com/compare/atoship-vs-envia.md)\n- [atoship vs Karrio](https://www.anchorterminal.com/compare/atoship-vs-karrio.md)\n- [atoship vs Sendcloud](https://www.anchorterminal.com/compare/atoship-vs-sendcloud.md)\n- [atoship vs ShipBob](https://www.anchorterminal.com/compare/atoship-vs-shipbob.md)\n- [atoship vs Shippo](https://www.anchorterminal.com/compare/atoship-vs-shippo.md)\n- [atoship vs ShippyPro](https://www.anchorterminal.com/compare/atoship-vs-shippypro.md)\n- [atoship vs ShipStation API](https://www.anchorterminal.com/compare/atoship-vs-shipstation.md)\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)\n- [EasyPost vs Envia](https://www.anchorterminal.com/compare/easypost-vs-envia.md)\n- [EasyPost vs Karrio](https://www.anchorterminal.com/compare/easypost-vs-karrio.md)\n- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)\n- [EasyPost vs ShipBob](https://www.anchorterminal.com/compare/easypost-vs-shipbob.md)\n- [EasyPost vs Shippo](https://www.anchorterminal.com/compare/easypost-vs-shippo.md)\n- [EasyPost vs ShippyPro](https://www.anchorterminal.com/compare/easypost-vs-shippypro.md)\n- [EasyPost vs ShipStation API](https://www.anchorterminal.com/compare/easypost-vs-shipstation.md)\n- [atoship vs Ship24](https://www.anchorterminal.com/compare/atoship-vs-ship24.md)\n- [atoship vs TrackingMore](https://www.anchorterminal.com/compare/atoship-vs-trackingmore.md)\n- [EasyPost vs Ship24](https://www.anchorterminal.com/compare/easypost-vs-ship24.md)\n- [EasyPost vs TrackingMore](https://www.anchorterminal.com/compare/easypost-vs-trackingmore.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "atoship vs EasyPost",
        "url": ""
      }
    ],
    "description": "EasyPost scores 57.4 (C) to atoship's 43 (E) for shipping rates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "atoship E 43",
      "EasyPost C 57.4",
      "scores"
    ],
    "h1": "atoship vs EasyPost",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/atoship-vs-easypost",
    "published": "2026-10-01",
    "section": "tools",
    "title": "atoship vs EasyPost for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/atoship-vs-easypost"
  },
  "tokens": {
    "markdown": 4900,
    "slim": 3230
  },
  "version": 1
}
