{
  "data": {
    "a": {
      "slug": "easypost",
      "name": "EasyPost",
      "vendor": "Simpler Postage, Inc. (d/b/a EasyPost)",
      "vendorUrl": "https://www.easypost.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "EasyPost is a multi-carrier shipping API from Simpler Postage, Inc. Its REST API quotes carrier rates, buys labels, verifies addresses, tracks parcels and files refunds and insurance claims, with a hosted read-only MCP server in early release.",
      "url": "https://www.anchorterminal.com/tools/easypost",
      "markdownUrl": "https://www.anchorterminal.com/tools/easypost.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/easypost.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/easypost.json",
      "repo": "https://github.com/EasyPost/easypost-node",
      "license": "Proprietary service under the EasyPost Master Customer Agreement. The official client libraries on GitHub are MIT, with the Go library under ISC",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.easypost.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "@easypost/api"
        },
        {
          "registry": "pypi",
          "name": "easypost"
        },
        {
          "registry": "go",
          "name": "github.com/EasyPost/easypost-go/v5"
        }
      ],
      "auth": "api-key",
      "authNotes": "A self-serve API key, sent as the HTTP Basic username with an empty password. The docs say a wallet and a ship-from address must be set up before keys can be seen or generated. Test and production keys exist, both with full account access, and they can be created, disabled, enabled and deleted through /api_keys or the dashboard. The hosted MCP server takes a production key as a Bearer token. No OAuth, partner review or sales approval is needed for the core API.",
      "pricing": "freemium",
      "pricingNotes": "Free for up to 3,000 labels on wallet carriers, with postage charged separately and a per-label fee after that which the pricing page doesn't state. Bringing your own carrier accounts costs $20 a month plus a per-label fee. Tracking is listed at $0.01 to $0.03 a shipment and insurance at 1 per cent of value, minimum $1.00. Test keys cost nothing, so an agent can build without a contract. Forge, GlobalShip and Luma are priced by sales (checked 2026-10-07).",
      "priceSummary": "$0.02 / call",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the pricing page or the legal centre (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 149,
        "npmWeekly": 99736,
        "pypiWeekly": 41831,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://docs.easypost.com",
      "llmsTxt": "https://docs.easypost.com/llms.txt",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "api-key",
        "llms-txt",
        "mcp",
        "webhooks",
        "sandbox",
        "free-tier",
        "python",
        "typescript",
        "go",
        "java",
        "php",
        "ruby",
        "dotnet",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 54.3,
        "grade": "C",
        "agentReady": false,
        "rank": 468,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 53,
          "schema": 55,
          "security": 47,
          "transparency": 70
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.",
        "bestFor": "An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.",
        "strengths": [
          "llms.txt, a Markdown copy of almost every docs page and a JSON page index with a note on when to read each page",
          "Test API keys run the rate, buy, track and webhook flow at no cost, with no postage bought and no carrier contacted",
          "Seven official SDKs (C#, Go, Java, Node, PHP, Python, Ruby), with Go 5.10.1 on 29 September 2026 and PHP 8.8.3 on 8 September",
          "Dated release notes almost every week, 10 entries between 12 July and 28 September 2026",
          "The data processing addendum names 12 subprocessors with purpose and country, and the legal centre keeps every past version of each agreement"
        ],
        "weaknesses": [
          "No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace",
          "No idempotency keys were found, and `reference` on a shipment isn't unique, so a retried buy can purchase a second label",
          "API keys allow full account access. Test and production modes and child users are the only separation, with no read-only or scoped key",
          "An outage on 23 July 2026 at the hosting provider affected all operations for about four and a half hours. Two carrier-side incidents were marked major in the same 90 days",
          "The Master Customer Agreement supplies the service as is, with no uptime commitment, and the per-label fee after 3,000 free labels isn't on the pricing page"
        ],
        "agentNotes": [
          "Use a test API key while building. It buys no postage and contacts no carrier, and test tracking codes simulate each tracking status",
          "Don't blind-retry `POST /shipments/:id/buy` after a timeout. Retrieve the shipment first and check for `postage_label`, since no idempotency key exists",
          "Send the API key as the HTTP Basic username with an empty password on the REST API, and as a Bearer token on the MCP server",
          "Handle `errors` as either an array of objects or an array of strings. The docs say both shapes occur",
          "Pass a scoped `carrier_accounts` list when rating. Only the first 60 accounts are rated and the call doesn't fail when more are enabled"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 54.3
          }
        ],
        "editorialScores": {
          "ergonomics": 63,
          "maintenance": 85,
          "payments": 22,
          "reliability": 53,
          "schema": 55,
          "security": 47,
          "transparency": 53
        },
        "provenanceScore": 87
      },
      "connect": {
        "install": "npm install @easypost/api",
        "http": "curl -u \"$EASYPOST_API_KEY\": https://api.easypost.com/v2/shipments",
        "claudeCode": "claude mcp add --scope project --transport http easypost \\\n  https://app-api.easypost.com/mcp \\\n  --header 'Authorization: Bearer ${EASYPOST_API_KEY}'",
        "config": {
          "mcpServers": {
            "easypost": {
              "headers": {
                "Authorization": "Bearer ${EASYPOST_API_KEY}"
              },
              "type": "http",
              "url": "https://app-api.easypost.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/easypost"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Extra tracker call",
          "unit": "call",
          "usd": 0.02,
          "note": "one included with each label bought"
        },
        {
          "item": "Extra US address verification",
          "unit": "call",
          "usd": 0.02,
          "note": "one included with each label bought; $0.06 outside the US"
        },
        {
          "item": "Extra rating call",
          "unit": "call",
          "usd": 0.02,
          "note": "three included with each label bought"
        },
        {
          "item": "SmartRate call",
          "unit": "call",
          "usd": 0.03
        },
        {
          "item": "Bring your own carrier accounts",
          "unit": "month",
          "usd": 20,
          "note": "plus a per-label fee not stated on the pricing page"
        }
      ],
      "provenance": {
        "legalEntity": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "domain": "easypost.com",
        "domainRegistered": "1998-01-18",
        "endpointOnVendorDomain": true,
        "terms": "https://legal.easypost.com/#mca",
        "privacy": "https://legal.easypost.com/#privacy-policy",
        "statusPage": "https://www.easypoststatus.com",
        "changelog": "https://docs.easypost.com/releases",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The Master Customer Agreement (version 6.1, effective 25 August 2026) names Simpler Postage, Inc. (d/b/a EasyPost), 2600 N. Ashton Blvd., Suite 300A, Lehi, UT 84043.",
          "www.easypost.com/.well-known/security.txt and api.easypost.com/.well-known/security.txt return 404. The legal centre carries a Responsible Disclosure Policy with the contact security-abuse@easypost.com.",
          "The privacy policy and the Data Protection Addendum are both version 1.0, effective 18 August 2025. The addendum's Annex D lists 12 subprocessors, all in the USA.",
          "The MCP server is on app-api.easypost.com and the REST API on api.easypost.com. The status page is on a separate domain, easypoststatus.com.",
          "trust.easypost.com answered 403 to our reader, so certifications are taken only from the addendum, which refers to a SOC 2 Type 2 report."
        ],
        "score": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/easypost.json",
      "live": {
        "slug": "easypost",
        "probe": {
          "target": "https://api.easypost.com/v2",
          "method": "get",
          "lastAt": "2026-10-08T18:20:29.276874515Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 616,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 621,
          "p95ms24h": 731,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.easypoststatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T18:21:57.327218266Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "EasyPost/easypost-node",
            "version": "v8.9.0",
            "released": "2026-06-25",
            "seenAt": "2026-10-08T16:09:51.321427764Z"
          },
          {
            "registry": "npm",
            "name": "@easypost/api",
            "version": "8.9.0",
            "seenAt": "2026-10-08T16:09:46.909448157Z"
          },
          {
            "registry": "pypi",
            "name": "easypost",
            "version": "10.7.0",
            "released": "2026-06-25",
            "seenAt": "2026-10-08T16:09:51.109480743Z"
          }
        ],
        "githubStars": 149,
        "npmWeekly": 99736,
        "pypiWeekly": 43392,
        "securityTxt": {
          "url": "https://easypost.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:46.376321685Z"
        },
        "pages": [
          {
            "url": "https://docs.easypost.com/releases",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:43.380604863Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdf82a55e910"
          },
          {
            "url": "https://legal.easypost.com/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:21:24.366175945Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c3f1c1d70fd7"
          }
        ],
        "updatedAt": "2026-10-08T18:21:57.327218266Z"
      }
    },
    "answer": "ShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
    "b": {
      "slug": "shipstation",
      "name": "ShipStation API",
      "vendor": "Auctane LLC d/b/a ShipStation",
      "vendorUrl": "https://www.shipstation.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Multi-carrier shipping API from ShipStation, an Auctane brand. API v2 at api.shipstation.com/v2 quotes rates, buys and voids labels, validates addresses, tracks parcels and creates return labels, with batches, manifests, pickups and inventory.",
      "url": "https://www.anchorterminal.com/tools/shipstation",
      "markdownUrl": "https://www.anchorterminal.com/tools/shipstation.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shipstation.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shipstation.json",
      "repo": "https://github.com/ShipEngine/shipengine-openapi",
      "license": "Proprietary service under ShipStation's terms of service. The v2 OpenAPI file is marked MIT and the SDKs on GitHub are Apache 2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.shipstation.com/v2",
      "packages": [
        {
          "registry": "npm",
          "name": "shipengine"
        },
        {
          "registry": "pypi",
          "name": "shipengine"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve API key sent in an `API-Key` header, with no partner or sales approval. Two routes lead to a v2 key. A ShipStation API account (formerly ShipEngine) gets production keys and `TEST_` sandbox keys from api-portal.shipstation.com on every plan, Free included. A ShipStation platform account needs the Standard or Premium plan and generates one v2 key at a time in API Settings, shown once. The docs say the key gives full access to the account. No OAuth, scopes or read-only keys were found.",
      "pricing": "freemium",
      "pricingNotes": "ShipStation API (formerly ShipEngine) has a Free plan at $0 with a sandbox and, by the pricing page, no card. Advanced is $75 a month for 1,000 labels ($0.075 a label over), $325 for 5,000 ($0.065) or $600 for 10,000 ($0.060), and Enterprise is by quote from 25,000 shipments a month. On the ShipStation platform the API comes with Standard (from $29.99 a month for 50 shipments) and Premium (from $349.99), after a 30-day trial with no card, and has no sandbox. Postage is charged separately at carrier rates (checked 2026-10-07).",
      "priceSummary": "$75 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the v2 docs, the OpenAPI spec or the pricing pages (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 6835,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://docs.shipstation.com/api-overview",
      "llmsTxt": "https://docs.shipstation.com/llms.txt",
      "openapi": "https://docs.shipstation.com/_bundle/apis/@shipstation-v2/openapi.yaml",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "sandbox",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "python",
        "javascript",
        "dotnet",
        "status-page"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.3,
        "grade": "C",
        "agentReady": false,
        "rank": 382,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 64,
          "maintenance": 73,
          "payments": 40,
          "reliability": 64,
          "schema": 83,
          "security": 32,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-07"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 contract with 173 operations, Markdown docs for agents and a free ShipStation API plan with a sandbox make a first rate quote or test label reachable without a contract. One API key carries full account access, with no scopes, read-only mode or idempotency keys on label purchases.",
        "bestFor": "An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans.",
        "strengths": [
          "Public OpenAPI 3.1 spec for v2 with 173 operations and 372 schemas, plus llms.txt and a Markdown copy of every docs page",
          "ShipStation API Free plan at $0 with no card stated, and a sandbox on every ShipStation API plan through `TEST_` keys",
          "200 requests a minute by default, with `Retry-After` on 429 responses",
          "Errors carry `error_source`, `error_type`, `error_code` and a `request_id`, and separate carrier faults from ShipStation's own",
          "Release notes show new v2 endpoints in every month from June to October 2026"
        ],
        "weaknesses": [
          "One API key with full account access. No scopes, read-only keys or approval step before a label is bought",
          "No idempotency key on label purchase, so a retry after a timeout can buy a second label",
          "ShipStation platform accounts have no sandbox, and API access needs the Standard plan (from $29.99 a month) or Premium",
          "The official SDKs call api.shipengine.com/v1, and the JavaScript SDK was last tagged on 31 January 2024",
          "No security.txt, certification, disclosure policy, DPA or named subprocessor list found on the pages we read"
        ],
        "agentNotes": [
          "Send the key in an `API-Key` header to https://api.shipstation.com/v2. A key that starts `TEST_` runs in the sandbox on the same host",
          "Call GET /v2/carriers first. Rate and label calls need `carrier_ids` or a `carrier_id` and a `service_code` from that account",
          "Don't blindly retry POST /v2/labels after a timeout. List labels first, then void a duplicate with PUT /v2/labels/{label_id}/void",
          "Check the `errors` array on 2XX responses too, and read `error_source` to tell a carrier fault from a ShipStation one",
          "On a platform (Standard or Premium) key every label is real and charged. Ask the owner before buying, and void test labels at once"
        ],
        "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": 59.3
          }
        ],
        "editorialScores": {
          "ergonomics": 64,
          "maintenance": 73,
          "payments": 40,
          "reliability": 64,
          "schema": 83,
          "security": 32,
          "transparency": 42
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl -iX GET https://api.shipstation.com/v2/carriers \\\n-H 'API-Key: __YOUR_API_KEY_HERE__'",
        "claudeCode": "claude mcp add --transport http shipstation-api https://docs.shipstation.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/shipstation"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "ShipStation API Free",
          "unit": "month",
          "usd": 0,
          "note": "sandbox included, postage extra"
        },
        {
          "item": "ShipStation API Advanced, 1,000 labels",
          "unit": "month",
          "usd": 75,
          "note": "$325 for 5,000 labels, $600 for 10,000"
        },
        {
          "item": "Label over the Advanced 1,000 allowance",
          "unit": "tx",
          "usd": 0.075,
          "note": "$0.065 on the 5,000 tier, $0.060 on the 10,000 tier"
        },
        {
          "item": "ShipStation platform Standard, 50 shipments",
          "unit": "month",
          "usd": 29.99,
          "note": "lowest platform plan with API access"
        }
      ],
      "provenance": {
        "legalEntity": "Auctane LLC d/b/a ShipStation",
        "domain": "shipstation.com",
        "domainRegistered": "2005-04-14",
        "endpointOnVendorDomain": true,
        "terms": "https://www.shipstation.com/terms-of-service/",
        "privacy": "https://www.shipstationglobal.com/legal/privacy-policy/",
        "statusPage": "https://status.shipstation.com",
        "changelog": "https://docs.shipstation.com/apis/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-07",
        "notes": [
          "The terms of service, effective 16 July 2026, name Auctane LLC d/b/a ShipStation and its affiliates, with Auctane, Inc. as parent.",
          "www.shipstation.com/privacy-policy/ redirects through auctane.com to www.shipstationglobal.com/legal/privacy-policy/, Auctane, Inc.'s policy for ShipStation, ShipEngine, Stamps.com and its other brands, effective 18 March 2026.",
          "/.well-known/security.txt returns 404 on www.shipstation.com, api.shipstation.com, docs.shipstation.com and www.shipstationglobal.com.",
          "The v2 API answers at api.shipstation.com. Webhook signing keys and the older v1 endpoints sit on api.shipengine.com, and the docs link a dashboard at dashboard.shipengine.com.",
          "RDAP for shipstation.com gives a registration date of 2005-04-14."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shipstation.json",
      "live": {
        "slug": "shipstation",
        "probe": {
          "target": "https://api.shipstation.com/v2",
          "method": "get",
          "lastAt": "2026-10-08T18:20:40.058219641Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 342,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 344,
          "p95ms24h": 390,
          "samples24h": 33,
          "samples30d": 33,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 33,
              "ok": 33
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shipstation.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T18:22:19.243011076Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "shipengine",
            "version": "1.0.7",
            "seenAt": "2026-10-08T16:29:10.143981506Z"
          },
          {
            "registry": "pypi",
            "name": "shipengine",
            "version": "2.1.1",
            "released": "2026-05-06",
            "seenAt": "2026-10-08T16:29:10.99861941Z"
          }
        ],
        "githubStars": 29,
        "npmWeekly": 6835,
        "pypiWeekly": 3230,
        "securityTxt": {
          "url": "https://shipstation.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:39.702773194Z"
        },
        "pages": [
          {
            "url": "https://docs.shipstation.com/apis/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:19:24.519853433Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0c732bd7a0dc"
          }
        ],
        "updatedAt": "2026-10-08T18:22:19.243011076Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Simpler Postage, Inc. (d/b/a EasyPost)",
        "b": "Auctane LLC d/b/a ShipStation",
        "name": "Vendor"
      },
      {
        "a": "https://api.easypost.com/v2",
        "b": "https://api.shipstation.com/v2",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API 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 ShipStation's terms of service. The v2 OpenAPI file is marked MIT and the SDKs on GitHub are Apache 2.0",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-28",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-08-25",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-08-25",
        "b": "2026-03-18",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "149 stars, 100k npm/wk, 42k PyPI/wk",
        "b": "6.8k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "ShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.",
        "question": "Which is better for AI agents, EasyPost or ShipStation API?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do EasyPost and ShipStation API need an API key?"
      },
      {
        "answer": "Yes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and ShipStation API at https://api.shipstation.com/v2.",
        "question": "Can an agent call EasyPost and ShipStation API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Security \u0026 auth, 47 against 32",
          "Maintenance \u0026 community, 85 against 73",
          "Transparency \u0026 trust, 70 against 64"
        ],
        "also": null,
        "goodFor": "An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.",
        "slug": "easypost",
        "watchFor": "No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace"
      },
      {
        "aheadOn": [
          "Reliability, 64 against 53",
          "Schema \u0026 documentation, 83 against 55",
          "Payments \u0026 pricing, 40 against 22"
        ],
        "also": null,
        "goodFor": "An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans.",
        "slug": "shipstation",
        "watchFor": "One API key with full account access. No scopes, read-only keys or approval step before a label is bought"
      }
    ],
    "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-sendcloud.json",
        "title": "EasyPost vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shippo.json",
        "title": "EasyPost vs Shippo",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shipstation.json",
        "title": "Easyship vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.json",
        "title": "Sendcloud vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippo-vs-shipstation.json",
        "title": "Shippo vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/shippo-vs-shipstation"
      }
    ],
    "scores": [
      {
        "by": 11,
        "easypost": 53,
        "edge": "shipstation",
        "key": "reliability",
        "name": "Reliability",
        "shipstation": 64,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "easypost": 55,
        "edge": "shipstation",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "shipstation": 83,
        "weight": 13
      },
      {
        "by": 1,
        "easypost": 63,
        "edge": "shipstation",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "shipstation": 64,
        "weight": 13
      },
      {
        "by": 15,
        "easypost": 47,
        "edge": "easypost",
        "key": "security",
        "name": "Security \u0026 auth",
        "shipstation": 32,
        "weight": 14
      },
      {
        "by": 18,
        "easypost": 22,
        "edge": "shipstation",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "shipstation": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "easypost": 85,
        "edge": "easypost",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "shipstation": 73,
        "weight": 7
      },
      {
        "by": 6,
        "easypost": 70,
        "edge": "easypost",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "shipstation": 64,
        "weight": 7
      }
    ],
    "summary": "ShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. 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.",
      "shipstation": "A public OpenAPI 3.1 contract with 173 operations, Markdown docs for agents and a free ShipStation API plan with a sandbox make a first rate quote or test label reachable without a contract. One API key carries full account access, with no scopes, read-only mode or idempotency keys on label purchases."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/easypost-vs-shipstation",
    "json": "https://www.anchorterminal.com/compare/easypost-vs-shipstation.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/easypost-vs-shipstation.md",
    "slim": "https://www.anchorterminal.com/compare/easypost-vs-shipstation.min.md"
  },
  "markdown": "ShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. 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- ShipStation API: grade C, 59.3/100, rank #382 of 629. Markdown https://www.anchorterminal.com/tools/shipstation.md · JSON https://www.anchorterminal.com/api/v1/tools/shipstation.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- Security \u0026 auth, 47 against 32\n- Maintenance \u0026 community, 85 against 73\n- Transparency \u0026 trust, 70 against 64\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### ShipStation API (C)\n\nGood for: An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans.\n\nAhead on:\n- Reliability, 64 against 53\n- Schema \u0026 documentation, 83 against 55\n- Payments \u0026 pricing, 40 against 22\n\nWatch for: One API key with full account access. No scopes, read-only keys or approval step before a label is bought\n\n\n## Score by category\n\n| Category | Weight | EasyPost | ShipStation API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 53 | 64 | ShipStation API +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 83 | ShipStation API +28 |\n| Agent ergonomics | 13% (16.2 this run) | 63 | 64 | ShipStation API +1 |\n| Security \u0026 auth | 14% (17.5 this run) | 47 | 32 | EasyPost +15 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 22 | 40 | ShipStation API +18 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 85 | 73 | EasyPost +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 70 | 64 | EasyPost +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **54.3 · C** | **59.3 · C** | |\n\n## Facts side by side\n\n| Fact | EasyPost | ShipStation API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Simpler Postage, Inc. (d/b/a EasyPost) | Auctane LLC d/b/a ShipStation |\n| Hosted endpoint | `https://api.easypost.com/v2` | `https://api.shipstation.com/v2` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API 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 ShipStation's terms of service. The v2 OpenAPI file is marked MIT and the SDKs on GitHub are Apache 2.0 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-28 | 2026-10-01 |\n| Terms last updated | 2026-08-25 | no date given |\n| Privacy policy last updated | 2026-08-25 | 2026-03-18 |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | yes |\n| Popularity | 149 stars, 100k npm/wk, 42k PyPI/wk | 6.8k npm/wk |\n\n## Verdicts\n\n**EasyPost.** Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.\n\n**ShipStation API.** A public OpenAPI 3.1 contract with 173 operations, Markdown docs for agents and a free ShipStation API plan with a sandbox make a first rate quote or test label reachable without a contract. One API key carries full account access, with no scopes, read-only mode or idempotency keys on label purchases.\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### ShipStation API\n\n1. Send the key in an `API-Key` header to https://api.shipstation.com/v2. A key that starts `TEST_` runs in the sandbox on the same host\n2. Call GET /v2/carriers first. Rate and label calls need `carrier_ids` or a `carrier_id` and a `service_code` from that account\n3. Don't blindly retry POST /v2/labels after a timeout. List labels first, then void a duplicate with PUT /v2/labels/{label_id}/void\n4. Check the `errors` array on 2XX responses too, and read `error_source` to tell a carrier fault from a ShipStation one\n5. On a platform (Standard or Premium) key every label is real and charged. Ask the owner before buying, and void test labels at once\n\n## Questions\n\n### Which is better for AI agents, EasyPost or ShipStation API?\n\nShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust.\n\n### Do EasyPost and ShipStation API need an API key?\n\nBoth need an API key.\n\n### Can an agent call EasyPost and ShipStation API without installing anything?\n\nYes. EasyPost has a hosted endpoint at https://api.easypost.com/v2 and ShipStation API at https://api.shipstation.com/v2.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/easypost-vs-shipstation.json, and with the fewest tokens: https://www.anchorterminal.com/compare/easypost-vs-shipstation.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"easypost\", \"b\": \"shipstation\"}`. From a terminal: `anchor compare easypost shipstation`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/easypost.json and https://www.anchorterminal.com/api/v1/tools/shipstation.json\n\n## Other comparisons with EasyPost or ShipStation API\n\n- [EasyPost vs Easyship](https://www.anchorterminal.com/compare/easypost-vs-easyship.md)\n- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)\n- [EasyPost vs Shippo](https://www.anchorterminal.com/compare/easypost-vs-shippo.md)\n- [Easyship vs ShipStation API](https://www.anchorterminal.com/compare/easyship-vs-shipstation.md)\n- [Sendcloud vs ShipStation API](https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.md)\n- [Shippo vs ShipStation API](https://www.anchorterminal.com/compare/shippo-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 ShipStation API",
        "url": ""
      }
    ],
    "description": "ShipStation API scores 59.3 (C) on agent readiness against EasyPost's 54.3 (C), and leads in 4 of 7 scored categories. EasyPost leads on security \u0026 auth, maintenance \u0026 community and transparency \u0026 trust. Both do shipping rates. Category scores, facts, verdicts and agent notes…",
    "facts": [
      "EasyPost C 54.3",
      "ShipStation API C 59.3",
      "scores"
    ],
    "h1": "EasyPost vs ShipStation API",
    "image": "https://www.anchorterminal.com/assets/og/compare-easypost-vs-shipstation.png",
    "path": "/compare/easypost-vs-shipstation",
    "published": "2026-10-01",
    "section": "tools",
    "title": "EasyPost vs ShipStation API for AI agents, C 54.3 vs C 59.3",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/easypost-vs-shipstation"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 730
  },
  "version": 1
}
