Skip to main content

Stock API

The Stock API lets you read a product's current stock information and its full stock mutation history, and gives you a recent-changes overview across your whole catalog.

All endpoints are read-only and require the stock:read scope. Authenticate every request as described in Authentication.

Base URL: https://api.storelinkr.com

Get stock information for a product

Returns the current stock for a single product, including the per-location breakdown and which sources supplied the stock. You can look the product up by UUID, EAN or SKU.

GET /api/public/v2/catalog/products/{uuid}/stock
GET /api/public/v2/catalog/products/ean/{ean}/stock
GET /api/public/v2/catalog/products/sku/{sku}/stock

Example

curl -X GET "https://api.storelinkr.com/api/public/v2/catalog/products/ean/8712345678901/stock" \
-H "X-StoreLinkr-Api-Key: your_api_token_here" \
-H "X-StoreLinkr-Api-Secret: your_api_secret_here" \
-H "Accept: application/json"

Response

{
"status": "success",
"product": {
"uuid": "01234567-89ab-cdef-0123-456789abcdef",
"ean": "8712345678901",
"sku": "SKU-001"
},
"stock": {
"has_stock": true,
"quantity_available": 18,
"quantity_supplier": 0,
"delivery_date": null,
"stock_locations": [
{ "name": "Warehouse 1", "quantity": 3, "source": "CYCLESOFTWARE" },
{ "name": "Warehouse 2", "quantity": 5, "source": "CYCLESOFTWARE" }
],
"sources": ["CYCLESOFTWARE"]
}
}
FieldDescription
has_stockWhether the product has any available stock.
quantity_availableThe total available quantity (sum of all warehouses).
quantity_supplierStock held at a supplier (dropshipping).
delivery_dateExpected delivery date, if known.
stock_locationsThe per-warehouse breakdown.
sourcesThe integrations that supplied the stock.

If no product matches, the API returns 404 Not Found.

Get a product's stock mutations

Returns the paginated stock change history for a single product, newest first. Available by UUID, EAN or SKU.

GET /api/public/v2/catalog/products/{uuid}/stock/mutations
GET /api/public/v2/catalog/products/ean/{ean}/stock/mutations
GET /api/public/v2/catalog/products/sku/{sku}/stock/mutations

Query parameters

ParameterDefaultDescription
limit100Results per page (maximum 500).
page0Page number (zero-based).

Response

{
"status": "success",
"product": {
"uuid": "01234567-89ab-cdef-0123-456789abcdef",
"ean": "8712345678901",
"sku": "SKU-001"
},
"pagination": { "pages": 1, "page": 0, "start": 0, "totalRecords": 2, "limit": 100 },
"mutations": [
{
"uuid": "…",
"ean": "8712345678901",
"previous_quantity": 5,
"new_quantity": 3,
"delta": -2,
"product_quantity": 18,
"stock_location_uuid": "…",
"stock_location_name": "Warehouse 1",
"source": "ORDER_DEDUCTION",
"source_label": "Order deduction",
"changed_by": "CYCLESOFTWARE",
"reference": "1078",
"created": "2026-07-19T10:00:00+00:00"
}
]
}

Each mutation describes the change at one warehouse: previous_quantity and new_quantity are that warehouse's levels, delta is the change, and product_quantity is the product's total after the change. See Stock History for how these are recorded.

Recent stock mutations (whole catalog)

Returns a paginated overview of the most recent stock changes across your entire catalog, newest first. Use this to build dashboards or to poll for changes.

GET /api/public/v2/catalog/stock/mutations

It accepts the same limit and page query parameters and returns the same pagination and mutations structure as above (without the product object, since entries can span many products).

Example

curl -X GET "https://api.storelinkr.com/api/public/v2/catalog/stock/mutations?limit=50" \
-H "X-StoreLinkr-Api-Key: your_api_token_here" \
-H "X-StoreLinkr-Api-Secret: your_api_secret_here" \
-H "Accept: application/json"