# Financial Statements

`GET` `/v1/financials/{ticker}`

Retrieve reported financial statement line items for a ticker. Choose statement type income, balance-sheet or cash-flow and period annual or quarterly; limit controls how many historical periods are returned (default 40). Each period includes the full JSON breakdown of line items from SEC filings - revenue, net income, assets, cash flow and hundreds of other fields - suitable for models, comparables and fundamental screens.

## Use cases

- Income statement, balance sheet and cash flow displays
- Multi-quarter revenue and margin trend analysis
- Cross-company fundamental comparison (e.g. Google vs Meta growth)
- Feeding statement data into valuation and credit models

## Input parameters

| Name | Type | Required | Description |
| --- | --- | --- | --- |
| `ticker` | string | Yes | Ticker. |
| `statement` | string | No | income | balance-sheet | cash-flow (default income). |
| `period` | string | No | annual | quarterly (default annual). |
| `limit` | integer | No | Max periods, 1-400 (default 40). |

## Output parameters

| Name | Type | Description |
| --- | --- | --- |
| `ticker` | string | Ticker. |
| `statement` | string | Statement type returned: income, balance-sheet, or cash-flow. |
| `period` | string | annual or quarterly. |
| `results` | array | Statement periods, most recent first. |
| `results[].date` | string | Period end date (YYYY-MM-DD). |
| `results[].period` | string | Fiscal period label (e.g. FY or Q1). |
| `results[].fiscalYear` | integer | Fiscal year. |
| `results[].reportedCurrency` | string | Reporting currency. |
| `results[].filingDate` | string | SEC filing date. |
| `results[].acceptedDate` | string | SEC acceptance timestamp. |
| `results[].revenue` | float | Total revenue (income statement). |
| `results[].grossProfit` | float | Gross profit (income statement). |
| `results[].netIncome` | float | Net income (income statement). |
| `results[].eps` | float | Earnings per share when available. |
| `count` | integer | Number of periods returned. |

## Example response

```json
{
  "ticker": "AAPL",
  "statement": "income",
  "period": "annual",
  "results": [
    {
      "date": "2025-09-27",
      "period": "FY",
      "fiscalYear": 2025,
      "reportedCurrency": "USD",
      "filingDate": "2025-10-31",
      "acceptedDate": "2025-10-31 06:01:26",
      "eps": 7.49,
      "ebit": 132729000000,
      "ebitda": 144427000000,
      "revenue": 416161000000,
      "netIncome": 112010000000,
      "epsDiluted": 7.46,
      "grossProfit": 195201000000,
      "costOfRevenue": 220960000000,
      "otherExpenses": 0,
      "interestIncome": 0,
      "costAndExpenses": 283111000000,
      "incomeBeforeTax": 132729000000,
      "interestExpense": 0,
      "operatingIncome": 133050000000,
      "incomeTaxExpense": 20719000000,
      "netInterestIncome": 0,
      "operatingExpenses": 62151000000,
      "bottomLineNetIncome": 112010000000,
      "netIncomeDeductions": 0,
      "weightedAverageShsOut": 14948500000,
      "weightedAverageShsOutDil": 15004697000,
      "depreciationAndAmortization": 11698000000,
      "otherAdjustmentsToNetIncome": 0,
      "sellingAndMarketingExpenses": 0,
      "totalOtherIncomeExpensesNet": -321000000,
      "researchAndDevelopmentExpenses": 34550000000,
      "generalAndAdministrativeExpenses": 27601000000,
      "netIncomeFromContinuingOperations": 112010000000,
      "netIncomeFromDiscontinuedOperations": 0,
      "nonOperatingIncomeExcludingInterest": 321000000,
      "sellingGeneralAndAdministrativeExpenses": 27601000000
    },
    {
      "date": "2024-09-28",
      "period": "FY",
      "fiscalYear": 2024,
      "reportedCurrency": "USD",
      "filingDate": "2024-11-01",
      "acceptedDate": "2024-11-01 06:01:36",
      "eps": 6.11,
      "ebit": 123485000000,
      "ebitda": 134930000000,
      "revenue": 391035000000,
      "netIncome": 93736000000,
      "epsDiluted": 6.08,
      "grossProfit": 180683000000,
      "costOfRevenue": 210352000000,
      "otherExpenses": 0,
      "interestIncome": 0,
      "costAndExpenses": 267819000000,
      "incomeBeforeTax": 123485000000,
      "interestExpense": 0,
      "operatingIncome": 123216000000,
      "incomeTaxExpense": 29749000000,
      "netInterestIncome": 0,
      "operatingExpenses": 57467000000,
      "bottomLineNetIncome": 93736000000,
      "netIncomeDeductions": 0,
      "weightedAverageShsOut": 15343783000,
      "weightedAverageShsOutDil": 15408095000,
      "depreciationAndAmortization": 11445000000,
      "otherAdjustmentsToNetIncome": 0,
      "sellingAndMarketingExpenses": 18639000000,
      "totalOtherIncomeExpensesNet": 269000000,
      "researchAndDevelopmentExpenses": 31370000000,
      "generalAndAdministrativeExpenses": 7458000000,
      "netIncomeFromContinuingOperations": 93736000000,
      "netIncomeFromDiscontinuedOperations": 0,
      "nonOperatingIncomeExcludingInterest": -269000000,
      "sellingGeneralAndAdministrativeExpenses": 26097000000
    }
  ],
  "count": 40
}
```

## Examples

### cURL

```bash
curl "https://api.vantafin.com/v1/financials/AAPL?statement=income&period=annual&apiKey=$VANTAFIN_API_KEY"
```

### Python

```python
from vantafin import RESTClient

client = RESTClient("vf-live-your_api_key")

result = client.get_financials("AAPL", statement="income", period="annual")

print(result)
```

### JavaScript

```javascript
import { RestClient } from "vantafin";

const client = new RestClient("vf-live-your_api_key");

const result = await client.getFinancials("AAPL", { statement: "income", period: "annual" });

console.log(result);
```

### Go

```go
package main

import (
	"fmt"
	"log"

	"github.com/vantafin/vantafin-go"
)

func main() {
	client := vantafin.NewClient("vf-live-your_api_key")

	result, err := client.GetFinancials("AAPL", vantafin.Params{"statement": "income", "period": "annual"})
	if err != nil {
		log.Fatal(err)
	}

	fmt.Println(result)
}
```

### Java

```java
import com.vantafin.RestClient;
import com.vantafin.Params;

public class Example {
    public static void main(String[] args) throws Exception {
        RestClient client = new RestClient("vf-live-your_api_key");

        Object result = client.getFinancials("AAPL", Params.of().set("statement", "income").set("period", "annual"));

        System.out.println(result);
    }
}
```

### Ruby

```ruby
require "vantafin"

client = Vantafin::RestClient.new("vf-live-your_api_key")

result = client.get_financials("AAPL", statement: "income", period: "annual")

pp result
```
