Overview
This documentation provides an overview and API request examples for creating, retrieving, and modifying products through the ShipBob product catalog.
Base URL
All requests should be directed to the following base URL:
https://api.shipbob.com/2025-07/
Creating a Product
Endpoint: POST /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,
"barcode": "06547321109",
"customs": {
"country_code_of_origin": "US",
"hs_tariff_code": "6103.22.00",
"value": "10",
"description": "coffee"
}
}
]
}
Notes:
-
Type ID:
1 indicates a regular product (not a bundle). Use 2 for creating a bundle product.
-
Taxonomy ID: Categorizes products in the UI. (
266 represents “Clothing”).
-
Packaging Requirement ID: Determines special handling (e.g.,
7 for apparel).
-
Customs Information: Required for international shipments.
Creating a Bundle Product
Endpoint: POST /product
{
"name": "Coffee Bundle",
"type_id": 2,
"variants": [
{
"bundle_definition": [
{
"quantity": 1,
"variant_id": 16608663
},
{
"quantity": 1,
"variant_id": 16608664
},
{
"quantity": 1,
"variant_id": 16608667
}
],
"sku": "coffee-bundle"
}
]
}
Creating a Varying Product
Endpoint: POST /product
{
"name": "Light Roast Coffee",
"type_id": 1,
"taxonomy_id": 266,
"variants": [
{
"name": "Light Roast Coffee - 3 lb",
"sku": "light-roast-3lb",
"packaging_requirement_id": 1,
"packaging_material_type_id": 1,
"barcode": "06547321110",
"customs": {
"country_code_of_origin": "US",
"hs_tariff_code": "6103.22.00",
"value": "10",
"description": "coffee"
}
}
]
}
Updating Existing Products
Endpoint: PATCH /product/{product-id}
{
"variants": [
{
"id": 6,
"barcode": "4324323212",
"packaging_material_type_id": 6
},
{
"id": 8,
"name": "Jupiter Shirt (Small)"
}
]
}
Retrieving Products
Endpoint: GET /product
/product?productTypeId=1&variantStatus=1&hasDigitalVariants=false
Product Attributes
Product-Level Attributes
| Field | Type | Description |
|---|
name | string | Name of the product |
type_id | int | Regular Product (1) or Bundle (2) |
taxonomy_id | int | Product category ID |
Variant-Level Attributes
| Field | Type | Description |
|---|
name | string | Variant name (should match product name for non-varying products) |
status_id | int | Active (1) or Inactive (2) |
sku | string | Unique SKU for the variant |
barcode | string | Barcode for scanning |
packaging_requirement_id | int | Packaging requirement |
packaging_material_type_id | int | Packaging material |
is_digital | boolean | True for digital items |
customs | object | Customs details for international shipping |
Packaging Requirements
| ID | Name |
|---|
| 1 | No Requirements |
| 2 | Fragile |
| 3 | Foldable |
| 4 | Media |
| 5 | Book |
| 6 | Poster |
| 7 | Apparel |
| 8 | Packaging Material |
Packaging Material Types
| ID | Name |
|---|
| 1 | Box |
| 2 | Bubble Mailer |
| 3 | Poly Mailer |
| 5 | Poster Tube |
| 6 | Custom Box |
| 7 | Bookfold |
| 8 | Ship In Own Container |
| 9 | Custom Bubble Mailer |
| 10 | Custom Poly Mailer |
Taxonomy Values
Taxonomy values can be found using the lookup tool (requires login):
ShipBob Taxonomy LookupLast modified on December 15, 2025