curl --request POST \
--url https://api.bigdata.com/v1/analyst-estimates/query \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"identifier": {
"type": "rp_entity_id",
"value": "4A6F00"
},
"period": "annual",
"limit": 20
}
'import requests
url = "https://api.bigdata.com/v1/analyst-estimates/query"
payload = {
"identifier": {
"type": "rp_entity_id",
"value": "4A6F00"
},
"period": "annual",
"limit": 20
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
identifier: {type: 'rp_entity_id', value: '4A6F00'},
period: 'annual',
limit: 20
})
};
fetch('https://api.bigdata.com/v1/analyst-estimates/query', 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.bigdata.com/v1/analyst-estimates/query",
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([
'identifier' => [
'type' => 'rp_entity_id',
'value' => '4A6F00'
],
'period' => 'annual',
'limit' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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.bigdata.com/v1/analyst-estimates/query"
payload := strings.NewReader("{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.bigdata.com/v1/analyst-estimates/query")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bigdata.com/v1/analyst-estimates/query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"results": {
"rp_entity_id": "4A6F00",
"target_identifier_id": "GOOGL",
"fields": [
"FISCAL_PERIOD_END_DATE",
"REVENUE_LOW",
"REVENUE_HIGH",
"REVENUE_AVG",
"EBITDA_LOW",
"EBITDA_HIGH",
"EBITDA_AVG",
"EBIT_LOW",
"EBIT_HIGH",
"EBIT_AVG",
"NET_INCOME_LOW",
"NET_INCOME_HIGH",
"NET_INCOME_AVG",
"SGA_EXPENSE_LOW",
"SGA_EXPENSE_HIGH",
"SGA_EXPENSE_AVG",
"EPS_LOW",
"EPS_HIGH",
"EPS_AVG",
"NUM_ANALYSTS_REVENUE",
"NUM_ANALYSTS_EPS"
],
"values": [
"2025-12-31",
387588929898,
399321530206,
394966067919,
135473353787,
139574231263,
138051873327,
115816555170,
119322406979,
118020938853,
118458970299,
126884966950,
121111982610,
55347517673,
57022927502,
56400969528,
9.94514,
10.19402,
9.51707,
42,
47
]
},
"errors": [
{
"message": "<string>"
}
],
"metadata": {
"request_id": "<string>",
"timestamp": "<string>"
},
"sources": [
{
"id": "CA9FA3",
"name": "Corporate Fundamentals"
}
],
"usage": {}
}Analyst Estimates
Retrieves analyst financial estimates for a given symbol, including projected revenue, earnings per share (EPS), and other key metrics, as forecasted by industry analysts.
Each request returns estimates for one company. The results.values array is ordered
with the furthest-future forecasted period first, working backward to the oldest
period returned.
Forward-looking forecasts and past periods sit on the same timeline, so how much history and how far ahead analysts forecast varies by company. Coverage is densest for the next two to three years and thins out beyond that.
Filtering by date range is not supported. Use period to choose annual or quarterly
estimates and limit to control how many periods are returned.
curl --request POST \
--url https://api.bigdata.com/v1/analyst-estimates/query \
--header 'Content-Type: application/json' \
--header 'X-API-KEY: <api-key>' \
--data '
{
"identifier": {
"type": "rp_entity_id",
"value": "4A6F00"
},
"period": "annual",
"limit": 20
}
'import requests
url = "https://api.bigdata.com/v1/analyst-estimates/query"
payload = {
"identifier": {
"type": "rp_entity_id",
"value": "4A6F00"
},
"period": "annual",
"limit": 20
}
headers = {
"X-API-KEY": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
identifier: {type: 'rp_entity_id', value: '4A6F00'},
period: 'annual',
limit: 20
})
};
fetch('https://api.bigdata.com/v1/analyst-estimates/query', 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.bigdata.com/v1/analyst-estimates/query",
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([
'identifier' => [
'type' => 'rp_entity_id',
'value' => '4A6F00'
],
'period' => 'annual',
'limit' => 20
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-KEY: <api-key>"
],
]);
$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.bigdata.com/v1/analyst-estimates/query"
payload := strings.NewReader("{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-KEY", "<api-key>")
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.bigdata.com/v1/analyst-estimates/query")
.header("X-API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.bigdata.com/v1/analyst-estimates/query")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"identifier\": {\n \"type\": \"rp_entity_id\",\n \"value\": \"4A6F00\"\n },\n \"period\": \"annual\",\n \"limit\": 20\n}"
response = http.request(request)
puts response.read_body{
"results": {
"rp_entity_id": "4A6F00",
"target_identifier_id": "GOOGL",
"fields": [
"FISCAL_PERIOD_END_DATE",
"REVENUE_LOW",
"REVENUE_HIGH",
"REVENUE_AVG",
"EBITDA_LOW",
"EBITDA_HIGH",
"EBITDA_AVG",
"EBIT_LOW",
"EBIT_HIGH",
"EBIT_AVG",
"NET_INCOME_LOW",
"NET_INCOME_HIGH",
"NET_INCOME_AVG",
"SGA_EXPENSE_LOW",
"SGA_EXPENSE_HIGH",
"SGA_EXPENSE_AVG",
"EPS_LOW",
"EPS_HIGH",
"EPS_AVG",
"NUM_ANALYSTS_REVENUE",
"NUM_ANALYSTS_EPS"
],
"values": [
"2025-12-31",
387588929898,
399321530206,
394966067919,
135473353787,
139574231263,
138051873327,
115816555170,
119322406979,
118020938853,
118458970299,
126884966950,
121111982610,
55347517673,
57022927502,
56400969528,
9.94514,
10.19402,
9.51707,
42,
47
]
},
"errors": [
{
"message": "<string>"
}
],
"metadata": {
"request_id": "<string>",
"timestamp": "<string>"
},
"sources": [
{
"id": "CA9FA3",
"name": "Corporate Fundamentals"
}
],
"usage": {}
}Authorizations
Body
Object specifying which identifier you are using to request the analyst estimates. You must supply one type and its corresponding value.
Show child attributes
Show child attributes
Select whether the estimates to be provided are on an annual or quarterly basis.
annual, quarter "annual"
Maximum number of analyst estimates to return, starting from the furthest-future forecasted period available and working backwards. If omitted, defaults to 20. Values above 200 are rejected.
20
Response
Successful Response
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
The content catalog sources the response was built from, one entry per source. Empty when no catalog source contributed.
Show child attributes
Show child attributes
Tokens the request consumed, per content tier. Present only for API keys billed in tokens.
Show child attributes
Show child attributes
Was this page helpful?