> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.shipbob.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.shipbob.com/_mcp/server.

# Get All Inventories

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

Retrieves a paginated list of all inventory items. Supports filtering by active status, tags, and various product attributes. Use query parameters to search and filter results. Returns the inventory item catalog (item records and their attributes), not stock quantities; for current stock counts use the inventory levels endpoint (GET /inventory-level).

Reference: https://developer.shipbob.com/2026-01/api/inventory/get-all-inventories

## Authentication

- `Authorization` header (bearer token, required) — Authentication using Personal Access Token (PAT) token
- `Authorization` header (bearer token, required) — OAuth2 authentication using JWT tokens

## Servers

- `https://api.shipbob.com` (https://api.shipbob.com, default)
- `https://sandbox-api.shipbob.com` (https://sandbox-api.shipbob.com)

## Request

### Query parameters

- `SearchBy` (string, optional)
- `FilterOperations` (list of object, optional)
  - `key` (string, optional, nullable) — Filter field name to apply the operation to (e.g., 'sku', 'name', 'is_active')
  - `rawValue` (string, optional, nullable) — Filter value to match against the specified field
- `InventoryIds` (list of integer, optional)
- `IsActive` (boolean, optional)
- `IsDigital` (boolean, optional)
- `PageSize` (integer, optional)
- `SortBy` (string, optional)

## Response

### 200

OK

- `first` (string, optional, nullable) — URL to retrieve the first page of results. Null if already on the first page.
- `items` (list of object, optional, nullable) — Array of inventory items in the current page of results.
  - `barcode` (string, optional, nullable) — Barcode associated with the inventory item
  - `dimensions` (object, optional) — Physical dimensions of the inventory item
    - `height` (double, optional) — Height measurement of the inventory item
    - `is_locked` (boolean, optional) — Indicates whether dimensions are locked and cannot be modified
    - `length` (double, optional) — Length measurement of the inventory item
    - `unit` (string, optional, nullable) — Unit of measurement for dimensions (i.e. inches)
    - `validated` (boolean, optional) — Indicates whether dimensions have been validated by warehouse staff
    - `width` (double, optional) — Width measurement of the inventory item
  - `inventory_id` (integer, optional) — Unique identifier for the inventory item
  - `is_case` (boolean, optional) — Indicates if the inventory item is stored in cases
  - `is_lot` (boolean, optional) — Indicates if the inventory item is tracked by lot number
  - `name` (string, optional, nullable) — Name of the inventory item
  - `sku` (string, optional, nullable) — Stock keeping unit identifier
  - `user_id` (integer, optional) — User ID associated with this inventory item
  - `variant` (object, optional) — Variant details including active status and product characteristics
    - `hazmat` (object, optional) — Hazardous materials information
      - `is_hazmat` (boolean, optional) — Indicates if the inventory item is classified as hazardous material
      - `validated` (boolean, optional) — Indicates whether hazmat status has been validated and confirmed
    - `is_active` (boolean, optional) — Indicates if the variant is currently active and available for fulfillment
    - `is_bundle` (boolean, optional) — Indicates if this item is a bundle of multiple products
    - `is_digital` (boolean, optional) — Indicates if this is a digital product (no physical fulfillment required)
  - `weight` (object, optional) — Weight information of the inventory item
    - `unit` (string, optional, nullable) — Unit of measurement for weight (e.g., pounds, kilograms)
    - `value` (double, optional) — Weight value of the inventory item
- `last` (string, optional, nullable) — URL to retrieve the last page of results. Null if already on the last page.
- `next` (string, optional, nullable) — URL to retrieve the next page of results. Null if on the last page.
- `prev` (string, optional, nullable) — URL to retrieve the previous page of results. Null if on the first page.

## Errors

### 400 Bad Request Error

Bad Request

- `detail` (string, optional, nullable) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional, nullable) — A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
- `status` (integer, optional, nullable) — The HTTP status code for this occurrence of the problem.
- `title` (string, optional, nullable) — A short, human-readable summary of the problem type.
- `type` (string, optional, nullable) — A URI reference that identifies the problem type. This URI should provide human-readable documentation for the problem.

### 401 Unauthorized Error

Unauthorized

- `detail` (string, optional, nullable) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional, nullable) — A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
- `status` (integer, optional, nullable) — The HTTP status code for this occurrence of the problem.
- `title` (string, optional, nullable) — A short, human-readable summary of the problem type.
- `type` (string, optional, nullable) — A URI reference that identifies the problem type. This URI should provide human-readable documentation for the problem.

### 403 Forbidden Error

Forbidden

- `detail` (string, optional, nullable) — A human-readable explanation specific to this occurrence of the problem.
- `instance` (string, optional, nullable) — A URI reference that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced.
- `status` (integer, optional, nullable) — The HTTP status code for this occurrence of the problem.
- `title` (string, optional, nullable) — A short, human-readable summary of the problem type.
- `type` (string, optional, nullable) — A URI reference that identifies the problem type. This URI should provide human-readable documentation for the problem.

### 500 Internal Server Error

Internal Server Error

- `any`

### 503 Service Unavailable Error

Service Unavailable

- `any`

## Examples

**Response**

```json
{
  "first": "string",
  "items": [
    {
      "barcode": "string",
      "dimensions": {
        "height": 0.1,
        "is_locked": true,
        "length": 0.1,
        "unit": "string",
        "validated": true,
        "width": 0.1
      },
      "inventory_id": 0,
      "is_case": true,
      "is_lot": true,
      "name": "string",
      "sku": "string",
      "user_id": 0,
      "variant": {
        "hazmat": {
          "is_hazmat": true,
          "validated": true
        },
        "is_active": true,
        "is_bundle": true,
        "is_digital": true
      },
      "weight": {
        "unit": "string",
        "value": 0.1
      }
    }
  ],
  "last": "string",
  "next": "string",
  "prev": "string"
}
```

**SDK Code**

```python default
import requests

url = "https://api.shipbob.com/2026-01/inventory"

querystring = {"SearchBy":"string","FilterOperations":"[{\"key\":\"string\",\"rawValue\":\"string\"}]","InventoryIds":"[0]","IsActive":"true","IsDigital":"true","SortBy":"string"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript default
const url = 'https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go default
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby default
require 'uri'
require 'net/http'

url = URI("https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java default
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php default
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp default
using RestSharp;

var client = new RestClient("https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift default
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.shipbob.com/2026-01/inventory?SearchBy=string&FilterOperations=%5B%7B%22key%22%3A%22string%22%2C%22rawValue%22%3A%22string%22%7D%5D&InventoryIds=%5B0%5D&IsActive=true&IsDigital=true&SortBy=string")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```