Dashboard

Share Buybacks

GET/api/footnotes/buybacks

Pro

Returns share-repurchase activity per period: cash spent on buybacks (from the cash-flow statement), shares and dollar value actually repurchased, the average price paid per share, and the program view (board-authorized amount, remaining headroom, and the derived amount consumed).

Filers report execution in one of three XBRL concept families; the response serves ONE per period and names it in repurchased.style:

style meaning
retired Shares retired on repurchase (StockRepurchasedAndRetired...).
treasury Shares moved into treasury at cost (TreasuryStock...Acquired).
repurchased The generic during-period pair.

Average price per share. The filer's tagged weighted average (TreasuryStockAcquiredAverageCostPerShare) always wins. When absent, it is derived as value / shares STRICTLY within the served family (cross-family ratios mismatch, e.g. a tax-withholding value against program shares) and flagged avgPriceDerived: true.

Monetary values default to US dollars (currency parameter as on the statements endpoints: flows at the period-average rate, balances at spot, fx audit block, currency=original for as-filed). Share counts are never converted.

What this data can tell you:

Data honesty notes:

Get API key Try it live in the API explorer

Query parameters

Example request

curl 'https://api.stockfit.io/v1/api/footnotes/buybacks?symbol=AAPL&cik=320193&cusip=037833100&composite_figi=BBG000B9XRY4&share_class_figi=BBG001S5N8V8&currency=USD' \
  -H 'Authorization: Bearer YOUR_API_TOKEN'

Responses

200 OK

Buyback execution and program headroom, organized by period

Response schema

array of:
  • period string (date)

    The fiscal period end date (YYYY-MM-DD)

  • fiscalYear integer

    The company's fiscal year (handles non-December year-ends).

  • fiscalPeriod string (enum)

    Fiscal period of a reported value: `FY` (annual) or `Q1`-`Q4` (quarterly).

    Allowed values: FY, Q1, Q2, Q3, Q4
  • currency string | null

    Currency of the monetary values after conversion (the requested `currency` unless listed in `fx.unconverted`); null when values remain in mixed currencies.

  • cashSpent number

    Cash paid for common-stock repurchases during the period (cash-flow statement, flow).

  • repurchased object

    Execution block from ONE concept family per period. Absent when the filer tagged no repurchase activity.

    • style string (enum)

      Which concept family the filer used. Absent when only a tagged average price exists.

      Allowed values: retired, treasury, repurchased
    • shares number

      Shares repurchased during the period

    • value number

      Dollar value of shares repurchased

    • avgPricePerShare number

      Weighted-average price paid per share; tagged by the filer or derived (see avgPriceDerived)

    • avgPriceDerived boolean

      Only present (as `true`) when avgPricePerShare was computed as value / shares within the served family rather than tagged.

  • program object

    Board authorization view. Absent when nothing was tagged.

    • authorized number

      Total repurchase amount authorized under the program

    • remaining number

      Remaining authorized amount at period end

    • authorizedShares number

      Shares authorized, for share-denominated programs

    • remainingShares number

      Shares remaining, for share-denominated programs

    • consumed number

      Derived authorized - remaining, when both are present in one currency

  • asr object

    Accelerated-share-repurchase fields, when the filer ran an ASR.

    • initialPricePaid number

      Initial price paid per share under the ASR agreement

  • dateFiled string (date) | null

    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 object

    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

      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 array of string

      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 array of object

      One entry per (source currency, method) actually applied. `rate` is the multiplier: `target = original * rate`.

      array of:
      • from string

        ISO 4217 source currency that was converted.

      • method string (enum)

        `spot` for instant balance-sheet items (rate at period end); `average` for flow income/cash-flow items (day-weighted mean over the period).

        Allowed values: spot, average
      • rate number

        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 map of string to array of string

      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.

      • * (additional properties) array of string

Example response

[
  {
    "period": "2025-09-27",
    "fiscalYear": 2025,
    "fiscalPeriod": {},
    "currency": "USD",
    "cashSpent": 90711000000,
    "repurchased": {
      "style": "retired",
      "shares": 402000000,
      "value": 89300000000,
      "avgPricePerShare": 222.14,
      "avgPriceDerived": true
    },
    "program": {
      "authorized": 110000000000,
      "remaining": 3400000000,
      "authorizedShares": 0,
      "remainingShares": 0,
      "consumed": 106600000000
    },
    "asr": {
      "initialPricePaid": 0
    },
    "dateFiled": "2025-10-31",
    "fx": {}
  }
]

400 Bad Request

Invalid parameters or symbol not found

Response schema

  • error string

    Human-readable error message

Example response

{}

403 Forbidden

Feature not available on current plan

Response schema

  • error string

    Human-readable error message

Example response

{}