Skip to content
Zulu

API reference

Items

Your saved products and services, with their prices and VAT rates.

List catalog items, or get one by id

GET/v1/catalog

Needs the catalog:read permission

Query parameters

  • iditem id

    catalog_

  • querytext

    Up to 200 characters

  • limitnumber

    1–50, default 20

  • afteritem id

    catalog_

  • beforeitem id

    catalog_

Request
curl https://api.zulu.ie/v1/catalog \
  -H "Authorization: Bearer $ZULU_API_KEY" \
  -H "Zulu-Business-Id: $ZULU_BUSINESS_ID"
Example response200
Response · 200
{
  "data": [
    {
      "id": "catalog_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
      "created_at": "2026-10-27T09:30:00.000Z",
      "updated_at": "2026-10-27T09:30:00.000Z",
      "name": "Main",
      "category": "product",
      "description": null,
      "unit_price": "120.00",
      "is_variable": false,
      "vat_id": "vat_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
    }
  ],
  "has_more": false
}

Create a catalog item

POST/v1/catalog

Needs the catalog:write permission

Body

  • nametextrequired

    Up to 200 characters

  • category"product" or "service"required
  • descriptiontext

    Up to 2,000 characters

  • unit_pricemoney

    Decimal string, up to 2 places, e.g. "12.50"

  • is_variabletrue or false
  • vat_idVAT rate id
Request
curl -X POST https://api.zulu.ie/v1/catalog \
  -H "Authorization: Bearer $ZULU_API_KEY" \
  -H "Zulu-Business-Id: $ZULU_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Fitted oak shelving",
    "category": "product",
    "description": "Per metre, fitted on site",
    "unit_price": "725.00",
    "vat_id": "vat_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
  }'
Example response201
Response · 201
{
  "id": "catalog_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
  "created_at": "2026-10-27T09:30:00.000Z",
  "updated_at": "2026-10-27T09:30:00.000Z",
  "name": "Main",
  "category": "product",
  "description": null,
  "unit_price": "120.00",
  "is_variable": false,
  "vat_id": "vat_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
}

Update a catalog item

PATCH/v1/catalog

Needs the catalog:write permission

Body

  • iditem idrequired
  • nametext

    Up to 200 characters

  • category"product" or "service"
  • descriptiontext

    Up to 2,000 characters

  • unit_pricemoney

    Decimal string, up to 2 places, e.g. "12.50"

  • is_variabletrue or false
  • vat_idVAT rate id
Request
curl -X PATCH https://api.zulu.ie/v1/catalog \
  -H "Authorization: Bearer $ZULU_API_KEY" \
  -H "Zulu-Business-Id: $ZULU_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "catalog_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a"
  }'
Example response200
Response · 200
{
  "id": "catalog_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a",
  "created_at": "2026-10-27T09:30:00.000Z",
  "updated_at": "2026-10-27T09:30:00.000Z",
  "name": "Main",
  "category": "product",
  "description": null,
  "unit_price": "120.00",
  "is_variable": false,
  "vat_id": "vat_1a2b3c4d-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
}

Delete a catalog item

DELETE/v1/catalog

Needs the catalog:delete permission

Body

  • iditem idrequired
Request
curl -X DELETE https://api.zulu.ie/v1/catalog \
  -H "Authorization: Bearer $ZULU_API_KEY" \
  -H "Zulu-Business-Id: $ZULU_BUSINESS_ID" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "catalog_5d4c3b2a-1f0e-4d9c-8b7a-6f5e4d3c2b1a"
  }'

Returns 204 with no body.