> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockinsights.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Income Statement

> Retrieve a structured income statement (profit & loss) for an Indian company. By default, this returns the latest consolidated quarterly result. Supply optional period, reporting type, or scope parameters for a different statement. The financials structure is selected by the returned profile: bank, nonbank, life_insurance, general_insurance, or investment_trust.

Enter a company ticker to get its latest consolidated quarterly income
statement. You only need to provide a date, reporting type, or scope when you
want something different.

For example, a request with only `ticker=RELIANCE` uses:

* Latest available period
* `reporting_type=quarterly`
* `statement_scope=consolidated`

Use `period_end_date` for an exact historical result. Common reporting-period
dates are `2025-03-31`, `2025-06-30`, `2025-09-30`, and `2025-12-31`.
Availability depends on the selected reporting type.


## OpenAPI

````yaml openapi-india get /api/in/v0/financial-statements/income-statement
openapi: 3.0.0
info:
  title: stockinsights.ai APIs
  description: All the APIs of stockinsights.ai
  version: 1.0.0
servers:
  - url: https://stockinsights-ai-main-95a26a0.zuplo.app
security:
  - bearerAuth: []
tags:
  - name: Financial Statements
    description: Financial statements endpoints for Indian companies
  - name: Shareholding
    description: >-
      Historical shareholding patterns and disclosed holders for Indian
      companies
paths:
  /api/in/v0/financial-statements/income-statement:
    get:
      tags:
        - Financial Statements
      summary: Income Statement
      description: >-
        Retrieve a structured income statement (profit & loss) for an Indian
        company. By default, this returns the latest consolidated quarterly
        result. Supply optional period, reporting type, or scope parameters for
        a different statement. The financials structure is selected by the
        returned profile: bank, nonbank, life_insurance, general_insurance, or
        investment_trust.
      operationId: getIncomeStatement
      parameters:
        - $ref: '#/components/parameters/StatementTicker'
        - $ref: '#/components/parameters/PeriodEndDate'
        - $ref: '#/components/parameters/ReportingType'
        - $ref: '#/components/parameters/StatementScope'
      responses:
        '200':
          description: >-
            Successful response with income statement data. Returns null data if
            no statement is available for the given parameters.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/XbrlStatementResponse'
              example:
                status: success
                data:
                  company_id: x9t057a0io1tdakqk19y
                  profile: nonbank
                  statement_type: income_statement
                  statement_scope: consolidated
                  reporting_type: annual
                  fiscal_year: 2025
                  fiscal_quarter: Q4
                  period_end_date: '2025-03-31'
                  audit_status: Audited
                  currency: INR
                  scale: crores
                  financials:
                    income:
                      sales: 981238
                      other_income: 24973
                    expenses:
                      raw_materials_cost: null
                      employee_cost: null
                      interest_expense: null
                      depreciation: 48062
                      other_expenses: null
                    profit_before_tax: 114671
                    tax_expense:
                      current_tax: 27050
                      deferred_tax: 6312
                      tax_for_earlier_years: null
                      mat_credit_or_entitlement: null
                      other_tax_expenses: null
                    profit_after_tax: 81309
                    earnings_per_share:
                      basic: 51.47
                      diluted: 51.47
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  parameters:
    StatementTicker:
      name: ticker
      in: query
      required: true
      description: >-
        Company ticker symbol. Supports formats: plain ticker (`RELIANCE`),
        exchange-prefixed with dot (`NSE.RELIANCE`, `BSE.RELIANCE`), or colon
        (`NSE:RELIANCE`, `BSE:RELIANCE`), and BSE numeric IDs (`BSE.500325`).
        When no exchange is specified, matches against the generic stock ticker.
      schema:
        type: string
        example: RELIANCE
    PeriodEndDate:
      name: period_end_date
      in: query
      required: false
      description: >-
        Optional reporting-period end date in `YYYY-MM-DD` format. Common Indian
        reporting boundaries include `2025-03-31`, `2025-06-30`, `2025-09-30`,
        and `2025-12-31`; availability depends on the selected statement and
        reporting type. Omit this parameter to receive the latest matching
        statement.
      examples:
        marchQuarterEnd:
          summary: March quarter end
          value: '2025-03-31'
        juneQuarterEnd:
          summary: June quarter end
          value: '2025-06-30'
        septemberQuarterEnd:
          summary: September quarter end
          value: '2025-09-30'
        decemberQuarterEnd:
          summary: December quarter end
          value: '2025-12-31'
      schema:
        type: string
        format: date
    ReportingType:
      name: reporting_type
      in: query
      required: false
      description: Type of reporting period. Defaults to `quarterly`.
      schema:
        type: string
        enum:
          - quarterly
          - half_yearly
          - nine_months
          - annual
        default: quarterly
        example: quarterly
    StatementScope:
      name: statement_scope
      in: query
      required: false
      description: >-
        Whether to retrieve consolidated or standalone financial statements.
        Defaults to `consolidated`.
      schema:
        type: string
        enum:
          - consolidated
          - standalone
        default: consolidated
        example: consolidated
  schemas:
    XbrlStatementResponse:
      type: object
      properties:
        status:
          type: string
          enum:
            - success
          description: Response status
        data:
          $ref: '#/components/schemas/XbrlStatementData'
          type: object
          nullable: true
          description: >-
            Financial statement data. Null if no data is available for the given
            parameters.
    XbrlStatementData:
      type: object
      properties:
        company_id:
          type: string
          description: Internal company identifier
        profile:
          type: string
          enum:
            - bank
            - nonbank
            - life_insurance
            - general_insurance
            - investment_trust
          description: >-
            Company profile discriminator. The financials structure varies by
            profile.
        statement_type:
          type: string
          enum:
            - income_statement
            - balance_sheet
            - cash_flow
          description: Type of financial statement
        statement_scope:
          type: string
          enum:
            - consolidated
            - standalone
          description: Whether the statement is consolidated or standalone
        reporting_type:
          type: string
          enum:
            - quarterly
            - half_yearly
            - nine_months
            - annual
            - as_of
          description: >-
            Reporting period type. `as_of` is only applicable for balance
            sheets.
        fiscal_year:
          type: integer
          description: Fiscal year
        fiscal_quarter:
          type: string
          enum:
            - Q1
            - Q2
            - Q3
            - Q4
          description: Fiscal quarter
        period_end_date:
          type: string
          format: date
          description: End date of the reporting period
        audit_status:
          type: string
          nullable: true
          description: Audit status of the filing (e.g., Audited, UnAudited)
        currency:
          type: string
          description: Currency of the reported values (e.g., INR)
        scale:
          type: string
          description: Scale of the reported values (e.g., crores)
        financials:
          type: object
          description: >-
            Structured financial statement data. Structure varies by statement
            type and profile (bank, nonbank, life_insurance, general_insurance,
            or investment_trust). All numeric values are in the specified
            currency and scale, rounded to 2 decimal places. Null values
            indicate the line item is not reported or unavailable.
          additionalProperties: true
    Error:
      type: object
      properties:
        errors:
          type: array
          items:
            type: object
            properties:
              status:
                type: string
                description: Error status
              title:
                type: string
                description: Error description
              message:
                type: string
                description: Detailed error message (optional)
  responses:
    BadRequest:
      description: Bad request - Invalid query parameters
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - status: '400'
                title: Invalid field - reporting_type
                message: >-
                  reporting_type must be one of: quarterly, half_yearly,
                  nine_months, annual
    Unauthorized:
      description: Unauthorized - Invalid or missing API key
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - status: '401'
                title: Unauthorized
                message: Invalid or missing API key
    NotFound:
      description: Company not found for the given ticker
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - status: '404'
                title: Company not found
                message: 'No company found for ticker: INVALID'
    InternalServerError:
      description: Internal server error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            errors:
              - status: '500'
                title: Internal Server Error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.