Skip to content

Developer Resources

ShipHero GraphQL Public API

ShipHero’s public API provides access to platform data and operations for custom integrations. It is built on GraphQL, allowing clients to request exactly the fields they need for each workflow.

Quick Access

Need help with your integration? Visit our Troubleshooting guide for common issues and solutions.

Latest Changes

Restricted shipping_option on wholesale_order_update for wholesale orders that belong to a committed consolidation batch, including completed batches. Changing the value now rejects the update, while resending the value the order already has is accepted. Every other field on the input still updates normally. See the wholesale_order_update example.

Clarified ship_no_later_than_date on wholesale orders: when the date is set at creation it cannot be changed afterwards, and wholesale_order_update rejects it. Orders created without one accept the date on update, and it can be changed again from then on.

Deprecated dynamic_slotting on Account, Warehouse and WarehouseProfile. Dynamic Slotting is now always in effect, so the returned value no longer describes how an account or warehouse behaves. Stop branching on it: the replenishment and location fields it used to gate are available to every account.

Deprecated the recurring_data_export and lakehero_data_export queries in favor of data_exports. Both still return the previous flat file list, so existing integrations keep working, but new ones should use data_exports. See the migration guide.

Deprecated sku in the lot_update mutation input. A lot’s SKU is immutable after creation: the field is still accepted and the request still succeeds, but the value is ignored. See the lot_update example.

Updated validation for standard_manufacturer_product_id in product_create and product_update. New values must be a supported 8-, 12-, 13-, or 14-digit product identifier, or Y081 when no standardized identifier exists. Values are stored normalized, and a value that does not match is rejected as an invalid parameter instead of being stored. See the product_create and product_update examples.

Added the license_plate_numbers_move mutation to move LPNs to a location, nest them under another LPN, or unnest them. You can move up to 1,000 LPNs per request. See the request and response example.

Added dangerous_goods_code to the Generate Label webhook request in packages[].line_items[]. This ShipHero dangerous goods catalog identifier is included on every line item as a string, or null when no code is configured. Values are evaluated independently for every line item. Partners do not need to return this field in their label response.

Added is_hospital to Location. Read current hospital flags in location lookups, location lists, item locations, and tote-pick location details. See Hospital Locations for examples and the relationship to tote status.