{
  "data": {
    "a": {
      "slug": "karrio",
      "name": "Karrio",
      "vendor": "Karrio, Inc.",
      "vendorUrl": "https://www.karrio.io",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Karrio is an open-source multi-carrier shipping server from Karrio, Inc. Its REST API quotes rates, buys labels, tracks parcels and books pickups through the owner's own carrier accounts, self-hosted with Docker or run by Karrio as a paid platform.",
      "url": "https://www.anchorterminal.com/tools/karrio",
      "markdownUrl": "https://www.anchorterminal.com/tools/karrio.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/karrio.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/karrio.json",
      "repo": "https://github.com/karrioapi/karrio",
      "license": "LGPL-3.0 for the server, SDK and modules. Code under `ee/` is under the Karrio Enterprise licence and needs a subscription for production use. The MCP package in `packages/mcp` is Apache-2.0",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "pypi",
          "name": "karrio"
        },
        {
          "registry": "pypi",
          "name": "karrio-server"
        },
        {
          "registry": "oci",
          "name": "karrio/server"
        }
      ],
      "auth": "api-key",
      "authNotes": "A private API key from the instance's dashboard, sent as the HTTP Basic username with no password or as `Authorization: Token key_...`. Keys carry a label and are bound to test or live mode, and the docs say a private key can perform any request without restriction. A JWT pair is also issued by `POST /api/token` for an email and password. On a self-hosted instance the owner creates the first account, so no approval from Karrio is involved. The managed platform is reached through a demo booking.",
      "pricing": "freemium",
      "pricingNotes": "Free when self-hosted under LGPL-3.0, with carrier postage billed by the owner's own carrier accounts. The platform page says the managed Scale platform starts at $499 a month with pay-as-you-go pricing and a commercial licence for embedding starts at $50,000 a year, with no unit prices published. An agent can start on a self-hosted instance in test mode with no contract. The managed platform has no self-serve signup, only a demo booking (checked 2026-10-08).",
      "priceSummary": "$499 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the repository, the OpenAPI file, the docs or the platform page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 799,
        "npmWeekly": null,
        "pypiWeekly": 338,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.karrio.io/docs",
      "openapi": "https://raw.githubusercontent.com/karrioapi/karrio/main/schemas/openapi.yml",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.returns"
      ],
      "tags": [
        "open-source",
        "self-hosted",
        "api-key",
        "openapi",
        "graphql",
        "webhooks",
        "sandbox",
        "docker",
        "python",
        "mcp"
      ],
      "lastRelease": "2026-06-23",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.7,
        "grade": "D",
        "agentReady": false,
        "rank": 617,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 29,
          "payments": 40,
          "reliability": 76,
          "schema": 68,
          "security": 44,
          "transparency": 56
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -7,
        "negativeNotes": [
          "12 March to 23 June 2026. Versions 2026.1.22 to 2026.1.31 applied an MD5 `PASSWORD_HASHERS` override outside the test runner, so production instances stored MD5 password hashes. Fixed in 2026.1.32 and described in the changelog, with no published advisory, so 4 of a possible 15 (https://github.com/karrioapi/karrio/blob/main/CHANGELOG.md).",
          "8 October 2026. The README and the MCP guide tell users to run `npx karrio-mcp` and `npx -y @karrio/mcp`, and the npm registry answers 404 for both. The examples' API host `api.karrio.io` didn't resolve the same day. 3 for a claim the listing can't meet (https://registry.npmjs.org/@karrio%2fmcp, https://www.karrio.io/docs/developing/mcp-server)."
        ],
        "verdict": "A current OpenAPI 3.0.3 contract with 65 paths, a free LGPL-3.0 server and 30 carrier connectors suit a team that hosts it. The last release was 23 June 2026, the `@karrio/mcp` package the docs install is absent from npm, and `api.karrio.io` didn't resolve on 8 October 2026.",
        "bestFor": "A team that wants to host its own multi-carrier API with its own carrier contracts and can maintain a Django and PostgreSQL stack.",
        "strengths": [
          "OpenAPI 3.0.3 contract in the repository at version 2026.1.32, with 65 paths covering rates, shipments, trackers, pickups, manifests, orders, documents and webhooks",
          "The core server and SDK are LGPL-3.0 and run on the owner's infrastructure with Docker Compose, with no fee to Karrio",
          "30 carrier connectors in `modules/connectors`, among them UPS, FedEx, USPS, DHL Express, Canada Post, DPD and Australia Post, used with the owner's own carrier accounts",
          "API keys are bound to test or live mode, and test mode runs rates, labels, trackers and pickups against carrier sandboxes",
          "Default throttles are in the settings file with numbers (600 requests a minute per user, 300 for carrier calls) and can be changed by environment variable"
        ],
        "weaknesses": [
          "No release since 2026.1.32 on 23 June 2026, 107 days before this check, and fix pull requests opened in September 2026 were still open",
          "Neither `@karrio/mcp` nor `karrio-mcp` exists on npm, though the README and the MCP guide give `npx` commands for them",
          "`api.karrio.io` didn't resolve and `app.karrio.io` answered 503 with a paused deployment on 8 October 2026, and the managed platform starts with a demo booking",
          "Versions 2026.1.22 to 2026.1.31 stored passwords as MD5 hashes in production, fixed in 2026.1.32 with a changelog line and no published advisory",
          "No idempotency keys were found, and a private API key can perform any request. Team permissions and audit logging sit in the paid `ee/` code"
        ],
        "agentNotes": [
          "Run your own instance with Docker Compose and call it at `http://localhost:5002`. Don't rely on `api.karrio.io`, which didn't resolve on 8 October 2026",
          "Don't run `npx karrio-mcp` or `npx -y @karrio/mcp`. Neither name is published on npm, so build the server from `packages/mcp` in the repository",
          "Change the default `admin@example.com` and `demo` login before the instance is reachable, and upgrade to 2026.1.32 or later so passwords aren't stored as MD5",
          "Don't blind-retry `POST /v1/shipments` with a `service` set or `POST /v1/shipments/{id}/purchase`. Fetch the shipment and check its status first, since no idempotency key exists",
          "Use a test-mode API key while building. Send it as the HTTP Basic username or as `Authorization: Token key_...`"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.7
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 29,
          "payments": 40,
          "reliability": 76,
          "schema": 68,
          "security": 44,
          "transparency": 59
        },
        "provenanceScore": 53
      },
      "connect": {
        "install": "git clone --depth 1 https://github.com/karrioapi/karrio\ncd karrio\ngit submodule update --init community\ncd docker\ndocker compose up",
        "http": "curl http://localhost:5002/v1/shipments \\\n  -u key_xxxxxx:"
      },
      "letme": {
        "capability": "https://letme.dev/shipping.rates",
        "tool": "https://letme.dev/karrio"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Open-source edition, self-hosted",
          "unit": "month",
          "usd": 0,
          "note": "LGPL-3.0, you pay for your own hosting and carrier postage"
        },
        {
          "item": "Scale managed platform, starting price",
          "unit": "month",
          "usd": 499,
          "note": "plus pay-as-you-go usage with no published unit price, by demo booking"
        }
      ],
      "provenance": {
        "legalEntity": "Karrio, Inc.",
        "domain": "karrio.io",
        "domainRegistered": "2022-01-20",
        "endpointOnVendorDomain": false,
        "terms": "https://www.karrio.io/terms-of-service",
        "privacy": "https://www.karrio.io/privacy-policy",
        "statusPage": "",
        "changelog": "https://github.com/karrioapi/karrio/blob/main/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Customer Terms and Conditions (last modified 8 April 2025) name Karrio, Inc., a Delaware corporation at 760 Chemin Marie-Le Ber, Verdun, Quebec, Canada, and govern the hosted platform. The self-hosted open-source edition is governed by LGPL-3.0, and `LICENSE_EE` points `ee/` users to the subscription terms at docs.karrio.io/product/resources/terms, an older copy dated 19 April 2022.",
          "The privacy policy (last modified 8 April 2025) covers karrio.io and associated services and excludes customer data processed on a customer's behalf. No data processing addendum was found.",
          "The graded surface is an instance on the owner's own host, so the endpoint isn't on the vendor's domain. `api.karrio.io` didn't resolve and `app.karrio.io` returned 503 on 8 October 2026.",
          "No status page was found. `status.karrio.io` didn't resolve and the site links none.",
          "www.karrio.io/.well-known/security.txt returns 404. `SECURITY.md` in the repository sends reports to hello@karrio.io.",
          "The changelog page on www.karrio.io stops at 2024.12.6. `CHANGELOG.md` in the repository is current to 2026.1.32.",
          "RDAP for karrio.io gives a registration date of 2022-01-20."
        ],
        "score": 53
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/karrio.json"
    },
    "answer": "Sendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability.",
    "b": {
      "slug": "sendcloud",
      "name": "Sendcloud",
      "vendor": "Sendcloud B.V.",
      "vendorUrl": "https://www.sendcloud.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "Shipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled.",
      "url": "https://www.anchorterminal.com/tools/sendcloud",
      "markdownUrl": "https://www.anchorterminal.com/tools/sendcloud.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sendcloud.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sendcloud.json",
      "license": "Proprietary service under Sendcloud's terms and conditions",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://mcp.sendcloud.com/mcp",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Self-serve. A person signs up at account.sendcloud.com, adds an invoice and sender address, then creates a Sendcloud API integration in the panel, which issues a public and secret key pair. The pair works as HTTP Basic or is exchanged at https://account.sendcloud.com/oauth2/token for a one-hour Bearer token (client credentials, scope `api`). The MCP server uses an OAuth 2.0 sign-in at account.sendcloud.com, found through RFC 9728 metadata, with the same single scope. No partner or sales approval is needed for API v3.",
      "pricing": "freemium",
      "pricingNotes": "Free plan at €0 for up to 20 parcels a month at Sendcloud's carrier rates, and a 14-day trial of paid plans with no card per the pricing page. Lite is €28 a month plus €0.10 a label, Growth €87 plus €0.09, Premium €175 plus €0.08, Pro €639 plus €0.07, Enterprise on request, with 20 per cent off for yearly billing. Carrier postage is extra. There is no sandbox, but 50 Unstamped letter test labels are free. The pricing table has an API access row whose per-plan marks we couldn't read (https://www.sendcloud.com/pricing/).",
      "priceSummary": "$31.30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-07).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-07"
      },
      "docsUrl": "https://sendcloud.dev",
      "llmsTxt": "https://sendcloud.dev/llms.txt",
      "openapi": "https://sendcloud.dev/.openapi/v3/shipments/openapi.yaml",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "tags": [
        "hosted",
        "freemium",
        "free-tier",
        "mcp",
        "oauth",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "europe",
        "iso27001"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62,
        "grade": "B",
        "agentReady": false,
        "rank": 352,
        "ranked": true,
        "rankOf": 722,
        "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-09T01:12:56.746378159Z",
          "lastOk": true,
          "lastStatus": 405,
          "lastMs": 78,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 85,
          "p95ms24h": 126,
          "samples24h": 106,
          "samples30d": 106,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 93,
              "ok": 93
            },
            {
              "date": "2026-10-09",
              "probes": 13,
              "ok": 13
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.sendcloud.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T01:07:51.133458157Z"
        },
        "securityTxt": {
          "url": "https://sendcloud.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:40.272539649Z"
        },
        "pages": [
          {
            "url": "https://sendcloud.dev/api/v3/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:24:08.110707574Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "6b29c4fd1275"
          },
          {
            "url": "https://www.sendcloud.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:21.328528089Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "5f1544b931db"
          },
          {
            "url": "https://www.sendcloud.com/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:23.449806516Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "1a787a780068"
          },
          {
            "url": "https://www.sendcloud.com/terms-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:25.410182173Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eef98aa87449"
          }
        ],
        "updatedAt": "2026-10-09T01:12:56.746378159Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Karrio, Inc.",
        "b": "Sendcloud B.V.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://mcp.sendcloud.com/mcp",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "LGPL-3.0 for the server, SDK and modules. Code under `ee/` is under the Karrio Enterprise licence and needs a subscription for production use. The MCP package in `packages/mcp` is Apache-2.0",
        "b": "Proprietary service under Sendcloud's terms and conditions",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-06-23",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2025-04-08",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-08",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "799 stars, 338 PyPI/wk",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Sendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability.",
        "question": "Which is better for AI agents, Karrio or Sendcloud?"
      },
      {
        "answer": "Karrio needs an API key. Sendcloud takes an API key or an OAuth sign-in.",
        "question": "Do Karrio and Sendcloud need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Karrio. Sendcloud has a hosted endpoint at https://mcp.sendcloud.com/mcp.",
        "question": "Can an agent call Karrio and Sendcloud without installing anything?"
      },
      {
        "answer": "Karrio is open source (LGPL-3.0 for the server, SDK and modules. Code under `ee/` is under the Karrio Enterprise licence and needs a subscription for production use. The MCP package in `packages/mcp` is Apache-2.0). No open-source release is listed for Sendcloud.",
        "question": "Are Karrio and Sendcloud open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 76 against 68"
        ],
        "also": [
          "Open source"
        ],
        "goodFor": "A team that wants to host its own multi-carrier API with its own carrier contracts and can maintain a Django and PostgreSQL stack.",
        "slug": "karrio",
        "watchFor": "No release since 2026.1.32 on 23 June 2026, 107 days before this check, and fix pull requests opened in September 2026 were still open"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 89 against 68",
          "Agent ergonomics, 71 against 57",
          "Security \u0026 auth, 49 against 44",
          "Maintenance \u0026 community, 67 against 29",
          "Transparency \u0026 trust, 72 against 56"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "slug": "sendcloud",
        "watchFor": "One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "shipping.rates",
      "name": "Shipping rates"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-karrio.json",
        "title": "EasyPost vs Karrio",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud.json",
        "title": "EasyPost vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-karrio.json",
        "title": "Easyship vs Karrio",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud.json",
        "title": "Easyship vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-sendcloud"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-shipbob.json",
        "title": "Karrio vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-shippo.json",
        "title": "Karrio vs Shippo",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-shipstation.json",
        "title": "Karrio vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipbob.json",
        "title": "Sendcloud vs ShipBob",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipbob"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shippo.json",
        "title": "Sendcloud vs Shippo",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shippo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.json",
        "title": "Sendcloud vs ShipStation API",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-shipstation"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-ship24.json",
        "title": "Karrio vs Ship24",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-ship24"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sendcloud-vs-ship24.json",
        "title": "Sendcloud vs Ship24",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-ship24"
      }
    ],
    "scores": [
      {
        "by": 8,
        "edge": "karrio",
        "karrio": 76,
        "key": "reliability",
        "name": "Reliability",
        "sendcloud": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 21,
        "edge": "sendcloud",
        "karrio": 68,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "sendcloud": 89,
        "weight": 13
      },
      {
        "by": 14,
        "edge": "sendcloud",
        "karrio": 57,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "sendcloud": 71,
        "weight": 13
      },
      {
        "by": 5,
        "edge": "sendcloud",
        "karrio": 44,
        "key": "security",
        "name": "Security \u0026 auth",
        "sendcloud": 49,
        "weight": 14
      },
      {
        "by": 3,
        "edge": "karrio",
        "karrio": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "sendcloud": 37,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 38,
        "edge": "sendcloud",
        "karrio": 29,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "sendcloud": 67,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "sendcloud",
        "karrio": 56,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "sendcloud": 72,
        "weight": 7
      }
    ],
    "summary": "Sendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability. Both do shipping rates.",
    "verdicts": {
      "karrio": "A current OpenAPI 3.0.3 contract with 65 paths, a free LGPL-3.0 server and 30 carrier connectors suit a team that hosts it. The last release was 23 June 2026, the `@karrio/mcp` package the docs install is absent from npm, and `api.karrio.io` didn't resolve on 8 October 2026.",
      "sendcloud": "API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud",
    "json": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud.md",
    "slim": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud.min.md"
  },
  "markdown": "Sendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability. Both do shipping rates.\n\n- Karrio: grade D, 48.7/100, rank #617 of 722. Markdown https://www.anchorterminal.com/tools/karrio.md · JSON https://www.anchorterminal.com/api/v1/tools/karrio.json\n- Sendcloud: grade B, 62/100, rank #352 of 722. Markdown https://www.anchorterminal.com/tools/sendcloud.md · JSON https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Which one, for what\n\n### Karrio (D)\n\nGood for: A team that wants to host its own multi-carrier API with its own carrier contracts and can maintain a Django and PostgreSQL stack.\n\nAhead on:\n- Reliability, 76 against 68\n\nAlso in its favour:\n- Open source\n\nWatch for: No release since 2026.1.32 on 23 June 2026, 107 days before this check, and fix pull requests opened in September 2026 were still open\n\n### Sendcloud (B)\n\nGood for: An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.\n\nAhead on:\n- Schema \u0026 documentation, 89 against 68\n- Agent ergonomics, 71 against 57\n- Security \u0026 auth, 49 against 44\n- Maintenance \u0026 community, 67 against 29\n- Transparency \u0026 trust, 72 against 56\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | Karrio | Sendcloud | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 76 | 68 | Karrio +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 89 | Sendcloud +21 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 71 | Sendcloud +14 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 49 | Sendcloud +5 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 37 | Karrio +3 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 29 | 67 | Sendcloud +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 56 | 72 | Sendcloud +16 |\n| Negative events | ≤15 | -7 | -3 | |\n| **Total** | | **48.7 · D** | **62 · B** | |\n\n## Facts side by side\n\n| Fact | Karrio | Sendcloud |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Karrio, Inc. | Sendcloud B.V. |\n| Hosted endpoint | no (local only) | `https://mcp.sendcloud.com/mcp` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | LGPL-3.0 for the server, SDK and modules. Code under `ee/` is under the Karrio Enterprise licence and needs a subscription for production use. The MCP package in `packages/mcp` is Apache-2.0 | Proprietary service under Sendcloud's terms and conditions |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-06-23 | 2026-10-05 |\n| Terms last updated | 2025-04-08 | no date given |\n| Privacy policy last updated | 2025-04-08 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 799 stars, 338 PyPI/wk | none |\n\n## Verdicts\n\n**Karrio.** A current OpenAPI 3.0.3 contract with 65 paths, a free LGPL-3.0 server and 30 carrier connectors suit a team that hosts it. The last release was 23 June 2026, the `@karrio/mcp` package the docs install is absent from npm, and `api.karrio.io` didn't resolve on 8 October 2026.\n\n**Sendcloud.** API v3 has 29 public OpenAPI 3.1 specs, an llms.txt index, a dated changelog and a hosted MCP server with toolset filtering. OAuth has one scope, `api`, so a credential can't be limited to reading. The changelog records response fields removed from tracking events on 25 September 2026 with no earlier deprecation entry.\n\n## Before you call either\n\n### Karrio\n\n1. Run your own instance with Docker Compose and call it at `http://localhost:5002`. Don't rely on `api.karrio.io`, which didn't resolve on 8 October 2026\n2. Don't run `npx karrio-mcp` or `npx -y @karrio/mcp`. Neither name is published on npm, so build the server from `packages/mcp` in the repository\n3. Change the default `admin@example.com` and `demo` login before the instance is reachable, and upgrade to 2026.1.32 or later so passwords aren't stored as MD5\n4. Don't blind-retry `POST /v1/shipments` with a `service` set or `POST /v1/shipments/{id}/purchase`. Fetch the shipment and check its status first, since no idempotency key exists\n5. Use a test-mode API key while building. Send it as the HTTP Basic username or as `Authorization: Token key_...`\n\n### Sendcloud\n\n1. Use API v3 at https://panel.sendcloud.sc/api/v3. The v2 create-parcel endpoint is closed to accounts created from April 2026\n2. Test with `shipping_option_code` `sendcloud:letter` (returns use `sendcloud:letterreturn`). Any other label is billed unless cancelled within the carrier's deadline\n3. Set `external_reference_id` on every shipment so a retry returns the existing shipment (409) instead of a second label\n4. Read the `errors` array on synchronous announce responses. A carrier failure can arrive inside a success status\n5. Connect MCP with `?toolsets=shipments,shipping-options,parcel-tracking,returns` to keep the tool list short. Create and cancel tools act on the live account\n\n## Questions\n\n### Which is better for AI agents, Karrio or Sendcloud?\n\nSendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability.\n\n### Do Karrio and Sendcloud need an API key?\n\nKarrio needs an API key. Sendcloud takes an API key or an OAuth sign-in.\n\n### Can an agent call Karrio and Sendcloud without installing anything?\n\nNo hosted endpoint is listed for Karrio. Sendcloud has a hosted endpoint at https://mcp.sendcloud.com/mcp.\n\n### Are Karrio and Sendcloud open source?\n\nKarrio is open source (LGPL-3.0 for the server, SDK and modules. Code under `ee/` is under the Karrio Enterprise licence and needs a subscription for production use. The MCP package in `packages/mcp` is Apache-2.0). No open-source release is listed for Sendcloud.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/karrio-vs-sendcloud.json, and with the fewest tokens: https://www.anchorterminal.com/compare/karrio-vs-sendcloud.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"karrio\", \"b\": \"sendcloud\"}`. From a terminal: `anchor compare karrio sendcloud`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/karrio.json and https://www.anchorterminal.com/api/v1/tools/sendcloud.json\n\n## Other comparisons with Karrio or Sendcloud\n\n- [EasyPost vs Karrio](https://www.anchorterminal.com/compare/easypost-vs-karrio.md)\n- [EasyPost vs Sendcloud](https://www.anchorterminal.com/compare/easypost-vs-sendcloud.md)\n- [Easyship vs Karrio](https://www.anchorterminal.com/compare/easyship-vs-karrio.md)\n- [Easyship vs Sendcloud](https://www.anchorterminal.com/compare/easyship-vs-sendcloud.md)\n- [Karrio vs ShipBob](https://www.anchorterminal.com/compare/karrio-vs-shipbob.md)\n- [Karrio vs Shippo](https://www.anchorterminal.com/compare/karrio-vs-shippo.md)\n- [Karrio vs ShipStation API](https://www.anchorterminal.com/compare/karrio-vs-shipstation.md)\n- [Sendcloud vs ShipBob](https://www.anchorterminal.com/compare/sendcloud-vs-shipbob.md)\n- [Sendcloud vs Shippo](https://www.anchorterminal.com/compare/sendcloud-vs-shippo.md)\n- [Sendcloud vs ShipStation API](https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.md)\n- [Karrio vs Ship24](https://www.anchorterminal.com/compare/karrio-vs-ship24.md)\n- [Sendcloud vs Ship24](https://www.anchorterminal.com/compare/sendcloud-vs-ship24.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Karrio vs Sendcloud",
        "url": ""
      }
    ],
    "description": "Sendcloud scores 62 (B) on agent readiness against Karrio's 48.7 (D), and leads in 5 of 7 scored categories. Karrio leads on reliability. Both do shipping rates. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Karrio D 48.7",
      "Sendcloud B 62",
      "scores"
    ],
    "h1": "Karrio vs Sendcloud",
    "image": "https://www.anchorterminal.com/assets/og/compare-karrio-vs-sendcloud.png",
    "path": "/compare/karrio-vs-sendcloud",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Karrio vs Sendcloud for AI agents, D 48.7 vs B 62 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 680
  },
  "version": 1
}
