v6.0.1
First stable release of the v6 line. This is a major release with breaking changes — see the migration notes below before upgrading. v5.x remains supported and continues to receive wire-compatibility fixes.
npm install @getbrevo/brevo@^6.0.1Why this release
Most of the breaking changes in v6 come from an internal effort at Brevo to make our API endpoints, parameters and models more self-descriptive. The goal is to make the public surface easier to read at a glance — both for developers and for AI agents working against the Brevo API — so that names, shapes and required fields convey intent without needing to cross-reference external docs. Concretely, this means consistent camelCase parameters, payload wrappers that reflect what the endpoint actually does (e.g. { events: [...] }), filter keys that match the wire format, and model fields renamed or removed where the previous names were ambiguous or misleading.
We're aware that renaming costs callers a one-time migration, and we've kept v5.x supported so you can adopt v6 on your own timeline.
⚠️ Breaking changes
Companies — getCompanies filter parameter renamed
client.companies.getCompanies({ filters })— thefiltersparameter is renamed to the bracketed literal"filters[attributes.name]"to match the wire format.- The old
filtersname still compiles but the filter is silently dropped server-side and you get an unfiltered list. Audit every call site.
Events — createBatchEvents payload shape changed
client.event.createBatchEventsnow wraps events in{ events: [...] }instead of accepting a raw array.
Balance — getActiveBalancesApi response and parameter rename
- Response type replaced:
BalanceLimit→GetLoyaltyBalanceProgramsPidActiveBalanceResponse. - Request parameters renamed from snake_case to camelCase:
contact_id→contactId,balance_definition_id→balanceDefinitionId,sort_field→sortField.
Balance — getContactBalances requires balanceDefinitionId
balanceDefinitionIdis now a required parameter.
CRM — getCrmTasktypes returns an array
client.tasks.getCrmTasktypesreturn type changed from a single object toGetCrmTasktypesResponseItem[].
Model fields removed
GetWebhook.channelGetProcessResponseInfo.exportGetEventsList.events[].sourceGetExtendedCampaignOverview.utmIDActive— replaced byutmID: number
Model fields renamed
ConversationsMessage.File.filename→nameConversationsMessage.File.url→linkSendTransacSms.tagis nowstring | string[](previously an object{ field?: ... })
Now-required fields
GetContactDetails.whatsappBlacklistedNote.textTask.date
Added
BrevoClientauthoption — inject a customAuthProviderfor advanced auth scenarios (OAuth, dynamic tokens, key rotation). The existingapiKeyconstructor option continues to work unchanged.- New optional fields and filters across
contacts.createContact,contacts.updateContact,emailCampaigns.getEmailCampaigns,ecommerce.getProducts, and several other endpoints.
Migration
See the Upgrading from v5.x guide for full migration details, including a one-line rollback pin if you need to hold on v5.x temporarily.
Documentation
What's Changed
- Update package version to ^3.0.1 in README by @mourraille in #72
- Fix versioning in README for Brevo package by @mourraille in #73
- Update README with legacy SDK information by @mourraille in #74
Full Changelog: v5.0.4...v6.0.0
What's Changed
- COAPI-0 Update Readme.md by @shubhamUpadhyayInBlue in #64
- Update package version to ^3.0.1 in README by @mourraille in #72
- Fix versioning in README for Brevo package by @mourraille in #73
- Update README with legacy SDK information by @mourraille in #74
Full Changelog: v3.0.1...v6.0.0