---
title: "Buyback announcements: US-listed companies telling the market they will (or may)"
method: GET
path: "/v1/capital/buybacks"
---

# Buyback announcements: US-listed companies telling the market they will (or may)

`GET /v1/capital/buybacks`

## Request

- Base URL: `https://api.alphanume.com`
- URL: `https://api.alphanume.com/v1/capital/buybacks`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

Buyback announcements: US-listed companies telling the market they will (or may)
repurchase their own common stock, read from 8-K filings and their press releases.

One row per 8-K that announces something NEW; event_type says what: a new
repurchase authorization, an increase / extension / renewal (including a raised
buyback target), an accelerated share repurchase, an issuer tender offer, a Rule
10b5-1 repurchase plan, or a program being completed, terminated or suspended.
event_date is the announcement date the filing states (falling back to the 8-K
period of report, then the filing date); filed_at is when the 8-K reached EDGAR and
is the point-in-time clock. Served per row: ticker, cik, company_name, accession_no,
a one-sentence event_description, authorized_amount_usd (for an increase: the
increment when the filing states one, the new total when it states only that),
authorized_shares for share-denominated programs, pct_of_market_cap (announced
dollars over the market cap on the last session before the filing, in percent),
expiry_date, replaces_prior_program (1 replaces / 0 in addition / NULL silent),
remaining_prior_amount_usd (capacity the filing says was left under the prior or
existing program), confidence and last_updated.

Only first announcements are served. A later filing that restates an announcement
already in the feed (the earnings release two weeks after the 8-K, an 8-K/A) and
mentions of actions more than 45 days old are withheld, so a company's $50B
authorization appears once, not every time it is repeated. Rows the labeler scored
under 0.75 confidence are not served.

Requires an Alphanume Pro API key. There is no date clamp on this route: a Pro
key sees the full history.

Honest limits, stated plainly. These are ANNOUNCEMENTS: an authorization is
permission, not a commitment, and how much was actually repurchased is not in
this dataset. authorized_amount_usd is NULL when the size is stated only in
shares or not at all -- 10b5-1 plans and completions usually state none.
pct_of_market_cap is NULL without a dollar size or market-cap history and is
suppressed above 100. One event per filing: when an 8-K announces an
authorization and a 10b5-1 plan under it, the authorization is the row. Not
covered: issuer tender offers filed only on Schedule TO-I, foreign private
issuers (6-K), and non-traded REIT / fund redemption plans (deliberately
excluded -- those are investor liquidity, not buybacks). A small share of real
announcements buried in long earnings releases is missed. History starts
2024-01-01.

Default order: newest event_date first, then ticker, so the first page is the
most recent announcements.

Pagination: results are capped at 50,000 rows per request; when the response
has has_more=true, pass next_cursor's cursor_date, cursor_ticker and cursor_id
back to fetch the next page.

## Query parameters

- `ticker` string
- `date` string
- `date_gte` string
- `date_lte` string
- `date_gt` string
- `date_lt` string
- `event_type` 'new_authorization' | 'increase_or_extension' | 'accelerated_share_repurchase' | 'tender_offer' | '10b5_1_plan' | 'completion_or_termination'
- `min_amount_usd` number
- `min_pct_of_market_cap` number
- `min_confidence` number
- `updated_since` string
- `cursor_date` string
- `cursor_ticker` string
- `cursor_id` integer

## Response `200`

Matching rows.

- PaginatedEnvelope
  - `count` integer, required
  - `data` object[], required
  - `has_more` boolean, required
  - `next_cursor` object, nullable, required: Keyset cursor: pass its fields back as the cursor_* query parameters to fetch the next page.

## Other responses

- `400`: Invalid or conflicting query parameters.
- `401`: Missing or unrecognized API key.
- `403`: PRO_SUBSCRIPTION_REQUIRED: the key's plan does not include API access (every endpoint requires an active Pro subscription), or this Pro-only dataset is not covered by the key. No choice of dates makes the request succeed. The data is not missing.
- `429`: Rate limit exceeded (600/min); the body carries retry_after_seconds.

---

[API](https://skmtc.dev/alphanume/apis/alphanume-api.md) · [All operations](https://skmtc.dev/alphanume/apis/alphanume-api/llms.txt) · [OpenAPI document](https://skmtc.dev/alphanume/apis/alphanume-api/revisions/2cb83f10bba4?raw)
