Getting Started With ShipBob Developer API
ShipBob is a technology-first fulfillment & storage provider for e-commerce merchants. With a distributed network of fulfillment centers across the US, we allow fast, affordable shipping to thousands of customers. Read more about us here.
Our technology is our differentiator – we own and maintain the entire vertical stack of fulfillment software, from data ingestion via our APIs, to our Warehouse Management Software, to order processing logic and rules, to our merchant-facing application that allows easy order & inventory management to our customers free of charge.
ShipBob has created a new RESTful Developer API Platform that will allow partners to integrate with our fulfillment technology.
This API allows our integration partners greater access to ShipBob’s customer base. It will also standardize the data flowing in and out of ShipBob’s system to ensure a seamless customer experience.
Table of Contents
- Apply for Developer Access: please apply for access using this form. Upon review, we will email your client ID and secret to use for development.
- Authentication: ShipBob leverages OAuth2 hybrid flow for a high degree of security.
- Channel API: Used to list “channels” which you have access to – which is a specific installation of your application for a user. You will use this channel ID for every subsequent API call.
- Products API: Products API: Used to create and retrieve product records in ShipBob.
- Orders API: Used to create and retrieve master orders in ShipBob. Also used to retrieve fulfillment information for shipments.
- Inventory API: Used to retrieve inventory information for items in ShipBob FCs.
- Receiving API: Used to create and retrieve warehouse receiving orders in ShipBob.
- A channel is a specific installation of an application built by a vendor on top of our API – e.g. “Kevin’s Shopify Store #133432” would be 1 channel
- A multi-channel application can read data from all channels that belong to the merchant but can only write data on behalf of its own channel - e.g. multi-channel "app #555" can read data from "Kevin's Shopify Store #133432" but can only write data on behalf of "app #555".
- A referenceId is a required field when creating a record using one of Shipbobs Post endpoints - e.g. when creating a product via the Post products endpoint, a product referenceId is required. The referenceId was created to allow developers to tieback records in ShipBob to their own upstream systems. ReferenceIds must be unique by channel.
- An order is an object that comes from an external source and is intended for ShipBob to fulfill.
- A shipment is an object that is the result of fulfillment of an order. An order can contain one or more shipments.
- A product is a virtual record created in ShipBob’s system via a channel. In order to fulfill orders, product records MUST be created in ShipBob’s system. Upon creating a product, ShipBob will automatically 1 matching inventory item for that product. Via our UI, users can then add more inventory items to point to that product in order to create bundles
- An inventory item is a representation of a physical good, that may or may not have physical stock in ShipBob’s fulfillment center. An inventory item can be related to multiple products (e.g. a merge, where multiple product records come from various channel sources but are actually the same physical good).
- A bundle is a product that resolves to multiple inventory items. This is most commonly used for gift or multi packs. When an order is received for this product, the shipment will contain all the inventory items associated with the bundle. Note: this can currently only be done from the ShipBob UI
- A merge is a situation where multiple products (that may be from different channels) resolve to one inventory item. This is most common when merchants use ShipBob to fulfill orders from multiple platforms (e.g. Shopify and Amazon). When an order containing any of these products is sent to ShipBob, a shipment containing that inventory item will be sent out. Note: this can currently only be done from the ShipBob UI
- A warehouse receiving order (WRO) is an order to receive inventory into ShipBob’s fulfillment center. Some other solutions call this an “ASN” or Advanced Ship Notice. WROs may contain or multiple inventory items with specific quantities.
Details & Access
For partners that currently have built integrations on ShipBob’s Legacy API [Documentation], there will be a transition period of length TBD to update to the new platform.
API calls will be rate-limited to 150 requests per-minute using a sliding window, and will be totalled per user, per application across calls to any of the Shipbob APIs.