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
  • Getting started
    • Overview
    • Quickstart
    • Authentication
    • Rate limits
        • Overview
        • Node.js
          • Changelog
        • Python
        • PHP
      • Connect to Cursor
  • Messaging API
    • Send transactional email
    • Send transactional SMS
    • Send transactional WhatsApp
  • Marketing Platform
    • Manage your contacts
    • Track website activity
    • Send WhatsApp campaigns
    • Weekly event exports
  • Webhooks
    • Getting started
    • Conversations webhooks
    • Payment webhooks
    • Marketing webhooks
    • Transactional webhooks
    • Loyalty webhooks
    • Batched webhooks
    • Secure webhook calls
    • Meetings and phone webhooks
    • Push notification webhooks
    • Sales CRM webhooks
  • Conversations
    • Getting started
    • Customize the chat widget
    • JavaScript API reference
    • REST API reference
    • Conversations webhooks
  • eCommerce
    • Activate eCommerce app
    • Manage product categories
    • Manage products
    • Manage orders
    • Coupon collections
    • eCommerce tracker events
  • Loyalty
    • Overview
    • Set up a program
    • Enroll members
    • Credit & debit points
    • Read member data
    • Best practices
  • Custom Objects
    • Custom objects management
  • Brevo tracker and events
    • Getting started
    • JavaScript implementation
    • REST implementation
    • Legacy tracker documentation
    • Events
  • Accounts and settings
    • Senders and domains
    • User activity logs
    • External feeds
    • Invited users
LogoLogo
Help CenterAPI KeysStatusSign In
On this page
  • May 14, 2026 — v6.0.0
  • Breaking changes
  • Added
  • April 10, 2026 — v5.0.5
  • Fixed
  • March 25, 2026 — v5.0.3
  • Added
  • Improved
  • March 12, 2026 — v5.0.1
  • Fixed
  • Deprecated
  • February 11, 2026 — v4.0.1 beta release
Getting startedSDKs and AI toolsSupported programming languagesNode.js

Node.js SDK Changelog

Release history for the @getbrevo/brevo Node.js SDK.

Was this page helpful?
Previous

Python SDK

Learn how to integrate the Brevo API into your Python applications.
Next
Built with

May 14, 2026 — v6.0.0

Breaking changes

  • ⚠️ client.companies.getCompanies({ filters }) — the filters parameter is renamed to the bracketed literal "filters[attributes.name]". The old name still compiles but the filter is silently dropped server-side and you get an unfiltered list.
  • client.event.createBatchEvents — events are now wrapped in { events: [...] } instead of being passed as a raw array.
  • client.balance.getActiveBalancesApi — response type replaced (BalanceLimit → GetLoyaltyBalanceProgramsPidActiveBalanceResponse); request parameters renamed from snake_case to camelCase (contact_id → contactId, balance_definition_id → balanceDefinitionId, sort_field → sortField).
  • client.balance.getContactBalances — new required balanceDefinitionId parameter.
  • client.tasks.getCrmTasktypes — return type changed from a single object to GetCrmTasktypesResponseItem[].
  • Model fields removed: GetWebhook.channel, GetProcessResponseInfo.export, GetEventsList.events[].source, GetExtendedCampaignOverview.utmIDActive (replaced by utmID: number).
  • Renamed: ConversationsMessage.File.filename → name, .url → link; SendTransacSms.tag is now string | string[] (was { field?: ... }).
  • Now-required fields on type literals: GetContactDetails.whatsappBlacklisted, Note.text, Task.date.

Added

  • BrevoClient accepts a new auth option for custom AuthProvider injection (existing apiKey continues to work unchanged).
  • New optional fields and filters across contacts.createContact, contacts.updateContact, emailCampaigns.getEmailCampaigns, ecommerce.getProducts, and several other endpoints.

See the Upgrading from v5.x guide for migration details and a one-line rollback pin.

April 10, 2026 — v5.0.5

Fixed

  • Process endpoints — duplicate_email_id is now typed as a string (URL to a CSV file) instead of an integer. The legacy in_process status value is now handled correctly.
  • Event endpoints — contact_properties and event_properties now accept boolean values in createEvent and createBatchEvents.
  • Contact endpoints — attributes now accepts plain integers in createContact and updateContact.

March 25, 2026 — v5.0.3

Added

  • client.event.getEvents() — retrieve a paginated list of custom events, filterable by contact_id, event_name, object_type, startDate, and endDate.
  • client.event.createBatchEvents() — send multiple events in a single request. Returns a BatchAcceptedResponse with a confirmation message and queued event count.
  • client.companies.deleteAnAttribute() — delete a CRM attribute by ID.
  • PatchCrmAttributesIdRequest — update a CRM attribute’s display label and selectable option labels, scoped to companies or deals.
  • GetProductDetails response now includes brand and description.
  • CreateUpdateProductRequest and batch product upsert now accept optional brand and description fields.
  • Balance: getActiveBalancesApi(), getContactBalances(), and getSubscriptionBalances() now accept an optional includeInternal parameter.
  • Balance: getTransactionHistory() now supports filtering by status and transactionType.

Improved

  • meta field on balance definition requests is now a typed object ({ isInternal?: boolean }) instead of a generic Record<string, unknown>.
  • metaInfo size limit for products clarified: maximum 20,000 characters total.
  • users field on plan verticals is now nullable (Item.Users | null).

March 12, 2026 — v5.0.1

Fixed

  • GetCampaignStats: appleMppOpens and opensRate are now typed as number | null. The API returns null when no data is available for the campaign period.
  • Order.products: the full set of product fields is now exposed — price, productId, variantId, quantity, and quantityFloat. Previously only quantity was available.
  • GetAccountResponsePlanVerticalsItem.users: now typed as optional/nullable, matching API behavior on certain plan types.
  • createContact(): no longer throws a JSON parse error on 204 No Content responses (returned when a contact already exists).

Deprecated

  • transactionalSms.sendTransacSms() — use transactionalSms.sendTransacSmsAsync() instead. The synchronous variant adds latency by waiting for carrier acknowledgment.

February 11, 2026 — v4.0.1 beta release

Released a beta version of the Node.js SDK (v4.0.1) with a promise-based API, enhanced TypeScript types, standardized error handling, and improved retry logic.

$npm install @getbrevo/brevo@^4.0.1