Create subscription
curl --request POST \
--url https://api.birdeye.com/resources/v1/subscriptions/subscribe \
--header 'Content-Type: application/json' \
--data '
{
"webhookUrl": "https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65",
"emails": [
"test@xyz.com"
],
"eventName": "APPOINTMENT_BOOKED",
"auth": {
"username": "testUser",
"password": "userpassword"
},
"customHeaders": {
"Authorization": "Bearer ABCDBJKFJKBFK"
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/subscriptions/subscribe"
payload = {
"webhookUrl": "https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65",
"emails": ["test@xyz.com"],
"eventName": "APPOINTMENT_BOOKED",
"auth": {
"username": "testUser",
"password": "userpassword"
},
"customHeaders": { "Authorization": "Bearer ABCDBJKFJKBFK" }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
webhookUrl: 'https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65',
emails: ['test@xyz.com'],
eventName: 'APPOINTMENT_BOOKED',
auth: {username: 'testUser', password: 'userpassword'},
customHeaders: {Authorization: 'Bearer ABCDBJKFJKBFK'}
})
};
fetch('https://api.birdeye.com/resources/v1/subscriptions/subscribe', 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.birdeye.com/resources/v1/subscriptions/subscribe",
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([
'webhookUrl' => 'https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65',
'emails' => [
'test@xyz.com'
],
'eventName' => 'APPOINTMENT_BOOKED',
'auth' => [
'username' => 'testUser',
'password' => 'userpassword'
],
'customHeaders' => [
'Authorization' => 'Bearer ABCDBJKFJKBFK'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.birdeye.com/resources/v1/subscriptions/subscribe"
payload := strings.NewReader("{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.birdeye.com/resources/v1/subscriptions/subscribe")
.header("Content-Type", "application/json")
.body("{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/subscriptions/subscribe")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "abcchdguweUGBSK16789278",
"message": "You have successfully subscribed to : https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65"
}{
"code": 1161,
"message": "Invalid API key"
}{
"code": 1011,
"message": "Business id is invalid"
}{
"code": 89,
"message": "Rate limit exceeded"
}Subscription
Subscribe
Create webhook subscription listens to subscribed webhook events on a specific passed URL.
POST
/
v1
/
subscriptions
/
subscribe
Create subscription
curl --request POST \
--url https://api.birdeye.com/resources/v1/subscriptions/subscribe \
--header 'Content-Type: application/json' \
--data '
{
"webhookUrl": "https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65",
"emails": [
"test@xyz.com"
],
"eventName": "APPOINTMENT_BOOKED",
"auth": {
"username": "testUser",
"password": "userpassword"
},
"customHeaders": {
"Authorization": "Bearer ABCDBJKFJKBFK"
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/subscriptions/subscribe"
payload = {
"webhookUrl": "https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65",
"emails": ["test@xyz.com"],
"eventName": "APPOINTMENT_BOOKED",
"auth": {
"username": "testUser",
"password": "userpassword"
},
"customHeaders": { "Authorization": "Bearer ABCDBJKFJKBFK" }
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
webhookUrl: 'https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65',
emails: ['test@xyz.com'],
eventName: 'APPOINTMENT_BOOKED',
auth: {username: 'testUser', password: 'userpassword'},
customHeaders: {Authorization: 'Bearer ABCDBJKFJKBFK'}
})
};
fetch('https://api.birdeye.com/resources/v1/subscriptions/subscribe', 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.birdeye.com/resources/v1/subscriptions/subscribe",
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([
'webhookUrl' => 'https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65',
'emails' => [
'test@xyz.com'
],
'eventName' => 'APPOINTMENT_BOOKED',
'auth' => [
'username' => 'testUser',
'password' => 'userpassword'
],
'customHeaders' => [
'Authorization' => 'Bearer ABCDBJKFJKBFK'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.birdeye.com/resources/v1/subscriptions/subscribe"
payload := strings.NewReader("{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
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.birdeye.com/resources/v1/subscriptions/subscribe")
.header("Content-Type", "application/json")
.body("{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/subscriptions/subscribe")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"webhookUrl\": \"https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65\",\n \"emails\": [\n \"test@xyz.com\"\n ],\n \"eventName\": \"APPOINTMENT_BOOKED\",\n \"auth\": {\n \"username\": \"testUser\",\n \"password\": \"userpassword\"\n },\n \"customHeaders\": {\n \"Authorization\": \"Bearer ABCDBJKFJKBFK\"\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "abcchdguweUGBSK16789278",
"message": "You have successfully subscribed to : https://webhook.site/2036c967-0174-4604-8b38-8d5493ed6d65"
}{
"code": 1161,
"message": "Invalid API key"
}{
"code": 1011,
"message": "Business id is invalid"
}{
"code": 89,
"message": "Rate limit exceeded"
}Headers
e.g. application/json
e.g. [Required] Partner specific API key provided by Birdeye for data exchange.
Media type of the JSON request body.
Query Parameters
Account business number.
Body
application/json
The webhook endpoint URL on your server on which webhook requests are to be sent.
The email id(s) of the business.
Name of the evnet to be subscribed
Will be used for basic authorization, should be null for no auth
Show child attributes
Show child attributes
Custom headers to be sent along with the webhook request.
Show child attributes
Show child attributes