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
        • Python
          • Changelog
        • 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 — v5.0.0
  • Breaking changes
  • Added
  • April 10, 2026 — v4.0.11
  • Fixed
  • March 25, 2026 — v4.0.9
  • Added
  • Improved
  • March 12, 2026 — v4.0.7
  • Fixed
  • Deprecated
  • February 23, 2026 — v4.0 beta release
  • Key highlights
Getting startedSDKs and AI toolsSupported programming languagesPython

Python SDK Changelog

Release history for the brevo-python SDK.

Was this page helpful?
Previous

PHP SDK

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

May 14, 2026 — v5.0.0

Breaking changes

  • ⚠️ companies.get_companies(filters=...) — the filters keyword is renamed to filters_attributes_name. The old keyword is silently dropped, the request still succeeds, and the server returns an unfiltered list.
  • event.create_batch_events — keyword renamed request= → events=; item types renamed in lockstep (CreateBatchEventsRequestItem → CreateBatchEventsRequestEventsItem and 5 sub-types).
  • balance.get_contact_balances — new required balance_definition_id parameter.
  • balance.get_active_balances_api — response type replaced with GetLoyaltyBalanceProgramsPidActiveBalanceResponse (different shape).
  • balance.begin_transaction.event_time — str → datetime. Runtime-tolerant under skip_validation, but type-checkers will fail.
  • tasks.get_all_task_types — return type changed from GetCrmTasktypesResponse to List[GetCrmTasktypesResponseItem]. Old .id / .title access on the response fails (it’s a list now).
  • webhooks.create_webhook — events argument moved from required to optional. Positional callers break; switch to keyword arguments.
  • webhooks.*.message_id — type changed from int to str on history-fetch endpoints.
  • Response fields removed: GetAccountResponse.date_time_preferences, GetWebhook.channel, GetProcessResponseInfo.export.
  • Shape collapses: SendTransacSmsTag is now Union[str, List[str]] (was a pydantic model); GetExtendedCampaignStats.links_stats is now Dict[str, int] (was a pydantic class); ConversationsMessageAttachmentsItem: file_name → name, inline_id → link.
  • 21 names removed from top-level from brevo import ... — most notably CreateBatchEventsRequestItem* (6 names), GetWebhookChannel, GetAccountResponseDateTimePreferences, GetExtendedCampaignStatsLinksStats, SendTransacSmsTagField, and UpsertrecordsRequestRecordsItemAssociationsItemZero/One* (8 names).

Added

  • New optional fields and filters across contacts.create_contact, contacts.update_contact, email_campaigns.get_email_campaigns, ecommerce.get_products, and several other endpoints.
  • Both Brevo (sync) and AsyncBrevo are affected symmetrically by every change above.

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

April 10, 2026 — v4.0.11

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 create_event and create_batch_events.
  • Contact endpoints — attributes now accepts plain integers in create_contact and update_contact.

March 25, 2026 — v4.0.9

Added

  • client.event.get_events() — retrieve a paginated list of custom events with filters for contact, event name, object type, and date range.
  • client.event.create_batch_events() — track multiple contact interactions in a single request.
  • CreateUpdateProductRequest and batch product upsert now accept optional brand and description fields.
  • GetProductDetails response now includes brand and description.
  • Balance: get_active_balances_api(), get_contact_balances(), and get_subscription_balances() now accept include_internal.
  • Balance: get_transaction_history() now supports filtering by status and transaction_type.

Improved

  • meta field on balance definition requests is now a typed model with an is_internal flag.
  • metaInfo size limit for products clarified: maximum 20,000 characters total.
  • users field on plan verticals is now nullable.

March 12, 2026 — v4.0.7

Fixed

  • GetCampaignStats: apple_mpp_opens and opens_rate are now correctly typed as nullable.
  • Order.products: all product fields are now accessible — price, product_id, variant_id, quantity, quantity_float.
  • create_contact(): correctly handles 204 No Content responses without raising a deserialization error.

Deprecated

  • transactional_sms.send_transac_sms() — use transactional_sms.send_transac_sms_async() instead.

February 23, 2026 — v4.0 beta release

Released a beta version of the Python SDK (v4.0) with native async support via AsyncBrevo, Pydantic-based typed models, automatic retries with exponential backoff, and custom httpx client support.

$pip install brevo-python

Key highlights

  • Unified client via Brevo(api_key="...") — no more manual configuration objects
  • Native async support with AsyncBrevo
  • Full type annotations for all request and response models
  • Raw response access via with_raw_response
  • 33 service namespaces covering the entire Brevo API