> 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 an inventory item


GET https://api.shipbob.com/1.0/inventory/{inventoryId}

Reference: https://developer.shipbob.com/v1.0/api/inventory/get-an-inventory-item

## 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

### Path parameters

- `inventoryId` (string, required) — The inventory id to get

## Response

### 200

Success

- `dimensions` (object, optional) — Information about an inventory item's dimensions
  - `depth` (double, optional) — Depth in inches of this inventory item
  - `length` (double, optional) — Length in inches of this inventory item
  - `weight` (double, optional) — Weight in ounces of this inventory item
  - `width` (double, optional) — Width in inches of this inventory item
- `fulfillable_quantity_by_fulfillment_center` (list of object, optional, nullable) — Fulfillable quantity of this inventory item broken down by fulfillment center location
  - `awaiting_quantity` (integer, optional) — Amount of quantity awaiting arrival of a receiving order at this fulfillment center
  - `committed_quantity` (integer, optional) — Amount of committed quantity at this fulfillment center
  - `fulfillable_quantity` (integer, optional) — Amount of fulfillable quantity at this fulfillment center
  - `id` (integer, optional) — Unique id of the fulfillment center
  - `internal_transfer_quantity` (integer, optional) — The quantity of items that are in the process of internal transit between ShipBob fulfillment centers, with a destination of this fulfillment center. These items are not pickable or fulfillable until they have been received and moved to the "On Hand" quantity of the destination FC.
  - `name` (string, optional, nullable) — Name of the fulfillment center
  - `onhand_quantity` (integer, optional) — Amount of onhand quantity at this fulfillment center
- `fulfillable_quantity_by_lot` (list of object, optional, nullable) — Fulfillable quantity of this inventory item broken down by lot
  - `awaiting_quantity` (integer, optional) — Quantity of inventory items belonging to this lot awaiting arrival of a receiving order
  - `committed_quantity` (integer, optional) — Committed quantity of inventory items belonging to this lot
  - `expiration_date` (datetime, optional, nullable) — Expiration date for this lot
  - `fulfillable_quantity` (integer, optional) — Fulfillable quantity of inventory items belonging to this lot
  - `fulfillable_quantity_by_fulfillment_center` (list of object, optional, nullable) — Fulfillable quantity of inventory items belonging to this lot broken down by fulfillment center location
    - `awaiting_quantity` (integer, optional) — Amount of quantity awaiting arrival of a receiving order at this fulfillment center
    - `committed_quantity` (integer, optional) — Amount of committed quantity at this fulfillment center
    - `fulfillable_quantity` (integer, optional) — Amount of fulfillable quantity at this fulfillment center
    - `id` (integer, optional) — Unique id of the fulfillment center
    - `internal_transfer_quantity` (integer, optional) — The quantity of items that are in the process of internal transit between ShipBob fulfillment centers, with a destination of this fulfillment center. These items are not pickable or fulfillable until they have been received and moved to the "On Hand" quantity of the destination FC.
    - `name` (string, optional, nullable) — Name of the fulfillment center
    - `onhand_quantity` (integer, optional) — Amount of onhand quantity at this fulfillment center
  - `internal_transfer_quantity` (integer, optional) — The quantity of all items belonging to this lot that are in the process of internal transit between ShipBob fulfillment centers. These items are not pickable or fulfillable until they have been received and moved to the "On Hand" quantity of the destination FC. Internal transit quantities for each FC represent the incoming transfer stock for that specific location.
  - `lot_number` (string, optional, nullable) — Identification number of this lot
  - `onhand_quantity` (integer, optional) — OnHand quantity of inventory items belonging to this lot
- `id` (integer, optional) — Unique id of the inventory item
- `is_active` (boolean, optional) — Whether the inventory is active or not
- `is_case_pick` (boolean, optional) — True if the inventory item is marked as case pick
- `is_digital` (boolean, optional) — True if the inventory item is marked as a digital item
- `is_lot` (boolean, optional) — True if this inventory item is organized into lots
- `name` (string, optional, nullable) — Name of the inventory item
- `packaging_attribute` (enum, optional)
  - Allowed values: `None`, `Fragile`, `Foldable`, `Stackable`, `Book`, `CustomPackaging`, `CustomDunnage`, `MarketingInsert`, `Poster`
- `total_awaiting_quantity` (integer, optional) — Total quantity in unreceived receiving orders for this inventory item
- `total_backordered_quantity` (integer, optional) — The amount of the item you need to send to ShipBob to fulfill all exception orders containing the item. This is the exception_quantity less the fulfillable_quantity of the item.
- `total_committed_quantity` (integer, optional) — Total committed quantity of this inventory item
- `total_exception_quantity` (integer, optional) — The total quantity of all items that are contained within orders that are in exception/out of stock status. Out of stock orders have not been processed and therefore do not have lot or fulfillment centers assigned.
- `total_fulfillable_quantity` (integer, optional) — Total fulfillable quantity of this inventory item
- `total_internal_transfer_quantity` (integer, optional) — The total quantity of all items that are in the process of internal transit between ShipBob fulfillment centers. These items are not pickable or fulfillable until they have been received and moved to the "On Hand" quantity of the destination FC. Internal transit quantities for each FC represent the incoming transfer stock for that specific location.
- `total_onhand_quantity` (integer, optional) — Total onhand quantity of this inventory item
- `total_sellable_quantity` (integer, optional) — Total quantity that can be sold without overselling the inventory item. This is calculated by subtracting the total exception quantity from the fulfillable quantity.

## Examples

**Response**

```json
{
  "dimensions": {
    "depth": 0.1,
    "length": 0.1,
    "weight": 0.1,
    "width": 0.1
  },
  "fulfillable_quantity_by_fulfillment_center": [
    {
      "awaiting_quantity": 0,
      "committed_quantity": 0,
      "fulfillable_quantity": 0,
      "id": 0,
      "internal_transfer_quantity": 0,
      "name": "Cicero",
      "onhand_quantity": 0
    }
  ],
  "fulfillable_quantity_by_lot": [
    {
      "awaiting_quantity": 0,
      "committed_quantity": 0,
      "expiration_date": "2019-08-24T14:15:22Z",
      "fulfillable_quantity": 0,
      "fulfillable_quantity_by_fulfillment_center": [
        {
          "awaiting_quantity": 0,
          "committed_quantity": 0,
          "fulfillable_quantity": 0,
          "id": 0,
          "internal_transfer_quantity": 0,
          "name": "Cicero",
          "onhand_quantity": 0
        }
      ],
      "internal_transfer_quantity": 0,
      "lot_number": "1234",
      "onhand_quantity": 0
    }
  ],
  "id": 0,
  "is_active": true,
  "is_case_pick": true,
  "is_digital": true,
  "is_lot": true,
  "name": "Medium Blue T-Shirt",
  "packaging_attribute": "None",
  "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_onhand_quantity": 0,
  "total_sellable_quantity": 0
}
```

**SDK Code**

```python Inventory_getAnInventoryItem_example
import requests

url = "https://api.shipbob.com/1.0/inventory/inventoryId"

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

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

print(response.json())
```

```javascript Inventory_getAnInventoryItem_example
const url = 'https://api.shipbob.com/1.0/inventory/inventoryId';
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 Inventory_getAnInventoryItem_example
package main

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

func main() {

	url := "https://api.shipbob.com/1.0/inventory/inventoryId"

	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 Inventory_getAnInventoryItem_example
require 'uri'
require 'net/http'

url = URI("https://api.shipbob.com/1.0/inventory/inventoryId")

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 Inventory_getAnInventoryItem_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.shipbob.com/1.0/inventory/inventoryId")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.shipbob.com/1.0/inventory/inventoryId', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

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

```csharp Inventory_getAnInventoryItem_example
using RestSharp;

var client = new RestClient("https://api.shipbob.com/1.0/inventory/inventoryId");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift Inventory_getAnInventoryItem_example
import Foundation

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.shipbob.com/1.0/inventory/inventoryId")! 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()
```