{
  "data": {
    "category": {
      "area": "business",
      "capabilities": [
        "shipping.rates",
        "shipping.labels",
        "shipping.tracking",
        "shipping.address-validation",
        "shipping.returns"
      ],
      "description": "Services that quote carrier rates, buy labels, validate addresses, track parcels and handle returns. Compared on carrier coverage, rate and label calls, tracking events and how costs are charged.",
      "json": "https://www.anchorterminal.com/categories/shipping.json",
      "name": "Shipping \u0026 fulfilment",
      "slug": "shipping",
      "test": "The same parcel quoted between the same two addresses on each listing's test mode, a label bought for the cheapest tracked service and the shipment followed to delivery. We check the rates returned, address validation, tracking events and refund of an unused label. In this run listings are graded from public evidence against the published checklist.",
      "title": "Shipping and fulfilment APIs for AI agents",
      "toolCount": 9,
      "tools": [
        "easyship",
        "sendcloud",
        "shippo",
        "shipbob",
        "shipstation",
        "ship24",
        "easypost",
        "karrio",
        "shippypro"
      ],
      "url": "https://www.anchorterminal.com/categories/shipping"
    },
    "faq": [
      {
        "answer": "Easyship has the highest benchmark score of the 9 ranked shipping and fulfilment APIs, 68.8 (B). Sendcloud is second with 62 (B).",
        "question": "What are the highest-rated shipping and fulfilment APIs for AI agents?"
      },
      {
        "answer": "0 of the 9 ranked here grade BB or better, the bar for agent-ready on the Anchor benchmark.",
        "question": "How many shipping and fulfilment APIs are agent-ready?"
      },
      {
        "answer": "None of the ranked listings here accepts x402 for its main call yet.",
        "question": "Which shipping and fulfilment APIs accept x402 payments?"
      },
      {
        "answer": "By published paid prices, Easyship, at $0.01 per call, the lowest of the 4 listings here with a paid price in this unit (free allowances aside). Plans, volume tiers and free allowances change the sum, so check the listing's price table.",
        "question": "Which of these shipping and fulfilment APIs is cheapest?"
      },
      {
        "answer": "By the Anchor benchmark score out of 100, a weighted mean of the scored categories minus deductions for negative events, from public evidence re-checked as vendors change. Listings cannot pay for a place. The latest assessment behind this page is from 9 October 2026.",
        "question": "How is this list ranked?"
      }
    ],
    "howToChoose": [
      {
        "label": "Carrier coverage by lane",
        "detail": "Check which carriers and services cover your origin and destination countries, since an agent can only quote services the API reaches."
      },
      {
        "label": "Refunds for unused labels",
        "detail": "Check whether an unused label can be refunded through the API and how long the refund takes, since an agent that buys in error needs that money back."
      },
      {
        "label": "Tracking events and final scan",
        "detail": "Check which tracking events are returned and whether the final scan is included, since an agent that reports arrival needs that event to be there."
      },
      {
        "label": "Fees charged through the API",
        "detail": "Check how each label, fee and add-on is charged through the API, since an agent that quotes a rate without its surcharges will misstate the cost to its user."
      }
    ],
    "picks": [
      {
        "also": {
          "name": "Sendcloud",
          "slug": "sendcloud",
          "why": "B, 62/100"
        },
        "name": "Easyship",
        "need": "Highest score overall",
        "slug": "easyship",
        "why": "B, 68.8/100 on the benchmark"
      },
      {
        "name": "Sendcloud",
        "need": "Schema \u0026 documentation",
        "slug": "sendcloud",
        "why": "89/100 on schema \u0026 documentation, against 87 for the overall leader"
      },
      {
        "name": "EasyPost",
        "need": "Maintenance \u0026 community",
        "slug": "easypost",
        "why": "85/100 on maintenance \u0026 community, against 56 for the overall leader"
      },
      {
        "name": "ShipBob",
        "need": "Transparency \u0026 trust",
        "slug": "shipbob",
        "why": "77/100 on transparency \u0026 trust, against 71 for the overall leader"
      },
      {
        "also": {
          "name": "Shippo",
          "slug": "shippo",
          "why": "$0.01 per call"
        },
        "name": "Easyship",
        "need": "Lowest paid price per call",
        "slug": "easyship",
        "why": "$0.01 per call, the lowest of the 4 listings here with a paid price in this unit (free allowances aside)"
      },
      {
        "name": "Karrio",
        "need": "Self-hosting under an open licence",
        "slug": "karrio",
        "why": "self-hosted, LGPL-3 licence"
      }
    ],
    "ranked": 9,
    "shortlist": [
      {
        "bestFor": "An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts.",
        "grade": "B",
        "name": "Easyship",
        "position": 1,
        "price": "$29 / mo",
        "score": 68.8,
        "slug": "easyship",
        "strengths": [
          "Tokens carry per-resource read and write scopes, with separate sandbox (sand_) and production (prod_) tokens",
          "Hosted MCP server at mcp.easyship.com with 25 tools, each carrying readOnlyHint, destructiveHint and openWorldHint",
          "llms.txt and a Markdown twin of every reference page, each with its OpenAPI 3.0.3 definition"
        ],
        "url": "https://www.anchorterminal.com/tools/easyship",
        "verdict": "Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.",
        "weaknesses": [
          "No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429",
          "The MCP server has no test mode, so a label bought through it is charged",
          "API changelog's last entry is 30 October 2025, and no deprecation policy was found"
        ],
        "where": "both",
        "x402": "no"
      },
      {
        "bestFor": "An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans.",
        "grade": "B",
        "name": "Sendcloud",
        "position": 2,
        "price": "$31.30 / mo",
        "score": 62,
        "slug": "sendcloud",
        "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"
        ],
        "url": "https://www.anchorterminal.com/tools/sendcloud",
        "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.",
        "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"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "bestFor": "An agent that quotes and buys parcel labels across USPS, UPS, FedEx and DHL Express for a small or mid-size shipper, with a free test mode and public unit prices.",
        "grade": "C",
        "name": "Shippo",
        "position": 3,
        "price": "$0.07 / tx",
        "score": 61.9,
        "slug": "shippo",
        "strengths": [
          "Public prices per unit, 7 cents a label after 30 free a month, 1 cent a rate request and 2 cents a tracking request",
          "Test keys (shippo_test_) create free test labels and mock tracking, with data kept apart from live",
          "OpenAPI 3.1 spec with 71 operations, plus llms.txt and a Markdown copy of each docs page"
        ],
        "url": "https://www.anchorterminal.com/tools/shippo",
        "verdict": "Per-label and per-call prices are public, test keys are self-serve, and the OpenAPI spec, llms.txt and Markdown docs are open to a fetch. Label purchase has no idempotency key, API keys carry no scopes, and the status page logged carrier-side incidents on most days between July and October 2026.",
        "weaknesses": [
          "No idempotency key on label purchase or other writes. Only the Reporting API accepts one",
          "API keys have no scopes or read-only mode, and the OAuth flow has one scope, \"*\"",
          "The hosted MCP server runs on the live account only, with no test mode"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "bestFor": "An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns.",
        "grade": "C",
        "name": "ShipBob",
        "position": 4,
        "price": "Paid",
        "score": 60.8,
        "slug": "shipbob",
        "strengths": [
          "OAuth 2.0 with PKCE, separate read and write scopes for nine domains, one-hour access tokens and 30-day refresh tokens",
          "Free sandbox at `sandbox-api.shipbob.com` with its own accounts, a test card number and a simulation terminal for shipments, receiving and stock changes",
          "OpenAPI 3.0 spec for each API version with 89 operations and 504 examples in 2026-07, plus llms.txt and a Markdown copy of each docs page"
        ],
        "url": "https://www.anchorterminal.com/tools/shipbob",
        "verdict": "OAuth with PKCE and read and write scopes per domain, a free sandbox, a public OpenAPI spec per version and a 24-month support window for each API version are documented. Fulfilment prices are by quote only, the status page has no API component, no official SDK was found, and Personal Access Tokens never expire and carry full account access.",
        "weaknesses": [
          "No public price. Receiving, storage and pick, pack and ship fees come only in a quote from sales",
          "The status page lists the merchant dashboard and two warehouse systems, with no component for the API and no incident posted",
          "Personal Access Tokens don't expire and carry every scope, with no read-only option"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "bestFor": "An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans.",
        "grade": "C",
        "name": "ShipStation API",
        "position": 5,
        "price": "$75 / mo",
        "score": 59.3,
        "slug": "shipstation",
        "strengths": [
          "Public OpenAPI 3.1 spec for v2 with 173 operations and 372 schemas, plus llms.txt and a Markdown copy of every docs page",
          "ShipStation API Free plan at $0 with no card stated, and a sandbox on every ShipStation API plan through `TEST_` keys",
          "200 requests a minute by default, with `Retry-After` on 429 responses"
        ],
        "url": "https://www.anchorterminal.com/tools/shipstation",
        "verdict": "A public OpenAPI 3.1 contract with 173 operations, Markdown docs for agents and a free ShipStation API plan with a sandbox make a first rate quote or test label reachable without a contract. One API key carries full account access, with no scopes, read-only mode or idempotency keys on label purchases.",
        "weaknesses": [
          "One API key with full account access. No scopes, read-only keys or approval step before a label is bought",
          "No idempotency key on label purchase, so a retry after a timeout can buy a second label",
          "ShipStation platform accounts have no sandbox, and API access needs the Standard plan (from $29.99 a month) or Premium"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "bestFor": "An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone.",
        "grade": "C",
        "name": "Ship24",
        "position": 6,
        "price": "$39 / mo",
        "score": 55,
        "slug": "ship24",
        "strengths": [
          "Public OpenAPI 3.1 spec with 12 operations and two webhook definitions, plus llms.txt and a hosted `SKILL.md` integration guide",
          "Hosted MCP server at `https://api.ship24.com/mcp` with 12 tools, each carrying read-only, destructive and idempotent annotations and an output schema",
          "Rate limits are published per endpoint (1 to 10 requests a second) with `RateLimit-*`, `X-RateLimit-*` and `Retry-After` headers"
        ],
        "url": "https://www.anchorterminal.com/tools/ship24",
        "verdict": "The REST API and the hosted MCP server share one public OpenAPI 3.1 spec, numbered rate limits with Retry-After, and tracker creation that is idempotent by payload. No status page, SLA or security certification was found, API keys carry no scopes, and the API agreement and data processing agreement named in the terms aren't published.",
        "weaknesses": [
          "No status page was found. `status.ship24.com` doesn't resolve, and neither the site nor the docs link to one",
          "The terms supply the service as is, with no uptime commitment, and allow account termination and data deletion without notice",
          "API keys have no scopes or read-only mode. The docs describe up to 20 keys an account, managed in the dashboard"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "bestFor": "An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.",
        "grade": "C",
        "name": "EasyPost",
        "position": 7,
        "price": "$0.02 / call",
        "score": 54.3,
        "slug": "easypost",
        "strengths": [
          "llms.txt, a Markdown copy of almost every docs page and a JSON page index with a note on when to read each page",
          "Test API keys run the rate, buy, track and webhook flow at no cost, with no postage bought and no carrier contacted",
          "Seven official SDKs (C#, Go, Java, Node, PHP, Python, Ruby), with Go 5.10.1 on 29 September 2026 and PHP 8.8.3 on 8 September"
        ],
        "url": "https://www.anchorterminal.com/tools/easypost",
        "verdict": "Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.",
        "weaknesses": [
          "No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace",
          "No idempotency keys were found, and `reference` on a shipment isn't unique, so a retried buy can purchase a second label",
          "API keys allow full account access. Test and production modes and child users are the only separation, with no read-only or scoped key"
        ],
        "where": "hosted",
        "x402": "no"
      },
      {
        "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.",
        "grade": "D",
        "name": "Karrio",
        "position": 8,
        "price": "$499 / mo",
        "score": 48.7,
        "slug": "karrio",
        "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"
        ],
        "url": "https://www.anchorterminal.com/tools/karrio",
        "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.",
        "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"
        ],
        "where": "local",
        "x402": "no"
      },
      {
        "bestFor": "A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.",
        "grade": "D",
        "name": "ShippyPro",
        "position": 9,
        "price": "Paid",
        "score": 48.7,
        "slug": "shippypro",
        "strengths": [
          "OpenAPI 3.1 files for v1 (55 operations) and v2 (17 operations) are public at api.shippypro.com/docs, with 812 examples in the v1 file",
          "Published SLA of 99.5 per cent monthly availability with service credits of 0.5 to 5 per cent",
          "API keys come in three types, Full Access, Maps and PII Excluded, and an account can hold several"
        ],
        "url": "https://www.anchorterminal.com/tools/shippypro",
        "verdict": "Two OpenAPI 3.1 files, a published limit of 20 calls per 10 seconds and a 99.5 per cent monthly SLA with service credits are public. API access needs an Enterprise plan arranged through sales, no changelog or SDK was found, and label creation on v1 has no idempotency key.",
        "weaknesses": [
          "The help centre says APIs can only be activated with an Enterprise plan, which has no public price and starts with sales",
          "No API changelog, release notes or deprecation policy was found, and the terms allow changes without notice",
          "`POST /v1/Ship` takes no idempotency key. Only the 17 v2 operations accept `Idempotency-Key`"
        ],
        "where": "hosted",
        "x402": "no"
      }
    ],
    "updated": "2026-10-09"
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/best/shipping/",
    "json": "https://www.anchorterminal.com/best/shipping/index.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/best/shipping/index.md",
    "slim": "https://www.anchorterminal.com/best/shipping/index.min.md"
  },
  "markdown": "All 9 ranked shipping and fulfilment APIs on the Anchor benchmark, with a pick for each need and where each one falls short. Scores come from public evidence, re-checked as vendors change.\n\n- Ranked: 9 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 8\n- Full ranked table: https://www.anchorterminal.com/categories/shipping.md\n- Head-to-head comparisons: https://www.anchorterminal.com/compare/shipping/index.md (36)\n- Methodology: https://www.anchorterminal.com/benchmark/index.md\n\n## The shortlist\n\n| # | Tool | Grade | Score | Best for | Price | Where |\n| --- | --- | --- | --- | --- | --- | --- |\n| 1 | [Easyship](https://www.anchorterminal.com/tools/easyship.md) | B | 68.8 | An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts. | $29 / mo | hosted and local |\n| 2 | [Sendcloud](https://www.anchorterminal.com/tools/sendcloud.md) | B | 62 | An agent shipping parcels for a European shop that wants many carriers behind one account, including its own carrier contracts on paid plans. | $31.30 / mo | hosted |\n| 3 | [Shippo](https://www.anchorterminal.com/tools/shippo.md) | C | 61.9 | An agent that quotes and buys parcel labels across USPS, UPS, FedEx and DHL Express for a small or mid-size shipper, with a free test mode and public unit prices. | $0.07 / tx | hosted |\n| 4 | [ShipBob](https://www.anchorterminal.com/tools/shipbob.md) | C | 60.8 | An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns. | Paid | hosted |\n| 5 | [ShipStation API](https://www.anchorterminal.com/tools/shipstation.md) | C | 59.3 | An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans. | $75 / mo | hosted |\n| 6 | [Ship24](https://www.anchorterminal.com/tools/ship24.md) | C | 55 | An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone. | $39 / mo | hosted |\n| 7 | [EasyPost](https://www.anchorterminal.com/tools/easypost.md) | C | 54.3 | An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers. | $0.02 / call | hosted |\n| 8 | [Karrio](https://www.anchorterminal.com/tools/karrio.md) | D | 48.7 | A team that wants to host its own multi-carrier API with its own carrier contracts and can maintain a Django and PostgreSQL stack. | $499 / mo | local |\n| 9 | [ShippyPro](https://www.anchorterminal.com/tools/shippypro.md) | D | 48.7 | A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API. | Paid | hosted |\n\n## Picks by need\n\n- Highest score overall: [Easyship](https://www.anchorterminal.com/tools/easyship.md), B, 68.8/100 on the benchmark. Also [Sendcloud](https://www.anchorterminal.com/tools/sendcloud.md), B, 62/100.\n- Schema \u0026 documentation: [Sendcloud](https://www.anchorterminal.com/tools/sendcloud.md), 89/100 on schema \u0026 documentation, against 87 for the overall leader.\n- Maintenance \u0026 community: [EasyPost](https://www.anchorterminal.com/tools/easypost.md), 85/100 on maintenance \u0026 community, against 56 for the overall leader.\n- Transparency \u0026 trust: [ShipBob](https://www.anchorterminal.com/tools/shipbob.md), 77/100 on transparency \u0026 trust, against 71 for the overall leader.\n- Lowest paid price per call: [Easyship](https://www.anchorterminal.com/tools/easyship.md), $0.01 per call, the lowest of the 4 listings here with a paid price in this unit (free allowances aside). Also [Shippo](https://www.anchorterminal.com/tools/shippo.md), $0.01 per call.\n- Self-hosting under an open licence: [Karrio](https://www.anchorterminal.com/tools/karrio.md), self-hosted, LGPL-3 licence.\n\n## How to choose\n\n- Carrier coverage by lane: Check which carriers and services cover your origin and destination countries, since an agent can only quote services the API reaches.\n- Refunds for unused labels: Check whether an unused label can be refunded through the API and how long the refund takes, since an agent that buys in error needs that money back.\n- Tracking events and final scan: Check which tracking events are returned and whether the final scan is included, since an agent that reports arrival needs that event to be there.\n- Fees charged through the API: Check how each label, fee and add-on is charged through the API, since an agent that quotes a rate without its surcharges will misstate the cost to its user.\n\n- How the benchmark tests this category: The same parcel quoted between the same two addresses on each listing's test mode, a label bought for the cheapest tracked service and the shipment followed to delivery. We check the rates returned, address validation, tracking events and refund of an unused label. In this run listings are graded from public evidence against the published checklist.\n\n## Each one in detail\n\n### 1. Easyship, B 68.8/100\n\nMulti-carrier shipping platform from Easyship. Its public API and hosted MCP server quote courier rates, create shipments, buy labels, validate addresses, track parcels and book pickups across what Easyship says are 550+ courier services.\n\n- Verdict: Per-resource read and write scopes, separate sandbox tokens, a 132-operation OpenAPI contract and a 25-tool hosted MCP server with read-only and destructive annotations on every tool. No idempotency keys or Retry-After were found, the MCP server has no test mode, and the API changelog's last entry is dated 30 October 2025.\n- Choose it for: An agent that ships parcels for a small or mid-sized merchant, mostly cross-border, and wants rates, labels, duties and pickups from one account without carrier contracts.\n- Strength: Tokens carry per-resource read and write scopes, with separate sandbox (sand_) and production (prod_) tokens\n- Strength: Hosted MCP server at mcp.easyship.com with 25 tools, each carrying readOnlyHint, destructiveHint and openWorldHint\n- Strength: llms.txt and a Markdown twin of every reference page, each with its OpenAPI 3.0.3 definition\n- Weakness: No idempotency keys in the 132-operation spec, and no Retry-After or backoff guidance for 429\n- Weakness: The MCP server has no test mode, so a label bought through it is charged\n- Weakness: API changelog's last entry is 30 October 2025, and no deprecation policy was found\n- Price: $29 / mo · Auth: OAuth or key · x402: no · Where: hosted and local\n- Full assessment: https://www.anchorterminal.com/tools/easyship.md\n\n### 2. Sendcloud, B 62/100\n\nShipping platform for European online shops from Sendcloud B.V. in Eindhoven. Its API v3 and hosted MCP server quote carrier rates, create labels, validate addresses, track parcels and handle returns across the carriers an account has enabled.\n\n- 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.\n- Choose it 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- Strength: 29 public OpenAPI 3.1 specs covering 104 API v3 operations, with an llms.txt index and Markdown copies of every docs page\n- Strength: Hosted MCP server at mcp.sendcloud.com/mcp with 24 toolsets, a `?toolsets=` filter and read-only, idempotent and destructive annotations per the docs\n- Strength: A repeated `external_reference_id` on shipment creation returns the existing shipment with a 409 instead of buying a second label\n- Weakness: One OAuth scope, `api`, and key pairs with full account access. No read-only credential was found in the reviewed documentation\n- Weakness: Changelog entries of 21 and 25 September 2026 record removed request and response fields on parcel tracking with no earlier deprecation entry\n- Weakness: No Retry-After header or backoff guidance was found for 429 responses\n- Price: $31.30 / mo · Auth: OAuth or key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/sendcloud.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-sendcloud.md\n\n### 3. Shippo, C 61.9/100\n\nMulti-carrier shipping API from Shippo. It quotes rates, buys labels, validates addresses, tracks parcels and creates return labels across the carriers it connects, through a REST API, official SDKs and a hosted MCP server.\n\n- Verdict: Per-label and per-call prices are public, test keys are self-serve, and the OpenAPI spec, llms.txt and Markdown docs are open to a fetch. Label purchase has no idempotency key, API keys carry no scopes, and the status page logged carrier-side incidents on most days between July and October 2026.\n- Choose it for: An agent that quotes and buys parcel labels across USPS, UPS, FedEx and DHL Express for a small or mid-size shipper, with a free test mode and public unit prices.\n- Strength: Public prices per unit, 7 cents a label after 30 free a month, 1 cent a rate request and 2 cents a tracking request\n- Strength: Test keys (shippo_test_) create free test labels and mock tracking, with data kept apart from live\n- Strength: OpenAPI 3.1 spec with 71 operations, plus llms.txt and a Markdown copy of each docs page\n- Weakness: No idempotency key on label purchase or other writes. Only the Reporting API accepts one\n- Weakness: API keys have no scopes or read-only mode, and the OAuth flow has one scope, \"*\"\n- Weakness: The hosted MCP server runs on the live account only, with no test mode\n- Price: $0.07 / tx · Auth: OAuth or key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/shippo.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-shippo.md\n\n### 4. ShipBob, C 60.8/100\n\nOutsourced fulfilment service from ShipBob, Inc. of Chicago. Merchants send orders, products, inbound stock and returns to its warehouse network through a REST API with date-based versions, a hosted MCP server and webhooks, with a separate sandbox.\n\n- Verdict: OAuth with PKCE and read and write scopes per domain, a free sandbox, a public OpenAPI spec per version and a 24-month support window for each API version are documented. Fulfilment prices are by quote only, the status page has no API component, no official SDK was found, and Personal Access Tokens never expire and carry full account access.\n- Choose it for: An agent working for a merchant that already stores stock with ShipBob, to create and track orders, check inventory, book inbound stock and handle returns.\n- Strength: OAuth 2.0 with PKCE, separate read and write scopes for nine domains, one-hour access tokens and 30-day refresh tokens\n- Strength: Free sandbox at `sandbox-api.shipbob.com` with its own accounts, a test card number and a simulation terminal for shipments, receiving and stock changes\n- Strength: OpenAPI 3.0 spec for each API version with 89 operations and 504 examples in 2026-07, plus llms.txt and a Markdown copy of each docs page\n- Weakness: No public price. Receiving, storage and pick, pack and ship fees come only in a quote from sales\n- Weakness: The status page lists the merchant dashboard and two warehouse systems, with no component for the API and no incident posted\n- Weakness: Personal Access Tokens don't expire and carry every scope, with no read-only option\n- Price: Paid · Auth: OAuth or key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/shipbob.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-shipbob.md\n\n### 5. ShipStation API, C 59.3/100\n\nMulti-carrier shipping API from ShipStation, an Auctane brand. API v2 at api.shipstation.com/v2 quotes rates, buys and voids labels, validates addresses, tracks parcels and creates return labels, with batches, manifests, pickups and inventory.\n\n- Verdict: A public OpenAPI 3.1 contract with 173 operations, Markdown docs for agents and a free ShipStation API plan with a sandbox make a first rate quote or test label reachable without a contract. One API key carries full account access, with no scopes, read-only mode or idempotency keys on label purchases.\n- Choose it for: An agent working inside a merchant's existing ShipStation account (orders, batches, inventory, labels), or a developer who wants a free sandbox through the ShipStation API plans.\n- Strength: Public OpenAPI 3.1 spec for v2 with 173 operations and 372 schemas, plus llms.txt and a Markdown copy of every docs page\n- Strength: ShipStation API Free plan at $0 with no card stated, and a sandbox on every ShipStation API plan through `TEST_` keys\n- Strength: 200 requests a minute by default, with `Retry-After` on 429 responses\n- Weakness: One API key with full account access. No scopes, read-only keys or approval step before a label is bought\n- Weakness: No idempotency key on label purchase, so a retry after a timeout can buy a second label\n- Weakness: ShipStation platform accounts have no sandbox, and API access needs the Standard plan (from $29.99 a month) or Premium\n- Price: $75 / mo · Auth: API key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/shipstation.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-shipstation.md\n\n### 6. Ship24, C 55/100\n\nShip24 is a parcel tracking API from Ship24 Limited in Hong Kong. Its REST API and hosted MCP server create trackers, return normalised tracking events across couriers and push updates by webhook.\n\n- Verdict: The REST API and the hosted MCP server share one public OpenAPI 3.1 spec, numbered rate limits with Retry-After, and tracker creation that is idempotent by payload. No status page, SLA or security certification was found, API keys carry no scopes, and the API agreement and data processing agreement named in the terms aren't published.\n- Choose it for: An agent that only needs tracking events across many couriers, by webhook or by lookup, from a tracking number alone.\n- Strength: Public OpenAPI 3.1 spec with 12 operations and two webhook definitions, plus llms.txt and a hosted `SKILL.md` integration guide\n- Strength: Hosted MCP server at `https://api.ship24.com/mcp` with 12 tools, each carrying read-only, destructive and idempotent annotations and an output schema\n- Strength: Rate limits are published per endpoint (1 to 10 requests a second) with `RateLimit-*`, `X-RateLimit-*` and `Retry-After` headers\n- Weakness: No status page was found. `status.ship24.com` doesn't resolve, and neither the site nor the docs link to one\n- Weakness: The terms supply the service as is, with no uptime commitment, and allow account termination and data deletion without notice\n- Weakness: API keys have no scopes or read-only mode. The docs describe up to 20 keys an account, managed in the dashboard\n- Price: $39 / mo · Auth: API key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/ship24.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-ship24.md\n\n### 7. EasyPost, C 54.3/100\n\nEasyPost is a multi-carrier shipping API from Simpler Postage, Inc. Its REST API quotes carrier rates, buys labels, verifies addresses, tracks parcels and files refunds and insurance claims, with a hosted read-only MCP server in early release.\n\n- Verdict: Docs written for agents (llms.txt, a Markdown copy of each page, a JSON page index), seven official SDKs and free test keys make the REST API easy to start on. No OpenAPI spec or idempotency keys were found, every key has full account access, and the status page shows a connectivity outage on 23 July 2026 that affected all operations.\n- Choose it for: An agent that quotes rates across carriers, buys a label, verifies an address, follows tracking by webhook and requests a refund from one merchant account, mainly on US carriers.\n- Strength: llms.txt, a Markdown copy of almost every docs page and a JSON page index with a note on when to read each page\n- Strength: Test API keys run the rate, buy, track and webhook flow at no cost, with no postage bought and no carrier contacted\n- Strength: Seven official SDKs (C#, Go, Java, Node, PHP, Python, Ruby), with Go 5.10.1 on 29 September 2026 and PHP 8.8.3 on 8 September\n- Weakness: No OpenAPI spec was found in the docs or in the EasyPost GitHub organisation. The reference is prose and tables, with a Postman workspace\n- Weakness: No idempotency keys were found, and `reference` on a shipment isn't unique, so a retried buy can purchase a second label\n- Weakness: API keys allow full account access. Test and production modes and child users are the only separation, with no read-only or scoped key\n- Price: $0.02 / call · Auth: API key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/easypost.md\n- Against #1: https://www.anchorterminal.com/compare/easypost-vs-easyship.md\n\n### 8. Karrio, D 48.7/100\n\nKarrio 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.\n\n- 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.\n- Choose it 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- Strength: 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\n- Strength: The core server and SDK are LGPL-3.0 and run on the owner's infrastructure with Docker Compose, with no fee to Karrio\n- Strength: 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\n- Weakness: 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- Weakness: Neither `@karrio/mcp` nor `karrio-mcp` exists on npm, though the README and the MCP guide give `npx` commands for them\n- Weakness: `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\n- Price: $499 / mo · Auth: API key · x402: no · Where: local\n- Full assessment: https://www.anchorterminal.com/tools/karrio.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-karrio.md\n\n### 9. ShippyPro, D 48.7/100\n\nMulti-carrier shipping platform from ShippyPro (Italian Valley S.r.l., Florence). Its REST API quotes rates on a customer's own carrier contracts, creates labels and returns, validates addresses, books pickups and tracks parcels. API access is sold with the Enterprise plan.\n\n- Verdict: Two OpenAPI 3.1 files, a published limit of 20 calls per 10 seconds and a 99.5 per cent monthly SLA with service credits are public. API access needs an Enterprise plan arranged through sales, no changelog or SDK was found, and label creation on v1 has no idempotency key.\n- Choose it for: A European shipper or logistics platform with its own carrier contracts that already holds a ShippyPro Enterprise plan and wants rates, labels, pickups and tracking across many regional carriers through one API.\n- Strength: OpenAPI 3.1 files for v1 (55 operations) and v2 (17 operations) are public at api.shippypro.com/docs, with 812 examples in the v1 file\n- Strength: Published SLA of 99.5 per cent monthly availability with service credits of 0.5 to 5 per cent\n- Strength: API keys come in three types, Full Access, Maps and PII Excluded, and an account can hold several\n- Weakness: The help centre says APIs can only be activated with an Enterprise plan, which has no public price and starts with sales\n- Weakness: No API changelog, release notes or deprecation policy was found, and the terms allow changes without notice\n- Weakness: `POST /v1/Ship` takes no idempotency key. Only the 17 v2 operations accept `Idempotency-Key`\n- Price: Paid · Auth: API key · x402: no · Where: hosted\n- Full assessment: https://www.anchorterminal.com/tools/shippypro.md\n- Against #1: https://www.anchorterminal.com/compare/easyship-vs-shippypro.md\n\n## Head to head\n\n- [Easyship vs Sendcloud](https://www.anchorterminal.com/compare/easyship-vs-sendcloud.md)\n- [Easyship vs Shippo](https://www.anchorterminal.com/compare/easyship-vs-shippo.md)\n- [Easyship vs ShipBob](https://www.anchorterminal.com/compare/easyship-vs-shipbob.md)\n- [Easyship vs ShipStation API](https://www.anchorterminal.com/compare/easyship-vs-shipstation.md)\n- [Sendcloud vs Shippo](https://www.anchorterminal.com/compare/sendcloud-vs-shippo.md)\n- [Sendcloud vs ShipBob](https://www.anchorterminal.com/compare/sendcloud-vs-shipbob.md)\n- [Sendcloud vs ShipStation API](https://www.anchorterminal.com/compare/sendcloud-vs-shipstation.md)\n- [ShipBob vs Shippo](https://www.anchorterminal.com/compare/shipbob-vs-shippo.md)\n- [Shippo vs ShipStation API](https://www.anchorterminal.com/compare/shippo-vs-shipstation.md)\n- [ShipBob vs ShipStation API](https://www.anchorterminal.com/compare/shipbob-vs-shipstation.md)\n\n## Questions\n\n### What are the highest-rated shipping and fulfilment APIs for AI agents?\n\nEasyship has the highest benchmark score of the 9 ranked shipping and fulfilment APIs, 68.8 (B). Sendcloud is second with 62 (B).\n\n### How many shipping and fulfilment APIs are agent-ready?\n\n0 of the 9 ranked here grade BB or better, the bar for agent-ready on the Anchor benchmark.\n\n### Which shipping and fulfilment APIs accept x402 payments?\n\nNone of the ranked listings here accepts x402 for its main call yet.\n\n### Which of these shipping and fulfilment APIs is cheapest?\n\nBy published paid prices, Easyship, at $0.01 per call, the lowest of the 4 listings here with a paid price in this unit (free allowances aside). Plans, volume tiers and free allowances change the sum, so check the listing's price table.\n\n### How is this list ranked?\n\nBy the Anchor benchmark score out of 100, a weighted mean of the scored categories minus deductions for negative events, from public evidence re-checked as vendors change. Listings cannot pay for a place. The latest assessment behind this page is from 9 October 2026.\n\n## How this list is made\n\nThe order is the Anchor benchmark score, the same number as on each listing. Each listing is graded from public evidence against the benchmark checklist, and the picks are worked out from those grades, prices and facts. No listing pays for its place, and paid audits or listing help never change a score.\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-10",
    "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": "Best of",
        "url": "https://www.anchorterminal.com/best/"
      },
      {
        "name": "Shipping \u0026 fulfilment",
        "url": ""
      }
    ],
    "description": "Easyship (B), Sendcloud (B) and Shippo (C) lead the 9 ranked shipping and fulfilment APIs. Picks by need, strengths, weaknesses and prices from the Anchor benchmark.",
    "facts": [
      "Easyship B",
      "Sendcloud B",
      "Shippo C"
    ],
    "h1": "Best shipping and fulfilment APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/best-shipping.png",
    "path": "/best/shipping/",
    "published": "",
    "section": "tools",
    "title": "Best shipping and fulfilment APIs for AI agents in 2026, ranked",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/best/shipping/"
  },
  "tokens": {
    "markdown": 6000,
    "slim": 1430
  },
  "version": 1
}
