> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer-stage.shipbob.dev/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer-stage.shipbob.dev/_mcp/server.

# FAQ

> Common questions

#### What is the difference between PAT and OAuth 2.0?

PAT is for single merchants with full access, while OAuth 2.0 is for multi-user apps with granular permissions. ([Learn more](/auth))

#### How do I track rate limits?

Check the `X-RateLimit-Remaining` header in API responses. ([Learn more](/rate-limit))

#### How does pagination work?

If there is an additional page you will see `next-page` in the header.

#### Does ShipBob use ounces or pounds for an inventory item?

ShipBob inventory items use ounces (oz) and this is reflected in our API. For reference, see the [Get an inventory item](/api/inventory/get-inventory#response-dimensions) response.

#### Does ShipBob use inches or centimeters for an inventory item?

ShipBob inventory items use inches (in) and this is reflected in our API. For reference, see the [Get an inventory item](/api/inventory/get-inventory#response-dimensions) response.

#### How to find what fulfillment centers you have access to?

You can find the fulfillment centers you have access to by making a request to the GET FulfillmentCenter endpoint at [api.shipbob.com/2026-07/fulfillment-center](/api/receiving/get-fulfillment-centers). The response will return the locations (fulfillment centers and hubs) you have access to. \
\
Here is a sample response:

```json
[
	{
		"id": 228,
		"name": "Moreno Valley (CA)",
		"timezone": "Pacific Standard Time",
		"address1": "28010 Eucalyptus Ave",
		"address2": "Building #1",
		"city": "Moreno Valley",
		"state": "CA",
		"country": "US",
		"zip_code": "92555",
		"phone_number": "8444744726",
		"email": "support@shipbob.com"
	}
]
```

If you are using a ShipBob sandbox account make sure to update your request to `https://sandbox-api.shipbob.com/2026-07/fulfillment-center`.

#### How to find the shipping cost for an order?

You can find this by looking at the `invoice_amount` in a shipment inside an order. For example, make a request to [GET Orders](/api/orders/get-orders), [GET Order](/api/orders/get-order), or [GET Shipment](/api/orders/get-shipment). You will see this in the payload returned:

```
{
	...
 	"invoice_amount": 7.77,
	...
}
```

#### How can I find OpenAPI specs for each API version?

Download our OpenAPI specs to use in Postman or another API client.

#### [Download OpenAPI 2026-07 spec](https://marketplaceapi.shipbob.com/docs/2026-07.json)

#### [Download OpenAPI 2025-07 spec](https://marketplaceapi.shipbob.com/docs/2025-07.json)

#### [Download OpenAPI 2.0 spec](https://marketplaceapi.shipbob.com/docs/2-0.json)

#### [Download OpenAPI 1.0 spec](https://marketplaceapi.shipbob.com/docs/1-0.json)

#### [Download OpenAPI Experimental spec](https://marketplaceapi.shipbob.com/docs/ShipBob-Experimental-Original.json)

#### Why can't I submit an order for a product that already exists in ShipBob's UI?

At ShipBob you must create “channel product” records in our system in order to create orders. This is so we always have a unique and immutable tie to the upstream system, which reduces the risk of line item errors and order duplication. You cannot create orders with inventory\_ids or with products created from other sources. Please review our documentation:

There are 2 ways to create products for your convenience:

1. Create the products via the [Product POST](https://developer.shipbob.com/api/1.0/products/add-a-single-product-to-the-store). If you pass through a SKU that already exists in the ShipBob UI as the product's "reference\_id", we will automatically merge that product to the existing inventory. Otherwise, the merchant will have to manually "merge" the items using our UI
2. Create the products using both the `reference_id` and `name` fields in the line item field for the [Order POST](/api/orders/create-order). We will auto-create any unrecognized products given both `reference_id` and `name` are provided when you send us orders. This replaces the products sync step described above. Similarly, we will auto-merge the items in the manner described above if appropriate.