curl --request POST \
--url https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank \
--header 'Content-Type: application/json' \
--data '
{
"reviewSources": [
"Google",
"Facebook",
"CitySearch"
],
"ratings": [
"0",
"1",
"3",
"4",
"5"
],
"businessNumbers": [
172957184851864,
174436684666401
],
"startDate": "02/25/2025",
"endDate": "02/01/2026",
"hierarchyNodeData": [
{
"levelId": "Region",
"levelNames": [
"Region1",
"Region2"
]
}
],
"groupByLevel": "Region",
"userEmail": "example@birdeye.com"
}
'import requests
url = "https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank"
payload = {
"reviewSources": ["Google", "Facebook", "CitySearch"],
"ratings": ["0", "1", "3", "4", "5"],
"businessNumbers": [172957184851864, 174436684666401],
"startDate": "02/25/2025",
"endDate": "02/01/2026",
"hierarchyNodeData": [
{
"levelId": "Region",
"levelNames": ["Region1", "Region2"]
}
],
"groupByLevel": "Region",
"userEmail": "example@birdeye.com"
}
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({
reviewSources: ['Google', 'Facebook', 'CitySearch'],
ratings: ['0', '1', '3', '4', '5'],
businessNumbers: [172957184851864, 174436684666401],
startDate: '02/25/2025',
endDate: '02/01/2026',
hierarchyNodeData: [{levelId: 'Region', levelNames: ['Region1', 'Region2']}],
groupByLevel: 'Region',
userEmail: 'example@birdeye.com'
})
};
fetch('https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank', 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/insight/experience/locationInfo/rank",
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([
'reviewSources' => [
'Google',
'Facebook',
'CitySearch'
],
'ratings' => [
'0',
'1',
'3',
'4',
'5'
],
'businessNumbers' => [
172957184851864,
174436684666401
],
'startDate' => '02/25/2025',
'endDate' => '02/01/2026',
'hierarchyNodeData' => [
[
'levelId' => 'Region',
'levelNames' => [
'Region1',
'Region2'
]
]
],
'groupByLevel' => 'Region',
'userEmail' => 'example@birdeye.com'
]),
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/insight/experience/locationInfo/rank"
payload := strings.NewReader("{\n \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\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/insight/experience/locationInfo/rank")
.header("Content-Type", "application/json")
.body("{\n \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank")
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 \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\n}"
response = http.request(request)
puts response.read_body{
"totalCount": 2,
"dataPoints": [
{
"id": 149546078883527,
"name": "194 - Greywolf Veterinary Hospital",
"experienceScore": 93.1,
"listingScore": 86.7,
"sentimentScore": 96.2,
"reputationScore": 93.8,
"experienceDeltaScore": 93,
"listingDeltaScore": 86,
"sentimentDeltaScore": 96,
"reputationDeltaScore": 93,
"experienceDelta": 0.1,
"listingDelta": 0.7,
"reputationDelta": 0.8,
"sentimentDelta": 0.2
},
{
"id": 149546078886677,
"name": "The animal hospital",
"experienceScore": 87.3,
"listingScore": 80.9,
"sentimentScore": 90,
"reputationScore": 88.8,
"experienceDeltaScore": 87,
"listingDeltaScore": 80,
"sentimentDeltaScore": 90,
"reputationDeltaScore": 88,
"experienceDelta": -0.2,
"listingDelta": -0.1,
"reputationDelta": 0.3,
"sentimentDelta": 0.1
}
]
}{
"code": 2003,
"message": "businessNumbers are mandatory"
}{
"code": 1167,
"message": "API key is missing"
}{
"code": 2151,
"message": "Not a valid reseller/enterprise id."
}{
"code": 1027,
"message": "Invalid business number."
}Insight Experience Location Info Rank
Insight Experience Location Info Rank API retrieves the top or bottom performing business locations ranked by experience score, for specified business locations and date ranges.
curl --request POST \
--url https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank \
--header 'Content-Type: application/json' \
--data '
{
"reviewSources": [
"Google",
"Facebook",
"CitySearch"
],
"ratings": [
"0",
"1",
"3",
"4",
"5"
],
"businessNumbers": [
172957184851864,
174436684666401
],
"startDate": "02/25/2025",
"endDate": "02/01/2026",
"hierarchyNodeData": [
{
"levelId": "Region",
"levelNames": [
"Region1",
"Region2"
]
}
],
"groupByLevel": "Region",
"userEmail": "example@birdeye.com"
}
'import requests
url = "https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank"
payload = {
"reviewSources": ["Google", "Facebook", "CitySearch"],
"ratings": ["0", "1", "3", "4", "5"],
"businessNumbers": [172957184851864, 174436684666401],
"startDate": "02/25/2025",
"endDate": "02/01/2026",
"hierarchyNodeData": [
{
"levelId": "Region",
"levelNames": ["Region1", "Region2"]
}
],
"groupByLevel": "Region",
"userEmail": "example@birdeye.com"
}
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({
reviewSources: ['Google', 'Facebook', 'CitySearch'],
ratings: ['0', '1', '3', '4', '5'],
businessNumbers: [172957184851864, 174436684666401],
startDate: '02/25/2025',
endDate: '02/01/2026',
hierarchyNodeData: [{levelId: 'Region', levelNames: ['Region1', 'Region2']}],
groupByLevel: 'Region',
userEmail: 'example@birdeye.com'
})
};
fetch('https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank', 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/insight/experience/locationInfo/rank",
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([
'reviewSources' => [
'Google',
'Facebook',
'CitySearch'
],
'ratings' => [
'0',
'1',
'3',
'4',
'5'
],
'businessNumbers' => [
172957184851864,
174436684666401
],
'startDate' => '02/25/2025',
'endDate' => '02/01/2026',
'hierarchyNodeData' => [
[
'levelId' => 'Region',
'levelNames' => [
'Region1',
'Region2'
]
]
],
'groupByLevel' => 'Region',
'userEmail' => 'example@birdeye.com'
]),
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/insight/experience/locationInfo/rank"
payload := strings.NewReader("{\n \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\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/insight/experience/locationInfo/rank")
.header("Content-Type", "application/json")
.body("{\n \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/insight/experience/locationInfo/rank")
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 \"reviewSources\": [\n \"Google\",\n \"Facebook\",\n \"CitySearch\"\n ],\n \"ratings\": [\n \"0\",\n \"1\",\n \"3\",\n \"4\",\n \"5\"\n ],\n \"businessNumbers\": [\n 172957184851864,\n 174436684666401\n ],\n \"startDate\": \"02/25/2025\",\n \"endDate\": \"02/01/2026\",\n \"hierarchyNodeData\": [\n {\n \"levelId\": \"Region\",\n \"levelNames\": [\n \"Region1\",\n \"Region2\"\n ]\n }\n ],\n \"groupByLevel\": \"Region\",\n \"userEmail\": \"example@birdeye.com\"\n}"
response = http.request(request)
puts response.read_body{
"totalCount": 2,
"dataPoints": [
{
"id": 149546078883527,
"name": "194 - Greywolf Veterinary Hospital",
"experienceScore": 93.1,
"listingScore": 86.7,
"sentimentScore": 96.2,
"reputationScore": 93.8,
"experienceDeltaScore": 93,
"listingDeltaScore": 86,
"sentimentDeltaScore": 96,
"reputationDeltaScore": 93,
"experienceDelta": 0.1,
"listingDelta": 0.7,
"reputationDelta": 0.8,
"sentimentDelta": 0.2
},
{
"id": 149546078886677,
"name": "The animal hospital",
"experienceScore": 87.3,
"listingScore": 80.9,
"sentimentScore": 90,
"reputationScore": 88.8,
"experienceDeltaScore": 87,
"listingDeltaScore": 80,
"sentimentDeltaScore": 90,
"reputationDeltaScore": 88,
"experienceDelta": -0.2,
"listingDelta": -0.1,
"reputationDelta": 0.3,
"sentimentDelta": 0.1
}
]
}{
"code": 2003,
"message": "businessNumbers are mandatory"
}{
"code": 1167,
"message": "API key is missing"
}{
"code": 2151,
"message": "Not a valid reseller/enterprise id."
}{
"code": 1027,
"message": "Invalid business number."
}Headers
e.g. application/json
e.g. [Required] Partner specific API key provided by Birdeye for data exchange.
e.g. [Required] User associated businessNumber.
Media type of the JSON request body.
Query Parameters
Ranking type. top returns the highest experience-score locations first; bottom returns the lowest experience-score locations first.
top, bottom Zero-based index of the first record to return.
Number of records to return. Must be between 1 and 100 (default 10).
Body
List of business numbers (max 100).
Start date in MM/DD/YYYY format.
End date in MM/DD/YYYY format.
Email of the user performing the request.
Review sources to include (e.g. Google, Facebook).
Rating values to filter (e.g. "1", "2", "3", "4", "5").
List of hierarchy nodes to filter by level.
Show child attributes
Show child attributes
The level to group results by (e.g. Region).