Test Outgoing Webhook
curl --request POST \
--url https://api.example.com/api/v1/integrations/webhook-test \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"secret": "",
"connection_id": "<string>",
"event": "call.completed"
}
'import requests
url = "https://api.example.com/api/v1/integrations/webhook-test"
payload = {
"url": "<string>",
"secret": "",
"connection_id": "<string>",
"event": "call.completed"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
secret: '',
connection_id: '<string>',
event: 'call.completed'
})
};
fetch('https://api.example.com/api/v1/integrations/webhook-test', 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://api.example.com/api/v1/integrations/webhook-test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'secret' => '',
'connection_id' => '<string>',
'event' => 'call.completed'
]),
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://api.example.com/api/v1/integrations/webhook-test"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/api/v1/integrations/webhook-test")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/integrations/webhook-test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Integrations
Test Outgoing Webhook
Send one signed example event, as the integration wizard’s test step.
Unlike the connection Test button (a bare message), this is the real envelope and signature, so the receiving code can be checked end to end.
POST
/
api
/
v1
/
integrations
/
webhook-test
Test Outgoing Webhook
curl --request POST \
--url https://api.example.com/api/v1/integrations/webhook-test \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "<string>",
"secret": "",
"connection_id": "<string>",
"event": "call.completed"
}
'import requests
url = "https://api.example.com/api/v1/integrations/webhook-test"
payload = {
"url": "<string>",
"secret": "",
"connection_id": "<string>",
"event": "call.completed"
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: '<string>',
secret: '',
connection_id: '<string>',
event: 'call.completed'
})
};
fetch('https://api.example.com/api/v1/integrations/webhook-test', 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://api.example.com/api/v1/integrations/webhook-test",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>',
'secret' => '',
'connection_id' => '<string>',
'event' => 'call.completed'
]),
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://api.example.com/api/v1/integrations/webhook-test"
payload := strings.NewReader("{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://api.example.com/api/v1/integrations/webhook-test")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/api/v1/integrations/webhook-test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\",\n \"secret\": \"\",\n \"connection_id\": \"<string>\",\n \"event\": \"call.completed\"\n}"
response = http.request(request)
puts response.read_body{}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}Authorizations
Your organization's API key (account in the bottom-left of the dashboard → Brosbots API).
Body
application/json
Response
Successful Response
The response is of type object.
