{
  "data": {
    "a": {
      "slug": "atoship",
      "name": "atoship",
      "vendor": "atoship LLC",
      "vendorUrl": "https://atoship.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "atoship is US shipping software for e-commerce sellers that sells discounted USPS, UPS, FedEx and DHL labels with no subscription. Agents use its REST API v1 or an MCP server, hosted with OAuth or local through npx.",
      "url": "https://www.anchorterminal.com/tools/atoship",
      "markdownUrl": "https://www.anchorterminal.com/tools/atoship.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/atoship.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/atoship.json",
      "dns": "atoship.grade.anchorterminal.com",
      "transports": [
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://atoship.com/api/mcp",
      "packages": [
        {
          "registry": "npm",
          "name": "@atoship/mcp"
        }
      ],
      "auth": "mixed",
      "authNotes": "REST and the local MCP server take API keys from the dashboard, `ak_live_` for production and `ak_test_` for sandbox, sent as Bearer tokens; the docs advise separate keys with limited scopes and periodic rotation. The hosted MCP server uses OAuth with PKCE (S256) and dynamic registration or a published public client ID, and its approval screen lists what the assistant may do, including buying and voiding labels.",
      "pricing": "usage",
      "pricingNotes": "No subscription or seat fee. Wallet-funded labels cost the discounted carrier rate shown live when quoting. Metered fees are $0.08 a label on your own carrier account, $0.03 a number for tracking labels bought elsewhere and $0.03 a call for the standalone Address Verification API. Sign-up is free with no card, and test keys create no real labels.",
      "priceSummary": "$0.08 / tx",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the MCP docs, API docs, llms.txt or pricing page (checked 2026-11-06). Labels are paid from a prefunded wallet.",
        "endpoints": []
      },
      "toolCount": 12,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://atoship.com/docs/mcp",
      "llmsTxt": "https://atoship.com/llms.txt",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "official",
        "hosted",
        "mcp",
        "remote-mcp",
        "oauth",
        "llms-txt",
        "usage",
        "prepaid",
        "no-card",
        "sandbox",
        "webhooks",
        "postman"
      ],
      "lastRelease": "2026-02-18",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 43,
        "grade": "E",
        "agentReady": false,
        "rank": 1247,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 40,
          "reliability": 30,
          "schema": 55,
          "security": 55,
          "transparency": 45
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.",
        "bestFor": "US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.",
        "strengths": [
          "Free account with no card, and `ak_test_` keys that create no real labels",
          "Per-unit fees published: $0.08 a label on your own carrier account, $0.03 a tracking number or address check",
          "Hosted MCP server with OAuth and PKCE, whose consent screen names label buying and voiding",
          "An agent can spend only what is already in the wallet",
          "Errors carry machine-readable codes and a `retryAfter` on 429"
        ],
        "weaknesses": [
          "No status page; status.atoship.com serves the home page",
          "Rate limits are not given in numbers, and no OpenAPI spec was found",
          "No changelog, and @atoship/mcp was last published on 18 February 2026",
          "Most listed SDKs are not published; only Go installs",
          "No security certification, subprocessor list or retention periods found"
        ],
        "agentNotes": [
          "Use an `ak_test_` key until the user confirms live labels; test mode creates no real labels",
          "Ask the user before `purchase_label`, since it spends the wallet balance",
          "Call `void_label` promptly for a mistaken label, and check the carrier's refund rules",
          "Branch on `error.code`, and on 429 wait `error.retryAfter` seconds",
          "Validate the address with `validate_address` before buying; the standalone endpoint costs $0.03 a call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "E",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 43
          }
        ],
        "editorialScores": {
          "ergonomics": 53,
          "maintenance": 10,
          "payments": 40,
          "reliability": 30,
          "schema": 55,
          "security": 55,
          "transparency": 25
        },
        "provenanceScore": 65,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npx -y @atoship/mcp",
        "claudeCode": "claude mcp add --transport http atoship https://atoship.com/api/mcp",
        "config": {
          "mcpServers": {
            "atoship": {
              "url": "https://atoship.com/api/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/atoship"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Label on your own carrier account",
          "unit": "tx",
          "usd": 0.08,
          "note": "Per label; the carrier bills postage"
        },
        {
          "item": "External tracking number",
          "unit": "tx",
          "usd": 0.03,
          "note": "Only for labels bought elsewhere"
        },
        {
          "item": "Address Verification API call",
          "unit": "call",
          "usd": 0.03,
          "note": "Standalone endpoint only; checks inside rate quotes are free"
        }
      ],
      "provenance": {
        "legalEntity": "atoship LLC",
        "domain": "atoship.com",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://atoship.com/terms",
        "privacy": "https://atoship.com/privacy",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "valid",
        "checked": "2026-11-06",
        "notes": [
          "atoship.com/robots.txt disallows /api/, /dashboard/, /admin/, /_next/ and /static/ for all agents, so the MCP and REST endpoints under /api/ were not requested.",
          "Terms last updated 20 August 2026 and privacy policy 7 May 2026. The terms forbid decompiling or reverse engineering the platform; no clause on reading public pages was found.",
          "security.txt names security@atoship.com, points its policy to the terms and expires 31 December 2027.",
          "status.atoship.com answers with the marketing home page and /docs/status rendered no status content, so no status page is recorded."
        ],
        "score": 65
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/atoship.json",
      "live": {
        "slug": "atoship",
        "probe": {
          "target": "https://atoship.com/api/mcp",
          "method": "get",
          "lastAt": "2026-11-07T18:20:11.359764372Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 404,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 366,
          "p95ms24h": 457,
          "samples24h": 200,
          "samples30d": 200,
          "days": [
            {
              "date": "2026-11-06",
              "probes": 13,
              "ok": 13
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@atoship/mcp",
            "version": "1.0.2",
            "seenAt": "2026-11-06T23:07:48.297476849Z"
          }
        ],
        "npmWeekly": 6,
        "securityTxt": {
          "url": "https://atoship.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2027-12-31T23:59:59.000Z",
          "checkedAt": "2026-11-07T16:01:05.350843408Z"
        },
        "llmsTxt": {
          "url": "https://atoship.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-07T15:31:37.315201154Z"
        },
        "pages": [
          {
            "url": "https://atoship.com/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:42.701099832Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a06a9e463f87"
          },
          {
            "url": "https://atoship.com/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T13:59:44.734681167Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b9b07e284da6"
          }
        ],
        "mcpTools": {
          "url": "https://atoship.com/api/mcp",
          "checkedAt": "2026-11-07T01:42:32.687477466Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-11-07T01:42:32.687477466Z"
        },
        "updatedAt": "2026-11-07T18:20:11.359764372Z"
      }
    },
    "answer": "atoship scores 43 (E) on agent readiness against ShippyPro's 37 (F), and leads in 5 of 7 scored categories. ShippyPro leads on reliability and transparency \u0026 trust.",
    "b": {
      "slug": "shippypro",
      "name": "ShippyPro",
      "vendor": "Italian Valley S.r.l.",
      "vendorUrl": "https://www.shippypro.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Multi-carrier shipping platform from ShippyPro (Italian Valley S.r.l., Florence). Its REST API quotes rates on a customer's own carrier contracts, creates labels and returns, validates addresses, books pickups and tracks parcels. API access is sold with the Enterprise plan.",
      "url": "https://www.anchorterminal.com/tools/shippypro",
      "markdownUrl": "https://www.anchorterminal.com/tools/shippypro.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shippypro.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shippypro.json",
      "dns": "shippypro.grade.anchorterminal.com",
      "license": "Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.shippypro.com",
      "packages": [],
      "auth": "api-key",
      "authNotes": "Sales approval, then a key. The pricing page lists full access to the Multicarrier APIs only on the Enterprise plan, through sales, and the help centre says to check that the subscription includes API access. Keys are created in the account panel under API, more than one per account, as Full Access, Maps (pickup-point map only) or PII Excluded (personal data hidden). The authentication scheme is set out in the API reference, which loads its OpenAPI files by script and wasn't read on 4 November. No expiry or rotation was found in the reviewed documentation.",
      "pricing": "paid",
      "pricingNotes": "Enterprise plan, custom price through sales, billed annually. It is the only plan the pricing page lists with full access to the Multicarrier APIs. The self-serve plans (49 to 259 EUR a month at regular monthly prices, up to 4,000 shipments) are marked UI only. A 14-day, 30-order trial needs no card per the terms, and whether a trial account can call the API was not established. No sandbox. The Generic carrier creates test labels and rates. A higher rate limit costs extra (https://www.shippypro.com/en/pricing).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI files, the API page or the pricing page (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://api.shippypro.com/docs",
      "openapi": "https://api.shippypro.com/docs/v1.json",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "paid",
        "sales-led",
        "enterprise",
        "api-key",
        "openapi",
        "webhooks",
        "soap",
        "status-page",
        "sla",
        "europe"
      ],
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 37,
        "grade": "F",
        "agentReady": false,
        "rank": 1359,
        "ranked": true,
        "rankOf": 1486,
        "categoryRank": 11,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 19,
          "maintenance": 7,
          "payments": 5,
          "reliability": 80,
          "schema": 18,
          "security": 48,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": 0,
        "verdict": "ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found.",
        "bestFor": "A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.",
        "strengths": [
          "Statuspage with a ShippyPro API \u0026 Webhooks component and one per carrier, with the whole 90 days readable",
          "Published SLA of 99.5 per cent monthly availability with service credits of 0.5 to 5 per cent",
          "API keys come in three types, Full Access, Maps and PII Excluded, and an account can hold several",
          "The account panel keeps API request and response logs, an API error history and webhook logs",
          "The Generic carrier creates test labels and rates without a real carrier or tracking number",
          "The privacy policy lists sub-processors per product area and says customer data is never sold"
        ],
        "weaknesses": [
          "The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales",
          "The reference loads its OpenAPI files by script, and no downloadable spec, Markdown docs or SDK was found",
          "No API changelog, release notes or deprecation policy was found, and the terms allow changes without notice",
          "No idempotency key is documented for label creation outside those files, and the help centre says a timed-out `Ship` call can still create a label",
          "Carrier label incidents marked critical appear on the status page on most days from August to November 2026",
          "Label failures come back with `Status` 2 in the response body, per the help centre"
        ],
        "agentNotes": [
          "POST every call. The help centre says the API accepts POST only and that parameter names are case-sensitive",
          "Check `Status` and the error message in every `Ship` response. `Status` 2 means no label was created",
          "Before retrying a `Ship` call that failed or timed out, look the order up by `TransactionID`. A timed-out call can still create a label, and each label counts against the plan",
          "Test with the Generic carrier. `Ship` and `Edit` calls on a real carrier create real labels",
          "Stay under 20 calls per 10 seconds, and use webhooks for tracking rather than bulk `GetTracking` calls"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "F",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 37
          }
        ],
        "editorialScores": {
          "ergonomics": 19,
          "maintenance": 7,
          "payments": 5,
          "reliability": 80,
          "schema": 18,
          "security": 48,
          "transparency": 48
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl -X POST https://api.shippypro.com/v1/Ping \\\n  -H \"Authorization: Bearer \u003cAPI_KEY\u003e\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"Method\": \"Ping\", \"Params\": {}}'"
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/shippypro"
      },
      "area": "business",
      "provenance": {
        "legalEntity": "Italian Valley S.r.l.",
        "domain": "shippypro.com",
        "domainRegistered": "2016-10-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.shippypro.com/en/legal/terms",
        "privacy": "https://www.shippypro.com/en/legal/privacy",
        "statusPage": "https://status.shippypro.com",
        "changelog": "",
        "securityTxt": "unknown",
        "checked": "2026-11-04",
        "notes": [
          "The Terms \u0026 Conditions name Italian Valley Srl, registered number 06587610483, Piazza Francesca Morvillo 15, 50144 Firenze, Italy, as owner of the ShippyPro software. They cover every ShippyPro product and service, the API included, and carry no date or version.",
          "The privacy policy names ShippyPro by Italian Valley S.r.l. as data controller and covers shipment sender and recipient data handled by the product, not only the website.",
          "The API answers at api.shippypro.com and the reference page is served from the same host, loading its OpenAPI files by script.",
          "www.shippypro.com/robots.txt disallows every path outside the language folders, the blog, llms.txt and a short list, so /.well-known/security.txt was not requested. llms.txt is allowed since 21 October 2026 and was read on 4 November.",
          "No API changelog or release notes page was found on the API page, the reference or the help centre's API section.",
          "The SLA at https://www.shippypro.com/en/legal/sla is stated to be part of the agreement with the customer."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shippypro.json",
      "live": {
        "slug": "shippypro",
        "probe": {
          "target": "https://api.shippypro.com",
          "method": "get",
          "lastAt": "2026-11-07T18:20:54.151093183Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 96,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 48,
          "p95ms24h": 149,
          "samples24h": 239,
          "samples30d": 7289,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 241,
              "ok": 241
            },
            {
              "date": "2026-11-07",
              "probes": 187,
              "ok": 187
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shippypro.com",
          "indicator": "major",
          "summary": "Partial System Outage",
          "checkedAt": "2026-11-07T18:22:00.894893396Z"
        },
        "securityTxt": {
          "url": "https://shippypro.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-11-07T16:02:01.764416864Z"
        },
        "domain": {
          "domain": "shippypro.com",
          "registered": "2016-10-24",
          "source": "https://rdap.verisign.com/com/v1/domain/shippypro.com",
          "checkedAt": "2026-11-01T14:11:55.446503256Z"
        },
        "pages": [
          {
            "url": "https://www.shippypro.com/en/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:29.82163517Z",
            "changedAt": "2026-11-04T08:45:18.671052265Z",
            "fingerprint": "f0fd3c4f9b1a"
          },
          {
            "url": "https://www.shippypro.com/en/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:25.338600237Z",
            "changedAt": "2026-11-04T08:45:13.812839268Z",
            "fingerprint": "bc118e7e931c"
          },
          {
            "url": "https://www.shippypro.com/en/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-07T14:34:27.784315164Z",
            "changedAt": "2026-11-04T08:45:16.707406212Z",
            "fingerprint": "4d9ac705d49e"
          }
        ],
        "updatedAt": "2026-11-07T18:22:00.894893396Z"
      }
    },
    "edges": [
      {
        "by": 50,
        "category": "reliability",
        "leads": "shippypro",
        "name": "Reliability",
        "reasons": {
          "a": "Graded as a hosted service on the MCP server at atoship.com/api/mcp and REST API v1. status.atoship.com serves the marketing home page and the docs' API Status page rendered no status content, so no status page is counted (0). No readable incident history (5). 429 and a `RATE_LIMIT_EXCEEDED` code are documented, without numbers (5 of 15). A 429 carries `error.retryAfter` and Retry-After; no idempotency key for label purchases was found (10 of 15). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 10 + 0 + 10 = 30.",
          "b": "Read with the hosted lines and scored on the v1 REST API, where rates, labels and tracking live. Statuspage at status.shippypro.com, read under its own robots.txt on 4 November, with components for ShippyPro Platform (UI), ShippyPro API \u0026 Webhooks and each carrier (20). Its history pages and feed cover the whole 90 days from 6 August, with 122 entries outside scheduled maintenance. Nearly all are one carrier's label creation, marked critical. The others are Orders page problems on 10 August, unsent SMS one-time codes and notifications (29 August to 3 September and 19 September to 5 October), a platform login problem of 3 hours 6 minutes on 18 September, pickup point search for some carriers on 22 October (47 minutes), PDF label retrieval on 22 October and website timeouts for some users on 27 October. None names the API, and each touches one carrier, one function or the web app, so all are partial and read as minor, as on Shippo, ShipStation, Sendcloud and EasyPost (20, from 10, where the 9 October check read the login problem as a major). 20 API calls every 10 seconds, with a 429 above it and a higher limit for a fee, per the help centre re-read on 4 November (15). The help centre documents the 429 with no backoff or Retry-After guidance and suggests spreading calls over several IP addresses. Its API errors article says a Ship call that times out can still create a label, recommends the asynchronous Ship option and names the error for a repeated Transaction ID, which is safe-retry guidance for the core write. The 9 October reading of v2's Retry-After and Idempotency-Key came from files this run doesn't read (see Schema), so the earlier partial is kept on the help centre alone (5). The SLA commits to 99.5 per cent a month with service credits, per the 9 October check, not re-read on 4 November (10). GA (10). 20+20+15+5+10+10 = 80."
        },
        "scores": {
          "a": 30,
          "b": 80
        }
      },
      {
        "by": 37,
        "category": "schema",
        "leads": "atoship",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "No OpenAPI found (/openapi.json is 404); a Postman collection v2.1 of 15 endpoints is the only machine-readable contract, and the hosted MCP tools' schemas were not read because /api/ is disallowed (15 of 25). llms.txt (10). The MCP page gives each tool a one-line description and an example prompt (8 of 20). Input typing could not be checked beyond the docs' object pages (5 of 15). The errors page documents status codes, `error.code` values and `retryAfter`, with examples (12 of 15). v1 API, no changelog found (5 of 15). 15 + 10 + 8 + 5 + 12 + 5 = 55.",
          "b": "The API reference at api.shippypro.com/docs loads its two OpenAPI files (/docs/v1.json and /docs/v2.json) by script, and neither it, the API product page, llms.txt nor the help centre links them as a visible download. This run counts a spec only where a docs page links it as a download, so the contract line is 0 (from 25) and the 9 October readings taken from the files are withdrawn. www.shippypro.com/llms.txt, which robots.txt now allows, lists marketing pages and one link to the reference, and no Markdown docs were found, so it doesn't meet the line (0). The help centre's API articles say what the API is for, that Ship and Edit calls create real labels while the Generic carrier is for tests, that only successful Ship calls count against the plan, and how field validation can block a call (6 of 20, from 14). No typed parameter reference was found outside the script-loaded files (0, from 9). The API errors article explains `Status` 1 and 2 and names common error messages with their fixes, and the panel keeps an error history. No request examples were found outside the files (6 of 15, from 10). The reference page names v1 and v2, and no changelog was found (6 of 15). 0+0+6+0+6+6 = 18."
        },
        "scores": {
          "a": 55,
          "b": 18
        }
      },
      {
        "by": 35,
        "category": "payments",
        "leads": "atoship",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "No x402, MPP or L402 (0). Per-unit fees are published without a login ($0.08 a BYOCA label, $0.03 a tracking number or address check), and wallet postage is priced live in a public calculator (20). Free account with no card, and test keys (20). A person signs up in a browser and funds the wallet (0). 0 + 20 + 20 + 0 = 40.",
          "b": "No x402, MPP or L402 (0). The pricing page, re-read on 4 November, lists full access to the Multicarrier APIs only on the Enterprise plan at a custom price through sales, and marks Professional (159 EUR a month) as Multicarrier API Access not included (0). The terms describe a 14-day, 30-order trial with no card. The help centre now says to check that the subscription includes API access, so we could not establish that a trial account can call the API, and give part credit (5 of 20). A person signs up in a browser and sales activates the API (0). 0+0+5+0 = 5."
        },
        "scores": {
          "a": 40,
          "b": 5
        }
      },
      {
        "by": 34,
        "category": "ergonomics",
        "leads": "atoship",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "12 MCP tools (15, for 11 to 30). List tools for orders and labels, with paging not documented in the pages read (8 of 20). Machine-readable error codes with a retry delay (18 of 20). The npm package's tools carry no readOnlyHint or destructiveHint, and no idempotency key was found; `void_label` undoes a mistaken purchase (5 of 20). Only the Go SDK installs, the hosted server is one URL, and test keys give a safe default (7 of 15). 15 + 8 + 18 + 5 + 7 = 53.",
          "b": "Scored on the REST API from the help centre, since the OpenAPI files aren't read. No response sizing or field selection (0 of 25, from 12) and no pagination or filtering (0 of 20, from 10) is documented outside the files. Label failures return `Status` 2 with an error message, and the errors article gives causes and fixes for common errors, with an error history in the panel (12 of 20, kept). No idempotency key is documented outside the files, but a repeated Transaction ID is refused with a pointer to the Edit call, and Ship can run asynchronously so a timeout doesn't leave its result unknown (7 of 20, kept). No official SDK was found, though the API page's FAQ mentions SDKs, and required parameters can't be read outside the files (0 of 15, from 5). 0+0+12+7+0 = 19."
        },
        "scores": {
          "a": 53,
          "b": 19
        }
      },
      {
        "by": 16,
        "category": "transparency",
        "leads": "shippypro",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "Closed service under terms naming atoship LLC of California (15 of 30). The privacy policy (7 May 2026) keeps data as long as necessary with no periods and names no processors (10 of 30). No deprecation policy or dated notices found (0). No subprocessor list or data locations found (0). 15 + 10 + 0 + 0 = 25.",
          "b": "Closed service. The Terms \u0026 Conditions, re-read on 4 November, are public and name the contracting entity, but carry no date and reserve the right to change the agreement without notice. No automated-access ban was found (12 of 30). The privacy policy covers shipment sender and recipient data per product area, anonymises Amazon customer data 30 days after delivery, keeps staff impersonation logs for 19 months and says personal data is never sold. General retention is stated only as long as necessary, and no DPA was found, per the 9 October check (18 of 30). No deprecation policy. The terms allow any service to be discontinued without notice. The status page carries dated carrier notices, among them the FedEx SOAP API deprecation notice (posted 30 March, closed 22 October 2026) and Deutsche Post (17 August), and the SLA promises seven days' notice of planned downtime (6 of 20). Sub-processors are named per product area, and the full list with countries is a PDF whose file name is dated 15 September 2022, which we did not read (12 of 20). 12+18+6+12 = 48."
        },
        "scores": {
          "a": 45,
          "b": 61
        }
      },
      {
        "by": 7,
        "category": "security",
        "leads": "atoship",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Live and test API keys sent as Bearer tokens, with the docs advising separate keys with limited scopes and rotation, and OAuth with PKCE for the hosted MCP server (25 of 30). Test keys create no real labels, the consent screen names label buying and voiding, and the docs say the agent can spend only funds already in the wallet, with no per-call confirmation (12 of 20). Responses carry addresses and carrier tracking data rather than free text from strangers (10). No audit log found (0). security.txt valid to December 2027 with a security contact; no certification, bounty or disclosure policy beyond the terms (8 of 20). 25 + 12 + 10 + 0 + 8 = 55.",
          "b": "API keys are created in the panel, several per account, in three types (Full Access, Maps, PII Excluded), per the help centre re-read on 4 November. No expiry or rotation was found, and the 9 October reading of a 401 for a revoked key came from the unread v2 file, so the earlier partial is kept (22 of 30). The Maps and PII Excluded types narrow a key, but there is no read-only key and no confirmation step for label creation or voiding. The Generic carrier allows tests without a real shipment (8 of 20). Tracking messages and marketplace order text come from third parties, and no guidance on untrusted content was found. The errors article says requests are screened for script-like strings (3 of 15). The panel has API logs with requests and responses, an API error history and webhook logs (10 of 15). llms.txt and the site footer state SOC 2 Type II and ISO 27001, with no certificate, report, trust page or disclosure route found, and robots.txt still disallows /.well-known/security.txt. This run scores a certification claim with no report or disclosure route 5 (from 8). 22+8+3+10+5 = 48."
        },
        "scores": {
          "a": 55,
          "b": 48
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "atoship LLC",
        "b": "Italian Valley S.r.l.",
        "name": "Vendor"
      },
      {
        "a": "https://atoship.com/api/mcp",
        "b": "https://api.shippypro.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "none",
        "b": "Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary",
        "name": "Licence"
      },
      {
        "a": "12",
        "b": "none",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-02-18",
        "b": "none",
        "name": "Last release"
      },
      {
        "a": "2026-08-20",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-05-07",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "atoship scores 43 (E) on agent readiness against ShippyPro's 37 (F), and leads in 5 of 7 scored categories. ShippyPro leads on reliability and transparency \u0026 trust.",
        "question": "Which is better for AI agents, atoship or ShippyPro?"
      },
      {
        "answer": "atoship takes an API key or an OAuth sign-in. ShippyPro needs an API key.",
        "question": "Do atoship and ShippyPro need an API key?"
      },
      {
        "answer": "Yes. atoship has a hosted endpoint at https://atoship.com/api/mcp and ShippyPro at https://api.shippypro.com.",
        "question": "Can an agent call atoship and ShippyPro without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 55 against 18",
          "Agent ergonomics, 53 against 19",
          "Security \u0026 auth, 55 against 48",
          "Payments \u0026 pricing, 40 against 5"
        ],
        "also": [
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.",
        "slug": "atoship",
        "watchFor": "No status page; status.atoship.com serves the home page"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 30",
          "Transparency \u0026 trust, 61 against 45"
        ],
        "also": null,
        "goodFor": "A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.",
        "slug": "shippypro",
        "watchFor": "The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales"
      }
    ],
    "history": {
      "atoship": null,
      "shippypro": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-04",
          "delta": -11.9,
          "from": 48.9,
          "fromGrade": "D",
          "to": 37,
          "toGrade": "F"
        },
        {
          "causes": [
            "correction"
          ],
          "date": "2026-10-28",
          "delta": -0.1,
          "from": 49,
          "fromGrade": "D",
          "to": 48.9,
          "toGrade": "D"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 48.7,
          "fromGrade": "D",
          "to": 49,
          "toGrade": "D"
        }
      ]
    },
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-easypost.json",
        "title": "atoship vs EasyPost",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-easypost"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-easyship.json",
        "title": "atoship vs Easyship",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-easyship"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-envia.json",
        "title": "atoship vs Envia",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-envia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-karrio.json",
        "title": "atoship vs Karrio",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-sendcloud.json",
        "title": "atoship vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shipbob.json",
        "title": "atoship vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shippo.json",
        "title": "atoship vs Shippo",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-shipstation.json",
        "title": "atoship vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-shippypro.json",
        "title": "EasyPost vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-shippypro.json",
        "title": "Easyship vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/envia-vs-shippypro.json",
        "title": "Envia vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/envia-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-shippypro.json",
        "title": "Karrio vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shippypro.json",
        "title": "Sendcloud vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipbob-vs-shippypro.json",
        "title": "ShipBob vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/shipbob-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippo-vs-shippypro.json",
        "title": "Shippo vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/shippo-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippypro-vs-shipstation.json",
        "title": "ShippyPro vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/shippypro-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-ship24.json",
        "title": "atoship vs Ship24",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atoship-vs-trackingmore.json",
        "title": "atoship vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/atoship-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-shippypro.json",
        "title": "Ship24 vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-shippypro"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.json",
        "title": "ShippyPro vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore"
      }
    ],
    "panel": null,
    "scores": [
      {
        "atoship": 30,
        "by": 50,
        "edge": "shippypro",
        "key": "reliability",
        "name": "Reliability",
        "shippypro": 80,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "atoship": 55,
        "by": 37,
        "edge": "atoship",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "shippypro": 18,
        "weight": 13
      },
      {
        "atoship": 53,
        "by": 34,
        "edge": "atoship",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "shippypro": 19,
        "weight": 13
      },
      {
        "atoship": 55,
        "by": 7,
        "edge": "atoship",
        "key": "security",
        "name": "Security \u0026 auth",
        "shippypro": 48,
        "weight": 14
      },
      {
        "atoship": 40,
        "by": 35,
        "edge": "atoship",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "shippypro": 5,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "atoship": 10,
        "by": 3,
        "edge": "atoship",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "shippypro": 7,
        "weight": 7
      },
      {
        "atoship": 45,
        "by": 16,
        "edge": "shippypro",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "shippypro": 61,
        "weight": 7
      }
    ],
    "summary": "atoship scores 43 (E) on agent readiness against ShippyPro's 37 (F), and leads in 5 of 7 scored categories. ShippyPro leads on reliability and transparency \u0026 trust. Both do shipping rates.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "atoship": "atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.",
      "shippypro": "ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/atoship-vs-shippypro",
    "json": "https://www.anchorterminal.com/compare/atoship-vs-shippypro.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/atoship-vs-shippypro.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/atoship-vs-shippypro.min.md"
  },
  "markdown": "atoship scores 43 (E) on agent readiness against ShippyPro's 37 (F), and leads in 5 of 7 scored categories. ShippyPro leads on reliability and transparency \u0026 trust. Both do shipping rates.\n\n- atoship: grade E, 43/100, rank #1247 of 1486. Markdown https://www.anchorterminal.com/tools/atoship.md · JSON https://www.anchorterminal.com/api/v1/tools/atoship.json\n- ShippyPro: grade F, 37/100, rank #1359 of 1486. Markdown https://www.anchorterminal.com/tools/shippypro.md · JSON https://www.anchorterminal.com/api/v1/tools/shippypro.json\n- Best shipping and fulfilment APIs for AI agents: https://www.anchorterminal.com/best/shipping/index.md\n- All 66 shipping comparisons: https://www.anchorterminal.com/compare/shipping/index.md\n\n## Which one, for what\n\n### atoship (E)\n\nGood for: US sellers who want cheap USPS, UPS and FedEx labels bought by an agent from a capped wallet.\n\nAhead on:\n- Schema \u0026 documentation, 55 against 18\n- Agent ergonomics, 53 against 19\n- Security \u0026 auth, 55 against 48\n- Payments \u0026 pricing, 40 against 5\n\nAlso in its favour:\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: No status page; status.atoship.com serves the home page\n\n### ShippyPro (F)\n\nGood for: A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.\n\nAhead on:\n- Reliability, 80 against 30\n- Transparency \u0026 trust, 61 against 45\n\nWatch for: The pricing page lists Multicarrier API access only on the Enterprise plan, which has no public price and starts with sales\n\n\n## Why the edge\n\n### Reliability: ShippyPro +50\n\n- atoship (30): Graded as a hosted service on the MCP server at atoship.com/api/mcp and REST API v1. status.atoship.com serves the marketing home page and the docs' API Status page rendered no status content, so no status page is counted (0). No readable incident history (5). 429 and a `RATE_LIMIT_EXCEEDED` code are documented, without numbers (5 of 15). A 429 carries `error.retryAfter` and Retry-After; no idempotency key for label purchases was found (10 of 15). No SLA (0). Not labelled beta (10). 0 + 5 + 5 + 10 + 0 + 10 = 30.\n- ShippyPro (80): Read with the hosted lines and scored on the v1 REST API, where rates, labels and tracking live. Statuspage at status.shippypro.com, read under its own robots.txt on 4 November, with components for ShippyPro Platform (UI), ShippyPro API \u0026 Webhooks and each carrier (20). Its history pages and feed cover the whole 90 days from 6 August, with 122 entries outside scheduled maintenance. Nearly all are one carrier's label creation, marked critical. The others are Orders page problems on 10 August, unsent SMS one-time codes and notifications (29 August to 3 September and 19 September to 5 October), a platform login problem of 3 hours 6 minutes on 18 September, pickup point search for some carriers on 22 October (47 minutes), PDF label retrieval on 22 October and website timeouts for some users on 27 October. None names the API, and each touches one carrier, one function or the web app, so all are partial and read as minor, as on Shippo, ShipStation, Sendcloud and EasyPost (20, from 10, where the 9 October check read the login problem as a major). 20 API calls every 10 seconds, with a 429 above it and a higher limit for a fee, per the help centre re-read on 4 November (15). The help centre documents the 429 with no backoff or Retry-After guidance and suggests spreading calls over several IP addresses. Its API errors article says a Ship call that times out can still create a label, recommends the asynchronous Ship option and names the error for a repeated Transaction ID, which is safe-retry guidance for the core write. The 9 October reading of v2's Retry-After and Idempotency-Key came from files this run doesn't read (see Schema), so the earlier partial is kept on the help centre alone (5). The SLA commits to 99.5 per cent a month with service credits, per the 9 October check, not re-read on 4 November (10). GA (10). 20+20+15+5+10+10 = 80.\n\n### Schema \u0026 documentation: atoship +37\n\n- atoship (55): No OpenAPI found (/openapi.json is 404); a Postman collection v2.1 of 15 endpoints is the only machine-readable contract, and the hosted MCP tools' schemas were not read because /api/ is disallowed (15 of 25). llms.txt (10). The MCP page gives each tool a one-line description and an example prompt (8 of 20). Input typing could not be checked beyond the docs' object pages (5 of 15). The errors page documents status codes, `error.code` values and `retryAfter`, with examples (12 of 15). v1 API, no changelog found (5 of 15). 15 + 10 + 8 + 5 + 12 + 5 = 55.\n- ShippyPro (18): The API reference at api.shippypro.com/docs loads its two OpenAPI files (/docs/v1.json and /docs/v2.json) by script, and neither it, the API product page, llms.txt nor the help centre links them as a visible download. This run counts a spec only where a docs page links it as a download, so the contract line is 0 (from 25) and the 9 October readings taken from the files are withdrawn. www.shippypro.com/llms.txt, which robots.txt now allows, lists marketing pages and one link to the reference, and no Markdown docs were found, so it doesn't meet the line (0). The help centre's API articles say what the API is for, that Ship and Edit calls create real labels while the Generic carrier is for tests, that only successful Ship calls count against the plan, and how field validation can block a call (6 of 20, from 14). No typed parameter reference was found outside the script-loaded files (0, from 9). The API errors article explains `Status` 1 and 2 and names common error messages with their fixes, and the panel keeps an error history. No request examples were found outside the files (6 of 15, from 10). The reference page names v1 and v2, and no changelog was found (6 of 15). 0+0+6+0+6+6 = 18.\n\n### Payments \u0026 pricing: atoship +35\n\n- atoship (40): No x402, MPP or L402 (0). Per-unit fees are published without a login ($0.08 a BYOCA label, $0.03 a tracking number or address check), and wallet postage is priced live in a public calculator (20). Free account with no card, and test keys (20). A person signs up in a browser and funds the wallet (0). 0 + 20 + 20 + 0 = 40.\n- ShippyPro (5): No x402, MPP or L402 (0). The pricing page, re-read on 4 November, lists full access to the Multicarrier APIs only on the Enterprise plan at a custom price through sales, and marks Professional (159 EUR a month) as Multicarrier API Access not included (0). The terms describe a 14-day, 30-order trial with no card. The help centre now says to check that the subscription includes API access, so we could not establish that a trial account can call the API, and give part credit (5 of 20). A person signs up in a browser and sales activates the API (0). 0+0+5+0 = 5.\n\n### Agent ergonomics: atoship +34\n\n- atoship (53): 12 MCP tools (15, for 11 to 30). List tools for orders and labels, with paging not documented in the pages read (8 of 20). Machine-readable error codes with a retry delay (18 of 20). The npm package's tools carry no readOnlyHint or destructiveHint, and no idempotency key was found; `void_label` undoes a mistaken purchase (5 of 20). Only the Go SDK installs, the hosted server is one URL, and test keys give a safe default (7 of 15). 15 + 8 + 18 + 5 + 7 = 53.\n- ShippyPro (19): Scored on the REST API from the help centre, since the OpenAPI files aren't read. No response sizing or field selection (0 of 25, from 12) and no pagination or filtering (0 of 20, from 10) is documented outside the files. Label failures return `Status` 2 with an error message, and the errors article gives causes and fixes for common errors, with an error history in the panel (12 of 20, kept). No idempotency key is documented outside the files, but a repeated Transaction ID is refused with a pointer to the Edit call, and Ship can run asynchronously so a timeout doesn't leave its result unknown (7 of 20, kept). No official SDK was found, though the API page's FAQ mentions SDKs, and required parameters can't be read outside the files (0 of 15, from 5). 0+0+12+7+0 = 19.\n\n### Transparency \u0026 trust: ShippyPro +16\n\n- atoship (45): Closed service under terms naming atoship LLC of California (15 of 30). The privacy policy (7 May 2026) keeps data as long as necessary with no periods and names no processors (10 of 30). No deprecation policy or dated notices found (0). No subprocessor list or data locations found (0). 15 + 10 + 0 + 0 = 25.\n- ShippyPro (61): Closed service. The Terms \u0026 Conditions, re-read on 4 November, are public and name the contracting entity, but carry no date and reserve the right to change the agreement without notice. No automated-access ban was found (12 of 30). The privacy policy covers shipment sender and recipient data per product area, anonymises Amazon customer data 30 days after delivery, keeps staff impersonation logs for 19 months and says personal data is never sold. General retention is stated only as long as necessary, and no DPA was found, per the 9 October check (18 of 30). No deprecation policy. The terms allow any service to be discontinued without notice. The status page carries dated carrier notices, among them the FedEx SOAP API deprecation notice (posted 30 March, closed 22 October 2026) and Deutsche Post (17 August), and the SLA promises seven days' notice of planned downtime (6 of 20). Sub-processors are named per product area, and the full list with countries is a PDF whose file name is dated 15 September 2022, which we did not read (12 of 20). 12+18+6+12 = 48.\n\n### Security \u0026 auth: atoship +7\n\n- atoship (55): Live and test API keys sent as Bearer tokens, with the docs advising separate keys with limited scopes and rotation, and OAuth with PKCE for the hosted MCP server (25 of 30). Test keys create no real labels, the consent screen names label buying and voiding, and the docs say the agent can spend only funds already in the wallet, with no per-call confirmation (12 of 20). Responses carry addresses and carrier tracking data rather than free text from strangers (10). No audit log found (0). security.txt valid to December 2027 with a security contact; no certification, bounty or disclosure policy beyond the terms (8 of 20). 25 + 12 + 10 + 0 + 8 = 55.\n- ShippyPro (48): API keys are created in the panel, several per account, in three types (Full Access, Maps, PII Excluded), per the help centre re-read on 4 November. No expiry or rotation was found, and the 9 October reading of a 401 for a revoked key came from the unread v2 file, so the earlier partial is kept (22 of 30). The Maps and PII Excluded types narrow a key, but there is no read-only key and no confirmation step for label creation or voiding. The Generic carrier allows tests without a real shipment (8 of 20). Tracking messages and marketplace order text come from third parties, and no guidance on untrusted content was found. The errors article says requests are screened for script-like strings (3 of 15). The panel has API logs with requests and responses, an API error history and webhook logs (10 of 15). llms.txt and the site footer state SOC 2 Type II and ISO 27001, with no certificate, report, trust page or disclosure route found, and robots.txt still disallows /.well-known/security.txt. This run scores a certification claim with no report or disclosure route 5 (from 8). 22+8+3+10+5 = 48.\n\n## Score by category\n\n| Category | Weight | atoship | ShippyPro | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 30 | 80 | ShippyPro +50 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 55 | 18 | atoship +37 |\n| Agent ergonomics | 13% (16.2 this run) | 53 | 19 | atoship +34 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 48 | atoship +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 5 | atoship +35 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 10 | 7 | atoship +3 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 45 | 61 | ShippyPro +16 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **43 · E** | **37 · F** | |\n\n## Facts side by side\n\n| Fact | atoship | ShippyPro |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | atoship LLC | Italian Valley S.r.l. |\n| Hosted endpoint | `https://atoship.com/api/mcp` | `https://api.shippypro.com` |\n| Transports | Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| Licence | none | Proprietary service under ShippyPro's Terms \u0026 Conditions. Both OpenAPI files state the licence as Proprietary |\n| Tools exposed | 12 | none |\n| Read-only variant documented | no | no |\n| llms.txt | yes | no |\n| Last release | 2026-02-18 | none |\n| Terms last updated | 2026-08-20 | no date given |\n| Privacy policy last updated | 2026-05-07 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | yes | not found in the text |\n\n## How the scores have moved\n\n### atoship\n\nNo score change since it was listed.\n\n### ShippyPro\n\n- -11.9 on 4 November 2026 (D to F): correction\n- -0.1 on 28 October 2026: correction\n- +0.3 on 27 October 2026: checklist\n\n## Verdicts\n\n**atoship.** atoship gives agents twelve MCP tools and a REST API for US labels with published per-unit fees, free sign-up, test keys and a wallet the agent cannot overspend. No status page, rate-limit figures, OpenAPI spec or changelog was found, and the npm MCP package has not changed since February 2026.\n\n**ShippyPro.** ShippyPro's status page has an API component and posts carrier incidents daily, the help centre publishes a limit of 20 calls per 10 seconds, and a 99.5 per cent monthly SLA carries service credits. API access needs an Enterprise plan through sales, the reference loads its OpenAPI files only by script, and no changelog or SDK was found.\n\n## Before you call either\n\n### atoship\n\n1. Use an `ak_test_` key until the user confirms live labels; test mode creates no real labels\n2. Ask the user before `purchase_label`, since it spends the wallet balance\n3. Call `void_label` promptly for a mistaken label, and check the carrier's refund rules\n4. Branch on `error.code`, and on 429 wait `error.retryAfter` seconds\n5. Validate the address with `validate_address` before buying; the standalone endpoint costs $0.03 a call\n\n### ShippyPro\n\n1. POST every call. The help centre says the API accepts POST only and that parameter names are case-sensitive\n2. Check `Status` and the error message in every `Ship` response. `Status` 2 means no label was created\n3. Before retrying a `Ship` call that failed or timed out, look the order up by `TransactionID`. A timed-out call can still create a label, and each label counts against the plan\n4. Test with the Generic carrier. `Ship` and `Edit` calls on a real carrier create real labels\n5. Stay under 20 calls per 10 seconds, and use webhooks for tracking rather than bulk `GetTracking` calls\n\n## Questions\n\n### Which is better for AI agents, atoship or ShippyPro?\n\natoship scores 43 (E) on agent readiness against ShippyPro's 37 (F), and leads in 5 of 7 scored categories. ShippyPro leads on reliability and transparency \u0026 trust.\n\n### Do atoship and ShippyPro need an API key?\n\natoship takes an API key or an OAuth sign-in. ShippyPro needs an API key.\n\n### Can an agent call atoship and ShippyPro without installing anything?\n\nYes. atoship has a hosted endpoint at https://atoship.com/api/mcp and ShippyPro at https://api.shippypro.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/atoship-vs-shippypro.json, and with the fewest tokens: https://www.anchorterminal.com/compare/atoship-vs-shippypro.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"atoship\", \"b\": \"shippypro\"}`. From a terminal: `anchor compare atoship shippypro`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/atoship.json and https://www.anchorterminal.com/api/v1/tools/shippypro.json\n\n## Other comparisons with atoship or ShippyPro\n\n- [atoship vs EasyPost](https://www.anchorterminal.com/compare/atoship-vs-easypost.md)\n- [atoship vs Easyship](https://www.anchorterminal.com/compare/atoship-vs-easyship.md)\n- [atoship vs Envia](https://www.anchorterminal.com/compare/atoship-vs-envia.md)\n- [atoship vs Karrio](https://www.anchorterminal.com/compare/atoship-vs-karrio.md)\n- [atoship vs Sendcloud](https://www.anchorterminal.com/compare/atoship-vs-sendcloud.md)\n- [atoship vs ShipBob](https://www.anchorterminal.com/compare/atoship-vs-shipbob.md)\n- [atoship vs Shippo](https://www.anchorterminal.com/compare/atoship-vs-shippo.md)\n- [atoship vs ShipStation API](https://www.anchorterminal.com/compare/atoship-vs-shipstation.md)\n- [EasyPost vs ShippyPro](https://www.anchorterminal.com/compare/easypost-vs-shippypro.md)\n- [Easyship vs ShippyPro](https://www.anchorterminal.com/compare/easyship-vs-shippypro.md)\n- [Envia vs ShippyPro](https://www.anchorterminal.com/compare/envia-vs-shippypro.md)\n- [Karrio vs ShippyPro](https://www.anchorterminal.com/compare/karrio-vs-shippypro.md)\n- [Sendcloud vs ShippyPro](https://www.anchorterminal.com/compare/sendcloud-vs-shippypro.md)\n- [ShipBob vs ShippyPro](https://www.anchorterminal.com/compare/shipbob-vs-shippypro.md)\n- [Shippo vs ShippyPro](https://www.anchorterminal.com/compare/shippo-vs-shippypro.md)\n- [ShippyPro vs ShipStation API](https://www.anchorterminal.com/compare/shippypro-vs-shipstation.md)\n- [atoship vs Ship24](https://www.anchorterminal.com/compare/atoship-vs-ship24.md)\n- [atoship vs TrackingMore](https://www.anchorterminal.com/compare/atoship-vs-trackingmore.md)\n- [Ship24 vs ShippyPro](https://www.anchorterminal.com/compare/ship24-vs-shippypro.md)\n- [ShippyPro vs TrackingMore](https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-07",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "atoship vs ShippyPro",
        "url": ""
      }
    ],
    "description": "atoship scores 43 (E) to ShippyPro's 37 (F) for shipping rates. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "atoship E 43",
      "ShippyPro F 37",
      "scores"
    ],
    "h1": "atoship vs ShippyPro",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/atoship-vs-shippypro",
    "published": "2026-10-01",
    "section": "tools",
    "title": "atoship vs ShippyPro for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-07",
    "url": "https://www.anchorterminal.com/compare/atoship-vs-shippypro"
  },
  "tokens": {
    "markdown": 4750,
    "slim": 3130
  },
  "version": 1
}
