Brevo Event API

The event API from Brevo — 2 operation(s) for event.

Operations 3

GET /events Get events #
POST /events Create an event #
POST /events/batch Create events in batch #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/brevo-event-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

brevo-event-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Events Event API
  version: 1.0.0
servers:
- url: https://api.brevo.com/v3
  description: https://api.brevo.com/v3
tags:
- name: event
paths:
  /events:
    get:
      operationId: getEvents
      summary: Get events
      description: '<Note>

        This endpoint currently only supports custom events.

        </Note>


        Retrieve a list of events filtered by various criteria.'
      tags:
      - event
      parameters:
      - name: contact_id
        in: query
        description: Filter by contact ID (repeatable)
        required: false
        schema:
          type: array
          items:
            type: integer
            format: int64
      - name: event_name
        in: query
        description: Filter by event name (repeatable)
        required: false
        schema:
          type: array
          items:
            type: string
      - name: object_type
        in: query
        description: Filter by object type (repeatable)
        required: false
        schema:
          type: array
          items:
            type: string
      - name: startDate
        in: query
        description: Mandatory if endDate is used. Start of date range (YYYY-MM-DD or RFC3339). Defaults to 6 months ago when omitted alongside endDate. Must be ≤ endDate.
        required: false
        schema:
          type: string
      - name: endDate
        in: query
        description: Mandatory if startDate is used. End of date range (YYYY-MM-DD or RFC3339). Must be ≥ startDate.
        required: false
        schema:
          type: string
      - name: limit
        in: query
        description: Max events to return. Default 100, min 1, max 10000.
        required: false
        schema:
          type: integer
          default: 100
      - name: offset
        in: query
        description: Events to skip for pagination. Default 0, min 0.
        required: false
        schema:
          type: integer
          default: 0
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: List of events and total count for pagination
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/getEventsList'
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsRequestBadRequestError'
        '401':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsRequestUnauthorizedError'
        '500':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetEventsRequestInternalServerError'
    post:
      operationId: createEvent
      summary: Create an event
      description: Create an event to track a contact's interaction.
      tags:
      - event
      parameters:
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Event posted
          content:
            application/json:
              schema:
                type: object
                properties: {}
        '400':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEventRequestBadRequestError'
        '401':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateEventRequestUnauthorizedError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                contact_properties:
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/EventsPostRequestBodyContentApplicationJsonSchemaContactProperties'
                  description: 'Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **"FIRSTNAME": "Jane" , "AGE": 37**'
                event_date:
                  type: string
                  format: date-time
                  description: ISO 8601 timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). If no value is passed, the timestamp of the event creation is used.
                event_name:
                  type: string
                  description: The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters; only alphanumeric characters, hyphens (-), and underscores (_) are allowed.
                event_properties:
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/EventsPostRequestBodyContentApplicationJsonSchemaEventProperties'
                  description: 'Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field types are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50KB.'
                identifiers:
                  $ref: '#/components/schemas/EventsPostRequestBodyContentApplicationJsonSchemaIdentifiers'
                  description: Identifies the contact associated with the event. At least one identifier is required.
                object:
                  $ref: '#/components/schemas/EventsPostRequestBodyContentApplicationJsonSchemaObject'
                  description: Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
              required:
              - event_name
              - identifiers
  /events/batch:
    post:
      operationId: createBatchEvents
      summary: Create events in batch
      description: Create multiple events to track contacts' interactions in a single request.
      tags:
      - event
      parameters:
      - name: api-key
        in: header
        description: The API key should be passed in the request headers as `api-key` for authentication.
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Batch accepted - all events have been added to the processing queue
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batchAcceptedResponse'
        '400':
          description: Bad request - all events in the batch failed validation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/batchEventsResponse'
        '401':
          description: bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBatchEventsRequestUnauthorizedError'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                events:
                  type: array
                  items:
                    $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItems'
              required:
              - events
components:
  schemas:
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsIdentifiers:
      type: object
      properties:
        contact_id:
          type: integer
          format: int64
          description: Internal unique contact ID. When present, this takes priority over all other identifiers for event attribution and contact resolution.
        email_id:
          type: string
          description: Email Id associated with the event
        ext_id:
          type: string
          description: ext_id associated with the event
        landline_number_id:
          type: string
          description: landline_number associated with the event
        phone_id:
          type: string
          description: SMS associated with the event
        whatsapp_id:
          type: string
          description: whatsapp associated with the event
      description: Identifies the contact associated with the event. At least one identifier is required.
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsIdentifiers
    GetEventsRequestBadRequestError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsGetResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: GetEventsRequestBadRequestError
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObject:
      type: object
      properties:
        identifiers:
          $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObjectIdentifiers'
          description: Identifiers for the object.
        type:
          type: string
          description: Type of object (e.g., subscription, vehicle, etc.)
      description: Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObject
    EventsPostRequestBodyContentApplicationJsonSchemaIdentifiers:
      type: object
      properties:
        contact_id:
          type: integer
          format: int64
          description: Internal unique contact ID. When present, this takes priority over all other identifiers for event attribution and contact resolution.
        email_id:
          type: string
          description: Email Id associated with the event
        ext_id:
          type: string
          description: ext_id associated with the event
        landline_number_id:
          type: string
          description: landline_number associated with the event
        phone_id:
          type: string
          description: SMS associated with the event
        whatsapp_id:
          type: string
          description: whatsapp associated with the event
      description: Identifies the contact associated with the event. At least one identifier is required.
      title: EventsPostRequestBodyContentApplicationJsonSchemaIdentifiers
    EventsPostRequestBodyContentApplicationJsonSchemaContactProperties:
      oneOf:
      - type: string
      - type: integer
      - type: boolean
      title: EventsPostRequestBodyContentApplicationJsonSchemaContactProperties
    GetEventsRequestInternalServerError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsGetResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: GetEventsRequestInternalServerError
    BatchEventsResponseErrorsItems:
      type: object
      properties:
        eventIndex:
          type: array
          items:
            type: integer
          description: Index positions (0-based) of the events that caused the error
        message:
          type: string
          description: Description of the error
      title: BatchEventsResponseErrorsItems
    EventsGetResponsesContentApplicationJsonSchemaCode:
      type: string
      enum:
      - invalid_parameter
      - missing_parameter
      - out_of_range
      - campaign_processing
      - campaign_sent
      - document_not_found
      - not_enough_credits
      - permission_denied
      - duplicate_parameter
      - duplicate_request
      - method_not_allowed
      - unauthorized
      - account_under_validation
      - not_acceptable
      - bad_request
      - unprocessable_entity
      - Domain does not exist
      - Contact email not found
      - Attribute not found
      - Category id not found
      - Invalid parameters passed
      - Record(s) for identifier not found
      - Returned when query params are invalid
      - Returned when invalid data posted
      - Feed not found
      - Campaign ID not found
      - api-key not found
      - DMARC policy requires domain authentication
      - DNS records not properly configured
      - Invalid OTP code provided
      - OTP code has expired
      - Domain already exists in your account
      - The sum of all IP weights must equal 100
      - Authentication failed
      - Insufficient credits
      - Request already processed
      description: Error code displayed in case of a failure
      title: EventsGetResponsesContentApplicationJsonSchemaCode
    CreateEventRequestUnauthorizedError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsPostResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: CreateEventRequestUnauthorizedError
    getEventsList:
      type: object
      properties:
        events:
          type: array
          items:
            $ref: '#/components/schemas/GetEventsListEventsItems'
          description: List of matching events ordered by event_date descending
        count:
          type: integer
          format: int64
          description: Total count of events matching the filters (use for pagination)
      required:
      - count
      description: Response containing a list of events and the total count for pagination
      title: getEventsList
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObjectIdentifiers:
      type: object
      properties:
        ext_id:
          type: string
          description: External object ID
        id:
          type: string
          description: Internal object ID
      description: Identifiers for the object.
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObjectIdentifiers
    EventsPostRequestBodyContentApplicationJsonSchemaObjectIdentifiers:
      type: object
      properties:
        ext_id:
          type: string
          description: External object ID
        id:
          type: string
          description: Internal object ID
      description: Identifiers for the object.
      title: EventsPostRequestBodyContentApplicationJsonSchemaObjectIdentifiers
    EventsBatchPostResponsesContentApplicationJsonSchemaCode:
      type: string
      enum:
      - invalid_parameter
      - missing_parameter
      - out_of_range
      - campaign_processing
      - campaign_sent
      - document_not_found
      - not_enough_credits
      - permission_denied
      - duplicate_parameter
      - duplicate_request
      - method_not_allowed
      - unauthorized
      - account_under_validation
      - not_acceptable
      - bad_request
      - unprocessable_entity
      - Domain does not exist
      - Contact email not found
      - Attribute not found
      - Category id not found
      - Invalid parameters passed
      - Record(s) for identifier not found
      - Returned when query params are invalid
      - Returned when invalid data posted
      - Feed not found
      - Campaign ID not found
      - api-key not found
      - DMARC policy requires domain authentication
      - DNS records not properly configured
      - Invalid OTP code provided
      - OTP code has expired
      - Domain already exists in your account
      - The sum of all IP weights must equal 100
      - Authentication failed
      - Insufficient credits
      - Request already processed
      description: Error code displayed in case of a failure
      title: EventsBatchPostResponsesContentApplicationJsonSchemaCode
    GetEventsRequestUnauthorizedError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsGetResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: GetEventsRequestUnauthorizedError
    EventsPostRequestBodyContentApplicationJsonSchemaObject:
      type: object
      properties:
        identifiers:
          $ref: '#/components/schemas/EventsPostRequestBodyContentApplicationJsonSchemaObjectIdentifiers'
          description: Identifiers for the object.
        type:
          type: string
          description: Type of object (e.g., subscription, vehicle, etc.)
      description: Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
      title: EventsPostRequestBodyContentApplicationJsonSchemaObject
    batchAcceptedResponse:
      type: object
      properties:
        message:
          type: string
          description: Confirmation message indicating the batch was accepted
        count:
          type: integer
          description: Number of events queued for processing
      required:
      - message
      - count
      description: Response returned when all events in the batch are accepted for async processing
      title: batchAcceptedResponse
    EventsPostResponsesContentApplicationJsonSchemaCode:
      type: string
      enum:
      - invalid_parameter
      - missing_parameter
      - out_of_range
      - campaign_processing
      - campaign_sent
      - document_not_found
      - not_enough_credits
      - permission_denied
      - duplicate_parameter
      - duplicate_request
      - method_not_allowed
      - unauthorized
      - account_under_validation
      - not_acceptable
      - bad_request
      - unprocessable_entity
      - Domain does not exist
      - Contact email not found
      - Attribute not found
      - Category id not found
      - Invalid parameters passed
      - Record(s) for identifier not found
      - Returned when query params are invalid
      - Returned when invalid data posted
      - Feed not found
      - Campaign ID not found
      - api-key not found
      - DMARC policy requires domain authentication
      - DNS records not properly configured
      - Invalid OTP code provided
      - OTP code has expired
      - Domain already exists in your account
      - The sum of all IP weights must equal 100
      - Authentication failed
      - Insufficient credits
      - Request already processed
      description: Error code displayed in case of a failure
      title: EventsPostResponsesContentApplicationJsonSchemaCode
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItems:
      type: object
      properties:
        contact_properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsContactProperties'
          description: 'Properties defining the state of the contact associated to this event. Useful to update contact attributes defined in your contacts database while passing the event. For example: **"FIRSTNAME": "Jane" , "AGE": 37**'
        event_date:
          type: string
          description: Timestamp of when the event occurred (e.g. "2024-01-24T17:39:57+01:00"). If no value is passed, the timestamp of the event creation is used.
        event_name:
          type: string
          description: The name of the event that occurred. This is how you will find your event in Brevo. Limited to 255 characters, alphanumerical characters and - _ only.
        event_properties:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsEventProperties'
          description: 'Properties of the event. Top level properties and nested properties can be used to better segment contacts and personalise workflow conditions. The following field type are supported: string, number, boolean (true/false), date (Timestamp e.g. "2024-01-24T17:39:57+01:00"). Keys are limited to 255 characters, alphanumerical characters and - _ only. Size is limited to 50Kb.'
        identifiers:
          $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsIdentifiers'
          description: Identifies the contact associated with the event. At least one identifier is required.
        object:
          $ref: '#/components/schemas/EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsObject'
          description: Identifiers of the object record associated with this event. Ignored if the object type or identifier for this record does not exist on the account.
      required:
      - event_name
      - identifiers
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItems
    CreateEventRequestBadRequestError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsPostResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: CreateEventRequestBadRequestError
    batchEventsResponse:
      type: object
      properties:
        status:
          type: string
          description: Status of the batch request
        total_events:
          type: integer
          description: Total number of events submitted in the batch
        successful_events:
          type: integer
          description: Number of events that were successfully processed
        failed_events:
          type: integer
          description: Number of events that failed to be processed
        errors:
          type: array
          items:
            $ref: '#/components/schemas/BatchEventsResponseErrorsItems'
          description: List of errors for the failed events
      required:
      - status
      - total_events
      - successful_events
      - failed_events
      - errors
      description: Response returned when a batch of events is processed
      title: batchEventsResponse
    GetEventsListEventsItems:
      type: object
      properties:
        contact_id:
          type: integer
          format: int64
          description: Contact ID associated with the event
        event_date:
          type: string
          format: date-time
          description: Date and time of the event
        event_name:
          type: string
          description: Name of the event
        event_filter_id:
          type: string
          description: Filter ID of the event
        object_type:
          type: string
          description: Object type associated with the event
        event_properties:
          type: object
          additionalProperties:
            description: Any type
          description: Event-level custom properties
        contact_properties:
          type: object
          additionalProperties:
            description: Any type
          description: Contact-level properties at time of event
      title: GetEventsListEventsItems
    CreateBatchEventsRequestUnauthorizedError:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/EventsBatchPostResponsesContentApplicationJsonSchemaCode'
          description: Error code displayed in case of a failure
        message:
          type: string
          description: Readable message associated to the failure
      required:
      - code
      - message
      title: CreateBatchEventsRequestUnauthorizedError
    EventsPostRequestBodyContentApplicationJsonSchemaEventProperties:
      oneOf:
      - type: string
      - type: integer
      - type: boolean
      - type: object
        additionalProperties:
          description: Any type
      - type: array
        items:
          description: Any type
      title: EventsPostRequestBodyContentApplicationJsonSchemaEventProperties
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsContactProperties:
      oneOf:
      - type: string
      - type: integer
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsContactProperties
    EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsEventProperties:
      oneOf:
      - type: string
      - type: integer
      - type: object
        additionalProperties:
          description: Any type
      - type: array
        items:
          description: Any type
      title: EventsBatchPostRequestBodyContentApplicationJsonSchemaEventsItemsEventProperties
  securitySchemes:
    api-key:
      type: apiKey
      in: header
      name: api-key
      description: The API key should be passed in the request headers as `api-key` for authentication.