# StableFinance Income Statements API

> StableFinance Income Statements API is a paid API for AI agents from stablefinance.dev, paid per call via x402, $0.02/call, status unknown (last checked 2026-09-15).

Retrieves income statement financial data (revenue, net income, EPS, etc.) for publicly traded companies by ticker or CIK, supporting annual, quarterly, and TTM periods.

## Facts

- Endpoint: GET https://stablefinance.dev/api/financials/income-statements
- Price: $0.02/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/stablefinance-income-statements-api-d2b078fe
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_1fzPBuAgy0UmF1vf2u6o0

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability stablefinance-income-statements-api-d2b078fe
```

Example prompt: Pull Apple's annual income statements from Financial Datasets AI for the last 5 years — I want to see revenue, net income, gross profit, operating income, and EPS.

## When to prefer this

Use this endpoint when you need structured, machine-readable income statement data for a publicly traded company, especially when you want to filter by reporting period, date range, or retrieve multiple periods at once. Prefer this over general financial news APIs when you need precise numerical financial figures like revenue, EPS, or net income for quantitative analysis or LLM-driven financial research.

## Known failure modes

- Missing required 'period' parameter returns a validation error
- Invalid ticker symbol or CIK returns empty results or 404
- Payment not included or insufficient USDC balance returns HTTP 402
- report_period filter with wrong date format (not YYYY-MM-DD) returns schema validation error
- Limit exceeds 50 returns a validation error
- No matching data for the given date range returns empty income_statements array

## How this service works

Normalized income statements. Invalid or unsupported tickers return upstream 400/404; check /api/company/facts/tickers or endpoint-specific /tickers lists before batching.

## Output

Returns an array of income statement objects for the queried company, each containing ticker, period type (annual/quarterly/ttm), fiscal period label, report date, revenue, gross profit, operating income, net income, EPS (basic and diluted), and currency denomination.

## Example request

```json
{
 "input": {
  "type": "http",
  "method": "GET",
  "queryParams": {
   "limit": 5,
   "period": "annual",
   "ticker": "AAPL"
  }
 },
 "output": {
  "type": "json",
  "example": {
   "income_statements": []
  }
 }
}
```

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "period"
     ],
     "properties": {
      "cik": {
       "type": "string",
       "minLength": 1
      },
      "limit": {
       "type": "integer",
       "maximum": 50,
       "minimum": 1
      },
      "period": {
       "enum": [
        "annual",
        "quarterly",
        "ttm"
       ],
       "type": "string"
      },
      "ticker": {
       "type": "string",
       "minLength": 1
      },
      "report_period": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "report_period_gt": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "report_period_lt": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "report_period_gte": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      },
      "report_period_lte": {
       "type": "string",
       "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
      }
     },
     "additionalProperties": false
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "$schema": "https://json-schema.org/draft/2020-12/schema",
     "required": [
      "income_statements"
     ],
     "properties": {
      "income_statements": {
       "type": "array",
       "items": {}
      }
     },
     "additionalProperties": false
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "income_statements": [
   {
    "period": "annual",
    "ticker": "AAPL",
    "revenue": 391035000000,
    "currency": "USD",
    "net_income": 93736000000,
    "gross_profit": 180683000000,
    "fiscal_period": "FY2024",
    "report_period": "2024-09-28",
    "operating_income": 123216000000,
    "earnings_per_share": 6.11,
    "earnings_per_share_diluted": 6.08
   }
  ]
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/stablefinance-income-statements-api-d2b078fe/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from stablefinance.dev](https://www.zero.xyz/host/stablefinance.dev/llms.txt)
