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-webhooks-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: 3.2.0
info:
title: Brevo Webhooks API
version: '1.0'
description: 'Operations tagged webhooks across 2 of this provider''s published API definitions: brevo-accounts-and-settings-openapi.yml, brevo-webhooks-api-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.brevo.com/v3
description: https://api.brevo.com/v3
tags:
- name: webhooks
paths:
/webhooks:
get:
operationId: getWebhooks
summary: Get all webhooks
description: 'Retrieves all webhooks from your Brevo account with filtering and sorting options.
Use this to:
- Monitor webhook configurations and event handling
- List webhooks by type (transactional, marketing, inbound)
- Review webhook endpoints and authentication
- Track webhook creation and modification history
- Audit webhook event subscriptions
Key information returned:
- Complete webhook details and configuration
- Event types and channel subscriptions
- Authentication and security settings
- Webhook URLs and custom headers
- Creation and modification timestamps'
tags:
- webhooks
parameters:
- name: type
in: query
description: Filter on webhook type
required: false
schema:
$ref: '#/components/schemas/WebhooksGetParametersType'
default: transactional
- name: sort
in: query
description: Sort the results in the ascending/descending order of webhook creation
required: false
schema:
$ref: '#/components/schemas/WebhooksGetParametersSort'
default: desc
- 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: Webhooks informations
content:
application/json:
schema:
$ref: '#/components/schemas/Webhooks_getWebhooks_Response_200'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhooksRequestBadRequestError'
post:
operationId: createWebhook
summary: Create a webhook
description: 'Creates a new webhook to receive real-time notifications for specified events.
Use this to:
- Set up event notifications for transactional or marketing emails
- Configure webhook endpoints for campaign tracking
- Enable real-time monitoring of email delivery status
- Subscribe to contact list changes and updates
- Implement custom event handling and automation
Key information returned:
- Created webhook ID and configuration
- Success confirmation and setup details'
tags:
- webhooks
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:
'201':
description: successfully created
content:
application/json:
schema:
$ref: '#/components/schemas/Webhooks_createWebhook_Response_201'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/CreateWebhookRequestBadRequestError'
requestBody:
description: Values to create a webhook
content:
application/json:
schema:
type: object
properties:
auth:
$ref: '#/components/schemas/WebhooksPostRequestBodyContentApplicationJsonSchemaAuth'
description: Add authentication on webhook url
batched:
type: boolean
description: To send batched webhooks
channel:
$ref: '#/components/schemas/WebhooksPostRequestBodyContentApplicationJsonSchemaChannel'
default: email
description: Channel of the webhook
description:
type: string
description: Description of the webhook
domain:
type: string
description: 'Inbound domain of webhook, required in case of event type
`inbound`'
events:
type: array
items:
$ref: '#/components/schemas/WebhooksPostRequestBodyContentApplicationJsonSchemaEventsItems'
description: 'Events triggering the webhook. Required for transactional and
marketing types, optional for inbound type (defaults to
`inboundEmailProcessed`). Possible values for **Transactional**
type webhook: `sent` OR `request`, `delivered`, `hardBounce`,
`softBounce`, `blocked`, `spam`, `invalid`, `deferred`, `click`,
`opened`, `uniqueOpened` and `unsubscribed`. Possible values for
**Marketing** type webhook: `spam`, `opened`, `click`,
`hardBounce`, `softBounce`, `unsubscribed`, `listAddition`,
`delivered`, `contactUpdated` & `contactDeleted`. Possible values
for **Inbound** type webhook: `inboundEmailProcessed`.'
headers:
type: array
items:
$ref: '#/components/schemas/WebhooksPostRequestBodyContentApplicationJsonSchemaHeadersItems'
description: Custom headers to be send with webhooks
type:
$ref: '#/components/schemas/WebhooksPostRequestBodyContentApplicationJsonSchemaType'
default: transactional
description: Type of the webhook
url:
type: string
format: url
description: URL of the webhook
required:
- url
servers:
- url: https://api.brevo.com/v3
description: https://api.brevo.com/v3
/webhooks/{webhookId}:
get:
operationId: getWebhook
summary: Get a webhook details
description: 'Retrieves detailed information about a specific webhook configuration.
Use this to:
- Get complete webhook configuration and settings
- Check webhook event subscriptions and triggers
- Review authentication and security settings
- Verify webhook URL and custom headers
- Access webhook creation and modification history
Key information returned:
- Complete webhook details and configuration
- Event types and channel subscriptions
- Authentication credentials and methods
- Custom headers and request settings
- Webhook status and activity information'
tags:
- webhooks
parameters:
- name: webhookId
in: path
description: Id of the webhook
required: true
schema:
type: integer
format: int64
- 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: Webhook informations
content:
application/json:
schema:
$ref: '#/components/schemas/getWebhook'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhookRequestBadRequestError'
'404':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/GetWebhookRequestNotFoundError'
put:
operationId: updateWebhook
summary: Update a webhook
description: 'Updates an existing webhook configuration and event subscriptions.
Use this to:
- Modify webhook event subscriptions and triggers
- Update webhook URL and endpoint configuration
- Change authentication settings and credentials
- Adjust custom headers and request parameters
- Enable or disable specific webhook events
Key information returned:
- Success confirmation of webhook updates'
tags:
- webhooks
parameters:
- name: webhookId
in: path
description: Id of the webhook
required: true
schema:
type: integer
format: int64
- 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: Webhook updated
content:
application/json:
schema:
type: object
properties: {}
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookRequestBadRequestError'
'404':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateWebhookRequestNotFoundError'
requestBody:
description: Values to update a webhook
content:
application/json:
schema:
type: object
properties:
auth:
$ref: '#/components/schemas/WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaAuth'
description: Add authentication on webhook url
batched:
type: boolean
description: To send batched webhooks
description:
type: string
description: Description of the webhook
domain:
type: string
description: Inbound domain of webhook, used in case of event type `inbound`
events:
type: array
items:
$ref: '#/components/schemas/WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaEventsItems'
description: '- Events triggering the webhook. Possible values for
**Transactional** type webhook: #### `sent` OR `request`,
`delivered`, `hardBounce`, `softBounce`, `blocked`, `spam`,
`invalid`, `deferred`, `click`, `opened`, `uniqueOpened` and
`unsubscribed` - Possible values for **Marketing** type webhook:
#### `spam`, `opened`, `click`, `hardBounce`, `softBounce`,
`unsubscribed`, `listAddition` & `delivered` - Possible values
for **Inbound** type webhook: #### `inboundEmailProcessed`
#### `reply`'
headers:
type: array
items:
$ref: '#/components/schemas/WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaHeadersItems'
description: Custom headers to be send with webhooks
url:
type: string
format: url
description: URL of the webhook
delete:
operationId: deleteWebhook
summary: Delete a webhook
description: 'Permanently deletes a webhook and stops all event notifications.
Use this to:
- Remove unused or obsolete webhook configurations
- Clean up webhook endpoints and subscriptions
- Stop event notifications to specific URLs
- Maintain organized webhook management
Key information returned:
- Success confirmation of webhook deletion'
tags:
- webhooks
parameters:
- name: webhookId
in: path
description: Id of the webhook
required: true
schema:
type: integer
format: int64
- 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: Webhook deleted
content:
application/json:
schema:
type: object
properties: {}
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteWebhookRequestBadRequestError'
'404':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/DeleteWebhookRequestNotFoundError'
servers:
- url: https://api.brevo.com/v3
description: https://api.brevo.com/v3
/webhooks/export:
post:
operationId: exportWebhooksHistory
summary: Export webhook history
description: '<Note>
This is an enterprise feature. Contact us to activate it for your account.
</Note>
Submits a request to export webhook event history as a CSV file. The download link is sent to the `notifyURL` you provide in the request body.
Use this endpoint to:
- Export webhook event history filtered by date range, event type, or email address
- Generate reports for compliance, auditing, or performance analysis
- Track delivery patterns and webhook reliability over time'
tags:
- webhooks
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: process id created
content:
application/json:
schema:
$ref: '#/components/schemas/Webhooks_exportWebhooksHistory_Response_202'
'400':
description: bad request
content:
application/json:
schema:
$ref: '#/components/schemas/ExportWebhooksHistoryRequestBadRequestError'
requestBody:
description: Values to submit for webhooks history
content:
application/json:
schema:
$ref: '#/components/schemas/Webhooks_exportWebhooksHistory_Request'
servers:
- url: https://api.brevo.com/v3
description: https://api.brevo.com/v3
components:
schemas:
WebhooksGetResponsesContentApplicationJsonSchemaCode:
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: WebhooksGetResponsesContentApplicationJsonSchemaCode
ExportWebhooksHistoryRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksExportPostResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: ExportWebhooksHistoryRequestBadRequestError
Webhooks_exportWebhooksHistory_Request:
oneOf:
- description: Reference to WebhooksExportWebhooksHistoryRequest0
title: Webhooks_exportWebhooksHistory_Request
WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaAuth:
type: object
properties:
token:
type: string
description: Webhook authentication token
type:
type: string
description: Type of authentication
description: Add authentication on webhook url
title: WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaAuth
GetWebhookAuth:
type: object
properties: {}
description: Authentication header to be send with the webhook requests
title: GetWebhookAuth
getWebhook:
type: object
properties:
auth:
$ref: '#/components/schemas/GetWebhookAuth'
description: Authentication header to be send with the webhook requests
batched:
type: boolean
description: 'Batching configuration of the webhook, we send batched webhooks if its
true'
createdAt:
type: string
description: Creation UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)
description:
type: string
description: Description of the webhook
events:
type: array
items:
type: string
headers:
type: array
items:
$ref: '#/components/schemas/GetWebhookHeadersItems'
id:
type: integer
format: int64
description: ID of the webhook
modifiedAt:
type: string
description: Last modification UTC date-time of the webhook (YYYY-MM-DDTHH:mm:ss.SSSZ)
type:
$ref: '#/components/schemas/GetWebhookType'
description: Type of webhook (marketing, transactional, or inbound)
domain:
type: string
description: Inbound domain of the webhook, only returned for inbound type webhooks
url:
type: string
format: url
description: URL of the webhook
required:
- createdAt
- description
- events
- id
- modifiedAt
- type
- url
title: getWebhook
WebhooksWebhookIdDeleteResponsesContentApplicationJsonSchemaCode:
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: WebhooksWebhookIdDeleteResponsesContentApplicationJsonSchemaCode
WebhooksPostRequestBodyContentApplicationJsonSchemaChannel:
type: string
enum:
- email
- sms
default: email
description: Channel of the webhook
title: WebhooksPostRequestBodyContentApplicationJsonSchemaChannel
WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaEventsItems:
type: string
enum:
- sent
- hardBounce
- softBounce
- blocked
- spam
- delivered
- request
- click
- invalid
- deferred
- opened
- uniqueOpened
- unsubscribed
- listAddition
- contactUpdated
- contactDeleted
- inboundEmailProcessed
- reply
title: WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaEventsItems
WebhooksGetParametersType:
type: string
enum:
- marketing
- transactional
- inbound
default: transactional
title: WebhooksGetParametersType
WebhooksPostRequestBodyContentApplicationJsonSchemaType:
type: string
enum:
- transactional
- marketing
- inbound
default: transactional
description: Type of the webhook
title: WebhooksPostRequestBodyContentApplicationJsonSchemaType
CreateWebhookRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksPostResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: CreateWebhookRequestBadRequestError
UpdateWebhookRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdPutResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: UpdateWebhookRequestBadRequestError
GetWebhookType:
type: string
enum:
- marketing
- transactional
- inbound
description: Type of webhook (marketing, transactional, or inbound)
title: GetWebhookType
WebhooksPostRequestBodyContentApplicationJsonSchemaEventsItems:
type: string
enum:
- sent
- hardBounce
- softBounce
- blocked
- spam
- delivered
- request
- click
- invalid
- deferred
- opened
- uniqueOpened
- unsubscribed
- listAddition
- contactUpdated
- contactDeleted
- inboundEmailProcessed
- reply
title: WebhooksPostRequestBodyContentApplicationJsonSchemaEventsItems
Webhooks_getWebhooks_Response_200:
type: object
properties:
webhooks:
type: array
items:
$ref: '#/components/schemas/getWebhook'
required:
- webhooks
title: Webhooks_getWebhooks_Response_200
WebhooksExportPostResponsesContentApplicationJsonSchemaCode:
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: WebhooksExportPostResponsesContentApplicationJsonSchemaCode
WebhooksWebhookIdGetResponsesContentApplicationJsonSchemaCode:
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: WebhooksWebhookIdGetResponsesContentApplicationJsonSchemaCode
WebhooksGetParametersSort:
type: string
enum:
- asc
- desc
default: desc
title: WebhooksGetParametersSort
Webhooks_exportWebhooksHistory_Response_202:
type: object
properties:
processId:
type: integer
format: int64
description: Id of the process created
required:
- processId
title: Webhooks_exportWebhooksHistory_Response_202
GetWebhookRequestNotFoundError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdGetResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: GetWebhookRequestNotFoundError
DeleteWebhookRequestNotFoundError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdDeleteResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: DeleteWebhookRequestNotFoundError
WebhooksPostRequestBodyContentApplicationJsonSchemaAuth:
type: object
properties:
token:
type: string
description: Webhook authentication token
type:
type: string
description: Type of authentication
description: Add authentication on webhook url
title: WebhooksPostRequestBodyContentApplicationJsonSchemaAuth
WebhooksWebhookIdPutResponsesContentApplicationJsonSchemaCode:
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: WebhooksWebhookIdPutResponsesContentApplicationJsonSchemaCode
GetWebhookHeadersItems:
type: object
properties: {}
description: Headers send with the requests to the webhook
title: GetWebhookHeadersItems
DeleteWebhookRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdDeleteResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: DeleteWebhookRequestBadRequestError
UpdateWebhookRequestNotFoundError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdPutResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the failure
required:
- code
- message
title: UpdateWebhookRequestNotFoundError
WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaHeadersItems:
type: object
properties:
key:
type: string
description: Header key name
value:
type: string
description: Header value
title: WebhooksWebhookIdPutRequestBodyContentApplicationJsonSchemaHeadersItems
WebhooksPostResponsesContentApplicationJsonSchemaCode:
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: WebhooksPostResponsesContentApplicationJsonSchemaCode
GetWebhookRequestBadRequestError:
type: object
properties:
code:
$ref: '#/components/schemas/WebhooksWebhookIdGetResponsesContentApplicationJsonSchemaCode'
description: Error code displayed in case of a failure
message:
type: string
description: Readable message associated to the f
# --- truncated at 32 KB (37 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/brevo/refs/heads/main/openapi/brevo-webhooks-api-openapi.yml