Try it · Sandbox

Use a sandbox key. It is kept only for this browser tab and sent only to https://sandbox-api.zester.co.il/v2.

Response
Send the request to see the response.

Catalog

Your product catalog, product availability and price lists. Create, update and remove products, set availability, and manage prices and the buyers assigned to each price list.

The Price list object

Attributes

idstringRequired
namestringRequired
currencystring

ISO 4217 currency code. Only ILS is currently supported.

Possible valuesILS
buyer_idsarray of string
updated_atstring · date-time
The Price list object
{
  "id": "pl_1",
  "name": "מחירון מסעדות",
  "currency": "ILS",
  "buyer_ids": [
    "71148",
    "71202"
  ],
  "updated_at": "2026-09-13T17:02:45+03:00"
}
PUT/supplier/products/{sku}
  • Scopesupplier.catalog:write

Path parameters

skustringRequired

The supplier's SKU (catalog number). URL-encode it if it contains reserved characters.

Up to 64 characters

Request body application/json

namestringRequired

Up to 200 characters

unitstringRequired

Unit the product is sold in, such as unit, kg, l or carton.

package_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

categorystring
barcodestring
vat_exemptboolean

Default false

availableboolean

Default true

image_file_idstring
external_refstring

Responses

200The updated product. Returned when a product with this sku already exists.
namestringRequired

Up to 200 characters

unitstringRequired

Unit the product is sold in, such as unit, kg, l or carton.

package_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

categorystring
barcodestring
vat_exemptboolean

Default false

availableboolean

Default true

image_file_idstring
external_refstring
skustringRequired
available_untilstring · dateNullable
created_atstring · date-time
updated_atstring · date-timeRequired
deleted_atstring · date-timeNullable
201The created product. Returned when no product with this sku existed.
namestringRequired

Up to 200 characters

unitstringRequired

Unit the product is sold in, such as unit, kg, l or carton.

package_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

categorystring
barcodestring
vat_exemptboolean

Default false

availableboolean

Default true

image_file_idstring
external_refstring
skustringRequired
available_untilstring · dateNullable
created_atstring · date-time
updated_atstring · date-timeRequired
deleted_atstring · date-timeNullable
422The request body or query parameters failed validation. See errors[] for each invalid field.
PUT /supplier/products/{sku}
curl -X PUT "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/products/412" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "לחמניית חיטה מלאה",
    "unit": "carton",
    "package_quantity": "24",
    "category": "לחמניות",
    "barcode": "7290000000412",
    "vat_exempt": false,
    "image_file_id": "file_01J9KR6F3S",
    "external_ref": "ITM-412"
  }'
Response
{
  "sku": "412",
  "name": "לחמניית חיטה מלאה",
  "unit": "carton",
  "package_quantity": "24",
  "category": "לחמניות",
  "barcode": "7290000000412",
  "vat_exempt": false,
  "available": true,
  "available_until": null,
  "image_file_id": "file_01J9KR6F3S",
  "external_ref": "ITM-412",
  "created_at": "2026-03-02T10:15:00+03:00",
  "updated_at": "2026-09-13T16:40:12+03:00",
  "deleted_at": null
}

Remove a product

DELETE/supplier/products/{sku}
  • Scopesupplier.catalog:write

Path parameters

skustringRequired

The supplier's SKU (catalog number). URL-encode it if it contains reserved characters.

Up to 64 characters

Responses

204The product was removed from the catalog. This is a soft delete.
404The resource does not exist or belongs to another account.
DEL /supplier/products/{sku}
curl -X DELETE "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/products/604" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…"
Response
No response body
POST/supplier/products/batch
  • Scopesupplier.catalog:write

Request body application/json

itemsarray of objectRequired

Up to 500 items

Show 10 child attributesHide child attributes
namestringRequired

Up to 200 characters

unitstringRequired

Unit the product is sold in, such as unit, kg, l or carton.

package_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

categorystring
barcodestring
vat_exemptboolean

Default false

availableboolean

Default true

image_file_idstring
external_refstring
skustringRequired

Responses

200A result for each item.
summaryobjectRequired
Show 4 child attributesHide child attributes
totalinteger
succeededinteger
failedinteger
skippedinteger
itemsarray of BatchItemResultRequired
Show 5 child attributesHide child attributes
indexintegerRequired

Position of the item in the request's items[] array.

keystring

Business key of the item, such as a document number, SKU or external_id.

statusstringRequired
Possible valuescreatedupdatedskippedfailed
idstring

ID of the resource that was created or updated.

errorsarray of ValidationErrorItem
Show 3 child attributesHide child attributes
fieldstringRequired

JSON path of the field that failed validation.

codestringRequired
messagestring
422Every item failed. The body reports the result and errors for each item.
POST /supplier/products/batch
curl -X POST "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/products/batch" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "sku": "518",
        "name": "קרואסון חמאה",
        "unit": "carton",
        "package_quantity": "40",
        "category": "מאפים",
        "barcode": "7290000000518",
        "vat_exempt": false,
        "external_ref": "ITM-518"
      },
      {
        "sku": "604",
        "name": "לחם שיפון פרוס",
        "unit": "unit",
        "package_quantity": "1",
        "category": "לחמים",
        "barcode": "7290000000604",
        "vat_exempt": false,
        "image_file_id": "file_01J9KR8W3N",
        "external_ref": "ITM-604"
      }
    ]
  }'
Response
{
  "summary": {
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "skipped": 0
  },
  "items": [
    {
      "index": 0,
      "key": "518",
      "status": "updated",
      "id": "518"
    },
    {
      "index": 1,
      "key": "604",
      "status": "failed",
      "errors": [
        {
          "field": "image_file_id",
          "code": "not_found",
          "message": "File file_01J9KR8W3N does not exist or was deleted because it was not referenced within 24 hours"
        }
      ]
    }
  ]
}
POST/supplier/products/{sku}/availability
  • Scopesupplier.catalog:write

Path parameters

skustringRequired

The supplier's SKU (catalog number). URL-encode it if it contains reserved characters.

Up to 64 characters

Request body application/json

availablebooleanRequired
untilstring · date

Optional date the product is expected back, when available is false.

reasonstring

Up to 200 characters

Responses

200The product with its updated availability.
namestringRequired

Up to 200 characters

unitstringRequired

Unit the product is sold in, such as unit, kg, l or carton.

package_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

categorystring
barcodestring
vat_exemptboolean

Default false

availableboolean

Default true

image_file_idstring
external_refstring
skustringRequired
available_untilstring · dateNullable
created_atstring · date-time
updated_atstring · date-timeRequired
deleted_atstring · date-timeNullable
404The resource does not exist or belongs to another account.
POST /supplier/products/{sku}/availability
curl -X POST "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/products/518/availability" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…" \
  -H "Content-Type: application/json" \
  -d '{
    "available": false,
    "until": "2026-09-20",
    "reason": "מחסור זמני בחמאה"
  }'
Response
{
  "sku": "518",
  "name": "קרואסון חמאה",
  "unit": "carton",
  "package_quantity": "40",
  "category": "מאפים",
  "barcode": "7290000000518",
  "vat_exempt": false,
  "available": false,
  "available_until": "2026-09-20",
  "external_ref": "ITM-518",
  "created_at": "2026-03-02T10:15:00+03:00",
  "updated_at": "2026-09-13T11:05:47+03:00",
  "deleted_at": null
}

List price lists

GET/supplier/price-lists
  • Scopesupplier.catalog:write

Query parameters

cursorstring

Opaque cursor returned as next_cursor in a previous response. Pass it to fetch the next page.

limitinteger

Default 50 · Min 1 · Max 200

Responses

200A page of price lists, each with the buyers assigned to it.
dataarray of PriceListRequired
Show 5 child attributesHide child attributes
idstringRequired
namestringRequired
currencystring

ISO 4217 currency code. Only ILS is currently supported.

Possible valuesILS
buyer_idsarray of string
updated_atstring · date-time
next_cursorstringNullable
has_morebooleanRequired
GET /supplier/price-lists
curl "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/price-lists?limit=50" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…"
Response
{
  "data": [
    {
      "id": "pl_1",
      "name": "מחירון מסעדות",
      "currency": "ILS",
      "buyer_ids": [
        "71148",
        "71202"
      ],
      "updated_at": "2026-09-13T17:02:45+03:00"
    },
    {
      "id": "pl_2",
      "name": "מחירון אירועים",
      "currency": "ILS",
      "buyer_ids": [],
      "updated_at": "2026-08-27T12:30:00+03:00"
    }
  ],
  "next_cursor": null,
  "has_more": false
}
PUT/supplier/price-lists/{price_list_id}/prices
  • Scopesupplier.catalog:write

Path parameters

price_list_idstringRequired

Request body application/json

itemsarray of PriceEntryRequired

Up to 500 items

Show 4 child attributesHide child attributes
skustringRequired
pricestring · moneyRequired

Decimal amount as a string, with exactly 2 fraction digits. The currency is set by currency on the parent object.

min_quantitystring · quantity

Decimal quantity as a string, with up to 3 fraction digits.

valid_fromstring · date

Responses

200A result for each item.
summaryobjectRequired
Show 4 child attributesHide child attributes
totalinteger
succeededinteger
failedinteger
skippedinteger
itemsarray of BatchItemResultRequired
Show 5 child attributesHide child attributes
indexintegerRequired

Position of the item in the request's items[] array.

keystring

Business key of the item, such as a document number, SKU or external_id.

statusstringRequired
Possible valuescreatedupdatedskippedfailed
idstring

ID of the resource that was created or updated.

errorsarray of ValidationErrorItem
Show 3 child attributesHide child attributes
fieldstringRequired

JSON path of the field that failed validation.

codestringRequired
messagestring
404The resource does not exist or belongs to another account.
PUT /supplier/price-lists/{price_list_id}/prices
curl -X PUT "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/price-lists/pl_1/prices" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "sku": "412",
        "price": "33.90",
        "min_quantity": "20",
        "valid_from": "2026-10-01"
      },
      {
        "sku": "518",
        "price": "0.00",
        "valid_from": "2026-10-01"
      }
    ]
  }'
Response
{
  "summary": {
    "total": 2,
    "succeeded": 1,
    "failed": 1,
    "skipped": 0
  },
  "items": [
    {
      "index": 0,
      "key": "412",
      "status": "created"
    },
    {
      "index": 1,
      "key": "518",
      "status": "failed",
      "errors": [
        {
          "field": "price",
          "code": "must_be_positive",
          "message": "Price must be greater than 0.00"
        }
      ]
    }
  ]
}
POST/supplier/price-lists/{price_list_id}/buyers
  • Scopesupplier.catalog:write

Path parameters

price_list_idstringRequired

Request body application/json

buyer_idstringRequired
valid_fromstring · date

Responses

204The price list was assigned to the buyer.
404The resource does not exist or belongs to another account.
POST /supplier/price-lists/{price_list_id}/buyers
curl -X POST "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/price-lists/pl_1/buyers" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…" \
  -H "Content-Type: application/json" \
  -d '{
    "buyer_id": "71202",
    "valid_from": "2026-10-01"
  }'
Response
No response body
DELETE/supplier/price-lists/{price_list_id}/buyers/{buyer_id}
  • Scopesupplier.catalog:write

Path parameters

price_list_idstringRequired
buyer_idstringRequired

Responses

204The price list was removed from the buyer.
404The resource does not exist or belongs to another account.
DEL /supplier/price-lists/{price_list_id}/buyers/{buyer_id}
curl -X DELETE "https://sandbox-api.zester.co.il/v2https://api.zester.co.il/v2/supplier/price-lists/pl_1/buyers/71202" \
  -H "Authorization: Bearer zk_test_XXXXXXXX_…zk_live_XXXXXXXX_…"
Response
No response body