{
  "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",
      "dns": "karrio.grade.anchorterminal.com",
      "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.9,
        "grade": "D",
        "agentReady": false,
        "rank": 1014,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 8,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 57,
          "maintenance": 29,
          "payments": 40,
          "reliability": 76,
          "schema": 68,
          "security": 44,
          "transparency": 59
        },
        "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.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.9
          }
        ],
        "editorialScores": {
          "ergonomics": 57,
          "maintenance": 29,
          "payments": 40,
          "reliability": 76,
          "schema": 68,
          "security": 44,
          "transparency": 59
        },
        "provenanceScore": 59,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-08",
            "maintenance": "2026-10-08",
            "payments": "2026-10-08",
            "reliability": "2026-10-08",
            "schema": "2026-10-08",
            "security": "2026-10-08",
            "transparency": "2026-10-08"
          },
          "last": "2026-10-08",
          "lastMoved": "2026-10-27",
          "oldest": "2026-10-08",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "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": 59
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/karrio.json",
      "live": {
        "slug": "karrio",
        "versions": [
          {
            "registry": "github",
            "name": "karrioapi/karrio",
            "version": "v2026.1.32",
            "released": "2026-06-23",
            "seenAt": "2026-11-04T20:27:36.097633325Z"
          },
          {
            "registry": "pypi",
            "name": "karrio",
            "version": "2026.1.32",
            "released": "2026-06-23",
            "seenAt": "2026-11-04T20:27:33.988163102Z"
          },
          {
            "registry": "pypi",
            "name": "karrio-server",
            "version": "2026.1.32",
            "released": "2026-06-23",
            "seenAt": "2026-11-04T20:27:34.28706554Z"
          }
        ],
        "githubStars": 811,
        "pypiWeekly": 910,
        "securityTxt": {
          "url": "https://karrio.io/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:52:54.023332911Z"
        },
        "domain": {
          "domain": "karrio.io",
          "checkedAt": "2026-11-01T14:10:04.150125467Z"
        },
        "pages": [
          {
            "url": "https://raw.githubusercontent.com/karrioapi/karrio/main/CHANGELOG.md",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-04T08:33:56.200086352Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "314becff7ae6"
          },
          {
            "url": "https://www.karrio.io/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-04T08:41:31.841496433Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "3043d4d5d243"
          },
          {
            "url": "https://www.karrio.io/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-04T08:41:34.522864308Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a7184cba65b2"
          }
        ],
        "github": {
          "repo": "karrioapi/karrio",
          "checkedAt": "2026-11-02T08:58:01.725794841Z",
          "stars": 809,
          "archived": false,
          "issuesEnabled": false,
          "pushedAt": "2026-06-23T10:07:06Z",
          "openIssues": 0,
          "openPRs": 36,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 0,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 50,
            "failure": 0,
            "other": 0,
            "latest": "success",
            "latestAt": "2026-06-23T07:35:49Z"
          }
        },
        "updatedAt": "2026-11-04T20:27:36.097633325Z"
      }
    },
    "answer": "Karrio scores 48.9 (D) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category.",
    "b": {
      "slug": "trackingmore",
      "name": "TrackingMore",
      "vendor": "CHANNELWILL CO., LIMITED",
      "vendorUrl": "https://www.trackingmore.com",
      "kind": "http-api",
      "category": "shipping",
      "summary": "TrackingMore is a multi-carrier parcel tracking service run by CHANNELWILL CO., LIMITED under the CWILL brand. Its REST API v4 detects couriers, creates and reads trackings, retracks expired ones and tracks air waybills, with webhooks for status changes.",
      "url": "https://www.anchorterminal.com/tools/trackingmore",
      "markdownUrl": "https://www.anchorterminal.com/tools/trackingmore.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/trackingmore.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/trackingmore.json",
      "dns": "trackingmore.grade.anchorterminal.com",
      "repo": "https://github.com/TrackingMore-API/trackingmore-sdk-nodejs",
      "license": "Proprietary hosted service under the CWILL Terms of Service. The seven official SDKs on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.trackingmore.com/v4",
      "packages": [
        {
          "registry": "npm",
          "name": "trackingmore-sdk-nodejs"
        },
        {
          "registry": "pypi",
          "name": "trackingmore-sdk-python"
        },
        {
          "registry": "go",
          "name": "github.com/TrackingMore-API/trackingmore-sdk-go"
        }
      ],
      "auth": "api-key",
      "authNotes": "An API key sent in the Tracking-Api-Key header, generated in the web app under Developer, API key, and shown once. At most four keys per account, deleted from the same page. Every key has full account access and no scopes were found. Access is self-serve after a browser signup; the pricing page gives two keys on Basic, five on Pro and eight on Enterprise.",
      "pricing": "freemium",
      "pricingNotes": "Plans are priced in credits a month with a Free plan, Basic, Pro and a custom Enterprise plan, and a 14-day free trial. The plan prices on the pricing page render by script and were not read; the API page says tracking starts from $0.03 a tracked order and shows figures of $0.0318, $0.036 and $0.037. SMS notifications and translation cost extra credits. Enterprise adds custom rate limits and invoice payment (https://www.trackingmore.com/pricing and https://www.trackingmore.com/tracking-api, checked 2026-11-03).",
      "priceSummary": "$0.03 / tx",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the SDK READMEs, the support centre or the pricing page (checked 2026-11-03). Plans are paid by card in the web app, or by invoice on Enterprise.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 6,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-03"
      },
      "docsUrl": "https://www.trackingmore.com/docs/trackingmore/",
      "capabilities": [
        "shipping.tracking"
      ],
      "tags": [
        "official",
        "hosted",
        "closed-source",
        "api-key",
        "webhooks",
        "free-tier",
        "free-trial",
        "freemium",
        "status-page",
        "python",
        "typescript",
        "go",
        "java",
        "php",
        "ruby",
        "dotnet"
      ],
      "lastRelease": "2024-12-25",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 41.8,
        "grade": "E",
        "agentReady": false,
        "rank": 1187,
        "ranked": true,
        "rankOf": 1349,
        "categoryRank": 10,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 54,
          "maintenance": 19,
          "payments": 23,
          "reliability": 65,
          "schema": 31,
          "security": 31,
          "transparency": 57
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-03"
        },
        "negative": 0,
        "verdict": "A small tracking API with published per-endpoint rate limits, meta error codes, a free courier detection call and SDKs in seven languages. The reference docs render by script with no OpenAPI file, plan prices weren't readable, one key has full access, the SDKs date from 2024 and the legal documents belong to the CWILL group.",
        "bestFor": "An agent that reports where a parcel is across many carriers from a tracking number, with a cheap per-tracking price.",
        "strengths": [
          "Nine v4 calls cover detect, create, batch create of 40, get, update, delete, retrack and air waybills, with webhooks for status changes",
          "Rate limits published per endpoint, 3 requests a second on create and 10 a second elsewhere, with a stated 120-second wait after a 429",
          "HTTP and meta codes with messages, including 4101 for a duplicate tracking, so a retried create is rejected rather than doubled",
          "Official SDKs in PHP, Python, Node, Java, Go, Ruby and .NET, MIT, plus a Postman collection",
          "Free plan and a 14-day trial, with courier detection free on v4"
        ],
        "weaknesses": [
          "The API reference renders by script and no OpenAPI file, llms.txt or Markdown docs were found",
          "One API key with full access, at most four per account, no scopes and no read-only key",
          "No idempotency key, no Retry-After, and no SLA beyond a 99.99 per cent uptime line on the Enterprise plan",
          "The SDKs were last updated between February and December 2024, and no dated API changelog was found",
          "Plan prices render by script and were not read; the terms and privacy policy are CWILL group documents that name different entities per product"
        ],
        "agentNotes": [
          "Send the key as `Tracking-Api-Key` to https://api.trackingmore.com/v4; the v2 header name `Trackingmore-Api-Key` and the v3 path are the older versions",
          "Call `POST /v4/couriers/detect` first when the carrier is unknown (free on v4), then `POST /v4/trackings/create` with `tracking_number` and `courier_code`; the create response already carries the tracking result",
          "Create up to 40 shipments at once with `POST /v4/trackings/batch` and read them with `GET /v4/trackings/get`, which filters by tracking numbers, courier and created date",
          "Treat meta code 4101 as an existing tracking rather than a failure, and 4190 as a plan quota to raise with the person; after a 429 wait 120 seconds",
          "Stay under 3 creates a second and 10 requests a second on other calls per account, and prefer a webhook (same version as the API) to polling"
        ],
        "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": 41.8
          }
        ],
        "editorialScores": {
          "ergonomics": 54,
          "maintenance": 19,
          "payments": 23,
          "reliability": 65,
          "schema": 31,
          "security": 31,
          "transparency": 39
        },
        "provenanceScore": 74,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-03",
            "maintenance": "2026-11-03",
            "payments": "2026-11-03",
            "reliability": "2026-11-03",
            "schema": "2026-11-03",
            "security": "2026-11-03",
            "transparency": "2026-11-03"
          },
          "last": "2026-11-03",
          "oldest": "2026-11-03",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install trackingmore-sdk-nodejs",
        "http": "curl -H \"Tracking-Api-Key: $TRACKINGMORE_API_KEY\" https://api.trackingmore.com/v4/couriers/all"
      },
      "letme": {
        "capability": "https://letme.dev/shipping.tracking",
        "tool": "https://letme.dev/trackingmore"
      },
      "area": "business",
      "unitPrices": [
        {
          "item": "Tracked order",
          "unit": "tx",
          "usd": 0.03,
          "note": "the from price on the API page; plan prices render by script and were not read"
        }
      ],
      "provenance": {
        "legalEntity": "CHANNELWILL CO., LIMITED",
        "domain": "trackingmore.com",
        "domainRegistered": "2014-10-27",
        "endpointOnVendorDomain": true,
        "terms": "https://www.cwill.com/terms-of-service/",
        "privacy": "https://www.cwill.com/privacy-policy/",
        "statusPage": "https://status.trackingmore.com/",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-11-03",
        "notes": [
          "trackingmore.com's legal links redirect to cwill.com. The CWILL privacy policy (effective 8 August 2026) names CHANNELWILL CO., LIMITED, Workspace B15, 2/F, Wing Cheung Industrial Building, 58-70 Kwai Cheong Road, Hong Kong, as data controller for TrackingMore, and CWILL INC of Dover, Delaware, for the CWILL Order Tracking and other products. The CWILL Terms of Service (effective 9 January 2026) cover the whole product family and say the contracting entity depends on the product.",
          "The CWILL terms refer to an Acceptable Use Policy and a DPA at cwill.com/legal/dpa/, and a sub-processor list at trust.cwill.com/subprocessors, none of which was read.",
          "www.trackingmore.com/robots.txt disallows nothing. support.trackingmore.com/robots.txt disallows nothing. www.cwill.com/robots.txt allows named AI crawlers and disallows search and admin paths for others, with a crawl delay of 5 seconds. status.trackingmore.com was read without a robots.txt check of its own.",
          "The API answers at api.trackingmore.com, a vendor subdomain.",
          "www.trackingmore.com/.well-known/security.txt returns 404, and no security page was found on trackingmore.com (the /security path returns 404).",
          "RDAP gives trackingmore.com a registration date of 27 October 2014."
        ],
        "score": 74
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/trackingmore.json",
      "live": {
        "slug": "trackingmore",
        "probe": {
          "target": "https://api.trackingmore.com/v4",
          "method": "get",
          "lastAt": "2026-11-04T20:47:20.612787952Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 630,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 599,
          "p95ms24h": 1041,
          "samples24h": 55,
          "samples30d": 55,
          "days": [
            {
              "date": "2026-11-04",
              "probes": 55,
              "ok": 55
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.trackingmore.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-04T15:32:39.655302878Z"
        },
        "securityTxt": {
          "url": "https://trackingmore.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-04T15:54:27.177236947Z"
        },
        "updatedAt": "2026-11-04T20:47:20.612787952Z"
      }
    },
    "edges": [
      {
        "by": 37,
        "category": "schema",
        "leads": "karrio",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "`schemas/openapi.yml` is OpenAPI 3.0.3 at version 2026.1.32, with 65 paths, and the docs site renders a reference from it. GraphQL schemas sit beside it (25). No llms.txt on www.karrio.io or docs.karrio.io, both 404 (0). The spec carries about 1,200 description lines and the guides cover authentication, pagination, shipments, trackers and webhooks, with little on when not to use a call, such as the stored `/v1/shipments` against the pass-through `/v1/proxy/shipping` (12 of 20). Units, statuses and label types are enums and required fields are marked, but carrier `options` and connection `credentials` are open objects whose keys differ by carrier (10 of 15). The guides have cURL and JavaScript examples and the spec has an `ErrorResponse` schema, while the error guide is a table of HTTP statuses only (9 of 15). Versions are dated and `CHANGELOG.md` is current, but the changelog page on the website stops at 2024.12.6 (12 of 15).",
          "b": "No OpenAPI or similar file was found in the docs, the SDK repositories or a search, and the reference at trackingmore.com/docs renders by script so its schemas were not read (0 of 25). No llms.txt or Markdown docs (0). The official SDK READMEs give one line per call, and the support centre explains when to pair create with get or a webhook and that the create response carries the result (8 of 20). Field names and the required tracking_number and courier_code appear in the SDK examples, with no types, enums or constraints readable (5 of 15). Examples in seven SDK languages and a table of HTTP and meta codes with messages (12 of 15). v4 in the path with v2 and v3 still served, and the support centre says there is no changelog for switching versions. No dated API changelog was found (6 of 15). 0 + 0 + 8 + 5 + 12 + 6 = 31."
        },
        "scores": {
          "a": 68,
          "b": 31
        }
      },
      {
        "by": 17,
        "category": "payments",
        "leads": "karrio",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Scored with the self-hosted rule, taking prices from the paid options beside the free edition. No x402, MPP or L402 (0). Self-hosting is free, and the platform page gives starting prices only, $499 a month for the managed Scale platform with pay-as-you-go usage and $50,000 a year for a commercial licence, with no unit price (10 of 20). The open-source edition needs no card or account (20). Install is scriptable with Docker Compose and `POST /api/token` issues a JWT for an email and password, but carrier accounts and the API key are set up by a person, so half (10 of 20).",
          "b": "Read with the hosted rubric. No x402, MPP or L402 (0). The API page gives a from price of $0.03 a tracked order and three unlabelled figures, and the pricing page's plan prices render by script, so per-unit pricing is partly public (8 of 20). A Free plan and a 14-day trial are offered, and whether a card is asked for was not established (15 of 20). A person signs up in a browser and generates the key there (0). 0 + 8 + 15 + 0 = 23."
        },
        "scores": {
          "a": 40,
          "b": 23
        }
      },
      {
        "by": 13,
        "category": "security",
        "leads": "karrio",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Private API keys with a label, bound to test or live mode, sent as the Basic username or in the `Authorization` header. The docs say a private key can perform any request without restriction. Short-lived resource tokens for document links can travel in a `?token=` query string, which we didn't count against the score because they expire in five minutes by default and open one resource (20 of 30). Test-mode keys keep building away from live carriers. Team permissions are in the paid `ee/` code, and the MCP guide asks the agent to confirm with the user before `create_shipment` (7 of 20). Responses carry carrier tracking text and addresses, and no injection guidance was found (3 of 15). API logs, tracing records and events are stored and readable in the open-source edition, and audit logging is listed as an enterprise feature (10 of 15). `SECURITY.md` gives an email address only. No security.txt, bug bounty or certification was found, and GitHub lists no published advisories although 2026.1.32 fixed MD5 password storage (4 of 20).",
          "b": "One API key in the Tracking-Api-Key header, shown once, at most four per account, deleted in the web app. No scopes or expiry (20 of 30). No read-only key or least-privilege mode, and delete is one call (4 of 20). Tracking checkpoints are carrier text returned to the model, and no guidance was found (3 of 15). A webhook notification log exists in the web app; no log of API calls or key use was found (4 of 15). No security.txt (404), no security page on trackingmore.com, no certification, bug bounty or disclosure policy found. The CWILL privacy policy points to a trust site that was not read (0 of 20). 20 + 4 + 3 + 4 + 0 = 31."
        },
        "scores": {
          "a": 44,
          "b": 31
        }
      },
      {
        "by": 11,
        "category": "reliability",
        "leads": "karrio",
        "name": "Reliability",
        "reasons": {
          "a": "Read with the local-software lines, since the graded surface is the open-source server its owner hosts. The managed platform has no status page we could find, and its hosts didn't answer on 8 October 2026. Docker images on Docker Hub and PyPI packages at 2026.1.32, with Python 3.11 or later stated for `karrio`, though `karrio-server` still declares 3.7 or later (18 of 20). A public tests workflow runs SDK type checks, SDK tests and server tests on PostgreSQL, and the last five runs on main, all on 23 June 2026, passed (25). GitHub Issues is switched off, so bug reports go to Discussions. Reports from July and August 2026 on FedEx dimensions and a GraphQL crash had no reply, and a June report that migration 0093 deleted tracker history was fixed in 2026.1.32 (10 of 25). Versions are calendar-based, not semver, and the breaking rename of the `purchased` status shipped in 2026.1.20 with a banner in the changelog (8 of 15). Releases are past 1.0 and numbered for production use (15).",
          "b": "Read with the hosted lines and scored on the REST API v4 at api.trackingmore.com. status.trackingmore.com is a hosted status page with uptime and a status update history (20). Its figures and history render by script, so the 90 days could not be read; the static text says there were no updates in the last 7 days (5). Rate limits are published per endpoint, 3 requests a second on trackings/create and 10 a second elsewhere, per account (15). The support centre says a 429 means the application should stop and wait 120 seconds, and a repeated create answers meta code 4101 rather than creating a duplicate. No Retry-After and no idempotency key (10 of 15). No SLA document was found. The Enterprise plan lists 99.99 per cent API uptime as a feature and the API page claims 99.9 per cent uptime, which is marketing rather than a published SLA (5 of 10). v4 is the current version and not marked beta (10). 20 + 5 + 15 + 10 + 5 + 10 = 65."
        },
        "scores": {
          "a": 76,
          "b": 65
        }
      },
      {
        "by": 10,
        "category": "maintenance",
        "leads": "karrio",
        "name": "Maintenance \u0026 community",
        "reasons": {
          "a": "The newest release, 2026.1.32, is dated 23 June 2026, 107 days before the check, and nothing has landed on main since (10 of 30). No release between 10 July and 8 October 2026 (0 of 20). Of the 15 newest Discussions threads, 10 showed no maintainer reply, and fix pull requests opened between 23 September and 2 October 2026 each had one or two comments and were unmerged, among 83 open pull requests (8 of 25). No entry in the official MCP registry and no MCP package on npm. The PyPI packages match the last release and the npm client is at 2023.1.0 (5 of 15). CI passed on the last commit and the changelog records pinning axios away from compromised versions, while dependency pull requests from April and June 2026 remain open (6 of 10).",
          "b": "Read as a closed service. No dated API change was found. The SDKs were last pushed between February and December 2024, the support articles are dated 2023 and 2024, and the reference is undated (0 of 30). No releases or dated entries in the last 90 days were found (0). Support by email and chat with a help centre; GitHub issues were not read (6 of 15). Seven official SDKs exist but none has changed since December 2024 (10 of 15). The Node SDK has tests and no CI workflow (3 of 10). 0 + 0 + 6 + 10 + 3 = 19."
        },
        "scores": {
          "a": 29,
          "b": 19
        }
      }
    ],
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Karrio, Inc.",
        "b": "CHANNELWILL CO., LIMITED",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.trackingmore.com/v4",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "not published",
        "b": "$0.03 per transaction",
        "name": "Price for shipment tracking"
      },
      {
        "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 hosted service under the CWILL Terms of Service. The seven official SDKs on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-06-23",
        "b": "2024-12-25",
        "name": "Last release"
      },
      {
        "a": "2025-04-08",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2025-04-08",
        "b": "2026-08-08",
        "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": "6 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Karrio scores 48.9 (D) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category.",
        "question": "Which is better for AI agents, Karrio or TrackingMore?"
      },
      {
        "answer": "Both need an API key.",
        "question": "Do Karrio and TrackingMore need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Karrio. TrackingMore has a hosted endpoint at https://api.trackingmore.com/v4.",
        "question": "Can an agent call Karrio and TrackingMore 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 TrackingMore.",
        "question": "Are Karrio and TrackingMore open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 76 against 65",
          "Schema \u0026 documentation, 68 against 31",
          "Security \u0026 auth, 44 against 31",
          "Payments \u0026 pricing, 40 against 23",
          "Maintenance \u0026 community, 29 against 19"
        ],
        "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": null,
        "also": [
          "A hosted endpoint, with nothing to install",
          "No incidents deducted, where Karrio loses 7 points for them"
        ],
        "goodFor": "An agent that reports where a parcel is across many carriers from a tracking number, with a cheap per-tracking price.",
        "slug": "trackingmore",
        "watchFor": "The API reference renders by script and no OpenAPI file, llms.txt or Markdown docs were found"
      }
    ],
    "history": {
      "karrio": [
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 48.7,
          "fromGrade": "D",
          "to": 48.9,
          "toGrade": "D"
        }
      ],
      "trackingmore": null
    },
    "job": {
      "capability": "shipping.tracking",
      "name": "Shipment tracking"
    },
    "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/easyship-vs-karrio.json",
        "title": "Easyship vs Karrio",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-karrio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/karrio-vs-sendcloud.json",
        "title": "Karrio vs Sendcloud",
        "url": "https://www.anchorterminal.com/compare/karrio-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-shippypro.json",
        "title": "Karrio vs ShippyPro",
        "url": "https://www.anchorterminal.com/compare/karrio-vs-shippypro"
      },
      {
        "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/easypost-vs-trackingmore.json",
        "title": "EasyPost vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/easypost-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/easyship-vs-trackingmore.json",
        "title": "Easyship vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/easyship-vs-trackingmore"
      },
      {
        "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-trackingmore.json",
        "title": "Sendcloud vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/sendcloud-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ship24-vs-trackingmore.json",
        "title": "Ship24 vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/ship24-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipbob-vs-trackingmore.json",
        "title": "ShipBob vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shipbob-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippo-vs-trackingmore.json",
        "title": "Shippo vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shippo-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.json",
        "title": "ShippyPro vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shippypro-vs-trackingmore"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shipstation-vs-trackingmore.json",
        "title": "ShipStation API vs TrackingMore",
        "url": "https://www.anchorterminal.com/compare/shipstation-vs-trackingmore"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 11,
        "edge": "karrio",
        "karrio": 76,
        "key": "reliability",
        "name": "Reliability",
        "trackingmore": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 37,
        "edge": "karrio",
        "karrio": 68,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "trackingmore": 31,
        "weight": 13
      },
      {
        "by": 3,
        "edge": "karrio",
        "karrio": 57,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "trackingmore": 54,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "karrio",
        "karrio": 44,
        "key": "security",
        "name": "Security \u0026 auth",
        "trackingmore": 31,
        "weight": 14
      },
      {
        "by": 17,
        "edge": "karrio",
        "karrio": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "trackingmore": 23,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "karrio",
        "karrio": 29,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "trackingmore": 19,
        "weight": 7
      },
      {
        "by": 2,
        "edge": "karrio",
        "karrio": 59,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "trackingmore": 57,
        "weight": 7
      }
    ],
    "summary": "Karrio scores 48.9 (D) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category. Both do shipment tracking.",
    "tasks": null,
    "tutorials": [],
    "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.",
      "trackingmore": "A small tracking API with published per-endpoint rate limits, meta error codes, a free courier detection call and SDKs in seven languages. The reference docs render by script with no OpenAPI file, plan prices weren't readable, one key has full access, the SDKs date from 2024 and the legal documents belong to the CWILL group."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/karrio-vs-trackingmore",
    "json": "https://www.anchorterminal.com/compare/karrio-vs-trackingmore.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/karrio-vs-trackingmore.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/karrio-vs-trackingmore.min.md"
  },
  "markdown": "Karrio scores 48.9 (D) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category. Both do shipment tracking.\n\n- Karrio: grade D, 48.9/100, rank #1014 of 1349. Markdown https://www.anchorterminal.com/tools/karrio.md · JSON https://www.anchorterminal.com/api/v1/tools/karrio.json\n- TrackingMore: grade E, 41.8/100, rank #1187 of 1349. Markdown https://www.anchorterminal.com/tools/trackingmore.md · JSON https://www.anchorterminal.com/api/v1/tools/trackingmore.json\n- Best shipping and fulfilment APIs for AI agents: https://www.anchorterminal.com/best/shipping/index.md\n- All 45 shipping comparisons: https://www.anchorterminal.com/compare/shipping/index.md\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 65\n- Schema \u0026 documentation, 68 against 31\n- Security \u0026 auth, 44 against 31\n- Payments \u0026 pricing, 40 against 23\n- Maintenance \u0026 community, 29 against 19\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### TrackingMore (E)\n\nGood for: An agent that reports where a parcel is across many carriers from a tracking number, with a cheap per-tracking price.\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- No incidents deducted, where Karrio loses 7 points for them\n\nWatch for: The API reference renders by script and no OpenAPI file, llms.txt or Markdown docs were found\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Karrio +37\n\n- Karrio (68): `schemas/openapi.yml` is OpenAPI 3.0.3 at version 2026.1.32, with 65 paths, and the docs site renders a reference from it. GraphQL schemas sit beside it (25). No llms.txt on www.karrio.io or docs.karrio.io, both 404 (0). The spec carries about 1,200 description lines and the guides cover authentication, pagination, shipments, trackers and webhooks, with little on when not to use a call, such as the stored `/v1/shipments` against the pass-through `/v1/proxy/shipping` (12 of 20). Units, statuses and label types are enums and required fields are marked, but carrier `options` and connection `credentials` are open objects whose keys differ by carrier (10 of 15). The guides have cURL and JavaScript examples and the spec has an `ErrorResponse` schema, while the error guide is a table of HTTP statuses only (9 of 15). Versions are dated and `CHANGELOG.md` is current, but the changelog page on the website stops at 2024.12.6 (12 of 15).\n- TrackingMore (31): No OpenAPI or similar file was found in the docs, the SDK repositories or a search, and the reference at trackingmore.com/docs renders by script so its schemas were not read (0 of 25). No llms.txt or Markdown docs (0). The official SDK READMEs give one line per call, and the support centre explains when to pair create with get or a webhook and that the create response carries the result (8 of 20). Field names and the required tracking_number and courier_code appear in the SDK examples, with no types, enums or constraints readable (5 of 15). Examples in seven SDK languages and a table of HTTP and meta codes with messages (12 of 15). v4 in the path with v2 and v3 still served, and the support centre says there is no changelog for switching versions. No dated API changelog was found (6 of 15). 0 + 0 + 8 + 5 + 12 + 6 = 31.\n\n### Payments \u0026 pricing: Karrio +17\n\n- Karrio (40): Scored with the self-hosted rule, taking prices from the paid options beside the free edition. No x402, MPP or L402 (0). Self-hosting is free, and the platform page gives starting prices only, $499 a month for the managed Scale platform with pay-as-you-go usage and $50,000 a year for a commercial licence, with no unit price (10 of 20). The open-source edition needs no card or account (20). Install is scriptable with Docker Compose and `POST /api/token` issues a JWT for an email and password, but carrier accounts and the API key are set up by a person, so half (10 of 20).\n- TrackingMore (23): Read with the hosted rubric. No x402, MPP or L402 (0). The API page gives a from price of $0.03 a tracked order and three unlabelled figures, and the pricing page's plan prices render by script, so per-unit pricing is partly public (8 of 20). A Free plan and a 14-day trial are offered, and whether a card is asked for was not established (15 of 20). A person signs up in a browser and generates the key there (0). 0 + 8 + 15 + 0 = 23.\n\n### Security \u0026 auth: Karrio +13\n\n- Karrio (44): Private API keys with a label, bound to test or live mode, sent as the Basic username or in the `Authorization` header. The docs say a private key can perform any request without restriction. Short-lived resource tokens for document links can travel in a `?token=` query string, which we didn't count against the score because they expire in five minutes by default and open one resource (20 of 30). Test-mode keys keep building away from live carriers. Team permissions are in the paid `ee/` code, and the MCP guide asks the agent to confirm with the user before `create_shipment` (7 of 20). Responses carry carrier tracking text and addresses, and no injection guidance was found (3 of 15). API logs, tracing records and events are stored and readable in the open-source edition, and audit logging is listed as an enterprise feature (10 of 15). `SECURITY.md` gives an email address only. No security.txt, bug bounty or certification was found, and GitHub lists no published advisories although 2026.1.32 fixed MD5 password storage (4 of 20).\n- TrackingMore (31): One API key in the Tracking-Api-Key header, shown once, at most four per account, deleted in the web app. No scopes or expiry (20 of 30). No read-only key or least-privilege mode, and delete is one call (4 of 20). Tracking checkpoints are carrier text returned to the model, and no guidance was found (3 of 15). A webhook notification log exists in the web app; no log of API calls or key use was found (4 of 15). No security.txt (404), no security page on trackingmore.com, no certification, bug bounty or disclosure policy found. The CWILL privacy policy points to a trust site that was not read (0 of 20). 20 + 4 + 3 + 4 + 0 = 31.\n\n### Reliability: Karrio +11\n\n- Karrio (76): Read with the local-software lines, since the graded surface is the open-source server its owner hosts. The managed platform has no status page we could find, and its hosts didn't answer on 8 October 2026. Docker images on Docker Hub and PyPI packages at 2026.1.32, with Python 3.11 or later stated for `karrio`, though `karrio-server` still declares 3.7 or later (18 of 20). A public tests workflow runs SDK type checks, SDK tests and server tests on PostgreSQL, and the last five runs on main, all on 23 June 2026, passed (25). GitHub Issues is switched off, so bug reports go to Discussions. Reports from July and August 2026 on FedEx dimensions and a GraphQL crash had no reply, and a June report that migration 0093 deleted tracker history was fixed in 2026.1.32 (10 of 25). Versions are calendar-based, not semver, and the breaking rename of the `purchased` status shipped in 2026.1.20 with a banner in the changelog (8 of 15). Releases are past 1.0 and numbered for production use (15).\n- TrackingMore (65): Read with the hosted lines and scored on the REST API v4 at api.trackingmore.com. status.trackingmore.com is a hosted status page with uptime and a status update history (20). Its figures and history render by script, so the 90 days could not be read; the static text says there were no updates in the last 7 days (5). Rate limits are published per endpoint, 3 requests a second on trackings/create and 10 a second elsewhere, per account (15). The support centre says a 429 means the application should stop and wait 120 seconds, and a repeated create answers meta code 4101 rather than creating a duplicate. No Retry-After and no idempotency key (10 of 15). No SLA document was found. The Enterprise plan lists 99.99 per cent API uptime as a feature and the API page claims 99.9 per cent uptime, which is marketing rather than a published SLA (5 of 10). v4 is the current version and not marked beta (10). 20 + 5 + 15 + 10 + 5 + 10 = 65.\n\n### Maintenance \u0026 community: Karrio +10\n\n- Karrio (29): The newest release, 2026.1.32, is dated 23 June 2026, 107 days before the check, and nothing has landed on main since (10 of 30). No release between 10 July and 8 October 2026 (0 of 20). Of the 15 newest Discussions threads, 10 showed no maintainer reply, and fix pull requests opened between 23 September and 2 October 2026 each had one or two comments and were unmerged, among 83 open pull requests (8 of 25). No entry in the official MCP registry and no MCP package on npm. The PyPI packages match the last release and the npm client is at 2023.1.0 (5 of 15). CI passed on the last commit and the changelog records pinning axios away from compromised versions, while dependency pull requests from April and June 2026 remain open (6 of 10).\n- TrackingMore (19): Read as a closed service. No dated API change was found. The SDKs were last pushed between February and December 2024, the support articles are dated 2023 and 2024, and the reference is undated (0 of 30). No releases or dated entries in the last 90 days were found (0). Support by email and chat with a help centre; GitHub issues were not read (6 of 15). Seven official SDKs exist but none has changed since December 2024 (10 of 15). The Node SDK has tests and no CI workflow (3 of 10). 0 + 0 + 6 + 10 + 3 = 19.\n\n## Score by category\n\n| Category | Weight | Karrio | TrackingMore | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 76 | 65 | Karrio +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 68 | 31 | Karrio +37 |\n| Agent ergonomics | 13% (16.2 this run) | 57 | 54 | Karrio +3 |\n| Security \u0026 auth | 14% (17.5 this run) | 44 | 31 | Karrio +13 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 23 | Karrio +17 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 29 | 19 | Karrio +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 59 | 57 | Karrio +2 |\n| Negative events | ≤15 | -7 | 0 | |\n| **Total** | | **48.9 · D** | **41.8 · E** | |\n\n## Facts side by side\n\n| Fact | Karrio | TrackingMore |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Karrio, Inc. | CHANNELWILL CO., LIMITED |\n| Hosted endpoint | no (local only) | `https://api.trackingmore.com/v4` |\n| Transports | HTTP | HTTP |\n| Auth | API key | API key |\n| Pricing | Freemium | Freemium |\n| Price for shipment tracking | not published | $0.03 per transaction |\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 hosted service under the CWILL Terms of Service. The seven official SDKs on GitHub are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | no |\n| Last release | 2026-06-23 | 2024-12-25 |\n| Terms last updated | 2025-04-08 | no date given |\n| Privacy policy last updated | 2025-04-08 | 2026-08-08 |\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 | 6 stars |\n\n## How the scores have moved\n\n### Karrio\n\n- +0.2 on 27 October 2026: checklist\n\n### TrackingMore\n\nNo score change since it was listed.\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**TrackingMore.** A small tracking API with published per-endpoint rate limits, meta error codes, a free courier detection call and SDKs in seven languages. The reference docs render by script with no OpenAPI file, plan prices weren't readable, one key has full access, the SDKs date from 2024 and the legal documents belong to the CWILL group.\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### TrackingMore\n\n1. Send the key as `Tracking-Api-Key` to https://api.trackingmore.com/v4; the v2 header name `Trackingmore-Api-Key` and the v3 path are the older versions\n2. Call `POST /v4/couriers/detect` first when the carrier is unknown (free on v4), then `POST /v4/trackings/create` with `tracking_number` and `courier_code`; the create response already carries the tracking result\n3. Create up to 40 shipments at once with `POST /v4/trackings/batch` and read them with `GET /v4/trackings/get`, which filters by tracking numbers, courier and created date\n4. Treat meta code 4101 as an existing tracking rather than a failure, and 4190 as a plan quota to raise with the person; after a 429 wait 120 seconds\n5. Stay under 3 creates a second and 10 requests a second on other calls per account, and prefer a webhook (same version as the API) to polling\n\n## Questions\n\n### Which is better for AI agents, Karrio or TrackingMore?\n\nKarrio scores 48.9 (D) on agent readiness against TrackingMore's 41.8 (E), and leads in every scored category.\n\n### Do Karrio and TrackingMore need an API key?\n\nBoth need an API key.\n\n### Can an agent call Karrio and TrackingMore without installing anything?\n\nNo hosted endpoint is listed for Karrio. TrackingMore has a hosted endpoint at https://api.trackingmore.com/v4.\n\n### Are Karrio and TrackingMore 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 TrackingMore.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/karrio-vs-trackingmore.json, and with the fewest tokens: https://www.anchorterminal.com/compare/karrio-vs-trackingmore.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"karrio\", \"b\": \"trackingmore\"}`. From a terminal: `anchor compare karrio trackingmore`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/karrio.json and https://www.anchorterminal.com/api/v1/tools/trackingmore.json\n\n## Other comparisons with Karrio or TrackingMore\n\n- [EasyPost vs Karrio](https://www.anchorterminal.com/compare/easypost-vs-karrio.md)\n- [Easyship vs Karrio](https://www.anchorterminal.com/compare/easyship-vs-karrio.md)\n- [Karrio vs Sendcloud](https://www.anchorterminal.com/compare/karrio-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 ShippyPro](https://www.anchorterminal.com/compare/karrio-vs-shippypro.md)\n- [Karrio vs ShipStation API](https://www.anchorterminal.com/compare/karrio-vs-shipstation.md)\n- [EasyPost vs TrackingMore](https://www.anchorterminal.com/compare/easypost-vs-trackingmore.md)\n- [Easyship vs TrackingMore](https://www.anchorterminal.com/compare/easyship-vs-trackingmore.md)\n- [Karrio vs Ship24](https://www.anchorterminal.com/compare/karrio-vs-ship24.md)\n- [Sendcloud vs TrackingMore](https://www.anchorterminal.com/compare/sendcloud-vs-trackingmore.md)\n- [Ship24 vs TrackingMore](https://www.anchorterminal.com/compare/ship24-vs-trackingmore.md)\n- [ShipBob vs TrackingMore](https://www.anchorterminal.com/compare/shipbob-vs-trackingmore.md)\n- [Shippo vs TrackingMore](https://www.anchorterminal.com/compare/shippo-vs-trackingmore.md)\n- [ShippyPro vs TrackingMore](https://www.anchorterminal.com/compare/shippypro-vs-trackingmore.md)\n- [ShipStation API vs TrackingMore](https://www.anchorterminal.com/compare/shipstation-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-04",
    "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": "Karrio vs TrackingMore",
        "url": ""
      }
    ],
    "description": "Karrio scores 48.9 (D) to TrackingMore's 41.8 (E) for shipment tracking. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Karrio D 48.9",
      "TrackingMore E 41.8",
      "scores"
    ],
    "h1": "Karrio vs TrackingMore",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/karrio-vs-trackingmore",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Karrio vs TrackingMore for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-04",
    "url": "https://www.anchorterminal.com/compare/karrio-vs-trackingmore"
  },
  "tokens": {
    "markdown": 4450,
    "slim": 2680
  },
  "version": 1
}
