curl --request POST \
--url https://api.birdeye.com/resources/v1/contact/external/preferences/checkin \
--header 'Content-Type: application/json' \
--data '
{
"name": "Steve Smith",
"emailId": "steves@abcd.com",
"phone": "408-xxx-xxxx",
"smsEnabled": 1,
"additionalParams": {
"Tag Group Name 1": "Tag Name 1",
"Tag Group Name 2": "Tag Name 2",
"location": "New York"
},
"employees": [
{
"emailId": "sshikha@abcd.com"
}
],
"externalId": "ABC123",
"emailPreferences": {
"marketingOptin": true,
"feedbackOptin": true,
"serviceOptin": true
},
"smsPreferences": {
"marketingOptin": true,
"feedbackOptin": true,
"serviceOptin": true
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/contact/external/preferences/checkin"
payload = {
"name": "Steve Smith",
"emailId": "steves@abcd.com",
"phone": "408-xxx-xxxx",
"smsEnabled": 1,
"additionalParams": {
"Tag Group Name 1": "Tag Name 1",
"Tag Group Name 2": "Tag Name 2",
"location": "New York"
},
"employees": [{ "emailId": "sshikha@abcd.com" }],
"externalId": "ABC123",
"emailPreferences": {
"marketingOptin": True,
"feedbackOptin": True,
"serviceOptin": True
},
"smsPreferences": {
"marketingOptin": True,
"feedbackOptin": True,
"serviceOptin": True
}
}
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({
name: 'Steve Smith',
emailId: 'steves@abcd.com',
phone: '408-xxx-xxxx',
smsEnabled: 1,
additionalParams: {
'Tag Group Name 1': 'Tag Name 1',
'Tag Group Name 2': 'Tag Name 2',
location: 'New York'
},
employees: [{emailId: 'sshikha@abcd.com'}],
externalId: 'ABC123',
emailPreferences: {marketingOptin: true, feedbackOptin: true, serviceOptin: true},
smsPreferences: {marketingOptin: true, feedbackOptin: true, serviceOptin: true}
})
};
fetch('https://api.birdeye.com/resources/v1/contact/external/preferences/checkin', 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/contact/external/preferences/checkin",
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([
'name' => 'Steve Smith',
'emailId' => 'steves@abcd.com',
'phone' => '408-xxx-xxxx',
'smsEnabled' => 1,
'additionalParams' => [
'Tag Group Name 1' => 'Tag Name 1',
'Tag Group Name 2' => 'Tag Name 2',
'location' => 'New York'
],
'employees' => [
[
'emailId' => 'sshikha@abcd.com'
]
],
'externalId' => 'ABC123',
'emailPreferences' => [
'marketingOptin' => true,
'feedbackOptin' => true,
'serviceOptin' => true
],
'smsPreferences' => [
'marketingOptin' => true,
'feedbackOptin' => true,
'serviceOptin' => true
]
]),
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/contact/external/preferences/checkin"
payload := strings.NewReader("{\n \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\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/contact/external/preferences/checkin")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/contact/external/preferences/checkin")
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 \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"customerId": 123
}{
"code": 1170,
"message": "SMS Alert flag is invalid. Valid values are 0 or 1."
}{
"code": 1175,
"message": "No business found with the given id"
}{
"code": 89,
"message": "Rate limit exceeded"
}Customer Check-in V2
curl --request POST \
--url https://api.birdeye.com/resources/v1/contact/external/preferences/checkin \
--header 'Content-Type: application/json' \
--data '
{
"name": "Steve Smith",
"emailId": "steves@abcd.com",
"phone": "408-xxx-xxxx",
"smsEnabled": 1,
"additionalParams": {
"Tag Group Name 1": "Tag Name 1",
"Tag Group Name 2": "Tag Name 2",
"location": "New York"
},
"employees": [
{
"emailId": "sshikha@abcd.com"
}
],
"externalId": "ABC123",
"emailPreferences": {
"marketingOptin": true,
"feedbackOptin": true,
"serviceOptin": true
},
"smsPreferences": {
"marketingOptin": true,
"feedbackOptin": true,
"serviceOptin": true
}
}
'import requests
url = "https://api.birdeye.com/resources/v1/contact/external/preferences/checkin"
payload = {
"name": "Steve Smith",
"emailId": "steves@abcd.com",
"phone": "408-xxx-xxxx",
"smsEnabled": 1,
"additionalParams": {
"Tag Group Name 1": "Tag Name 1",
"Tag Group Name 2": "Tag Name 2",
"location": "New York"
},
"employees": [{ "emailId": "sshikha@abcd.com" }],
"externalId": "ABC123",
"emailPreferences": {
"marketingOptin": True,
"feedbackOptin": True,
"serviceOptin": True
},
"smsPreferences": {
"marketingOptin": True,
"feedbackOptin": True,
"serviceOptin": True
}
}
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({
name: 'Steve Smith',
emailId: 'steves@abcd.com',
phone: '408-xxx-xxxx',
smsEnabled: 1,
additionalParams: {
'Tag Group Name 1': 'Tag Name 1',
'Tag Group Name 2': 'Tag Name 2',
location: 'New York'
},
employees: [{emailId: 'sshikha@abcd.com'}],
externalId: 'ABC123',
emailPreferences: {marketingOptin: true, feedbackOptin: true, serviceOptin: true},
smsPreferences: {marketingOptin: true, feedbackOptin: true, serviceOptin: true}
})
};
fetch('https://api.birdeye.com/resources/v1/contact/external/preferences/checkin', 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/contact/external/preferences/checkin",
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([
'name' => 'Steve Smith',
'emailId' => 'steves@abcd.com',
'phone' => '408-xxx-xxxx',
'smsEnabled' => 1,
'additionalParams' => [
'Tag Group Name 1' => 'Tag Name 1',
'Tag Group Name 2' => 'Tag Name 2',
'location' => 'New York'
],
'employees' => [
[
'emailId' => 'sshikha@abcd.com'
]
],
'externalId' => 'ABC123',
'emailPreferences' => [
'marketingOptin' => true,
'feedbackOptin' => true,
'serviceOptin' => true
],
'smsPreferences' => [
'marketingOptin' => true,
'feedbackOptin' => true,
'serviceOptin' => true
]
]),
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/contact/external/preferences/checkin"
payload := strings.NewReader("{\n \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\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/contact/external/preferences/checkin")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/contact/external/preferences/checkin")
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 \"name\": \"Steve Smith\",\n \"emailId\": \"steves@abcd.com\",\n \"phone\": \"408-xxx-xxxx\",\n \"smsEnabled\": 1,\n \"additionalParams\": {\n \"Tag Group Name 1\": \"Tag Name 1\",\n \"Tag Group Name 2\": \"Tag Name 2\",\n \"location\": \"New York\"\n },\n \"employees\": [\n {\n \"emailId\": \"sshikha@abcd.com\"\n }\n ],\n \"externalId\": \"ABC123\",\n \"emailPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n },\n \"smsPreferences\": {\n \"marketingOptin\": true,\n \"feedbackOptin\": true,\n \"serviceOptin\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"customerId": 123
}{
"code": 1170,
"message": "SMS Alert flag is invalid. Valid values are 0 or 1."
}{
"code": 1175,
"message": "No business found with the given id"
}{
"code": 89,
"message": "Rate limit exceeded"
}Headers
e.g. application/json
e.g. [Required] Partner specific API key provided by Birdeye for data exchange.
e.g. [Required] User assosiated businessNumber
Body
Name of the customer.
Email ID of the customer (optional If business has enabled for sms, then either email or phone will be required).
Phone number of the customer (optional If business has enabled for sms, then either email or phone will be required).
Whether customer has opted to receive SMS request or not. Valid values are 0(false), 1(true). Default is 1.
Custom tags can be added as key value pair.
Unique external identifier of the contact which could be from the CRM or any external system storing your contacts.
Email communication preference flags.
Show child attributes
Show child attributes
SMS communication preference flags.
Show child attributes
Show child attributes
Response
OK
Id of enterprise customer.

