Authenticate by obtaining an OAuth 2.0 Bearer token from ShipHero; include it in the Authorization header on all requests to the GraphQL endpoint at https://public-api.shiphero.com/graphql.
Create an order by sending the order_create mutation with fields including order_number, partner_order_id, required_ship_date, shipping address, and a line_items array containing sku, quantity, and price.
Query order fulfillment status using the order query with the order ID; the response includes fulfillment_status, shipments (with tracking numbers), and line-level pick/pack state.
Adjust inventory by calling the inventory_add or inventory_remove mutation with sku, warehouse_id, quantity, reason, and location; for a bulk replacement use inventory_replace.
Subscribe to inventory-change webhooks from the ShipHero dashboard; the payload includes the sku, warehouse_id, and the delta quantity so you can mirror stock levels in your commerce platform.
For 3PL accounts, always include the customer_account_id field in mutations to scope operations to the correct merchant account within the shared warehouse.
Known gotchas
ShipHero uses GraphQL, not REST — all operations are POST requests to a single endpoint; use a GraphQL client library rather than generic HTTP clients to manage query construction and response parsing.
The API schema exposes 69 queries, 117 mutations, and 593 types; retrieve the current schema via introspection before building to avoid referencing deprecated fields.
Inventory webhooks report the delta (change) rather than the absolute on-hand quantity; your integration must maintain a running balance rather than treating each event as a stock snapshot.
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