---
title: "Leases"
method: GET
path: "/api/footnotes/leases"
tags: ["Footnotes"]
---

# Leases

`GET /api/footnotes/leases`

![Pro](https://img.shields.io/badge/Pro-8b5cf6)

Returns the full ASC 842 lease footnote as one object per period: right-of-use asset, lease liability split (current / noncurrent / total), the undiscounted future-payment ladder, the weighted-average discount rate, cost lines, and cash paid, with `operating` and `finance` leases side by side.

**Payment ladder.** Filers disclose the ladder in one of two styles, mapped as follows: full-year style fills `year1`-`year5` and `thereafter`; mid-fiscal-year style additionally uses `remainderOfYear`, the payments due in the rest of the current fiscal year, a **partial** year that is deliberately never merged into `year1`. `total` is the undiscounted sum as disclosed and `discountExcess` the imputed interest, so `total − discountExcess` reconciles to the discounted liability client-side.

Monetary values default to **US dollars**. Pass the `currency` parameter to receive any supported ISO 4217 currency instead: balance-sheet items convert at the period-end spot rate, cost and cash-paid flow lines at the period-average rate, and the per-period `fx` block records the exact rate(s) applied. Pass `currency=original` for as-filed values. `discountRate` is a fraction of 1 (`0.037` = 3.7%) and never converted.

**What this data can tell you:**
- Lease obligations as debt-equivalent leverage.
- Fixed payment burden vs revenue, from the payment ladder.
- Footprint growth or shrinkage via right-of-use assets.
- Discount-rate changes re-marking the liability.

**Data honesty notes:**
- Quarterly entries carry whatever subset the 10-Q tagged: ROU asset and liabilities nearly always; the payment ladder is 10-K-weighted. Annual cost lines are never presented as a Q4 quarter; the Q4 entry carries the year-end balance-sheet snapshot only.
- A minority of filers mis-tag the discount rate as a whole percent (`3.7`); such values are re-scaled and the side is flagged `normalized: true`.
- Coverage is US-GAAP (ASC 842) filers. IFRS 16 uses a different concept family and is not covered in this version.
- `operating` / `finance` are `null` when the filer disclosed nothing for that side in the period.

## Query parameters

- `symbol` string
- `cik` integer
- `cusip` string
- `composite_figi` string
- `share_class_figi` string
- `currency` string
- `period` 'annual' | 'quarter' — Base reporting period: `annual` or `quarter` (the periods companies actually report, without the derived `ttm` rollup).
- `limit` integer

## Response `200`

Operating and finance lease footnote data, organized by period

- object[]
  - `period` string, date — The fiscal period end date (YYYY-MM-DD)
  - `fiscalYear` integer — The company's fiscal year (handles non-December year-ends).
  - `fiscalPeriod` 'FY' | 'Q1' | 'Q2' | 'Q3' | 'Q4' — Fiscal period of a reported value: `FY` (annual) or `Q1`-`Q4` (quarterly).
  - `operating` object, nullable — Operating-lease side of the footnote. Fields the filer did not tag are omitted. Null when nothing was disclosed for the period.
    - `currency` string, nullable — Currency of the monetary values after conversion (the requested `currency` unless listed in `fx.unconverted`); null when values remain in mixed currencies
    - `normalized` boolean — Only present (as `true`) when the discount rate was re-scaled from a mis-tagged whole percent.
    - `rightOfUseAsset` number — Operating lease right-of-use asset
    - `liabilityCurrent` number
    - `liabilityNoncurrent` number
    - `liabilityTotal` number — Total operating lease liability (when tagged directly)
    - `discountRate` number — Weighted-average discount rate as a fraction of 1
    - `payments` object — Undiscounted future minimum payments ladder.
      - `remainderOfYear` number — Payments due in the REMAINDER of the current fiscal year (mid-year disclosure style), a partial year, not year1.
      - `year1` number — Payments due within the next twelve months
      - `year2` number
      - `year3` number
      - `year4` number
      - `year5` number
      - `thereafter` number — Payments due after year five
      - `total` number — Total undiscounted payments as disclosed
      - `discountExcess` number — Imputed interest: undiscounted total minus the discounted liability
    - `cost` object — Lease cost lines for the period (flow amounts).
      - `operating` number — Operating lease cost
      - `variable` number — Variable lease cost
      - `shortTerm` number — Short-term lease cost
      - `subleaseIncome` number — Sublease income
    - `cashPaid` number — Operating cash paid for amounts included in lease liabilities (flow)
  - `finance` object, nullable — Finance-lease twin. Same shape as `operating` except `cost` carries `amortization` and `interest`, plus `principalPaid` / `interestPaid` cash flows. Null when the filer has no finance leases.
    - `currency` string, nullable
    - `normalized` boolean
    - `rightOfUseAsset` number
    - `liabilityCurrent` number
    - `liabilityNoncurrent` number
    - `liabilityTotal` number
    - `discountRate` number — Weighted-average discount rate as a fraction of 1
    - `payments` object
      - `remainderOfYear` number
      - `year1` number
      - `year2` number
      - `year3` number
      - `year4` number
      - `year5` number
      - `thereafter` number
      - `total` number
      - `discountExcess` number
    - `cost` object
      - `amortization` number — Amortization of finance-lease right-of-use assets
      - `interest` number — Interest on finance-lease liabilities
    - `principalPaid` number — Financing cash paid on finance-lease principal (flow)
    - `interestPaid` number — Cash paid on finance-lease interest (flow)
  - `dateFiled` string, date, nullable — SEC filing acceptance date of the newest filing contributing to this period. Use this to gate point-in-time data and avoid lookahead bias.
  - `fx` FxConversion — Foreign-currency conversion audit for this period. Every monetary value in `facts` is in the requested `currency` (default **US dollars**). This block is absent when the period was already wholly in the target currency (e.g. a US filer with the default USD, nothing to convert). It is present when one or more line items were originally filed in a different currency and converted on the fly, and it records the exact rate(s) applied so the conversion can be reproduced. Rates come from the Frankfurter API (api.frankfurter.dev). Instant balance-sheet items use the spot rate at period end; flow income/cash-flow items use the day-weighted average rate over the period.
    - `targetCurrency` string, required — The currency (ISO 4217) every `facts` value was converted INTO, the value of the request `currency` parameter (default USD). The literal `original` here means no conversion was requested: each fact stays in its as-reported currency (see `unconverted` for the per-fact mapping).
    - `originalCurrencies` string[], required — Every source currency (ISO 4217) that appeared in this period, the union of converted, unconverted, and already-in-target. The target currency itself is listed when some facts were natively in it (e.g. a foreign filer reporting some lines in USD alongside its converted local currency), so a mixed period reflects its true composition rather than appearing wholly converted.
    - `rates` object[], required — One entry per (source currency, method) actually applied. `rate` is the multiplier: `target = original * rate`.
      - `from` string, required — ISO 4217 source currency that was converted.
      - `method` 'spot' | 'average', required — `spot` for instant balance-sheet items (rate at period end); `average` for flow income/cash-flow items (day-weighted mean over the period).
      - `rate` number, required — Multiply the original-currency amount by this to get the `targetCurrency` amount.
      - `effectiveDate` string, date — Spot only: the date (YYYY-MM-DD) the applied rate was published (≤ period end).
      - `start` string, date — Average only: period start (YYYY-MM-DD).
      - `end` string, date — Average only: period end (YYYY-MM-DD).
    - `unconverted` object — Facts that could NOT be converted (no published rate within tolerance, or an unsupported code/date), grouped by the currency they remain in: each key is a source ISO 4217 code, each value lists the curated fact names in `facts` still in that currency (NOT `targetCurrency`). Absent when everything converted. Use it to know exactly which figures to treat as native currency.

## Other responses

- `400` — Invalid parameters or symbol not found
- `403` — Feature not available on current plan

## Changes

- **2026-08-24** `5ab763e6f203` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/stockfit/apis/stockfit-api/changes/api/footnotes/leases/get.md)

---

[API](https://skmtc.dev/stockfit/apis/stockfit-api.md) · [All operations](https://skmtc.dev/stockfit/apis/stockfit-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/stockfit/stockfit-api/revisions/de5578af3c78/schema)
