Skip to content

Releases: getbrevo/brevo-node

v5.0.4

10 Apr 14:15
5826547

Choose a tag to compare

Bug fixes

getProcess / getProcesses — duplicateEmailId field type corrected

  • Changed from number to string | null to match the actual API response (a URL to a CSV file).

getProcess / getProcesses — in_process added to status union

  • The API returns the legacy in_process value alongside the documented processing.
  • Both status types now include "in_process".

createEvent / createBatchEvents — contact_properties and event_properties accept booleans

  • Value type widened from string | number to string | number | boolean to match the documented and actual API behaviour.

v5.0.3

25 Mar 09:09
39d5984

Choose a tag to compare

v5.0.3

New features

Events

  • Added client.event.getEvents() — retrieve a paginated list of custom events, filterable by contact_id, event_name, object_type, startDate, and endDate. Supports limit (default 100, max 10,000) and offset for pagination. Note: currently only supports custom events.
  • Added client.event.createBatchEvents() — create multiple events in a single request using an array of CreateBatchEventsRequestItem. Returns a BatchAcceptedResponse with a confirmation message and queued event count.

Ecommerce

  • CreateUpdateProductRequest and batch product upsert now accept two new optional fields: brand and description.
  • GetProductDetails response now includes brand and description.

Balance

  • getActiveBalancesApi(), getContactBalances(), and getSubscriptionBalances() now accept an optional includeInternal parameter to include balances tied to internal definitions.
  • getTransactionHistory() now supports filtering by status (draft, completed, rejected, cancelled, expired) and transactionType (credit, debit). Parameter names normalised to camelCase (contactId, balanceDefinitionId, sortField).
  • meta field on PostLoyaltyBalanceProgramsPidBalanceDefinitionsRequest and UpdateBalanceDefinitionRequest is now a typed object ({ isInternal?: boolean }) instead of a generic Record<string, unknown>.

CRM

  • Added client.companies.deleteAnAttribute() — delete a CRM attribute by ID.
  • Added PatchCrmAttributesIdRequest to update a CRM attribute's display label and selectable option labels, with objectType scoped to companies or deals.

Changes

Account

  • users field on plan verticals is now nullable (Item.Users | null).

Ecommerce

  • metaInfo size limit for products clarified: maximum 20,000 characters total (previously documented as 1,000 KB / max 20 items).

v5.0.1

12 Mar 13:41
aed1ee5

Choose a tag to compare

v5.0.1


Bug fixes & deprecations

Fixed: GetCampaignStats — nullable fields

appleMppOpens and opensRate are now typed as number | null instead of number.

The API can return null for these fields when no data is available for the campaign period. Previously, this caused a type error at runtime.


Fixed: Order.products — missing product fields

The products array on Order now exposes the full set of product fields: price, productId, variantId, quantity, and quantityFloat.

Previously, only quantity was available, preventing correct order import with product details.


Fixed: GetAccountResponsePlanVerticalsItem.users — nullable field

users is now typed as optional/nullable. The API returns null for this field on certain plan types.


Fixed: createContact — 204 empty body deserialization

createContact() no longer throws a JSON parse error when a contact already exists and the API responds with 204 No Content. The SDK now correctly handles the empty response body.


Deprecated: sendTransacSms

transactionalSms.sendTransacSms() is marked as @deprecated.

Use transactionalSms.sendTransacSmsAsync() instead. The synchronous variant adds latency by waiting for carrier acknowledgment. Remaining credits are not returned by the async variant by design; retrieve them via the account endpoints if needed.

v4.0.1

11 Feb 15:29
569cbfc

Choose a tag to compare

📦 Brevo Node.js SDK v4.0

Modernized, TypeScript-first rewrite of the Brevo Node.js client with improved ergonomics, reliability, and runtime support.


🚀 Highlights

  • TypeScript-first SDK with full typings and autocomplete
  • Single unified client (BrevoClient) replaces multiple API classes
  • Built-in retries + timeouts
  • Structured error handling
  • Works across modern runtimes (Node 18+, Bun, Deno, Workers, RN)
  • Legacy v3.x now maintenance-only

Added

New Client Architecture

  • Introduced BrevoClient as the single entry point
  • Namespaced APIs (e.g., brevo.transactionalEmails.*)
  • Cleaner, discoverable method structure

TypeScript Support

  • First-class typings for requests and responses
  • Better IDE autocomplete
  • Stronger compile-time safety

Reliability Features

  • Automatic retries with exponential backoff
  • Honors Retry-After headers
  • Configurable global and per-request timeouts

Error Handling

  • Typed error classes:
    • BadRequestError
    • UnauthorizedError
    • NotFoundError
    • etc.
  • Easier branching and debugging vs generic errors

Advanced Configuration

  • Custom fetch support (e.g., undici, node-fetch)
  • Custom headers
  • Abort/cancel requests via AbortController
  • Binary response support

Read more at https://developers.brevo.com/docs/api-clients/node-js

v3.0.1

30 Jul 09:20
b3d064c

Choose a tag to compare

  • Update version in package.json and package-lock.json
    Full Changelog: v3.0.0...v3.0.1

v3.0.0

30 Jul 08:07
0fcb911

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v2.5.0...v3.0.0

v2.5.0

27 Jun 14:14
b855290

Choose a tag to compare

Full Changelog: v2.4.0...v2.5.0

v2.4.0

27 Jun 14:11
a567425

Choose a tag to compare

What's Changed

Full Changelog: v2.3.0...v2.4.0

v2.3.0

27 Jun 11:55
0e4e37e

Choose a tag to compare

v2.3.0 Pre-release
Pre-release

What's Changed

Full Changelog: v2.2.0...v2.3.0

v2.2.0

18 Jun 15:10
d828f2c

Choose a tag to compare

What's Changed

  • COAPI-882 route update with new APIs and few fixes by @shubhamUpadhyayInBlue in #30
  • Fix repository url in package.json by @ceisele-r in #31
  • corporateSubAccountIpAssociatePostRequest
  • corporateSubAccountIpDissociatePutRequest
  • createPaymentResponse
  • ecommerceAttributionMetricsConversionSourceConversionSourceIdGet200Response
  • ecommerceAttributionMetricsGet200Response
  • ecommerceAttributionMetricsGet200ResponseTotals
  • ecommerceAttributionProductsConversionSourceConversionSourceIdGet200Response
  • ecommerceConfigDisplayCurrencyGet200Response
  • subAccountDetailsResponseGroupsInner
  • subAccountDetailsResponsePlanInfoCreditsSms
  • subAccountDetailsResponsePlanInfoCreditsWpSubscribers
  • subAccountsResponseSubAccountsInnerGroupsInner

New Contributors

Full Changelog: v2.1.2...v2.2.0