*** title: Quickstart slug: quickstart last-updated: 'February 24, 2026' --------------------------------- 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](https://webstage.shipbob.dev/app/merchant/#/SignUp). ## 2. Make your first API request Use your PAT token to make a request to the [GET Channels](/api/channels/get-channels?explorer=true) 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` 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. ```javascript GET Channel 2026-01/channel {4-25} { "items": [ { "id": 100102, "name": "Privileged Access Token Wednesday, September 20, 2025", "application_name": "API", "scopes": [ "fulfillments_write", "webhooks_read", "returns_read", "orders_read", "inventory_write", "inventory_read", "returns_write", "products_read", "webhooks_write", "receiving_write", "receiving_read", "channels_read", "products_write", "locations_read", "orders_write", "fulfillments_read", "locations_write" ] }, { "id": 100101, "name": "ShipBob Default", "application_name": "ShipBob", "scopes": [ "webhooks_read", "returns_read", "orders_read", "inventory_read", "products_read", "receiving_read", "channels_read", "locations_read", "fulfillments_read" ] } ] } ``` ## 3. Common scenarios A few common scenarios to get started with the ShipBob API. All endpoints are only accessible via `HTTPS`. Below is a sample request to create a product: ```javascript POST /2026-01/product { "name": "Light Roast Coffee", "type_id": 1, "variants": [ { "name": "Light Roast Coffee", "sku": "LIGHT-ROAST", "packaging_requirement_id": 1, "packaging_material_type_id": 1 } ] } ``` Below is a sample request to create a order: Make sure to pass the `shipbob_channel_id` in the header. ```javascript POST /2026-01/order { "shipping_method": "Standard", "recipient": { "name": "John Doe", "address": { "address1": "100 Nowhere Blvd", "address2": "Suite 100", "city": "Gotham City", "state": "NJ", "country": "US", "zip_code": "07093" }, "email": "john@example.com", "phone_number": "555-555-5555" }, "products": [ { "reference_id": "LIGHT-ROAST", "name": "Light Roast Coffee", "quantity": 1 }, { "reference_id": "DARK-ROAST", "name": "Dark Roast Coffee", "quantity": 1 } ], "reference_id": "840343901234", // the reference_id can be the same as the order_number "order_number": "1001", "type": "DTC" } ``` 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`. ```javascript POST /2026-01/receiving { "fulfillment_center": { "id": 8 }, "package_type": "Package", "box_packaging_type": "EverythingInOneBox", "boxes": [ { "tracking_number": "860C8CDC8F0B4FC7AB69AC86C20539EC", "box_items": [ { "quantity": 1, "inventory_id": 0 // get the inventory_id by making request to GET Products /2026-01/product?search=LIGHT-ROAST } ] } ], "expected_arrival_date": "2025-11-24T14:15:22Z", "purchase_order_number": "PO123" } ``` ## 4. Use Cases Get started with the ShipBob API with detailed guides for your use case. Learn how to build an orders integration Set up your catalog Get delivery updates. Keep stock in check. Send stock to ShipBob. Create and manage returns