Products
Product master data is exposed one-way from Fulfil to the 3PL.
List products 🔗
Text
1
GET /v1/products.json
Returns product master data: SKUs, UPCs, dimensions, weight, customs information, dangerous goods, and warehouse-scoped 3PL SKUs.
Query parameters
| Name | Type | Description |
|---|---|---|
page |
integer | 1-indexed page number (100 records per page) |
updated_at_min |
datetime | Lower bound on last modification time |
updated_at_max |
datetime | Upper bound on last modification time |
Only products of type goods are returned.
Response
JSON
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
{
"products": [
{
"id": 501,
"code": "SKU-100",
"upc": "012345678905",
"name": "Widget",
"template_id": 200,
"template_name": "Widget Product",
"category_id": 5,
"category_name": "Widgets",
"brand": "Acme",
"image_url": "https://.../widget.jpg",
"scan_required": true,
"list_price": "29.99",
"quantity_per_case": 12,
"cases_per_pallet": 40,
"attributes": { "color": "blue" },
"codes": [
{ "type": "3pl_sku", "value": "WH-SKU-100" },
{ "type": "buyer_sku", "value": "AMZ-B0XXX" }
],
"customs_information": {
"hs_code": "9503.00",
"country_of_origin": "CN",
"customs_value": "12.50",
"customs_description": "Plastic toy widget"
},
"dangerous_goods": {},
"weight": { "weight_gm": 340.19, "weight_oz": 12.0 },
"dimensions": {
"length_cm": 20.32, "width_cm": 15.24, "height_cm": 5.08,
"length_in": 8.0, "width_in": 6.0, "height_in": 2.0
},
"metafields": []
}
],
"has_more": false
}
Note the response envelope uses products, not data, unlike the shipment
list endpoints.
Code types
The codes array can include:
3pl_sku— the 3PL's own SKU (warehouse-scoped)buyer_sku— customer-specific SKU (customer-scoped)upc— Universal Product Code- Additional tenant-defined code types
Count products 🔗
Text
1
GET /v1/products/count.json
Same filters as the list endpoint. Returns {"count": <n>}.