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

# Get All Inventory Levels

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

Retrieves current inventory levels across all locations. Returns available, on-hand, committed, and other quantity types. Supports filtering by inventory IDs and product attributes.

Reference: https://developer-stage.shipbob.dev/api/inventory/get-all-inventory-levels

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: api-2026-01
  version: 1.0.0
paths:
  /2026-01/inventory-level:
    get:
      operationId: get-all-inventory-levels
      summary: Get All Inventory Levels
      description: >-
        Retrieves current inventory levels across all locations. Returns
        available, on-hand, committed, and other quantity types. Supports
        filtering by inventory IDs and product attributes.
      tags:
        - subpackage_inventory
      parameters:
        - name: SearchBy
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.SearchBy.String
        - name: InventoryIds
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.InventoryIds.IntegerArray
        - name: IsActive
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.IsActive.Boolean
        - name: IsDigital
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.IsDigital.Boolean
        - name: PageSize
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.PageSize.Integer
        - name: SortBy
          in: query
          description: ''
          required: false
          schema:
            $ref: >-
              #/components/schemas/Inventory.Get.Api.V3.Inventory.Levels.SortBy.String
        - name: Authorization
          in: header
          description: Authentication using Personal Access Token (PAT) token
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Inventory.InventoryQuantityResponsePagedResponse
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Inventory.ProblemDetails'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                description: Any type
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                description: Any type
servers:
  - url: https://sandbox-api.shipbob.com
    description: https://sandbox-api.shipbob.com
components:
  schemas:
    Inventory.Get.Api.V3.Inventory.Levels.SearchBy.String:
      type: string
      description: >-
        Search is available for 3 fields: Inventory ID, Name, and SKU. Expected
        behavior for search by Inventory ID is exact match. Expected behavior
        for search by Inventory Name or SKU is partial match (consecutive
        characters, case insensitive).
      title: Inventory.Get.Api.V3.Inventory.Levels.SearchBy.String
    Inventory.Get.Api.V3.Inventory.Levels.InventoryIds.IntegerArray:
      type: array
      items:
        type: integer
      description: >-
        Comma-separated list of inventory IDs to filter results. Use this to
        retrieve inventory levels for specific inventory items only.
      title: Inventory.Get.Api.V3.Inventory.Levels.InventoryIds.IntegerArray
    Inventory.Get.Api.V3.Inventory.Levels.IsActive.Boolean:
      type: boolean
      description: >-
        Filter inventory levels by active status. Set to true to return only
        active inventory items, false for inactive items. Omit to return all
        items regardless of status.
      title: Inventory.Get.Api.V3.Inventory.Levels.IsActive.Boolean
    Inventory.Get.Api.V3.Inventory.Levels.IsDigital.Boolean:
      type: boolean
      description: >-
        Filter inventory levels by digital product status. Set to true to return
        only digital products, false for physical products. Digital products are
        items that don't require physical fulfillment.
      title: Inventory.Get.Api.V3.Inventory.Levels.IsDigital.Boolean
    Inventory.Get.Api.V3.Inventory.Levels.PageSize.Integer:
      type: integer
      description: >-
        Number of inventory level items to return per page. Controls pagination
        size for the response.
      title: Inventory.Get.Api.V3.Inventory.Levels.PageSize.Integer
    Inventory.Get.Api.V3.Inventory.Levels.SortBy.String:
      type: string
      description: >-
        Sort results by field name. Default is ascending order. Prefix with '-'
        for descending order (e.g., '-total_on_hand_quantity' sorts by quantity
        descending). Multiple fields can be comma-separated.
      title: Inventory.Get.Api.V3.Inventory.Levels.SortBy.String
    Inventory.InventoryQuantityResponse:
      type: object
      properties:
        inventory_id:
          type: integer
          description: Unique identifier for the inventory item
        name:
          type: string
          description: Name of the inventory item
        sku:
          type: string
          description: Stock keeping unit identifier
        total_awaiting_quantity:
          type: integer
          description: Total quantity expected to arrive from receiving or transfers
        total_backordered_quantity:
          type: integer
          description: Total quantity on backorder for pending shipments
        total_committed_quantity:
          type: integer
          description: Total quantity reserved for existing orders and allocations
        total_exception_quantity:
          type: integer
          description: >-
            Total quantity in exception status (damaged, lost, or under
            investigation)
        total_fulfillable_quantity:
          type: integer
          description: >-
            Total quantity available to fulfill new orders (on-hand minus
            committed)
        total_internal_transfer_quantity:
          type: integer
          description: Total quantity currently in transit between fulfillment centers
        total_on_hand_quantity:
          type: integer
          description: Total quantity physically present in all fulfillment centers
        total_sellable_quantity:
          type: integer
          description: Total quantity available for sale (fulfillable plus awaiting)
      title: Inventory.InventoryQuantityResponse
    Inventory.InventoryQuantityResponsePagedResponse:
      type: object
      properties:
        first:
          type: string
          description: >-
            URL to retrieve the first page of results. Null if already on the
            first page.
        items:
          type: array
          items:
            $ref: '#/components/schemas/Inventory.InventoryQuantityResponse'
          description: Array of inventory quantity items in the current page of results.
        last:
          type: string
          description: >-
            URL to retrieve the last page of results. Null if already on the
            last page.
        next:
          type: string
          description: URL to retrieve the next page of results. Null if on the last page.
        prev:
          type: string
          description: >-
            URL to retrieve the previous page of results. Null if on the first
            page.
      title: Inventory.InventoryQuantityResponsePagedResponse
    Inventory.ProblemDetails:
      type: object
      properties:
        detail:
          type: string
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
        instance:
          type: string
          description: >-
            A URI reference that identifies the specific occurrence of the
            problem. It may or may not yield further information if
            dereferenced.
        status:
          type: integer
          description: The HTTP status code for this occurrence of the problem.
        title:
          type: string
          description: A short, human-readable summary of the problem type.
        type:
          type: string
          description: >-
            A URI reference that identifies the problem type. This URI should
            provide human-readable documentation for the problem.
      title: Inventory.ProblemDetails
  securitySchemes:
    PAT:
      type: http
      scheme: bearer
      description: Authentication using Personal Access Token (PAT) token
    OAuth2:
      type: http
      scheme: bearer
      description: OAuth2 authentication using JWT tokens

```

## Examples



**Response**

```json
{
  "first": "string",
  "items": [
    {
      "inventory_id": 0,
      "name": "string",
      "sku": "string",
      "total_awaiting_quantity": 0,
      "total_backordered_quantity": 0,
      "total_committed_quantity": 0,
      "total_exception_quantity": 0,
      "total_fulfillable_quantity": 0,
      "total_internal_transfer_quantity": 0,
      "total_on_hand_quantity": 0,
      "total_sellable_quantity": 0
    }
  ],
  "last": "string",
  "next": "string",
  "prev": "string"
}
```

**SDK Code**

```python default
import requests

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

querystring = {"SearchBy":"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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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://sandbox-api.shipbob.com/2026-01/inventory-level?SearchBy=string&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()
```