curl --request GET \
--url https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown', 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.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"annual_only": true,
"general": [
{
"acc_receivable_net_current": "33410000000",
"accession_no": "0000320193-24-000123",
"cash_and_cash_equivalents": "29943000000",
"cash_at_carrying_value": "29943000000",
"cash_flow_depreciation_and_amortization": "11445000000",
"cost_of_revenue": "210352000000",
"deffered_income_tax": "0",
"depreciation_and_amortization": "11445000000",
"dividend": "0.25",
"earnings_per_share": "6.08",
"filing_date": "2024-11-01T00:00:00.000Z",
"formtype": "10-K",
"goodwill": "8000000000",
"gross_profit": "180683000000",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"income_before_tax": "123485000000",
"income_tax_expense": "29749000000",
"interest_and_dividend_incomes": "4800000000",
"interest_expense": "3900000000",
"inventories": "7286000000",
"long_term_investments": "91479000000",
"net_cash_provided_by_operating_activities": "118254000000",
"net_income": "93736000000",
"net_income_loss": "93736000000",
"operating_income": "123216000000",
"other_current_assets": "14287000000",
"other_non_cash_items": "-2000000000",
"other_non_current_assets": "74834000000",
"payments_for_repurchase": "94949000000",
"property_plant_and_equipment": "45680000000",
"report_period_end_date": "2024-09-30T00:00:00.000Z",
"report_year": 2024,
"repurchase_and_retire_shares": "499000000",
"repurchase_and_retire_value": "94949000000",
"repurchase_shares": "499000000",
"repurchase_value": "94949000000",
"research_and_development_expenses": "31370000000",
"revenue": "391035000000",
"rsu_forfeited": "5.00",
"rsu_granted": "5.00",
"rsu_outstanding": "5.00",
"rsu_vested": "5.00",
"selling_general_and_administrative_expenses": "26097000000",
"share_holders_equity": "56950000000",
"share_price": "225.50",
"shares_outstanding": "15115823000",
"short_term_investments": "35228000000",
"stock_based_compensation": "11688000000",
"ticker": "AAPL",
"total_assets": "364980000000",
"total_current_assets": "152987000000",
"total_liabilities": "308030000000",
"total_non_current_assets": "211993000000",
"unique_identifier": "123456"
}
],
"rev_breakdown": [
{
"axis": [
"ProductOrServiceAxis"
],
"chart": "product",
"chart_member": "aapl:IPhoneMember",
"field": "RevenueFromContractWithCustomerExcludingAssessedTax",
"members": [
"iPhone"
],
"period_months": 3,
"report_date": "2024-09-30T00:00:00.000Z",
"rev_group": "product",
"value": "69138000000"
}
]
}
}{
"code": "authentication_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"expected_format": "uuid",
"message": "The API token provided is not in the expected format. Unusual Whales API tokens are UUIDs, such as 123e4567-e89b-12d3-a456-426614174000.",
"reason": "malformed_token",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "payment_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "This API token is paused because the payment for your API subscription failed. Update your card at https://unusualwhales.com/settings. The same token works again once a payment succeeds.",
"reason": "payment_failed",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "missing_access",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "The API token provided is valid but is not permitted to access this route.",
"reason": "route_not_permitted",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"msg": "Invalid path input: MSFT12 (valid example: AAPL) - Invalid query input(s): date=2023-02-140 (valid example: date=2024-01-18)",
"path": "/api/darkpool/MSFT12",
"query": "date=2023-02-140",
"url": "localhost:4000/api/darkpool/MSFT12?date=2023-02-140"
}Something went wrongFundamental Breakdown
Returns the fundamental financial data for the given ticker, including earnings per share, revenue, dividends, share counts, RSU data, and revenue breakdowns by product and geography.
curl --request GET \
--url https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown', 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.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.unusualwhales.com/api/stock/{ticker}/fundamental-breakdown")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": {
"annual_only": true,
"general": [
{
"acc_receivable_net_current": "33410000000",
"accession_no": "0000320193-24-000123",
"cash_and_cash_equivalents": "29943000000",
"cash_at_carrying_value": "29943000000",
"cash_flow_depreciation_and_amortization": "11445000000",
"cost_of_revenue": "210352000000",
"deffered_income_tax": "0",
"depreciation_and_amortization": "11445000000",
"dividend": "0.25",
"earnings_per_share": "6.08",
"filing_date": "2024-11-01T00:00:00.000Z",
"formtype": "10-K",
"goodwill": "8000000000",
"gross_profit": "180683000000",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"income_before_tax": "123485000000",
"income_tax_expense": "29749000000",
"interest_and_dividend_incomes": "4800000000",
"interest_expense": "3900000000",
"inventories": "7286000000",
"long_term_investments": "91479000000",
"net_cash_provided_by_operating_activities": "118254000000",
"net_income": "93736000000",
"net_income_loss": "93736000000",
"operating_income": "123216000000",
"other_current_assets": "14287000000",
"other_non_cash_items": "-2000000000",
"other_non_current_assets": "74834000000",
"payments_for_repurchase": "94949000000",
"property_plant_and_equipment": "45680000000",
"report_period_end_date": "2024-09-30T00:00:00.000Z",
"report_year": 2024,
"repurchase_and_retire_shares": "499000000",
"repurchase_and_retire_value": "94949000000",
"repurchase_shares": "499000000",
"repurchase_value": "94949000000",
"research_and_development_expenses": "31370000000",
"revenue": "391035000000",
"rsu_forfeited": "5.00",
"rsu_granted": "5.00",
"rsu_outstanding": "5.00",
"rsu_vested": "5.00",
"selling_general_and_administrative_expenses": "26097000000",
"share_holders_equity": "56950000000",
"share_price": "225.50",
"shares_outstanding": "15115823000",
"short_term_investments": "35228000000",
"stock_based_compensation": "11688000000",
"ticker": "AAPL",
"total_assets": "364980000000",
"total_current_assets": "152987000000",
"total_liabilities": "308030000000",
"total_non_current_assets": "211993000000",
"unique_identifier": "123456"
}
],
"rev_breakdown": [
{
"axis": [
"ProductOrServiceAxis"
],
"chart": "product",
"chart_member": "aapl:IPhoneMember",
"field": "RevenueFromContractWithCustomerExcludingAssessedTax",
"members": [
"iPhone"
],
"period_months": 3,
"report_date": "2024-09-30T00:00:00.000Z",
"rev_group": "product",
"value": "69138000000"
}
]
}
}{
"code": "authentication_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"expected_format": "uuid",
"message": "The API token provided is not in the expected format. Unusual Whales API tokens are UUIDs, such as 123e4567-e89b-12d3-a456-426614174000.",
"reason": "malformed_token",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "payment_required",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "This API token is paused because the payment for your API subscription failed. Update your card at https://unusualwhales.com/settings. The same token works again once a payment succeeds.",
"reason": "payment_failed",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"code": "missing_access",
"documentation_url": "https://api.unusualwhales.com/docs",
"message": "The API token provided is valid but is not permitted to access this route.",
"reason": "route_not_permitted",
"request_id": "GNI_YTC1CRnw2LACGBvE",
"retryable": false,
"support_email": "[email protected]",
"token_url": "https://unusualwhales.com/dashboard/api"
}{
"msg": "Invalid path input: MSFT12 (valid example: AAPL) - Invalid query input(s): date=2023-02-140 (valid example: date=2024-01-18)",
"path": "/api/darkpool/MSFT12",
"query": "date=2023-02-140",
"url": "localhost:4000/api/darkpool/MSFT12?date=2023-02-140"
}Something went wrongAuthorizations
Query Parameters
Return the rev_breakdown rows that cover this period. quarter returns rows whose period_months is 3 or null. When annual_only is true, quarter also returns the 12-month rows. annual returns only 12-month rows. A 10-K has a 12-month row for its fiscal year with the same report_date as its Q4 row. When the Q4 value can't be computed from the company's earlier reports for that fiscal year, for example because the company reports a breakdown only in its annual report, the 12-month row is the only row for that breakdown. all returns every row, including 6-month and 9-month rows.
quarter, annual, all "annual"
Was this page helpful?
