{
  "data": {
    "category": {
      "area": "business",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "description": "Services that quote carrier rates, buy labels, validate addresses, track parcels and handle returns. Compared on carrier coverage, rate and label calls, tracking events and how costs are charged.",
      "json": "https://www.anchorterminal.com/categories/shipping.json",
      "name": "Shipping \u0026 fulfilment",
      "slug": "shipping",
      "test": "The same parcel quoted between the same two addresses on each listing's test mode, a label bought for the cheapest tracked service and the shipment followed to delivery. We check the rates returned, address validation, tracking events and refund of an unused label. In this run listings are graded from public evidence against the published checklist.",
      "title": "Shipping and fulfilment APIs for AI agents",
      "toolCount": 5,
      "tools": [
        "easyship",
        "sendcloud",
        "shippo",
        "shipstation",
        "easypost"
      ],
      "url": "https://www.anchorterminal.com/categories/shipping"
    },
    "tools": [
      {
        "slug": "easyship",
        "name": "Easyship",
        "vendor": "Easyship Inc.",
        "vendorUrl": "https://www.easyship.com",
        "kind": "http-api",
        "category": "shipping",
        "summary": "Multi-carrier shipping platform from Easyship. Its public API and hosted MCP server quote courier rates, create shipments, buy labels, validate addresses, track parcels and book pickups across what Easyship says are 550+ courier services.",
        "url": "https://www.anchorterminal.com/tools/easyship",
        "markdownUrl": "https://www.anchorterminal.com/tools/easyship.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/easyship.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/easyship.json",
        "repo": "https://github.com/easyship/easyship-mcp-plugin",
        "license": "Proprietary service under Easyship's terms of service. The easyship-mcp server on PyPI and the plugin repository are MIT",
        "transports": [
          "http",
          "streamable-http",
          "stdio"
        ],
        "remoteUrl": "https://public-api.easyship.com",
        "packages": [
          {
            "registry": "pypi",
            "name": "easyship-mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "Self-serve. A person signs up, opens Connect in the dashboard, creates an API Integration and copies a Bearer token. On v2024-09 the token carries scopes of the form `public.\u003cresource\u003e:read` or `:write`, editable later, and some scopes (advanced or beta functions) are granted by Easyship on request. Sandbox tokens start `sand_` and production tokens `prod_`. Partner apps that connect other Easyship users register through a form and use OAuth 2.0 authorisation code. The MCP server accepts the same Bearer token, and also publishes OAuth metadata with PKCE and dynamic client registration.",
        "pricing": "freemium",
        "pricingNotes": "Free plan with no card, 50 shipments a month in the US, and a sandbox, so an agent's owner can start without a contract. Plus is US$29 a month and Premier US$69, with Scale tiers from US$99 and Enterprise on request. Labels are charged at the courier rate the API quotes. Rates, address validation, tax and duty, HS code and off-platform tracking calls are metered, pay-as-you-go on Free and with monthly quotas on paid plans. Prices vary by country (https://www.easyship.com/plans, US figures, checked 2026-10-07).",
        "priceSummary": "$29 / mo",
        "where": "both",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI spec or the plans page (checked 2026-10-07).",
          "endpoints": []
        },
        "toolCount": 25,
        "popularity": {
          "githubStars": 0,
          "npmWeekly": null,
          "pypiWeekly": 79,
          "asOf": "2026-10-07"
        },
        "docsUrl": "https://developers.easyship.com",
        "llmsTxt": "https://developers.easyship.com/llms.txt",
        "openapi": "https://developers.easyship.com/reference/rates_request.md",
        "registryName": "com.easyship/mcp",
        "capabilities": [
          "shipping.rates",
          "shipping.labels",
          "shipping.tracking",
          "shipping.address-validation",
          "shipping.returns"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "api-key",
          "oauth",
          "mcp",
          "openapi",
          "llms-txt",
          "sandbox",
          "webhooks",
          "python",
          "status-page"
        ],
        "lastRelease": "2026-08-21",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 68.8,
          "grade": "B",
          "agentReady": false,
          "rank": 163,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 1,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 73,
            "maintenance": 56,
            "payments": 40,
            "reliability": 80,
            "schema": 87,
            "security": 61,
            "transparency": 71
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-07"
          },
          "negative": 0,
          "verdict": "Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.",
          "bestFor": "An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts.",
          "strengths": [
            "Tokens carry per-resource read and write scopes, with separate sandbox (sand_) and production (prod_) tokens",
            "Hosted MCP server at mcp.easyship.com with 25 tools, each carrying readOnlyHint, destructiveHint and openWorldHint",
            "llms.txt and a Markdown twin of every reference page, each with its OpenAPI 3.0.3 definition",
            "Free plan with no card and 50 shipments a month in the US, and per-call prices for the metered endpoints",
            "status.easyship.com lists no incident since 5 December 2025"
          ],
          "weaknesses": [
            "No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429",
            "The MCP server has no test mode, so a label bought through it is charged",
            "API changelog's last entry is 30 October 2025, and no deprecation policy was found",
            "security.txt expired on 5 October 2025, and the sub-processor list is dated 15 October 2020",
            "No official SDKs found, and the published limit is 60 requests a minute"
          ],
          "agentNotes": [
            "Use a sand_ token against https://public-api-sandbox.easyship.com for API tests. Production rejects sandbox tokens, and sandbox allows 6 requests a minute",
            "The MCP server calls production only. Create the shipment without buy_label first, then call create_label once the user confirms the courier and price",
            "Don't retry a timed-out label purchase blindly. There's no idempotency key, so read the shipment's label_state first",
            "Give every item a category or an hs_code. The API rejects shipments and rates requests that have neither",
            "Stay under 60 requests a minute and 10 a second, and wait for the next window on 429"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.4",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 68.8
            }
          ],
          "editorialScores": {
            "ergonomics": 73,
            "maintenance": 56,
            "payments": 40,
            "reliability": 80,
            "schema": 87,
            "security": 61,
            "transparency": 51
          },
          "provenanceScore": 91
        },
        "connect": {
          "http": "curl -X POST https://public-api.easyship.com/2024-09/rates \\\n  -H \"Authorization: Bearer $EASYSHIP_API_ACCESS_TOKEN\" -H \"Content-Type: application/json\" \\\n  -d @rates-request.json",
          "claudeCode": "claude mcp add --transport http easyship \\\n  https://mcp.easyship.com/mcp \\\n  --header 'Authorization: Bearer YOUR_TOKEN'",
          "config": {
            "mcpServers": {
              "easyship": {
                "headers": {
                  "Authorization": "Bearer YOUR_TOKEN"
                },
                "url": "https://mcp.easyship.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/shipping.rates",
          "tool": "https://letme.dev/easyship"
        },
        "area": "business",
        "unitPrices": [
          {
            "item": "Free plan",
            "unit": "month",
            "usd": 0,
            "note": "US, 50 shipments a month, 1 team member"
          },
          {
            "item": "Plus plan",
            "unit": "month",
            "usd": 29,
            "note": "US, billed monthly; $23 billed annually; 500 shipments, 2,000 rates calls included"
          },
          {
            "item": "Premier plan",
            "unit": "month",
            "usd": 69,
            "note": "US, billed monthly; $55 billed annually; 2,500 shipments, 10,000 rates calls included"
          },
          {
            "item": "Rates API call",
            "unit": "call",
            "usd": 0.01,
            "note": "Free plan pay-as-you-go; $0.008 on Plus and $0.007 on Premier beyond the included quota"
          },
          {
            "item": "US address validation",
            "unit": "call",
            "usd": 0.02,
            "note": "Free and Plus; $0.01 on Premier"
          },
          {
            "item": "International address validation",
            "unit": "call",
            "usd": 0.08,
            "note": "Free plan; $0.07 on Plus, $0.06 on Premier"
          },
          {
            "item": "Tax and duty calculation",
            "unit": "call",
            "usd": 0.11,
            "note": "Free and Plus; $0.10 on Premier"
          },
          {
            "item": "Off-platform tracking",
            "unit": "call",
            "usd": 0.05,
            "note": "Free plan; $0.04 on Plus and Premier. Tracking of Easyship's own shipments is free"
          }
        ],
        "provenance": {
          "legalEntity": "Easyship Inc.",
          "domain": "easyship.com",
          "domainRegistered": "2001-02-22",
          "endpointOnVendorDomain": true,
          "terms": "https://www.easyship.com/legal/terms/us",
          "privacy": "https://www.easyship.com/legal/privacy-policy",
          "statusPage": "https://status.easyship.com",
          "changelog": "https://developers.easyship.com/reference/changelog",
          "securityTxt": "expired",
          "checked": "2026-10-07",
          "notes": [
            "The terms overview (last updated 12 August 2022) names a contracting entity by origin country. Easyship Inc., 61 Broadway, Suite 1705, New York for the United States, Easyship Fulfillment Services Ltd. in Hong Kong for countries not listed, and others for Australia, Canada, the Netherlands, Singapore and the United Kingdom.",
            "The US terms were last updated on 28 July 2026 and promise 30 days' notice of material changes.",
            "The API answers at public-api.easyship.com and the MCP server at mcp.easyship.com, both on the vendor's domain.",
            "www.easyship.com/.well-known/security.txt carries Expires 2025-10-05 and a Policy link to https://vdp.easyship.com.",
            "RDAP for easyship.com gives a registration date of 2001-02-22."
          ],
          "score": 91
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/easyship.json",
        "live": {
          "slug": "easyship",
          "probe": {
            "target": "https://public-api.easyship.com",
            "method": "get",
            "lastAt": "2026-10-08T17:36:35.058391119Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 833,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 823,
            "p95ms24h": 1197,
            "samples24h": 25,
            "samples30d": 25,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 25,
                "ok": 25
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.easyship.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T17:38:50.913733327Z"
          },
          "versions": [
            {
              "registry": "pypi",
              "name": "easyship-mcp",
              "version": "0.6.5",
              "released": "2026-08-21",
              "seenAt": "2026-10-08T16:09:53.609079021Z"
            }
          ],
          "githubStars": 0,
          "pypiWeekly": 83,
          "securityTxt": {
            "url": "https://easyship.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:30.640097558Z"
          },
          "updatedAt": "2026-10-08T17:38:50.913733327Z"
        }
      },
      {
        "slug": "sendcloud",
        "name": "Sendcloud",
        "vendor": "Sendcloud B.V.",
        "vendorUrl": "https://www.sendcloud.com",
        "kind": "http-api",
        "category": "shipping",
        "summary": "Shipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled.",
        "url": "https://www.anchorterminal.com/tools/sendcloud",
        "markdownUrl": "https://www.anchorterminal.com/tools/sendcloud.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendcloud.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendcloud.json",
        "license": "Proprietary service under Sendcloud's terms and conditions",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://mcp.sendcloud.com/mcp",
        "packages": [],
        "auth": "mixed",
        "authNotes": "Self-serve. A person signs up at account.sendcloud.com, adds an invoice and sender address, then creates a Sendcloud API integration in the panel, which issues a public and secret key pair. The pair works as HTTP Basic or is exchanged at https://account.sendcloud.com/oauth2/token for a one-hour Bearer token (client credentials, scope `api`). The MCP server uses an OAuth 2.0 sign-in at account.sendcloud.com, found through RFC 9728 metadata, with the same single scope. No partner or sales approval is needed for API v3.",
        "pricing": "freemium",
        "pricingNotes": "Free plan at €0 for up to 20 parcels a month at Sendcloud's carrier rates, and a 14-day trial of paid plans with no card per the pricing page. Lite is €28 a month plus €0.10 a label, Growth €87 plus €0.09, Premium €175 plus €0.08, Pro €639 plus €0.07, Enterprise on request, with 20 per cent off for yearly billing. Carrier postage is extra. There is no sandbox, but 50 Unstamped letter test labels are free. The pricing table has an API access row whose per-plan marks we couldn't read (https://www.sendcloud.com/pricing/).",
        "priceSummary": "$31.30 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-07).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-10-07"
        },
        "docsUrl": "https://sendcloud.dev",
        "llmsTxt": "https://sendcloud.dev/llms.txt",
        "openapi": "https://sendcloud.dev/.openapi/v3/shipments/openapi.yaml",
        "capabilities": [
          "shipping.rates",
          "shipping.labels",
          "shipping.tracking",
          "shipping.address-validation",
          "shipping.returns"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "mcp",
          "oauth",
          "api-key",
          "openapi",
          "llms-txt",
          "webhooks",
          "status-page",
          "europe",
          "iso27001"
        ],
        "lastRelease": "2026-10-05",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 62,
          "grade": "B",
          "agentReady": false,
          "rank": 314,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 2,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 71,
            "maintenance": 67,
            "payments": 37,
            "reliability": 68,
            "schema": 89,
            "security": 49,
            "transparency": 72
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-07"
          },
          "negative": -3,
          "negativeNotes": [
            "21 and 25 September 2026. The API v3 changelog records `insurance.currency` and `insurance.value` removed from POST /parcels/tracking, and `status_code`, `status_description` and `sub_status_code` removed from tracking event responses, with no earlier deprecation entry for those fields. The changes are documented on the day, so the deduction is the minimum (https://sendcloud.dev/api/v3/changelog.md)"
          ],
          "verdict": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.",
          "bestFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
          "strengths": [
            "29 public OpenAPI 3.1 specs covering 104 API v3 operations, with an llms.txt index and Markdown copies of every docs page",
            "Hosted MCP server at mcp.sendcloud.com/mcp with 24 toolsets, a `?toolsets=` filter and read-only, idempotent and destructive annotations per the docs",
            "A repeated `external_reference_id` on shipment creation returns the existing shipment with a 409 instead of buying a second label",
            "Free test labels through the `sendcloud:letter` and `sendcloud:letterreturn` shipping options, up to 50 before charges apply",
            "Dated API v3 changelog with 37 entries between 9 July and 5 October 2026"
          ],
          "weaknesses": [
            "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation",
            "Changelog entries of 21 and 25 September 2026 record removed request and response fields on parcel tracking with no earlier deprecation entry",
            "No Retry-After header or backoff guidance was found for 429 responses",
            "No official SDK was found in the reviewed documentation, and the MCP server isn't in the official MCP registry",
            "No test environment. Labels other than the Unstamped letter options are charged unless the carrier accepts a cancellation"
          ],
          "agentNotes": [
            "Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026",
            "Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline",
            "Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label",
            "Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status",
            "Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 0,
          "avgRating": 0,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.4",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 62
            }
          ],
          "editorialScores": {
            "ergonomics": 71,
            "maintenance": 67,
            "payments": 37,
            "reliability": 68,
            "schema": 89,
            "security": 49,
            "transparency": 62
          },
          "provenanceScore": 81
        },
        "connect": {
          "http": "curl -X POST --location \"https://account.sendcloud.com/oauth2/token\" \\\n  --header \"Content-Type: application/x-www-form-urlencoded\" \\\n  -d \"grant_type=client_credentials\u0026scope=api\" \\\n  --basic --user your_sendcloud_public_key:your_sendcloud_private_key",
          "claudeCode": "claude mcp add --transport http sendcloud https://mcp.sendcloud.com/mcp",
          "config": {
            "mcpServers": {
              "sendcloud": {
                "type": "http",
                "url": "https://mcp.sendcloud.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/shipping.rates",
          "tool": "https://letme.dev/sendcloud"
        },
        "area": "business",
        "unitPrices": [
          {
            "item": "Lite plan",
            "unit": "month",
            "usd": 31.3,
            "note": "€28, 400 labels a month, plus €0.10 a label"
          },
          {
            "item": "Growth plan",
            "unit": "month",
            "usd": 97.24,
            "note": "€87, 1,000 labels a month, plus €0.09 a label"
          },
          {
            "item": "Premium plan",
            "unit": "month",
            "usd": 195.6,
            "note": "€175, 10,000 labels a month, plus €0.08 a label"
          },
          {
            "item": "Pro plan",
            "unit": "month",
            "usd": 714.21,
            "note": "€639, 30,000 labels a month, plus €0.07 a label"
          },
          {
            "item": "Label fee on Lite",
            "unit": "tx",
            "usd": 0.11,
            "note": "€0.10 a label on top of carrier postage, €0.25 above the monthly limit"
          }
        ],
        "provenance": {
          "legalEntity": "Sendcloud B.V.",
          "domain": "sendcloud.com",
          "domainRegistered": "2008-07-29",
          "endpointOnVendorDomain": true,
          "terms": "https://www.sendcloud.com/terms-conditions/",
          "privacy": "https://www.sendcloud.com/privacy-policy/",
          "statusPage": "https://status.sendcloud.com",
          "changelog": "https://sendcloud.dev/api/v3/changelog",
          "securityTxt": "none",
          "checked": "2026-10-07",
          "notes": [
            "The terms, last updated 1 September 2026, name Sendcloud B.V., registration 66572959, Stadhuisplein 10, 5611 EM Eindhoven, with Sendcloud GmbH, Ltd., SAS and Srl for Germany and Austria, the UK, France and Italy. Dutch law applies.",
            "The MCP server answers at mcp.sendcloud.com and tokens come from account.sendcloud.com. The REST API answers at panel.sendcloud.sc, a second Sendcloud domain.",
            "www.sendcloud.com/.well-known/security.txt and /security.txt return 404. The bug bounty page sends reports to security@sendcloud.com.",
            "RDAP for sendcloud.com gives a registration date of 2008-07-29.",
            "Unit prices are converted from euros at the ECB reference rate of 1.1177 for 7 October 2026, read through api.frankfurter.dev."
          ],
          "score": 81
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/sendcloud.json",
        "live": {
          "slug": "sendcloud",
          "probe": {
            "target": "https://mcp.sendcloud.com/mcp",
            "method": "get",
            "lastAt": "2026-10-08T17:36:45.156031945Z",
            "lastOk": true,
            "lastStatus": 405,
            "lastMs": 74,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 84,
            "p95ms24h": 126,
            "samples24h": 25,
            "samples30d": 25,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 25,
                "ok": 25
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.sendcloud.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T17:25:42.672960135Z"
          },
          "securityTxt": {
            "url": "https://sendcloud.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:40.272539649Z"
          },
          "updatedAt": "2026-10-08T17:36:45.156031945Z"
        }
      },
      {
        "slug": "shippo",
        "name": "Shippo",
        "vendor": "Shippo",
        "vendorUrl": "https://goshippo.com",
        "kind": "http-api",
        "category": "shipping",
        "summary": "Multi-carrier shipping API from Shippo. It quotes rates, buys labels, validates addresses, tracks parcels and creates return labels across the carriers it connects, through a REST API, official SDKs and a hosted MCP server.",
        "url": "https://www.anchorterminal.com/tools/shippo",
        "markdownUrl": "https://www.anchorterminal.com/tools/shippo.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shippo.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shippo.json",
        "repo": "https://github.com/goshippo/ai",
        "license": "Proprietary service under Shippo's terms of use. The SDKs and the goshippo/ai repository (skills and MCP bridge) are MIT",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.goshippo.com",
        "packages": [
          {
            "registry": "npm",
            "name": "shippo"
          },
          {
            "registry": "pypi",
            "name": "shippo"
          },
          {
            "registry": "npm",
            "name": "@shippo/shippo-mcp"
          }
        ],
        "auth": "mixed",
        "authNotes": "Self-serve API key. A person signs up at apps.goshippo.com/join and creates live (shippo_live_) and test (shippo_test_) keys in the API portal, with no review. Calls send `Authorization: ShippoToken \u003ckey\u003e`. Keys are shown once, can be deleted and replaced, and have no scopes. The hosted MCP server at mcp.shippo.com uses per-user OAuth against the live account, with one scope (\"*\"). OAuth credentials for a platform acting for other Shippo accounts come from the sales team. Client-side apps can use a 12-hour JWT from POST /embedded/authz.",
        "pricing": "freemium",
        "pricingNotes": "API Starter has no monthly fee. The first 30 labels a month are free, then 7 cents a label, on top of postage. Calls not tied to a Shippo label are charged per unit (see the price table). API Premier is custom, with volume discounts, through sales. Test mode is free with a test key, so an agent can start without a contract, and billing details are needed for live labels (https://goshippo.com/pricing/api).",
        "priceSummary": "$0.07 / tx",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI spec or the pricing page (checked 2026-10-07).",
          "endpoints": []
        },
        "toolCount": 4,
        "popularity": {
          "githubStars": 3,
          "npmWeekly": 73114,
          "pypiWeekly": 20036,
          "asOf": "2026-10-07"
        },
        "docsUrl": "https://docs.goshippo.com",
        "llmsTxt": "https://docs.goshippo.com/llms.txt",
        "openapi": "https://docs.goshippo.com/spec/shippoapi/public-api.yaml",
        "registryName": "com.shippo/shippo-mcp",
        "capabilities": [
          "shipping.rates",
          "shipping.labels",
          "shipping.tracking",
          "shipping.address-validation",
          "shipping.returns"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "api-key",
          "oauth",
          "mcp",
          "openapi",
          "llms-txt",
          "python",
          "typescript",
          "java",
          "webhooks",
          "sandbox",
          "status-page",
          "soc2"
        ],
        "lastRelease": "2026-10-01",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 61.9,
          "grade": "C",
          "agentReady": false,
          "rank": 317,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 3,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 64,
            "maintenance": 77,
            "payments": 40,
            "reliability": 59,
            "schema": 83,
            "security": 52,
            "transparency": 61
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-07"
          },
          "negative": 0,
          "verdict": "Per-label and per-call prices are public, test keys are self-serve, and the OpenAPI spec, llms.txt and Markdown docs are open to a fetch. Label purchase has no idempotency key, API keys carry no scopes, and the status page logged carrier-side incidents on most days between July and October 2026.",
          "bestFor": "An agent that quotes and buys parcel labels across USPS, UPS, FedEx and DHL Express for a small or mid-size shipper, with a free test mode and public unit prices.",
          "strengths": [
            "Public prices per unit, 7 cents a label after 30 free a month, 1 cent a rate request and 2 cents a tracking request",
            "Test keys (shippo_test_) create free test labels and mock tracking, with data kept apart from live",
            "OpenAPI 3.1 spec with 71 operations, plus llms.txt and a Markdown copy of each docs page",
            "Hosted MCP server at mcp.shippo.com with four tools, reads and writes split so a client can require approval for writes",
            "Rate limits published per endpoint, with separate live and test figures",
            "SOC 2 Type II and PCI DSS listed on the trust centre, with an annual third-party penetration test"
          ],
          "weaknesses": [
            "No idempotency key on label purchase or other writes. Only the Reporting API accepts one",
            "API keys have no scopes or read-only mode, and the OAuth flow has one scope, \"*\"",
            "The hosted MCP server runs on the live account only, with no test mode",
            "Carrier-side incidents on the status page on most days from July to October 2026, many marked major or critical",
            "Terms of use and privacy notice load only with JavaScript, and no SLA or subprocessor list was found",
            "The Python SDK on PyPI is 3.9.0 from 26 November 2024"
          ],
          "agentNotes": [
            "Build and test with a shippo_test_ key. Test and live object IDs are separate, and the hosted MCP server has no test mode",
            "Send `Authorization: ShippoToken \u003ckey\u003e`, not Bearer, and pin `Shippo-API-Version: 2018-02-08`",
            "Before retrying a failed POST /transactions, list recent transactions. There is no idempotency key, and a second purchase is a second charge",
            "Pass `async: false` on shipments and transactions, or poll the object until its status leaves QUEUED",
            "Set `results` on list calls (under 200). Defaults vary by resource, and list calls are limited to 50 a minute on live keys"
          ],
          "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": 61.9
            }
          ],
          "editorialScores": {
            "ergonomics": 64,
            "maintenance": 77,
            "payments": 40,
            "reliability": 59,
            "schema": 83,
            "security": 52,
            "transparency": 38
          },
          "provenanceScore": 84
        },
        "connect": {
          "install": "npm install shippo",
          "http": "curl https://api.goshippo.com/shipments/ \\\n  -H \"Authorization: ShippoToken \u003cAPI_TOKEN\u003e\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{...}'",
          "claudeCode": "claude mcp add --transport http shippo https://mcp.shippo.com",
          "config": {
            "mcpServers": {
              "shippo": {
                "url": "https://mcp.shippo.com"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/shipping.rates",
          "tool": "https://letme.dev/shippo"
        },
        "area": "business",
        "unitPrices": [
          {
            "item": "Label, API Starter, after 30 free a month, plus postage",
            "unit": "tx",
            "usd": 0.07
          },
          {
            "item": "Rate request not tied to a Shippo label",
            "unit": "call",
            "usd": 0.01
          },
          {
            "item": "Tracking request not tied to a Shippo label",
            "unit": "call",
            "usd": 0.02
          },
          {
            "item": "Delivery date estimate",
            "unit": "call",
            "usd": 0.03
          },
          {
            "item": "US address validation",
            "unit": "call",
            "usd": 0.02
          },
          {
            "item": "Non-US address validation",
            "unit": "call",
            "usd": 0.08
          }
        ],
        "provenance": {
          "legalEntity": "Shippo",
          "domain": "goshippo.com",
          "domainRegistered": "2013-09-21",
          "endpointOnVendorDomain": true,
          "terms": "https://privacy.goshippo.com/policies?name=terms-of-use",
          "privacy": "https://privacy.goshippo.com/policies?name=privacy-notice",
          "statusPage": "https://status.goshippo.com",
          "changelog": "https://docs.goshippo.com/api-concepts/api-change-log",
          "securityTxt": "none",
          "checked": "2026-10-07",
          "notes": [
            "The registered legal entity wasn't confirmed. goshippo.com/terms and /privacy redirect to a privacy centre that returns no policy text without JavaScript. The SDK licences name \"Shippo\" as copyright holder.",
            "RDAP for goshippo.com gives a registration date of 2013-09-21.",
            "The API answers at api.goshippo.com and the MCP server at mcp.shippo.com, whose OAuth metadata names https://goshippo.com as the authorisation server.",
            "goshippo.com/.well-known/security.txt and goshippo.com/security both return 404. The trust centre gives security@shippo.com and the AI repository's SECURITY.md gives security@goshippo.com.",
            "The trust centre at trust.goshippo.com lists a SOC 2 Type II report (November 2024 to November 2025), a 2026 bridge letter and a PCI SAQ-A attestation, each on request."
          ],
          "score": 84
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/shippo.json",
        "live": {
          "slug": "shippo",
          "probe": {
            "target": "https://api.goshippo.com",
            "method": "get",
            "lastAt": "2026-10-08T17:36:45.281641673Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 143,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 149,
            "p95ms24h": 392,
            "samples24h": 25,
            "samples30d": 25,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 25,
                "ok": 25
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.goshippo.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T17:25:43.253068618Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "goshippo/ai",
              "version": "v1.5.4",
              "released": "2026-07-23",
              "seenAt": "2026-10-08T16:29:07.821314571Z"
            },
            {
              "registry": "npm",
              "name": "@shippo/shippo-mcp",
              "version": "3.0.4",
              "seenAt": "2026-10-08T16:29:06.611030249Z"
            },
            {
              "registry": "npm",
              "name": "shippo",
              "version": "2.18.0",
              "seenAt": "2026-10-08T16:29:05.577126262Z"
            },
            {
              "registry": "pypi",
              "name": "shippo",
              "version": "3.9.0",
              "released": "2024-11-26",
              "seenAt": "2026-10-08T16:29:06.416959144Z"
            }
          ],
          "githubStars": 3,
          "npmWeekly": 73114,
          "pypiWeekly": 21417,
          "securityTxt": {
            "url": "https://goshippo.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:36.985520401Z"
          },
          "updatedAt": "2026-10-08T17:36:45.281641673Z"
        }
      },
      {
        "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-08T17:36:45.330297128Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 349,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 348,
            "p95ms24h": 390,
            "samples24h": 25,
            "samples30d": 25,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 25,
                "ok": 25
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.shipstation.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T17:25:43.366024704Z"
          },
          "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"
          },
          "updatedAt": "2026-10-08T17:36:45.330297128Z"
        }
      },
      {
        "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-08T17:36:35.021729958Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 446,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 625,
            "p95ms24h": 731,
            "samples24h": 25,
            "samples30d": 25,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 25,
                "ok": 25
              }
            ]
          },
          "vendorStatus": {
            "page": "https://www.easypoststatus.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T17:38:50.825087842Z"
          },
          "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"
          },
          "updatedAt": "2026-10-08T17:38:50.825087842Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/shipping",
    "json": "https://www.anchorterminal.com/categories/shipping.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/shipping.md",
    "slim": "https://www.anchorterminal.com/categories/shipping.min.md"
  },
  "markdown": "Services that quote carrier rates, buy labels, validate addresses, track parcels and handle returns. Compared on carrier coverage, rate and label calls, tracking events and how costs are charged.\n\n- Tools ranked: 5 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 5 · desk reviews by the panel: 0\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns\n- https://letme.dev/shipping.rates picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 163 | Easyship | Easyship Inc. | HTTP API | Shipping | B | 68.8 | medium | no | OAuth or key | hosted + local | none | https://www.anchorterminal.com/tools/easyship.md |\n| 314 | Sendcloud | Sendcloud B.V. | HTTP API | Shipping | B | 62 | medium | no | OAuth or key | hosted | none | https://www.anchorterminal.com/tools/sendcloud.md |\n| 317 | Shippo | Shippo | HTTP API | Shipping | C | 61.9 | medium | no | OAuth or key | hosted | none | https://www.anchorterminal.com/tools/shippo.md |\n| 382 | ShipStation API | Auctane LLC d/b/a ShipStation | HTTP API | Shipping | C | 59.3 | medium | no | API key | hosted | none | https://www.anchorterminal.com/tools/shipstation.md |\n| 468 | EasyPost | Simpler Postage, Inc. (d/b/a EasyPost) | HTTP API | Shipping | C | 54.3 | medium | no | API key | hosted | none | https://www.anchorterminal.com/tools/easypost.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 163. Easyship, B (68.8)\n\nMulti-carrier shipping platform from Easyship. Its public API and hosted MCP server quote courier rates, create shipments, buy labels, validate addresses, track parcels and book pickups across what Easyship says are 550+ courier services. Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.\n\n- Page: https://www.anchorterminal.com/tools/easyship · Markdown: https://www.anchorterminal.com/tools/easyship.md · JSON: https://www.anchorterminal.com/api/v1/tools/easyship.json\n- Capabilities: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns · endpoint: `https://public-api.easyship.com`\n\n### 314. Sendcloud, B (62)\n\nShipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled. API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.\n\n- Page: https://www.anchorterminal.com/tools/sendcloud · Markdown: https://www.anchorterminal.com/tools/sendcloud.md · JSON: https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n- Capabilities: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns · endpoint: `https://mcp.sendcloud.com/mcp`\n\n### 317. Shippo, C (61.9)\n\nMulti-carrier shipping API from Shippo. It quotes rates, buys labels, validates addresses, tracks parcels and creates return labels across the carriers it connects, through a REST API, official SDKs and a hosted MCP server. Per-label and per-call prices are public, test keys are self-serve, and the OpenAPI spec, llms.txt and Markdown docs are open to a fetch. Label purchase has no idempotency key, API keys carry no scopes, and the status page logged carrier-side incidents on most days between July and October 2026.\n\n- Page: https://www.anchorterminal.com/tools/shippo · Markdown: https://www.anchorterminal.com/tools/shippo.md · JSON: https://www.anchorterminal.com/api/v1/tools/shippo.json\n- Capabilities: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns · endpoint: `https://api.goshippo.com`\n\n### 382. ShipStation API, C (59.3)\n\nMulti-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. 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- Page: https://www.anchorterminal.com/tools/shipstation · Markdown: https://www.anchorterminal.com/tools/shipstation.md · JSON: https://www.anchorterminal.com/api/v1/tools/shipstation.json\n- Capabilities: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns · endpoint: `https://api.shipstation.com/v2`\n\n### 468. EasyPost, C (54.3)\n\nEasyPost 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. 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- Page: https://www.anchorterminal.com/tools/easypost · Markdown: https://www.anchorterminal.com/tools/easypost.md · JSON: https://www.anchorterminal.com/api/v1/tools/easypost.json\n- Capabilities: shipping.rates, shipping.labels, shipping.tracking, shipping.address-validation, shipping.returns · endpoint: `https://api.easypost.com/v2`\n\n## How we test this category\n\nThe same parcel quoted between the same two addresses on each listing's test mode, a label bought for the cheapest tracked service and the shipment followed to delivery. We check the rates returned, address validation, tracking events and refund of an unused label. In this run listings are graded from public evidence against the published checklist. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Shipping \u0026 fulfilment",
        "url": ""
      }
    ],
    "description": "5 shipping \u0026 fulfilment listings ranked by the Anchor benchmark. Leader Easyship (B). Services that quote carrier rates, buy labels, validate addresses, track parcels and handle returns. Compared on carrier coverage, rate and label calls, tracking events and how costs are charged.",
    "facts": [
      "Easyship B",
      "Sendcloud B",
      "Shippo C"
    ],
    "h1": "Shipping and fulfilment APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-shipping.png",
    "path": "/categories/shipping",
    "published": "",
    "section": "tools",
    "title": "Shipping and fulfilment APIs for AI agents, ranked | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/categories/shipping"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 380
  },
  "version": 1
}
