Inventory Search
{{api_url}}/shop/inventory/searchReturns inventory rows, one per SKU per warehouse. Each row carries the SKU's product identifiers, its quantity in that warehouse, its total across all warehouses, its bin location, and its restock settings. Filter by warehouse, active state, modification date, or search term, and page through the results with limit and limit_start.
Use it for full inventory pulls into your own system, and for incremental syncs of only what changed since your last pull. For one known SKU, use Inventory Get.
Query parameters
| Parameter | Type | Description |
|---|---|---|
search_term | string | Partial match against the product's base SKU, product name, ASIN, GTIN, UPC, ISBN, and barcode. MARG matches any product with MARG anywhere in one of those fields. |
warehouse_id | integer | Only return rows for this warehouse. Use Warehouse Search to find a warehouse's ID. |
is_active | integer | 1 for active items only, 0 for inactive items only. Omit it for both. |
date_modified_greater_than | string | Only return rows modified after this date and time, in your account's time zone. Format: 2018-01-01 10:10:10 AM. |
date_modified_less_than | string | Only return rows modified before this date and time, in your account's time zone. Format: 2018-01-01 10:10:10 AM. |
limit | integer | Number of rows to return. Default and maximum: 100. |
limit_start | integer | Number of rows to skip before returning results. Use it with limit to page: limit=100&limit_start=100 returns rows 101 through 200. |
just_count | integer | Set to 1 to return only total_inventory_items, the number of matching rows, instead of the rows themselves. |
Examples
Everything modified since your last pull, 100 rows at a time:
{{api_url}}/shop/inventory/search?date_modified_greater_than=2026-09-22 04:00:00 PM&limit=100&limit_start=0
Active items in warehouse 3 only:
{{api_url}}/shop/inventory/search?warehouse_id=3&is_active=1&limit=100&limit_start=0
Products with MARG in their SKU, name, or identifiers:
{{api_url}}/shop/inventory/search?search_term=MARG&limit=100&limit_start=0
How many rows match, without the rows:
{{api_url}}/shop/inventory/search?warehouse_id=3&just_count=1
Response
One SKU held in three warehouses returns three rows:
{
"inventory": [
{"shop_productid": "106", "product_name": "5L-MARG-MW04", "base_sku": "5L-MARG-MW04", "shop_warehouseid": "3", "warehouse_name": "Main Warehouse", "quantity": "971", "child_sku": "", "skuid": "0", "item_sku": "5L-MARG-MW04", "restock_delivery_lead_time": "5", "restock_safety_stock_level": "5", "reorder_point": null, "bin_location": null, "asin": "", "gtin": null, "upc": null, "isbn": null, "date_modified": "2018-05-17 14:58:16", "option_values": null, "total_quantity": "984"},
{"shop_productid": "106", "product_name": "5L-MARG-MW04", "base_sku": "5L-MARG-MW04", "shop_warehouseid": "4", "warehouse_name": "Secondary Warehouse", "quantity": "12", "child_sku": "", "skuid": "0", "item_sku": "5L-MARG-MW04", "restock_delivery_lead_time": "5", "restock_safety_stock_level": "5", "reorder_point": null, "bin_location": null, "asin": "", "gtin": null, "upc": null, "isbn": null, "date_modified": "2018-05-16 14:08:57", "option_values": null, "total_quantity": "984"},
{"shop_productid": "106", "product_name": "5L-MARG-MW04", "base_sku": "5L-MARG-MW04", "shop_warehouseid": "7", "warehouse_name": "Canada", "quantity": "1", "child_sku": "", "skuid": "0", "item_sku": "5L-MARG-MW04", "restock_delivery_lead_time": "5", "restock_safety_stock_level": "5", "reorder_point": null, "bin_location": null, "asin": "", "gtin": null, "upc": null, "isbn": null, "date_modified": "2018-05-17 14:52:00", "option_values": null, "total_quantity": "984"}
],
"total_inventory_items": "72"
}
| Field | Description |
|---|---|
inventory | The matching rows, one per SKU per warehouse. null when nothing matches. |
total_inventory_items | The number of rows matching your filters across all pages, not just this page. |
Row fields
| Field | Description |
|---|---|
item_sku | The row's SKU. For a child SKU this is the child SKU, otherwise the base SKU. |
base_sku | The product's base SKU. |
child_sku | The child SKU. Empty when the row is the product itself. |
shop_productid | The InfiPlex product ID. |
skuid | The InfiPlex SKU ID of the child SKU. 0 when the row is the product itself. |
product_name | The product name. |
option_values | The child SKU's option values. |
shop_warehouseid | The warehouse this row belongs to. This is the same ID the other inventory endpoints take as warehouse_id. |
warehouse_name | The warehouse name. |
quantity | The SKU's inventory in this warehouse. Negative when more units have been sold than are on hand. |
total_quantity | The SKU's total inventory across all warehouses. The same value appears on each of the SKU's rows. |
bin_location | The SKU's bin location in this warehouse, set with Bin Location Set. |
restock_delivery_lead_time | The restock delivery lead time set on the item. |
restock_safety_stock_level | The safety stock level set on the item. |
reorder_point | The item's restock reorder point. |
asin, gtin, upc, isbn | The product identifiers stored on the item. |
date_modified | When this row was last modified, in your account's time zone, formatted 2018-05-17 14:52:00. |
Syncing inventory into your system
- On the first run, page through everything with
limit=100, starting atlimit_start=0and adding 100 each page. - On each later run, set
date_modified_greater_thanto the time of your previous pull, in your account's time zone, so only changed rows come back. - Keep paging until you have read
total_inventory_itemsrows, or until a page returns fewer than 100 rows.
Before you build
- A SKU held in three warehouses returns three rows. Use
quantityfor one warehouse's count andtotal_quantityfor the SKU's total. Addingtotal_quantityacross rows counts the SKU more than once. search_termmatches product fields only: base SKU, product name, ASIN, GTIN, UPC, ISBN, and barcode. It does not match child SKUs directly.- Numbers come back as strings. Convert them before doing math.
- Check for
inventory: nullbefore looping. A search with no matches returnsnull, not an empty array. - Dates are in the time zone set on your InfiPlex account, both in
date_modifiedand in the date filters. Convert timestamps from your own system before sending them. date_modifieduses 24-hourYYYY-MM-DD HH:MM:SS, while the date filters take2018-01-01 10:10:10 AM.- Your API key needs Inventory read permission. A key without it gets
403 Forbidden.
Related guides:
Authorization
Bearer token, sent in the Authorization header. Inherited from the collection.
Query Parameters
| Key | Value | Description |
|---|---|---|
date_modified_greater_than optional | Searches for inventory modified after the date sent. 2018-01-01 10:10:10 AM | |
date_modified_less_than optional | Searches for inventory modified before the date sent. 2018-01-01 10:10:10 AM | |
is_active optional | Set to 1 if you want only active items or 0 if you want in-active items | |
just_count optional | Set to 1 if you want a count of inventory found | |
limit optional | If this is set, then only this number of results will be returned | |
limit_start optional | If 100 results are returned and this is set to 25, the first 25 results will be omitted | |
search_term optional | ||
warehouse_id optional | If set, only items in the specified warehouse will be returned |
Example Request
curl --location --request GET '{{api_url}}/shop/inventory/search' \
--header 'Authorization: Bearer {{auth_token}}'Example Responses
Inventory Search
Request
curl --location --request GET '{{api_url}}/shop/inventory/search?date_modified_greater_than&date_modified_less_than&is_active&just_count&limit=5&limit_start&search_term&warehouse_id' \
--header 'Authorization: Bearer YOUR_API_KEY'Response 200 OK
{
"inventory": [
{
"shop_productid": "106",
"product_name": "5L-MARG-MW04",
"base_sku": "5L-MARG-MW04",
"shop_warehouseid": "7",
"warehouse_name": "Canada",
"quantity": "1",
"child_sku": "",
"skuid": "0",
"item_sku": "5L-MARG-MW04",
"restock_delivery_lead_time": "5",
"restock_safety_stock_level": "5",
"reorder_point": null,
"bin_location": null,
"asin": "",
"gtin": null,
"upc": null,
"isbn": null,
"date_modified": "2018-05-17 14:52:00",
"option_values": null,
"total_quantity": "984"
},
{
"shop_productid": "106",
"product_name": "5L-MARG-MW04",
"base_sku": "5L-MARG-MW04",
"shop_warehouseid": "3",
"warehouse_name": "Main Warehouse",
"quantity": "971",
"child_sku": "",
"skuid": "0",
"item_sku": "5L-MARG-MW04",
"restock_delivery_lead_time": "5",
"restock_safety_stock_level": "5",
"reorder_point": null,
"bin_location": null,
"asin": "",
"gtin": null,
"upc": null,
"isbn": null,
"date_modified": "2018-05-17 14:58:16",
"option_values": null,
"total_quantity": "984"
},
{
"shop_productid": "106",
"product_name": "5L-MARG-MW04",
"base_sku": "5L-MARG-MW04",
"shop_warehouseid": "4",
"warehouse_name": "Secondary Warehouse",
"quantity": "12",
"child_sku": "",
"skuid": "0",
"item_sku": "5L-MARG-MW04",
"restock_delivery_lead_time": "5",
"restock_safety_stock_level": "5",
"reorder_point": null,
"bin_location": null,
"asin": "",
"gtin": null,
"upc": null,
"isbn": null,
"date_modified": "2018-05-16 14:08:57",
"option_values": null,
"total_quantity": "984"
},
{
"shop_productid": "114",
"product_name": "7290016145014",
"base_sku": "7290016145014",
"shop_warehouseid": "3",
"warehouse_name": "Main Warehouse",
"quantity": "-16132",
"child_sku": "",
"skuid": "0",
"item_sku": "7290016145014",
"restock_delivery_lead_time": "5",
"restock_safety_stock_level": "5",
"reorder_point": null,
"bin_location": null,
"asin": "",
"gtin": null,
"upc": null,
"isbn": null,
"date_modified": "2018-05-17 14:58:16",
"option_values": null,
"total_quantity": "-16350"
},
{
"shop_productid": "114",
"product_name": "7290016145014",
"base_sku": "7290016145014",
"shop_warehouseid": "4",
"warehouse_name": "Secondary Warehouse",
"quantity": "-218",
"child_sku": "",
"skuid": "0",
"item_sku": "7290016145014",
"restock_delivery_lead_time": "5",
"restock_safety_stock_level": "5",
"reorder_point": null,
"bin_location": null,
"asin": "",
"gtin": null,
"upc": null,
"isbn": null,
"date_modified": null,
"option_values": null,
"total_quantity": "-16350"
}
],
"total_inventory_items": "72"
}
