---
title: "A company's own KPIs (subscribers, ARR, units, adjusted EBITDA, free cash flow, …) extracted from its written earnings releases and MD&A — each a time series with the latest value, period, year-over-year change only against an exactly comparable prior-year period (same quarter/full year, YTD cadence, or instant month/day), and a GAAP-to-non-GAAP bridge when stated. Earnings-call transcripts are deliberately not a KPI figure source. Pass metric to return one metric's full history."
method: GET
path: "/v1/stocks/{ticker}/kpis"
tags: ["Kpis"]
---

# A company's own KPIs (subscribers, ARR, units, adjusted EBITDA, free cash flow, …) extracted from its written earnings releases and MD&A — each a time series with the latest value, period, year-over-year change only against an exactly comparable prior-year period (same quarter/full year, YTD cadence, or instant month/day), and a GAAP-to-non-GAAP bridge when stated. Earnings-call transcripts are deliberately not a KPI figure source. Pass metric to return one metric's full history.

`GET /v1/stocks/{ticker}/kpis`

## Request

- Base URL: `https://api.equibles.com`
- URL: `https://api.equibles.com/v1/stocks/{ticker}/kpis`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/equibles/apis/equibles-api/docs/v1/stocks/:ticker/kpis/get.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `ticker` string, required

## Query parameters

- `metric` string

## Response `200`

OK

- KpisResponse
  - `ticker` string, nullable
  - `companyName` string, nullable
  - `note` string, nullable: Coverage explanation when no current verified series is available.
  - `data` KpiSeriesDto[], nullable
    - `name` string, nullable
    - `unit` string, nullable
    - `isNonGaap` boolean
    - `latestValueFormatted` string, nullable
    - `latestPeriodText` string, nullable
    - `yoYPercent` number, double, nullable
    - `points` KpiPointDto[], nullable
      - `periodLabel` string, nullable
      - `value` number, double
      - `valueFormatted` string, nullable
      - `filedDate` string, date
      - `source` string, nullable
      - `sourceQuote` string, nullable
      - `isAnnual` boolean: True only for a full-fiscal-year duration; false for quarter, year-to-date, point-in-time, and unclassified readings.
      - `periodShape` string, nullable: Authoritative period shape: Quarter, Annual, YearToDate, Instant, or None when the source wording is ambiguous.
      - `sourceDocumentId` string, uuid: Id of the written filing this figure was read from — pass it to the filing-read endpoints to see the full disclosure in context, since sourceQuote is truncated.
    - `bridge` KpiBridgeDto
      - `gaapMetricName` string, nullable
      - `gaapValue` number, double
      - `gaapValueFormatted` string, nullable
      - `nonGaapMetricName` string, nullable
      - `nonGaapValue` number, double
      - `nonGaapValueFormatted` string, nullable
      - `unit` string, nullable
      - `sourceQuote` string, nullable
      - `adjustments` KpiBridgeAdjustmentDto[], nullable
        - `label` string, nullable
        - `amount` number, double
        - `amountFormatted` string, nullable

## Other responses

- `400`: Bad Request
- `404`: Not Found

## Changes

- **2026-11-06** `666e06778588`: 5 info
  - added the optional property `data/items/points/items/periodShape` to the response with the `200` status
  - added the optional property `data/items/points/items/sourceDocumentId` to the response with the `200` status
  - added the optional property `error/availableDates` to the response with the `400` status
  - added the optional property `error/availableDates` to the response with the `404` status
  - …1 more

[Operation history](https://skmtc.dev/equibles/apis/equibles-api/changes/v1/stocks/:ticker/kpis/get.md)

---

[API](https://skmtc.dev/equibles/apis/equibles-api.md) - [All operations](https://skmtc.dev/equibles/apis/equibles-api/llms.txt) - [OpenAPI document](https://skmtc.dev/equibles/apis/equibles-api/revisions/713a3e840323?raw)
