Skip to content
DEV preview — API version 1.0.0 — not the public production site — Development API: dev-api.theprioryshop.co.uk

cURL

Every example uses a fake key (epos_dev_sk_example_not_real) and fake IDs against the Development API. Replace both with your own before running these for real - see Quickstart.

Terminal window
curl "https://dev-api.theprioryshop.co.uk/v1/catalog/products?pageSize=20" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"
Terminal window
curl "https://dev-api.theprioryshop.co.uk/v1/catalog/products/clx1product000001" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"
Terminal window
curl "https://dev-api.theprioryshop.co.uk/v1/catalog/categories" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"
Terminal window
curl "https://dev-api.theprioryshop.co.uk/v1/catalog/promotions" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"
Terminal window
curl "https://dev-api.theprioryshop.co.uk/v1/inventory/stock?storeId=clx1store0000001" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"
Terminal window
response=$(curl -s -w "\n%{http_code}" "https://dev-api.theprioryshop.co.uk/v1/catalog/products" \
-H "Authorization: Bearer epos_dev_sk_example_not_real")
status=$(echo "$response" | tail -n1)
body=$(echo "$response" | sed '$d')
if [ "$status" -ge 400 ]; then
code=$(echo "$body" | jq -r '.error.code')
requestId=$(echo "$body" | jq -r '.error.requestId')
echo "Request failed: $code (request ID: $requestId)"
exit 1
fi

See Errors for the full code list and what to do with each one.

Terminal window
page=1
while :; do
body=$(curl -s "https://dev-api.theprioryshop.co.uk/v1/catalog/products?pageSize=100&page=$page" \
-H "Authorization: Bearer epos_dev_sk_example_not_real")
echo "$body" | jq -c '.rows[]'
totalPages=$(echo "$body" | jq -r '.totalPages')
[ "$page" -ge "$totalPages" ] && break
page=$((page + 1))
done
Terminal window
since="2026-08-27T00:00:00.000Z"
curl "https://dev-api.theprioryshop.co.uk/v1/catalog/products?updatedSince=$(python3 -c "import urllib.parse,sys; print(urllib.parse.quote(sys.argv[1]))" "$since")" \
-H "Authorization: Bearer epos_dev_sk_example_not_real"

See Catalog Sync for the full pattern this fits into.