Box Warden API reference

Read what Box Warden packed for a checkout or an order, and send it your box sizes and product dimensions. Authenticate with an API token from the API tokens page in the app, sent as Authorization: Bearer. New to the API? Read the API guide in the Help Center (external site).

Loading the reference. Without scripts, this is every operation. The full document is openapi.json.

MethodPathOperationWhat it does
POST/api/boxesupsertBoxesCreate or update boxes in bulk, keyed by name
GET/api/calculations/{id}getCalculationRead one calculation, as the admin screen shows it
POST/api/dimensionsupsertVariantDimensionsCreate or update variant dimensions in bulk, keyed by SKU or variant id
POST/api/mcpcallMcpThe API as a remote MCP server
GET/api/openapi.jsongetOpenApiDocumentThis document
GET/api/orders/{id}/packinggetOrderPackingRead how one order was packed

Connect an MCP client

Box Warden runs a read-only Model Context Protocol (external site) server at https://boxwarden.shelfwarden.app/api/mcp. An AI assistant such as Claude, or an editor such as Cursor, can read a packing result through it. It cannot change anything in your store.

Tools

The server takes the same API token as the REST API, sent as a bearer token. Create a token in Box Warden under Settings, then API tokens. Every snippet below holds a placeholder: put your token in the environment variable it names, never in a file you commit.

Claude Code

claude mcp add --transport http box-warden https://boxwarden.shelfwarden.app/api/mcp --header "Authorization: Bearer bw_live_YOUR_TOKEN"

.mcp.json

{
  "mcpServers": {
    "box-warden": {
      "type": "http",
      "url": "https://boxwarden.shelfwarden.app/api/mcp",
      "headers": {
        "Authorization": "Bearer ${BOXWARDEN_API_TOKEN}"
      }
    }
  }
}

Cursor and Claude Desktop have their own setup, on the API tokens page inside Box Warden.