curl --request POST \
--url https://api.birdeye.com/resources/v1/listing/insights \
--header 'Content-Type: application/json' \
--data '
{
"businessNumbers": [
156387109031976
],
"startDate": "2010-02-01",
"endDate": "2022-02-01",
"viewMode": [
"Mobile",
"Desktop"
]
}
'import requests
url = "https://api.birdeye.com/resources/v1/listing/insights"
payload = {
"businessNumbers": [156387109031976],
"startDate": "2010-02-01",
"endDate": "2022-02-01",
"viewMode": ["Mobile", "Desktop"]
}
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({
businessNumbers: [156387109031976],
startDate: '2010-02-01',
endDate: '2022-02-01',
viewMode: ['Mobile', 'Desktop']
})
};
fetch('https://api.birdeye.com/resources/v1/listing/insights', 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/listing/insights",
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([
'businessNumbers' => [
156387109031976
],
'startDate' => '2010-02-01',
'endDate' => '2022-02-01',
'viewMode' => [
'Mobile',
'Desktop'
]
]),
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/listing/insights"
payload := strings.NewReader("{\n \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\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/listing/insights")
.header("Content-Type", "application/json")
.body("{\n \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/listing/insights")
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 \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"mapViewTotalCount": 2868,
"searchViewTotalCount": 2868,
"websiteVisitsTotalCount": 2868,
"getDirectionsTotalCount": 123,
"callsTotalCount": 2868,
"usersReachedTotalCount": 123,
"usersEngagedTotalCount": 123,
"impressionCountTotalCount": 123,
"bingWebsiteVisitsTotalCount": 2868,
"bingDirectionsTotalCount": 123,
"bingCallsTotalCount": 2868,
"liveCount": 10,
"entityCount": 1
}{
"code": 1167,
"message": "API key is missing"
}{
"code": 1175,
"message": "No business found with the given id"
}{
"code": 89,
"message": "Rate limit exceeded"
}Listing Insights
curl --request POST \
--url https://api.birdeye.com/resources/v1/listing/insights \
--header 'Content-Type: application/json' \
--data '
{
"businessNumbers": [
156387109031976
],
"startDate": "2010-02-01",
"endDate": "2022-02-01",
"viewMode": [
"Mobile",
"Desktop"
]
}
'import requests
url = "https://api.birdeye.com/resources/v1/listing/insights"
payload = {
"businessNumbers": [156387109031976],
"startDate": "2010-02-01",
"endDate": "2022-02-01",
"viewMode": ["Mobile", "Desktop"]
}
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({
businessNumbers: [156387109031976],
startDate: '2010-02-01',
endDate: '2022-02-01',
viewMode: ['Mobile', 'Desktop']
})
};
fetch('https://api.birdeye.com/resources/v1/listing/insights', 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/listing/insights",
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([
'businessNumbers' => [
156387109031976
],
'startDate' => '2010-02-01',
'endDate' => '2022-02-01',
'viewMode' => [
'Mobile',
'Desktop'
]
]),
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/listing/insights"
payload := strings.NewReader("{\n \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\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/listing/insights")
.header("Content-Type", "application/json")
.body("{\n \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/listing/insights")
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 \"businessNumbers\": [\n 156387109031976\n ],\n \"startDate\": \"2010-02-01\",\n \"endDate\": \"2022-02-01\",\n \"viewMode\": [\n \"Mobile\",\n \"Desktop\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"mapViewTotalCount": 2868,
"searchViewTotalCount": 2868,
"websiteVisitsTotalCount": 2868,
"getDirectionsTotalCount": 123,
"callsTotalCount": 2868,
"usersReachedTotalCount": 123,
"usersEngagedTotalCount": 123,
"impressionCountTotalCount": 123,
"bingWebsiteVisitsTotalCount": 2868,
"bingDirectionsTotalCount": 123,
"bingCallsTotalCount": 2868,
"liveCount": 10,
"entityCount": 1
}{
"code": 1167,
"message": "API key is missing"
}{
"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.
Query Parameters
Id of the account.
Body
for mobile or desktop or both (if none is provided then data for both will be displayed) Example “Desktop”, ”Mobile”
Location numbers of enterprise locations. If empty all valid enterprise locations will be selected.
Start Date, Format: yyyy-MM-dd.
End Date, Format: yyyy-MM-dd. If startDate and endDate are not provided, then the last 3 months date range will be chosen.
Response
OK
Business impressions on Google Maps on Desktop and mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression on Google.
2868
Business impressions on Google Search on Desktop and mobile devices. Multiple impressions by a unique user within a single day are counted as a single impression on Google.
2868
The number of times the business profile website was clicked on Google.
2868
The number of times a direction request was requested to the business location on Google.
The number of times the business profile call button was clicked on Google.
2868
The number of times your business appeared in search results and other services on Facebook.
The number of times users have engaged with your business through reactions, comments, shares and more on Facebook.
The number of users who saw the activity from your page including posts, check-ins, and ads on Bing.
The number of times the business profile website was clicked on Bing.
2868
The number of times a direction request was requested to the business location on Bing.
The number of times the business profile call button was clicked on Bing.
2868
Total no of synched sites for a business.
10
Total businesses count.
1

