API reference

v1 · Public

Products

Read catalog data scoped to the key's location for pricing. Stock totals are summed across all company locations. Which products are visible depends on Developer settings (all vs selective by product, category, or model).

GET/products

List and filter products.

Query parameters

NameDescription
qSearch name, SKU, or barcode
skuFilter by SKU
nameFilter by product name
barcodeFilter by barcode
pagePage number (default 1)
limitPage size, max 50 (default 20)

Response fields (each item in data)

FieldDescription
skuStock keeping unit
barcodeProduct barcode (nullable)
categoryCategory id and name (nullable)
modelShared product model id and name (nullable)
unitsSellable units with scale and default flag

Example product object

json
{
  "id": "01H…",
  "name": "Premium paint",
  "sku": "PP-001",
  "barcode": "1234567890123",
  "description": "Interior matte",
  "category": {
    "id": "01H…",
    "name": "Paints"
  },
  "model": {
    "id": "01H…",
    "name": "Premium Interior Matte"
  },
  "priceExTax": 100,
  "priceIncTax": 108,
  "totalStock": 42,
  "imageUrl": "https://…",
  "hasDatasheets": true,
  "datasheetCount": 2,
  "units": [
    {
      "id": "01H…",
      "name": "Each",
      "scale": 1,
      "isDefault": true
    }
  ]
}
bash
curl -s "https://equitypos.com/api/v1/public/products?q=paint&limit=10" \
  -H "Authorization: Bearer YOUR_KEY"
GET/products/:productId

Single product with SKU, barcode, category, model, units, prices (ex/inc tax), total stock, image URL, and datasheet metadata. Returns 404 if the product is outside your configured catalog scope.

GET/files

Product imageUrl values point here. Use the same Authorization: Bearer header as other public routes. Query parameter: key (S3 object key, e.g. from the URL path in a legacy download link).

bash
curl -sL "https://www.equitypos.com/api/v1/public/files?key=product-photos/..." \
  -H "Authorization: Bearer YOUR_KEY" \
  -o product.jpg
GET/products/:productId/datasheets

Returns model and product attachments with download URLs.

json
{
  "data": [
    {
      "source": "model",
      "id": "...",
      "url": "https://...",
      "name": "Spec sheet",
      "contentType": null
    }
  ]
}