curl --request POST \
--url https://api.birdeye.com/resources/v1/reports/nps/time/elst \
--header 'Content-Type: application/json' \
--data '
{
"startDate": "10/08/2019",
"endDate": "01/15/2020",
"reviewSites": [
"2",
"110"
]
}
'import requests
url = "https://api.birdeye.com/resources/v1/reports/nps/time/elst"
payload = {
"startDate": "10/08/2019",
"endDate": "01/15/2020",
"reviewSites": ["2", "110"]
}
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({startDate: '10/08/2019', endDate: '01/15/2020', reviewSites: ['2', '110']})
};
fetch('https://api.birdeye.com/resources/v1/reports/nps/time/elst', 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/reports/nps/time/elst",
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([
'startDate' => '10/08/2019',
'endDate' => '01/15/2020',
'reviewSites' => [
'2',
'110'
]
]),
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/reports/nps/time/elst"
payload := strings.NewReader("{\n \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\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/reports/nps/time/elst")
.header("Content-Type", "application/json")
.body("{\n \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/reports/nps/time/elst")
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 \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"totalCount": 2,
"avgNpsScore": "-50",
"promoters": "0",
"passives": "50",
"detractors": "50",
"dataPoints": [
{
"label": "10/08/2019 - 10/13/2019",
"shortLabel": "Oct 08-Oct 13 2019",
"startDate": "10/08/2019",
"endDate": "10/13/2019",
"dynamicLabel": {
"header": "label",
"value": "10/08/2019",
"order": 2147483647,
"cellType": "TEXT"
},
"detractorPercentile": 100,
"passivePercentile": 0,
"promoterPercentile": 0,
"npsScore": -100,
"positiveCount": 0,
"negativeCount": 1,
"neutralCount": 0,
"totalCount": 1
},
{
"label": "10/14/2019 - 10/20/2019",
"shortLabel": "Oct 14-Oct 20 2019",
"startDate": "10/14/2019",
"endDate": "10/20/2019",
"dynamicLabel": {
"header": "label",
"value": "10/14/2019",
"order": 2147483647,
"cellType": "TEXT"
},
"detractorPercentile": 0,
"passivePercentile": 100,
"promoterPercentile": 0,
"npsScore": 0,
"positiveCount": 0,
"negativeCount": 0,
"neutralCount": 1,
"totalCount": 1
}
],
"groupByType": "week",
"dateDiff": 100
}{
"code": 1167,
"message": "API key is missing"
}{
"code": 1011,
"message": "Business id is invalid"
}{
"code": 89,
"message": "Rate limit exceeded"
}NPS Over time
NPS Over time gives you the review-derived NPS score for a selected period of time for all locations across businesses and the count of promoters, passives, and detractors for this business. The report can be grouped per day/week/month/year.
NOTE: This report is derived from REVIEW data, served by the review service. The population is review records and can be narrowed using the reviewSites filter.
curl --request POST \
--url https://api.birdeye.com/resources/v1/reports/nps/time/elst \
--header 'Content-Type: application/json' \
--data '
{
"startDate": "10/08/2019",
"endDate": "01/15/2020",
"reviewSites": [
"2",
"110"
]
}
'import requests
url = "https://api.birdeye.com/resources/v1/reports/nps/time/elst"
payload = {
"startDate": "10/08/2019",
"endDate": "01/15/2020",
"reviewSites": ["2", "110"]
}
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({startDate: '10/08/2019', endDate: '01/15/2020', reviewSites: ['2', '110']})
};
fetch('https://api.birdeye.com/resources/v1/reports/nps/time/elst', 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/reports/nps/time/elst",
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([
'startDate' => '10/08/2019',
'endDate' => '01/15/2020',
'reviewSites' => [
'2',
'110'
]
]),
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/reports/nps/time/elst"
payload := strings.NewReader("{\n \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\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/reports/nps/time/elst")
.header("Content-Type", "application/json")
.body("{\n \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.birdeye.com/resources/v1/reports/nps/time/elst")
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 \"startDate\": \"10/08/2019\",\n \"endDate\": \"01/15/2020\",\n \"reviewSites\": [\n \"2\",\n \"110\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"totalCount": 2,
"avgNpsScore": "-50",
"promoters": "0",
"passives": "50",
"detractors": "50",
"dataPoints": [
{
"label": "10/08/2019 - 10/13/2019",
"shortLabel": "Oct 08-Oct 13 2019",
"startDate": "10/08/2019",
"endDate": "10/13/2019",
"dynamicLabel": {
"header": "label",
"value": "10/08/2019",
"order": 2147483647,
"cellType": "TEXT"
},
"detractorPercentile": 100,
"passivePercentile": 0,
"promoterPercentile": 0,
"npsScore": -100,
"positiveCount": 0,
"negativeCount": 1,
"neutralCount": 0,
"totalCount": 1
},
{
"label": "10/14/2019 - 10/20/2019",
"shortLabel": "Oct 14-Oct 20 2019",
"startDate": "10/14/2019",
"endDate": "10/20/2019",
"dynamicLabel": {
"header": "label",
"value": "10/14/2019",
"order": 2147483647,
"cellType": "TEXT"
},
"detractorPercentile": 0,
"passivePercentile": 100,
"promoterPercentile": 0,
"npsScore": 0,
"positiveCount": 0,
"negativeCount": 0,
"neutralCount": 1,
"totalCount": 1
}
],
"groupByType": "week",
"dateDiff": 100
}{
"code": 1167,
"message": "API key is missing"
}{
"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
Id of the Business.
Response
OK
Total number of promoters, passives, and detractors.
Average NPS score.
Total number of promoters.
Total number of passives.
Total number of detractors.
Data points.
Show child attributes
Show child attributes
Grouping by.
Date difference.