Income StatementIncome Statement API

OnlineCredit Usage:1 per callRefreshed 1 month ago
avg: 210ms|p50: 199ms|p75: 218ms|p90: 240ms|p99: 286ms

Overview

To use Income Statement, you need an API key. You can get one by creating a free account and visiting your dashboard.

GET Endpoint

URL
https://api.apiverve.com/v1/incomestatement

Example

How to call the Income Statement API in different programming languages.

cURL Request
curl -X GET \
  "https://api.apiverve.com/v1/incomestatement?ticker=AAPL&year=2025&quarter=4" \
  -H "X-API-Key: your_api_key_here"
JavaScript (Fetch API)
const response = await fetch('https://api.apiverve.com/v1/incomestatement?ticker=AAPL&year=2025&quarter=4', {
  method: 'GET',
  headers: {
    'X-API-Key': 'your_api_key_here',
    'Content-Type': 'application/json'
  }
});

const data = await response.json();
console.log(data);
Python (Requests)
import requests

headers = {
    'X-API-Key': 'your_api_key_here',
    'Content-Type': 'application/json'
}

response = requests.get('https://api.apiverve.com/v1/incomestatement?ticker=AAPL&year=2025&quarter=4', headers=headers)

data = response.json()
print(data)
Go (net/http)
package main

import (
    "fmt"
    "io"
    "net/http"

)

func main() {
    req, _ := http.NewRequest("GET", "https://api.apiverve.com/v1/incomestatement?ticker=AAPL&year=2025&quarter=4", nil)

    req.Header.Set("X-API-Key", "your_api_key_here")
    req.Header.Set("Content-Type", "application/json")

    client := &http.Client{}
    resp, err := client.Do(req)
    if err != nil {
        panic(err)
    }
    defer resp.Body.Close()

    body, _ := io.ReadAll(resp.Body)
    fmt.Println(string(body))
}
Example Response
{
  "status": "ok",
  "error": null,
  "data": {
    "ticker": "AAPL",
    "company": "Apple Inc.",
    "cik": "0000320193",
    "fiscalYear": 2025,
    "fiscalQuarter": 4,
    "filingType": "10-K",
    "filingDate": "2025-10-31",
    "periodEnd": "2025-09-27",
    "income": {
      "revenue": 416161000000,
      "costOfRevenue": 220960000000,
      "grossProfit": 195201000000,
      "operatingIncome": 133050000000,
      "netIncome": 112010000000,
      "eps": 7.46,
      "epsBasic": 7.49,
      "sharesOutstanding": 15004697000,
      "sharesOutstandingBasic": 14948500000,
      "researchAndDevelopment": 34550000000,
      "sellingGeneralAndAdmin": 27601000000,
      "interestExpense": null,
      "incomeTax": 20719000000,
      "depreciation": 11698000000,
      "stockBasedCompensation": 12863000000
    },
    "margins": {
      "grossMargin": 46.91,
      "operatingMargin": 31.97,
      "netMargin": 26.92,
      "effectiveTaxRate": 15.57
    },
    "growth": {
      "revenueYoY": 6.43,
      "netIncomeYoY": 19.5,
      "epsYoY": 22.7
    },
    "formatted": {
      "revenue": "$416.16B",
      "grossProfit": "$195.20B",
      "operatingIncome": "$133.05B",
      "netIncome": "$112.01B"
    }
  }
}

Authentication

The Income Statement API requires authentication via API key. Include your API key in the request header:

Required Header
X-API-Key: your_api_key_here

Learn more about authentication →

Interactive API Playground

Test the Income Statement API directly in your browser with live requests and responses.

Parameters

The following parameters are available for the Income Statement API:

Some Income Statement parameters marked with Premium are available exclusively on paid plans.View pricing

Get Income Statement by Ticker

ParameterTypeRequiredDescriptionDefaultExample
tickerstringrequired
Stock ticker symbol (e.g. AAPL, MSFT, ADBE)
Length: 1 - 6 chars
-AAPL
yearPremiumintegeroptional
Fiscal year to retrieve. Defaults to latest available.
Range: 2000 - 2030
-2025
quarterPremiumintegeroptional
Fiscal quarter to retrieve. Defaults to latest available.
Range: 1 - 4
-4

Response

The Income Statement API returns responses in JSON, XML, YAML, and CSV formats. The JSON response is shown in the Example section above; alternative formats below.

Other Response Formats

XML Response
200 OK
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>ok</status>
  <error xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
  <data>
    <ticker>AAPL</ticker>
    <company>Apple Inc.</company>
    <cik>0000320193</cik>
    <fiscalYear>2025</fiscalYear>
    <fiscalQuarter>4</fiscalQuarter>
    <filingType>10-K</filingType>
    <filingDate>2025-10-31</filingDate>
    <periodEnd>2025-09-27</periodEnd>
    <income>
      <revenue>416161000000</revenue>
      <costOfRevenue>220960000000</costOfRevenue>
      <grossProfit>195201000000</grossProfit>
      <operatingIncome>133050000000</operatingIncome>
      <netIncome>112010000000</netIncome>
      <eps>7.46</eps>
      <epsBasic>7.49</epsBasic>
      <sharesOutstanding>15004697000</sharesOutstanding>
      <sharesOutstandingBasic>14948500000</sharesOutstandingBasic>
      <researchAndDevelopment>34550000000</researchAndDevelopment>
      <sellingGeneralAndAdmin>27601000000</sellingGeneralAndAdmin>
      <interestExpense xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
      <incomeTax>20719000000</incomeTax>
      <depreciation>11698000000</depreciation>
      <stockBasedCompensation>12863000000</stockBasedCompensation>
    </income>
    <margins>
      <grossMargin>46.91</grossMargin>
      <operatingMargin>31.97</operatingMargin>
      <netMargin>26.92</netMargin>
      <effectiveTaxRate>15.57</effectiveTaxRate>
    </margins>
    <growth>
      <revenueYoY>6.43</revenueYoY>
      <netIncomeYoY>19.5</netIncomeYoY>
      <epsYoY>22.7</epsYoY>
    </growth>
    <formatted>
      <revenue>$416.16B</revenue>
      <grossProfit>$195.20B</grossProfit>
      <operatingIncome>$133.05B</operatingIncome>
      <netIncome>$112.01B</netIncome>
    </formatted>
  </data>
</response>
YAML Response
200 OK
status: ok
error: null
data:
  ticker: AAPL
  company: Apple Inc.
  cik: '0000320193'
  fiscalYear: 2025
  fiscalQuarter: 4
  filingType: 10-K
  filingDate: '2025-10-31'
  periodEnd: '2025-09-27'
  income:
    revenue: 416161000000
    costOfRevenue: 220960000000
    grossProfit: 195201000000
    operatingIncome: 133050000000
    netIncome: 112010000000
    eps: 7.46
    epsBasic: 7.49
    sharesOutstanding: 15004697000
    sharesOutstandingBasic: 14948500000
    researchAndDevelopment: 34550000000
    sellingGeneralAndAdmin: 27601000000
    interestExpense: null
    incomeTax: 20719000000
    depreciation: 11698000000
    stockBasedCompensation: 12863000000
  margins:
    grossMargin: 46.91
    operatingMargin: 31.97
    netMargin: 26.92
    effectiveTaxRate: 15.57
  growth:
    revenueYoY: 6.43
    netIncomeYoY: 19.5
    epsYoY: 22.7
  formatted:
    revenue: $416.16B
    grossProfit: $195.20B
    operatingIncome: $133.05B
    netIncome: $112.01B
CSV Response
200 OK
keyvalue
tickerAAPL
companyApple Inc.
cik0000320193
fiscalYear2025
fiscalQuarter4
filingType10-K
filingDate2025-10-31
periodEnd2025-09-27
income{revenue:416161000000,costOfRevenue:220960000000,grossProfit:195201000000,operatingIncome:133050000000,netIncome:112010000000,eps:7.46,epsBasic:7.49,sharesOutstanding:15004697000,sharesOutstandingBasic:14948500000,researchAndDevelopment:34550000000,sellingGeneralAndAdmin:27601000000,interestExpense:null,incomeTax:20719000000,depreciation:11698000000,stockBasedCompensation:12863000000}
margins{grossMargin:46.91,operatingMargin:31.97,netMargin:26.92,effectiveTaxRate:15.57}
growth{revenueYoY:6.43,netIncomeYoY:19.5,epsYoY:22.7}
formatted{revenue:$416.16B,grossProfit:$195.20B,operatingIncome:$133.05B,netIncome:$112.01B}

Response Structure

All API responses follow a consistent structure with the following fields:

FieldTypeDescriptionExample
statusstringIndicates whether the request was successful ("ok") or failed ("error")ok
errorstring | nullContains error message if status is "error", otherwise nullnull
dataobject | nullContains the API response data if successful, otherwise null{...}

Learn more about response formats →

Response Data Fields

When the request is successful, the data object contains the following fields:

Response fields marked with Premium are available exclusively on paid plans.View pricing
FieldTypeSample ValueDescription
tickerstring"AAPL"
Stock ticker symbol for the company
companystring"Apple Inc."
Official registered name of the company
cikstring"0000320193"
SEC Central Index Key unique identifier
fiscalYearnumber2025
Fiscal year of the reporting period
fiscalQuarternumber4
Fiscal quarter number (1-4)
filingTypePremiumstring"10-K"
SEC filing type (10-Q, 10-K)
filingDatestring"2025-10-31"
Date the SEC filing was submitted
periodEndstring"2025-09-27"
End date of the reporting period
incomeobject{...}
-
revenuePremiumnumber416161000000
Total revenue for the period
costOfRevenuenumber220960000000
Direct costs of producing goods sold
grossProfitnumber195201000000
Revenue minus cost of revenue
operatingIncomenumber133050000000
Income from normal business operations
netIncomePremiumnumber112010000000
Bottom-line profit after all expenses
epsPremiumnumber7.46
Diluted earnings per share
epsBasicnumber7.49
Basic earnings per share
sharesOutstandingPremiumnumber15004697000
Diluted weighted-average shares outstanding
sharesOutstandingBasicnumber14948500000
Basic weighted-average shares outstanding
researchAndDevelopmentnumber34550000000
Research and development expenses
sellingGeneralAndAdminnumber27601000000
Selling, general and administrative expenses

Headers

Only X-API-Key is required. Optional headers include Accept for response format negotiation (JSON, XML, or YAML), User-Agent, and X-Request-ID for request tracing. See all request headers →

GraphQL AccessALPHA

Access Income Statement through GraphQL to combine it with other API calls in a single request. Query only the income statement data you need with precise field selection, and orchestrate complex data fetching workflows.

Test Income Statement in the GraphQL Explorer to confirm availability and experiment with queries.

Credit Cost: Each API called in your GraphQL query consumes its standard credit cost.

GraphQL Endpoint
POST https://api.apiverve.com/v1/graphql
GraphQL Query Example
query {
  incomestatement(
    input: {
      ticker: "AAPL"
      year: 2025
      quarter: 4
    }
  ) {
    ticker
    company
    cik
    fiscalYear
    fiscalQuarter
    filingType
    filingDate
    periodEnd
    income {
      revenue
      costOfRevenue
      grossProfit
      operatingIncome
      netIncome
      eps
      epsBasic
      sharesOutstanding
      sharesOutstandingBasic
      researchAndDevelopment
      sellingGeneralAndAdmin
      interestExpense
      incomeTax
      depreciation
      stockBasedCompensation
    }
    margins {
      grossMargin
      operatingMargin
      netMargin
      effectiveTaxRate
    }
    growth {
      revenueYoY
      netIncomeYoY
      epsYoY
    }
    formatted {
      revenue
      grossProfit
      operatingIncome
      netIncome
    }
  }
}

Note: Authentication is handled via the x-api-key header in your GraphQL request, not as a query parameter.

CORS Support

The Income Statement API accepts cross-origin requests from any origin, so it can be called directly from browser-based applications without a proxy. See CORS support →

Rate Limiting

Income Statement requests are throttled per minute on the Free plan and unthrottled on paid plans. Exceeding the limit returns 429 Too Many Requests; rate-limit usage is reported in the X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset response headers. See per-plan limits and best practices →

Error Codes

The Income Statement API uses standard HTTP status codes — 200 on success, 400 for invalid parameters, 401 for missing or invalid keys, 403 for insufficient credits, 429 for rate-limit exhaustion, and 500/503 for server-side issues. Each error response includes an X-Request-ID header you can quote when contacting support. See full error handling guide →

SDKs for Income Statement

Official Income Statement packages on npm, PyPI, NuGet, and JitPack — plus a Postman collection and an OpenAPI spec. See the SDK guide →

No-Code Integrations

Income Statement works with Zapier, Make, Pipedream, n8n, and Power Automate using the same API key. See setup guides →

Frequently Asked Questions

How do I get an API key for Income Statement?
Sign up for a free account at dashboard.apiverve.com. Your API key will be automatically generated and available in your dashboard. The same key works for Income Statement and all other APIVerve APIs. The free plan includes 1,000 credits plus a 500 credit bonus.
How many credits does Income Statement cost?

Each successful Income Statement API call consumes credits based on plan tier. Check the pricing section above for the exact credit cost. Failed requests and errors don't consume credits, so you only pay for successful income statement lookups.

Can I use Income Statement in production?

The free plan is for testing and development only. For production use of Income Statement, upgrade to a paid plan (Starter, Pro, or Mega) which includes commercial use rights, no attribution requirements, and guaranteed uptime SLAs. All paid plans are production-ready.

Can I use Income Statement from a browser?
Yes! The Income Statement API supports CORS with wildcard configuration, so you can call it directly from browser-based JavaScript without needing a proxy server. See the CORS section above for details.
What happens if I exceed my Income Statement credit limit?

When you reach your monthly credit limit, Income Statement API requests will return an error until you upgrade your plan or wait for the next billing cycle. You'll receive notifications at 80% and 95% usage to give you time to upgrade if needed.

What's Next?

Continue your journey with these recommended resources

Was this page helpful?