For clean Markdown of any page, append .md to the page URL. For a complete documentation index, see https://developer.shipbob.com/api/inventory/llms.txt. For full documentation content, see https://developer.shipbob.com/api/inventory/llms-full.txt.

# Get All Inventory Levels Grouped By Fulfillment Center

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

Retrieves inventory levels for all inventory items grouped by fulfillment center location. Supports filtering by location type, location ID, and various product attributes.

Reference: https://developer.shipbob.com/api/inventory/get-all-inventory-levels-grouped-by-fulfillment-center

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: api-2026-01
  version: 1.0.0
paths:
  /2026-01/inventory-level/locations:
    get:
      operationId: get-all-inventory-levels-grouped-by-fulfillment-center
      summary: Get All Inventory Levels Grouped By Fulfillment Center
      description: >-
        Retrieves inventory levels for all inventory items grouped by
        fulfillment center location. Supports filtering by location type,
        location ID, and various product attributes.
      tags:
        - subpackage_inventory
      parameters:
        - name: LocationType
          in: query
          description: >-
            Filter by location type. Valid values: 'hub', 'spoke', or 'lts'.
            Defaults to all locations if not specified.
          required: false
          schema:
            type: string
        - name: LocationId
          in: query
          description: >-
            Filter by specific fulfillment center location ID. Use this to
            retrieve inventory levels for a particular fulfillment center.
          required: false
          schema:
            type: string
            format: int32
        - name: SearchBy
          in: query
          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).
          required: false
          schema:
            type: string
        - name: InventoryIds
          in: query
          description: >-
            Comma-separated list of inventory IDs to filter results. Use this to
            retrieve location-grouped inventory levels for specific inventory
            items only.
          required: false
          schema:
            type: string
        - name: IsActive
          in: query
          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.
          required: false
          schema:
            type: boolean
        - name: IsDigital
          in: query
          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.
          required: false
          schema:
            type: boolean
        - name: PageSize
          in: query
          description: >-
            Number of location-grouped inventory level items to return per page.
            Controls pagination size for the response.
          required: false
          schema:
            type: string
            format: int32
        - name: SortBy
          in: query
          description: >-
            Sort results by field name. Default is ascending order. Prefix with
            '-' for descending order (e.g., '-name' sorts by name descending).
            Multiple fields can be comma-separated.
          required: false
          schema:
            type: string
        - name: Authorization
          in: header
          description: Authentication using Personal Access Token (PAT) token or OAuth2
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/Inventory.InventoryQuantityFcResponsePagedResponse
        '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://api.shipbob.com
  - url: https://sandbox-api.shipbob.com
components:
  schemas:
    Inventory.FulfillmentCenterResponse:
      type: object
      properties:
        awaiting_quantity:
          type: integer
          description: Quantity expected to arrive at this location
        committed_quantity:
          type: integer
          description: Quantity reserved for existing orders at this location
        fulfillable_quantity:
          type: integer
          description: Quantity available to fulfill new orders at this location
        internal_transfer_quantity:
          type: integer
          description: Quantity in transit to or from this location
        location_id:
          type: integer
          description: Unique identifier for the fulfillment center location
        name:
          type:
            - string
            - 'null'
          description: Name of the fulfillment center
        on_hand_quantity:
          type: integer
          description: Total quantity physically present at this location
      title: Inventory.FulfillmentCenterResponse
    Inventory.InventoryQuantityFcResponse:
      type: object
      properties:
        inventory_id:
          type: integer
          description: Unique identifier for the inventory item
        locations:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/Inventory.FulfillmentCenterResponse'
          description: >-
            List of fulfillment centers and their respective inventory
            quantities
        name:
          type:
            - string
            - 'null'
          description: Name of the inventory item
        sku:
          type:
            - string
            - 'null'
          description: Stock keeping unit identifier
      title: Inventory.InventoryQuantityFcResponse
    Inventory.InventoryQuantityFcResponsePagedResponse:
      type: object
      properties:
        first:
          type:
            - string
            - 'null'
          description: >-
            URL to retrieve the first page of results. Null if already on the
            first page.
        items:
          type:
            - array
            - 'null'
          items:
            $ref: '#/components/schemas/Inventory.InventoryQuantityFcResponse'
          description: >-
            Array of location-grouped inventory quantity items in the current
            page of results.
        last:
          type:
            - string
            - 'null'
          description: >-
            URL to retrieve the last page of results. Null if already on the
            last page.
        next:
          type:
            - string
            - 'null'
          description: URL to retrieve the next page of results. Null if on the last page.
        prev:
          type:
            - string
            - 'null'
          description: >-
            URL to retrieve the previous page of results. Null if on the first
            page.
      title: Inventory.InventoryQuantityFcResponsePagedResponse
    Inventory.ProblemDetails:
      type: object
      properties:
        detail:
          type:
            - string
            - 'null'
          description: >-
            A human-readable explanation specific to this occurrence of the
            problem.
        instance:
          type:
            - string
            - 'null'
          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
            - 'null'
          description: The HTTP status code for this occurrence of the problem.
        title:
          type:
            - string
            - 'null'
          description: A short, human-readable summary of the problem type.
        type:
          type:
            - string
            - 'null'
          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 or OAuth2

```

## SDK Code Examples

```python Inventory_getAllInventoryLevelsGroupedByFulfillmentCenter_example
import requests

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

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

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

print(response.json())
```

```javascript Inventory_getAllInventoryLevelsGroupedByFulfillmentCenter_example
const url = 'https://api.shipbob.com/2026-01/inventory-level/locations';
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_getAllInventoryLevelsGroupedByFulfillmentCenter_example
package main

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

func main() {

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

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

url = URI("https://api.shipbob.com/2026-01/inventory-level/locations")

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

HttpResponse<String> response = Unirest.get("https://api.shipbob.com/2026-01/inventory-level/locations")
  .header("Authorization", "Bearer <token>")
  .asString();
```

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

$client = new \GuzzleHttp\Client();

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

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

```csharp Inventory_getAllInventoryLevelsGroupedByFulfillmentCenter_example
using RestSharp;

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

```swift Inventory_getAllInventoryLevelsGroupedByFulfillmentCenter_example
import Foundation

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

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