Update a webhook endpoint
curl --request PATCH \
--url https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"description": "<string>",
"events": [],
"isActive": true,
"customHeaders": [
{
"key": "<string>",
"value": "<string>"
}
],
"timeoutSeconds": 150,
"maxRetries": 10
}
'import requests
url = "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}"
payload = {
"url": "<string>",
"description": "<string>",
"events": [],
"isActive": True,
"customHeaders": [
{
"key": "<string>",
"value": "<string>"
}
],
"timeoutSeconds": 150,
"maxRetries": 10
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
description: '<string>',
events: [],
isActive: true,
customHeaders: [{key: '<string>', value: '<string>'}],
timeoutSeconds: 150,
maxRetries: 10
})
};
fetch('https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'description' => '<string>',
'events' => [
],
'isActive' => true,
'customHeaders' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'timeoutSeconds' => 150,
'maxRetries' => 10
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"endpoint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "https://example.com/hooks/brudcast",
"description": "<string>",
"events": [
"email.delivered"
],
"customHeaders": [
{
"key": "X-Signature-Source",
"value": "brudcast"
}
],
"isActive": true,
"maxRetries": 123,
"timeoutSeconds": 123,
"lastTriggeredAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "The payload is invalid",
"code": "E_VALIDATION_ERROR",
"errors": [
{
"field": "emailAddress",
"rule": "email",
"message": "The emailAddress field must be a valid email address"
}
]
}{
"success": false,
"message": "Too many requests",
"code": "E_TOO_MANY_REQUESTS",
"retryAfter": 60
}Webhooks
Update a webhook endpoint
Changes the URL, subscribed events, custom headers, retry settings or active flag of an endpoint. The updated endpoint is returned nested under data.endpoint rather than at data. Requires the webhooks:write scope.
PATCH
/
api
/
v1
/
user
/
webhook-endpoints
/
{id}
Update a webhook endpoint
curl --request PATCH \
--url https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id} \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"description": "<string>",
"events": [],
"isActive": true,
"customHeaders": [
{
"key": "<string>",
"value": "<string>"
}
],
"timeoutSeconds": 150,
"maxRetries": 10
}
'import requests
url = "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}"
payload = {
"url": "<string>",
"description": "<string>",
"events": [],
"isActive": True,
"customHeaders": [
{
"key": "<string>",
"value": "<string>"
}
],
"timeoutSeconds": 150,
"maxRetries": 10
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
description: '<string>',
events: [],
isActive: true,
customHeaders: [{key: '<string>', value: '<string>'}],
timeoutSeconds: 150,
maxRetries: 10
})
};
fetch('https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'description' => '<string>',
'events' => [
],
'isActive' => true,
'customHeaders' => [
[
'key' => '<string>',
'value' => '<string>'
]
],
'timeoutSeconds' => 150,
'maxRetries' => 10
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.patch("https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://core-service.prod.brudcast.com/api/v1/user/webhook-endpoints/{id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"description\": \"<string>\",\n \"events\": [],\n \"isActive\": true,\n \"customHeaders\": [\n {\n \"key\": \"<string>\",\n \"value\": \"<string>\"\n }\n ],\n \"timeoutSeconds\": 150,\n \"maxRetries\": 10\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"message": "<string>",
"data": {
"endpoint": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"organizationId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "https://example.com/hooks/brudcast",
"description": "<string>",
"events": [
"email.delivered"
],
"customHeaders": [
{
"key": "X-Signature-Source",
"value": "brudcast"
}
],
"isActive": true,
"maxRetries": 123,
"timeoutSeconds": 123,
"lastTriggeredAt": "2023-11-07T05:31:56Z",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
}
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "Resource not found",
"code": "E_ROW_NOT_FOUND"
}{
"success": false,
"message": "The payload is invalid",
"code": "E_VALIDATION_ERROR",
"errors": [
{
"field": "emailAddress",
"rule": "email",
"message": "The emailAddress field must be a valid email address"
}
]
}{
"success": false,
"message": "Too many requests",
"code": "E_TOO_MANY_REQUESTS",
"retryAfter": 60
}Authorizations
apiKeyapiKeyBearer
An organization API key, prefixed bk_live_. Takes precedence over Authorization when both are sent. The key is bound to one organization, and the scopes it was issued with are enforced per endpoint.
Headers
Required when authenticating with an access token. Optional with an API key, whose own organization binding is authoritative; a value contradicting it is refused with 403.
Path Parameters
Body
application/json
Minimum string length:
2Available options:
email.delivered, email.bounced, email.opened, email.clicked, email.marked_spam, email.unsubscribed, email.dropped, email.deferred, email.rejected, email.complained, contact.subscribed, contact.unsubscribed, contact.updated, campaign.sent, campaign.completed, test.event Show child attributes
Show child attributes
Required range:
0 <= x <= 300Required range:
0 <= x <= 20