Income Statement API
getIncomeStatements
The getIncomeStatements API from Barchart OnDemand provides access to public company financial income statements based on symbol. The data provided by the getIncomeStatements API can be used to gain insight on how a company is performing on an economic basis.
View All APIsContact Us to Get Access
Inputs
symbolsrequired
A symbol or code that identifies a financial instrument. Multiple symbols separated by a comma may be used.
Type
list (A comma or semi-colon delimited string.)
Example
IBM,AAPL,GOOG
frequencyrequired
The frequency of financial statement reporting, either Quarterly ("Quarter") or Annually ("Annual").
Type
enum (A type which includes a list of valid possible values.)
Example
Quarter
Valid Values
Quarter, Annual
countoptional
The number of Quarterly or Annual periods of financial statements to return.
Type
int (A numeric type defining a whole number. (example: 2))
Example
1
Default
1
rawDataoptional
Return raw data, otherwise sales, costs, expenses, tax, and income data is displayed in thousands.
Type
int (A numeric type defining a whole number. (example: 2))
Example
1
Outputs
symbol
always returned
always returned
A symbol or code that identifies a financial instrument.
string
A sequence of characters. (example: GOOG)
A sequence of characters. (example: GOOG)
date
always returned
always returned
The date of the financial statement.
date
A date in the format of YYYY-MM-DD.
A date in the format of YYYY-MM-DD.
sales
always returned
always returned
Total revenue or sales for the Income Statement period.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
costGoods
always returned
always returned
The cost of goods sold.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
grossProfit
always returned
always returned
Sales less the cost of goods sold.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
operatingExpenses
always returned
always returned
Expenses related to operating the business.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
operatingIncome
always returned
always returned
Gross profit less operating expenses.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
interestExpense
always returned
always returned
The cost incurred by an entity for borrowed funds.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
otherIncomeExpenses
always returned
always returned
Income or expenses not related to normal business operations.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
preTaxIncome
always returned
always returned
Operating income net other income or expenses.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
incomeTax
always returned
always returned
The tax on the company's income.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
netIncome
always returned
always returned
Net income less all expenses and tax.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
basicEpsContOp
always returned
always returned
Income from continuing operations divided by the number of shares outstanding.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
basicEpsTotalOp
always returned
always returned
Net income divided by the number of shares outstanding.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
dilutedEpsContOp
always returned
always returned
Income from continuing operations divided by the number of diluted shares outstanding.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
dilutedEpsBNRI
always returned
always returned
Diluted EPS Before Non-Recurring Items
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
dilutedEpsTotalOp
always returned
always returned
Net income divided by the number of diluted shares outstanding.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
ebitda
always returned
always returned
Earnings before interest, depreciation and amortization.
double
A numeric type defining a number with fractional parts. (example: 2.14)
A numeric type defining a number with fractional parts. (example: 2.14)
Status Code Responses
200
OK
Success
400
Bad Request
The request was invalid, please see the message for more information.
500
Internal Server Error
Something is not working correctly, please contact support.
JSON
GET
GET https://ondemand.websol.barchart.com/getIncomeStatements.json?apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Host: ondemand.websol.barchart.com
POST
POST https://ondemand.websol.barchart.com/getIncomeStatements.json
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Response
{
"status": {
"code": 200,
"message": "Success."
},
"results": [
{
"symbol": "IBM",
"date": "2024-09-30",
"sales": 14968000000,
"costGoods": 6547000000,
"grossProfit": 8420000000,
"operatingExpenses": 6787000000,
"operatingIncome": 1634000000,
"interestExpense": 429000000,
"otherIncomeExpenses": -2007000000,
"preTaxIncome": -802000000,
"incomeTax": -485000000,
"netIncome": -330000000,
"basicEpsContOp": -0.34,
"basicEpsTotalOp": -0.36,
"dilutedEpsContOp": -0.34,
"dilutedEpsBNRI": 2.3,
"dilutedEpsTotalOp": -0.36,
"ebitda": 2902000000
},
{
"symbol": "AAPL",
"date": "2024-09-30",
"sales": 94930000000,
"costGoods": 51051000000,
"grossProfit": 43879000000,
"operatingExpenses": 14288000000,
"operatingIncome": 29591000000,
"interestExpense": 0,
"otherIncomeExpenses": 19000000,
"preTaxIncome": 29610000000,
"incomeTax": 14874000000,
"netIncome": 14736000000,
"basicEpsContOp": 0.9851,
"basicEpsTotalOp": 0.99,
"dilutedEpsContOp": 0.9804,
"dilutedEpsBNRI": 1.64,
"dilutedEpsTotalOp": 0.97,
"ebitda": 32502000000
},
{
"symbol": "GOOG",
"date": "2024-09-30",
"sales": 88268000000,
"costGoods": 36474000000,
"grossProfit": 51794000000,
"operatingExpenses": 23273000000,
"operatingIncome": 28521000000,
"interestExpense": 0,
"otherIncomeExpenses": 3185000000,
"preTaxIncome": 31706000000,
"incomeTax": 5405000000,
"netIncome": 26301000000,
"basicEpsContOp": 2.14,
"basicEpsTotalOp": 2.14,
"dilutedEpsContOp": 1.9799,
"dilutedEpsBNRI": 2.12,
"dilutedEpsTotalOp": 2.12,
"ebitda": 32506000000
}
]
}
XML
GET
GET https://ondemand.websol.barchart.com/getIncomeStatements.xml?apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Host: ondemand.websol.barchart.com
POST
POST https://ondemand.websol.barchart.com/getIncomeStatements.xml
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Response
<?xml version="1.0" encoding="utf-8"?>
<getIncomeStatements>
<status>
<code>200</code>
<message>Success.</message>
</status>
<item>
<symbol>IBM</symbol>
<date>2024-09-30</date>
<sales>14968000000</sales>
<costGoods>6547000000</costGoods>
<grossProfit>8420000000</grossProfit>
<operatingExpenses>6787000000</operatingExpenses>
<operatingIncome>1634000000</operatingIncome>
<interestExpense>429000000</interestExpense>
<otherIncomeExpenses>-2007000000</otherIncomeExpenses>
<preTaxIncome>-802000000</preTaxIncome>
<incomeTax>-485000000</incomeTax>
<netIncome>-330000000</netIncome>
<basicEpsContOp>-0.34</basicEpsContOp>
<basicEpsTotalOp>-0.36</basicEpsTotalOp>
<dilutedEpsContOp>-0.34</dilutedEpsContOp>
<dilutedEpsBNRI>2.3</dilutedEpsBNRI>
<dilutedEpsTotalOp>-0.36</dilutedEpsTotalOp>
<ebitda>2902000000</ebitda>
</item>
<item>
<symbol>AAPL</symbol>
<date>2024-09-30</date>
<sales>94930000000</sales>
<costGoods>51051000000</costGoods>
<grossProfit>43879000000</grossProfit>
<operatingExpenses>14288000000</operatingExpenses>
<operatingIncome>29591000000</operatingIncome>
<interestExpense>0</interestExpense>
<otherIncomeExpenses>19000000</otherIncomeExpenses>
<preTaxIncome>29610000000</preTaxIncome>
<incomeTax>14874000000</incomeTax>
<netIncome>14736000000</netIncome>
<basicEpsContOp>0.9851</basicEpsContOp>
<basicEpsTotalOp>0.99</basicEpsTotalOp>
<dilutedEpsContOp>0.9804</dilutedEpsContOp>
<dilutedEpsBNRI>1.64</dilutedEpsBNRI>
<dilutedEpsTotalOp>0.97</dilutedEpsTotalOp>
<ebitda>32502000000</ebitda>
</item>
<item>
<symbol>GOOG</symbol>
<date>2024-09-30</date>
<sales>88268000000</sales>
<costGoods>36474000000</costGoods>
<grossProfit>51794000000</grossProfit>
<operatingExpenses>23273000000</operatingExpenses>
<operatingIncome>28521000000</operatingIncome>
<interestExpense>0</interestExpense>
<otherIncomeExpenses>3185000000</otherIncomeExpenses>
<preTaxIncome>31706000000</preTaxIncome>
<incomeTax>5405000000</incomeTax>
<netIncome>26301000000</netIncome>
<basicEpsContOp>2.14</basicEpsContOp>
<basicEpsTotalOp>2.14</basicEpsTotalOp>
<dilutedEpsContOp>1.9799</dilutedEpsContOp>
<dilutedEpsBNRI>2.12</dilutedEpsBNRI>
<dilutedEpsTotalOp>2.12</dilutedEpsTotalOp>
<ebitda>32506000000</ebitda>
</item>
</getIncomeStatements>
CSV
GET
GET https://ondemand.websol.barchart.com/getIncomeStatements.csv?apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Host: ondemand.websol.barchart.com
POST
POST https://ondemand.websol.barchart.com/getIncomeStatements.csv
Host: ondemand.websol.barchart.com
Content-Type: application/x-www-form-urlencoded
Content-Length: length
apikey=YOUR_API_KEY&symbols=IBM%2CAAPL%2CGOOG&frequency=Quarter&count=1&rawData=1
Response
symbol,date,sales,costGoods,grossProfit,operatingExpenses,operatingIncome,interestExpense,otherIncomeExpenses,preTaxIncome,incomeTax,netIncome,basicEpsContOp,basicEpsTotalOp,dilutedEpsContOp,dilutedEpsBNRI,dilutedEpsTotalOp,ebitda
"IBM","2024-09-30","14968000000","6547000000","8420000000","6787000000","1634000000","429000000","-2007000000","-802000000","-485000000","-330000000","-0.34","-0.36","-0.34","2.3","-0.36","2902000000"
"AAPL","2024-09-30","94930000000","51051000000","43879000000","14288000000","29591000000","0","19000000","29610000000","14874000000","14736000000","0.9851","0.99","0.9804","1.64","0.97","32502000000"
"GOOG","2024-09-30","88268000000","36474000000","51794000000","23273000000","28521000000","0","3185000000","31706000000","5405000000","26301000000","2.14","2.14","1.9799","2.12","2.12","32506000000"
PHP
<?php
$ondemand = new SoapClient('https://ondemand.websol.barchart.com/service?wsdl');
$params = [
'apikey' => 'YOUR_API_KEY',
'symbols' => 'IBM,AAPL,GOOG',
'frequency' => 'Quarter',
'count' => '1',
'rawData' => '1',
];
$result = $ondemand->getIncomeStatements($params);
var_dump($result);
Classic ASP
Dim ondemand
Dim result
Set ondemand = Server.CreateObject("MSSOAP.SoapClient30")
ondemand.ClientProperty("ServerHTTPRequest") = True
ondemand.MSSoapInit("https://ondemand.websol.barchart.com/service?wsdl")
Set result = ondemand.getIncomeStatements("YOUR_API_KEY", "IBM,AAPL,GOOG", "Quarter", "1", "1")
Perl
use SOAP::Lite;
use SOAP::WSDL;
my $ondemand = SOAP::Lite
-> service('https://ondemand.websol.barchart.com/service?wsdl');
my $result = $ondemand->getIncomeStatements('YOUR_API_KEY', 'IBM,AAPL,GOOG', 'Quarter', '1', '1');
print $result;
Python
from suds.client import Client
ondemand = Client('https://ondemand.websol.barchart.com/service?wsdl')
result = ondemand.service.getIncomeStatements('YOUR_API_KEY', 'IBM,AAPL,GOOG', 'Quarter', '1', '1')
print(result)
Ruby
require 'savon'
ondemand = Savon.client(wsdl: 'https://ondemand.websol.barchart.com/service?wsdl')
response = ondemand.call(
:getIncomeStatements,
message: {
apikey: 'YOUR_API_KEY',
symbols: 'IBM,AAPL,GOOG',
frequency: 'Quarter',
count: '1',
rawData: '1',
}
)
response.body