Read member data
Overview
Use these endpoints to power loyalty widgets in your storefront, mobile app, or customer account page. All read endpoints are independent — make them in parallel for best performance.
Get current balance
Endpoint: GET https://api.brevo.com/v3/loyalty/balance/programs/{pid}/subscriptions/{cid}/balances
Query parameters
Response (200)
balance is an array — one entry per balance definition configured on the program. To display a definition’s name or unit alongside its value, cross-reference balanceDefinitionId against GET /loyalty/balance/programs/{pid}/balance-definitions.
Get current tier
There is no single endpoint that returns a member’s current tier directly. Compute it client-side from two calls:
GET /loyalty/balance/programs/{pid}/subscriptions/{cid}/balances(above) for the member’s current balance value.GET /loyalty/tier/programs/{pid}/tier-groups/{gid}/tiersfor the tier group’s configured tiers and theiraccessConditionsthresholds (each tier’s minimum balance perbalanceDefinitionId).
Match the member’s balance against each tier’s accessConditions[].minimumValue to find their current tier and the next threshold to reach.
Tiers are otherwise only assigned via the API — POST /loyalty/tier/programs/{pid}/contacts/{cid}/tiers/{tid} manually assigns a tier to a membership. There is no corresponding read endpoint for a single member’s assignment.
Get available vouchers
Endpoint: GET https://api.brevo.com/v3/loyalty/offer/programs/{pid}/vouchers
contactId is a required query parameter (not a path segment).
Query parameters
Response (200)
Get transaction history
Endpoint: GET https://api.brevo.com/v3/loyalty/balance/programs/{pid}/transaction-history
contactId and balanceDefinitionId are both required query parameters.
Query parameters
Response (200)
Building a loyalty widget
A standard loyalty account widget combines two parallel calls, plus the tier lookup from the previous section:
Make the balance and voucher calls in parallel — each is independent. The tier lookup can be cached far longer than the other two, since a tier group’s thresholds change rarely.
Cache balance responses for 30–60 seconds on high-traffic account pages — these only change when a transaction is completed, so near-real-time staleness is acceptable for display purposes. Tier-group thresholds can be cached far longer (minutes to hours), since they only change when you edit the program’s configuration.