For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Help CenterAPI KeysStatusSign In
GuidesAPI ReferenceChangelog
GuidesAPI ReferenceChangelog
LogoLogo
Help CenterAPI KeysStatusSign In

Changelog

March 21, 2026
March 21, 2026
Was this page helpful?
Previous

March 12, 2026

Next
Built with

Ecommerce, Events, and Loyalty API updates

Ecommerce — New product fields

Two new fields are now supported on the POST /products and POST /products/batch endpoints, as well as the GET /products/{id} response:

  • brand — Brand name of the product. String, max 128 characters. Example: "Adidas".
  • description — Description of the product. String, max 3000 characters. Example: "Shoes for sports".

metaInfo limit updated: The size limit for the metaInfo field has changed from 1000 KB to 20,000 characters (total across all keys and values). The maximum number of keys remains 20.

Events API — New GET endpoint

A new GET /events endpoint is available to retrieve events filtered by contact, name, object type, or date range.

Query parameters:

ParameterDescription
contact_idFilter by contact ID (repeatable)
event_nameFilter by event name (repeatable)
object_typeFilter by object type (repeatable)
startDate / endDateDate range filter (YYYY-MM-DD or RFC3339). Defaults to the past 6 months.
limitMax events to return. Default 100, max 10000.
offsetEvents to skip for pagination. Default 0.

The response includes a count field for pagination and an events array sorted by event_date descending.

See Event endpoints for the full reference.

Events API — Batch events breaking changes

These are breaking changes to the POST /events/batch endpoint.

Response code changed: 204 → 202

Successful batch requests now return 202 Accepted instead of 204 No Content. The response body is no longer empty — it returns a JSON object:

1{
2 "message": "Batch accepted. Valid events have been added to the processing queue.",
3 "count": 7
4}

Update any client code that checks for 204 on batch event responses.

Partial success status renamed: partialSuccess → partiallyQueued

The status field in the 207 partial success response body has been renamed from partialSuccess to partiallyQueued. Update any client code parsing this field.

Loyalty — Internal balance definitions and tier groups

Balance definitions and tier groups now support a meta object with an isInternal flag:

1"meta": {
2 "isInternal": true
3}

Internal balance definitions are excluded from member-facing balance reads by default. Pass includeInternal=true as a query parameter to include them.

The includeInternal query parameter is available on the following endpoints:

  • GET /loyalty/config/programs/{pid}/balance-definitions
  • GET /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances
  • GET /loyalty/balance/programs/{pid}/balances
  • GET /loyalty/config/programs/{pid}/members

Loyalty — Transaction list filters

The transaction history endpoint (GET /loyalty/balance/programs/{pid}/subscriptions/{cid}/transactions) now supports additional query parameters:

ParameterDescription
statusFilter by status: draft, completed, rejected, cancelled, expired
transactionTypeFilter by type: credit or debit

The offset parameter now represents a page number (not a record skip count).