Stock levels per product and per location.
5 operations, generated from the OpenAPI file . Authentication and the base URL are described in the API overview .
GET /api/inventory/
List stock levels
Operation ID inventory_list. Authentication: ApiKeyAuth.
Parameters
Name
In
Type
Required
Description
expiring_within_days
query
integer
No
Rows holding a batch that expires within this many days.
location
query
integer
No
Location id.
low_stock
query
boolean
No
Rows with a reorder point whose available stock is at or below it, and above zero.
out_of_stock
query
boolean
No
Rows with no available stock.
page
query
integer
No
A page number within the paginated result set.
page_size
query
integer
No
Number of results to return per page.
q
query
string
No
Search SKU, GTIN, name or brand.
Responses
Example
curl " https://api.horizonlogistics.eu/api/inventory/ " \
-H " Authorization: Api-Key $HORIZON_API_KEY "
GET /api/inventory/location-stock/
Stock totals per location
Operation ID inventory_location_stock_retrieve. Authentication: ApiKeyAuth.
Responses
Example
curl " https://api.horizonlogistics.eu/api/inventory/location-stock/ " \
-H " Authorization: Api-Key $HORIZON_API_KEY "
GET /api/inventory/{product_id}/
Retrieve a product’s stock
Operation ID inventory_retrieve. Authentication: ApiKeyAuth.
Parameters
Name
In
Type
Required
Description
product_id
path
integer
Yes
Responses
Example
curl " https://api.horizonlogistics.eu/api/inventory/{product_id}/ " \
-H " Authorization: Api-Key $HORIZON_API_KEY "
GET /api/locations/
List locations
Operation ID locations_list. Authentication: ApiKeyAuth.
Responses
Status
Description
Body
200
array of Location (application/json)
Example
curl " https://api.horizonlogistics.eu/api/locations/ " \
-H " Authorization: Api-Key $HORIZON_API_KEY "
GET /api/locations/{id}/
Retrieve a location
Operation ID locations_retrieve. Authentication: ApiKeyAuth.
Parameters
Name
In
Type
Required
Description
id
path
integer
Yes
Responses
Status
Description
Body
200
Location (application/json)
Example
curl " https://api.horizonlogistics.eu/api/locations/{id}/ " \
-H " Authorization: Api-Key $HORIZON_API_KEY "
Schemas
The objects the operations above send and receive. Fields of a nested object are listed under their parent (address.city, lines[].sku); a nested named object links to its own entry.
InventoryBatchRef
Field
Type
Required
Description
id
integer
Yes
batch_code
string
Yes
produced_at
string (date-time), nullable
Yes
expires_at
string (date-time), nullable
Yes
days_until_expiry
integer, nullable
Yes
recall_state
string
Yes
InventoryBinRef
Field
Type
Required
Description
id
integer
Yes
code
string
Yes
zone
string
Yes
InventoryLocationRef
Field
Type
Required
Description
id
integer
Yes
code
string
Yes
name
string
Yes
InventoryMovementSummary
Field
Type
Required
Description
id
integer
Yes
delta
integer
Yes
movement_type
string
Yes
source
string
Yes
source_ref
string
Yes
shopify_order_url
string, nullable
Yes
occurred_at
string (date-time)
Yes
actor_id
integer, nullable
Yes
notes
string
Yes
location_code
string, nullable
Yes
bin_code
string, nullable
Yes
Location
Field
Type
Required
Description
id
integer
Yes
Read-only.
code
string
Yes
Max length 320.
name
string
Yes
Max length 128.
location_type
string (enum)
Yes
warehouse - warehouse; store - store; 3pl - 3pl; dropship - dropship; transit - transit; virtual - virtual.
address1
string
No
Max length 200.
city
string
No
Max length 100.
postal_code
string
No
Max length 20.
country
string
Yes
Max length 2.
geo
any, nullable
No
is_active
boolean
No
is_fulfillable
boolean
No
is_default
boolean
No
shopify_location_id
integer, nullable
Yes
Read-only.
floor_area_m2
string (decimal), nullable
No
Pattern ^-?\d{0,8}(?:\.\d{0,2})?$.
storage_type
string (enum), may be blank
No
One of: ambient, racked, bulk, mezzanine, automated, cross_dock.
temperature_zone
string (enum), may be blank
No
One of: ambient, chilled, frozen, controlled.
created_at
string (date-time)
Yes
Read-only.
updated_at
string (date-time)
Yes
Read-only.
LocationStockTotal
Field
Type
Required
Description
location_id
integer
Yes
units_on_hand
integer
Yes
sku_count
integer
Yes
Products with stock on hand.
last_movement_at
string (date-time), nullable
Yes
LocationStockTotals
PaginatedStockLevelList
Field
Type
Required
Description
count
integer
Yes
next
string (uri), nullable
No
previous
string (uri), nullable
No
results
array of StockLevel
Yes
ProductStock
ProductStockBatch
Field
Type
Required
Description
batch
InventoryBatchRef
Yes
on_hand
integer
Yes
committed
integer
Yes
available
integer
Yes
ProductStockBin
Field
Type
Required
Description
bin
InventoryBinRef , nullable
Yes
Null for stock not assigned to a bin.
on_hand
integer
Yes
committed
integer
Yes
reserved
integer
Yes
available
integer
Yes
ProductStockLocation
Field
Type
Required
Description
location
InventoryLocationRef
Yes
on_hand_total
integer
Yes
committed_total
integer
Yes
reserved_total
integer
Yes
available_total
integer
Yes
reorder_point
integer, nullable
Yes
reorder_point_source
string
Yes
bin_breakdown
array of ProductStockBin
Yes
batch_breakdown
array of ProductStockBatch
Yes
Batches with stock at this location, soonest expiry first.
ProductStockProduct
Field
Type
Required
Description
recall
string (enum), nullable
Yes
The strictest open recall of the product’s batches, or null.; voluntary - voluntary; mandatory - mandatory. One of: voluntary, mandatory.
id
integer
Yes
sku
string
Yes
gtin
string, nullable
Yes
name
string
Yes
brand
string, nullable
Yes
image
string
Yes
Product image URL, or an empty string.
ppwr_grade
string
Yes
Always an empty string for now.
is_kit
boolean
Yes
StockLevel
Field
Type
Required
Description
location
InventoryLocationRef
Yes
recall
string (enum), nullable
Yes
The strictest open recall of the product’s batches, or null.; voluntary - voluntary; mandatory - mandatory. One of: voluntary, mandatory.
product_id
integer
Yes
sku
string
Yes
gtin
string, nullable
Yes
name
string
Yes
brand
string, nullable
Yes
is_kit
boolean
Yes
image
string
Yes
Product image URL, or an empty string.
on_hand
integer
Yes
committed
integer
Yes
reserved
integer
Yes
available
integer
Yes
On hand less committed and reserved.
ppwr_grade
string
Yes
Always an empty string for now.
earliest_expiry
string (date-time), nullable
Yes
expiring_soon
boolean
Yes
batch_count
integer
Yes
stock_status
string
Yes
reorder_point
integer, nullable
Yes
reorder_point_source
string
Yes
auto, manual, or empty when no reorder point is set.
abc_class
string
Yes
last_counted_at
string (date-time), nullable
Yes