Authenticate using a Personal Access Token (PAT) as a Bearer token in the Authorization header for single-user integrations, or complete the OAuth 2.0 flow for multi-tenant apps
Include the shipbob_channel_id header on all order creation requests; obtain valid channel IDs by GET https://public-api.shipbob.com/1.0/channel
POST to https://public-api.shipbob.com/1.0/order with a JSON body containing the order reference number, shipping method, recipient address, and products array (each with referenceId and quantity)
Store the returned ShipBob order id for status polling and webhook correlation
Register a webhook via POST to https://public-api.shipbob.com/1.0/webhook for the shipment_delivered or order_shipped event types to receive fulfillment updates without polling
When a shipment event arrives, GET https://public-api.shipbob.com/1.0/order/{orderId} to retrieve the tracking number and carrier from the shipments array
Known gotchas
The shipbob_channel_id header is mandatory on order creation; requests without it return a 400 error — there is no default channel fallback
ShipBob's rate limit is 150 requests per minute per user per application on a sliding window; bursting order creation above this limit returns 429 errors, so batch imports must be rate-throttled
Orders are only fulfilled if the ordered products exist in ShipBob inventory with sufficient on-hand quantity; low-inventory orders enter an exception state and are not automatically shipped when stock is replenished without manual intervention
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp