For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
DocumentationAPI Reference
DocumentationAPI Reference
  • Get Started
    • Introduction
    • Quickstart
    • Authentication
    • Rate Limit
    • Webhooks
  • Integration Guides
    • Overview
    • Tracking
    • Receiving
    • Returns
    • Billing
  • Other
    • Concepts
    • Status Reference
    • Errors
    • FAQ
LogoLogo
On this page
  • 1. Get Personal Access Token (PAT)
  • 2. Make your first API request
  • 3. Common scenarios
  • 4. Use Cases
Get Started

Quickstart

||View as Markdown|
Was this page helpful?

Last updated May 13, 2026

Previous

Introduction

Next

Authentication

Built with

This quickstart guide intends to walk you through a few common scenarios to let you understand how to use the ShipBob API.

1. Get Personal Access Token (PAT)

ShipBob verifies a user’s request by using a Bearer token in the header. We call this a Personal Access Token.

On the ShipBob dashboard, go to Integrations > API Tokens. Click Generate New Token. Copy this token as we will use in next step. If you do not have a ShipBob account yet, you can create a sandbox account by following this link.

2. Make your first API request

Use your PAT token to make a request to the GET Channels endpoint. You will need the channel ID to create products, orders and returns with the ShipBob API.

GET https://api.shipbob.com/2026-01/channel

If you are using a ShipBob sandbox account, make sure to update your endpoint to https://sandbox-api.shipbob.com/2026-01/channel

Example response

The channel ID to use when creating products, orders and returns would be 100102 since this is the channel that has scopes with _write access.

GET Channel 2026-01/channel
1{
2 "items": [
3 {
4 "id": 100102,
5 "name": "Privileged Access Token Wednesday, September 20, 2025",
6 "application_name": "API",
7 "scopes": [
8 "fulfillments_write",
9 "webhooks_read",
10 "returns_read",
11 "orders_read",
12 "inventory_write",
13 "inventory_read",
14 "returns_write",
15 "products_read",
16 "webhooks_write",
17 "receiving_write",
18 "receiving_read",
19 "channels_read",
20 "products_write",
21 "locations_read",
22 "orders_write",
23 "fulfillments_read",
24 "locations_write"
25 ]
26 },
27 {
28 "id": 100101,
29 "name": "ShipBob Default",
30 "application_name": "ShipBob",
31 "scopes": [
32 "webhooks_read",
33 "returns_read",
34 "orders_read",
35 "inventory_read",
36 "products_read",
37 "receiving_read",
38 "channels_read",
39 "locations_read",
40 "fulfillments_read"
41 ]
42 }
43 ]
44}

3. Common scenarios

A few common scenarios to get started with the ShipBob API. All endpoints are only accessible via HTTPS.

Create product

Below is a sample request to create a product:

POST /2026-01/product
1{
2 "name": "Light Roast Coffee",
3 "type_id": 1,
4 "variants": [
5 {
6 "name": "Light Roast Coffee",
7 "sku": "LIGHT-ROAST",
8 "packaging_requirement_id": 1,
9 "packaging_material_type_id": 1
10 }
11 ]
12}
Create order

Below is a sample request to create a order:

Make sure to pass the shipbob_channel_id in the header.

POST /2026-01/order
1{
2 "shipping_method": "Standard",
3 "recipient": {
4 "name": "John Doe",
5 "address": {
6 "address1": "100 Nowhere Blvd",
7 "address2": "Suite 100",
8 "city": "Gotham City",
9 "state": "NJ",
10 "country": "US",
11 "zip_code": "07093"
12 },
13 "email": "john@example.com",
14 "phone_number": "555-555-5555"
15 },
16 "products": [
17 {
18 "reference_id": "LIGHT-ROAST",
19 "name": "Light Roast Coffee",
20 "quantity": 1,
21 "unit_price": 19.99
22 },
23 {
24 "reference_id": "DARK-ROAST",
25 "name": "Dark Roast Coffee",
26 "quantity": 1,
27 "unit_price": 19.99
28 }
29 ],
30 "reference_id": "840343901234", // the reference_id can be the same as the order_number
31 "order_number": "1001",
32 "type": "DTC",
33 "financials": {
34 "total_price": 45.99
35 }
36}
Create warehouse receiving order

Here is a sample request to create a warehouse receiving order. If testing on sandbox you can use fulfillment_center id 8 or id 10

When you create warehouse receiving orders with the ShipBob API, you do not need to pass the shipbob_channel_id.

POST /2026-01/receiving
1{
2 "fulfillment_center": {
3 "id": 8
4 },
5 "package_type": "Package",
6 "box_packaging_type": "EverythingInOneBox",
7 "boxes": [
8 {
9 "tracking_number": "860C8CDC8F0B4FC7AB69AC86C20539EC",
10 "box_items": [
11 {
12 "quantity": 1,
13 "inventory_id": 0 // get the inventory_id by making request to GET Products /2026-01/product?search=LIGHT-ROAST
14 }
15 ]
16 }
17 ],
18 "expected_arrival_date": "2025-11-24T14:15:22Z",
19 "purchase_order_number": "PO123"
20}

4. Use Cases

Get started with the ShipBob API with detailed guides for your use case.

Build Orders integration

Learn how to build an orders integration

Manage Products

Set up your catalog

Track Shipments

Get delivery updates.

Sync Inventory

Keep stock in check.

Warehouse Receiving Orders

Send stock to ShipBob.

Returns

Create and manage returns