---
title: "自己株式取得プログラム"
method: GET
path: "/companies/{code}/buyback-programs"
tags: ["Companies"]
---

# 自己株式取得プログラム

`GET /companies/{code}/buyback-programs`

## Request

- Base URL: `https://edinetdb.jp/v1`
- URL: `https://edinetdb.jp/v1/companies/{code}/buyback-programs`
- Auth: one of:
  - API key in header `X-API-Key`
  - HTTP bearer

有価証券報告書「自己株式の取得状況」(株主総会決議 / 取締役会決議) を決議(プログラム)単位で構造化。 取得期間・決議枠(株数/金額、上限有無)・当事業年度前/当事業年度/当期間の取得実績・残存決議・消化率(株数/金額ベース)を返却。

- 抽出: Layer 1 決定論 regex (LLM不使用)。text_blocks は HTML除去済みでセル境界情報が失われるため、 区切り文字なしで連結した数値は一意に分割できる場合のみ確定し、できない場合は NULL (誤った値よりNULL優先)
- カバレッジ: 1,505社 / 2,171行 (serving値、2026-07-24時点。初回backfillの完全重複行は grain [edinetCode+docID+resolution_kind+program_seq] 単位でdedupe済み、詳細はfield-notes参照)。決議の記載がない企業は404 (「一度も自己株式取得していない」とは限らない — 対象 text block に決議記載が無い場合を含む)
- 現状は各社最新有報の単発スナップショット (全社 docID=1件)。スキーマは複数年度の進捗報告に対応 (program_seq + docID 単位)
- extraction_status 分布 (BQ実測): ok 95.5% / partial 3.2% / failed 1.3%
- 精度検証: 13社19プログラムの原文目視突合で全フィールド完全一致 (precision 100%)

## Path parameters

- `code` string, required

## Query parameters

- `fiscal_year` integer

## Response `200`

自己株式取得プログラム一覧

- object
  - `data` BuybackProgram[]
    - `acquisitionPeriodEnd` string, date, nullable: 取得期間終了日
    - `acquisitionPeriodStart` string, date, nullable: 取得期間開始日（和暦→西暦変換。パース失敗時は null、原文は acquisitionPeriodText に残る）
    - `acquisitionPeriodText` string, nullable: 取得期間の原文（和暦・年省略等の表記ゆれをそのまま保持）
    - `consumptionRatePctAmount` number, nullable: 消化率（金額ベース）
    - `consumptionRatePctShares` number, nullable: 消化率（株数ベース）= 100 - unexercisedPctFilingShares（提出日値優先、無ければfy_end値）
    - `currentPeriodAmountNative` integer, nullable
    - `currentPeriodAmountYen` integer, nullable
    - `currentPeriodShares` integer, nullable: 当期間（事業年度末日〜有報提出日）における取得自己株式数
    - `currentYearAmountNative` integer, nullable
    - `currentYearAmountYen` integer, nullable
    - `currentYearShares` integer, nullable: 当事業年度における取得自己株式数（株）
    - `docID` string: 出所の有価証券報告書 docID
    - `edinetCode` string: 提出会社のEDINETコード
    - `extractedAt` string, date-time, nullable: 抽出処理時刻
    - `extractionStatus` 'ok' | 'partial' | 'failed': プログラム単位の抽出品質。ok=主要フィールド抽出成功、partial=一部フィールドのみ、failed=ほぼ全滅（それでも行としては投入される）
    - `extractionWarnings` string[]: 行単位の解決方法・警告（例 'unit_sanity_failed' — unitRaw ヘッダーの表記と表内の値の桁が食い違っていたため、疑わしい *AmountYen をNULL化した場合。*AmountNative は影響を受けない。2026-07-25 追加）
    - `fiscalYear` integer, nullable: 有報の対象事業年度。提出日から periodStart を逆算できなかった場合は null（全体の約5.5%）
    - `limitAmountNative` integer, nullable: 決議による取得価額総額の上限（unitRaw単位のまま、円換算前）
    - `limitAmountYen` integer, nullable: limitAmountNative の円換算。unitRaw を検出できた場合のみ非null
    - `limitIsCeiling` boolean, nullable: 原文に「（上限）」等の上限明示があったか
    - `limitShares` integer, nullable: 決議による取得株数の上限
    - `okFieldCount` integer, nullable: 7フィールド（限度枠除く）のうち非nullペアの数。品質の目安
    - `priorYearAmountNative` integer, nullable: priorYearShares に対応する取得総額（unitRaw単位のまま）
    - `priorYearAmountYen` integer, nullable: priorYearAmountNative の円換算
    - `priorYearShares` integer, nullable: 当事業年度前における取得自己株式数（株）
    - `programSeq` integer: 同一 docID・同一 resolutionKind 内でのプログラム連番（0始まり、テキスト内の出現順）。resolutionKind をまたいだ一意性は保証しない
    - `remainingAmountNative` integer, nullable
    - `remainingAmountYen` integer, nullable
    - `remainingShares` integer, nullable: 当事業年度末日時点の残存決議（授権）株式数
    - `resolutionHeaderText` string, nullable: 決議日を含む見出し原文（トレーサビリティ用）
    - `resolutionKind` 'shareholders_meeting' | 'board': shareholders_meeting=株主総会決議、board=取締役会決議
    - `source` string: 抽出方式識別子（例 'regex_v1'）
    - `totalAcquiredAmountNative` integer, nullable
    - `totalAcquiredAmountYen` integer, nullable
    - `totalAcquiredShares` integer, nullable: priorYearShares + currentYearShares + currentPeriodShares の合計（非null項目のみ加算）
    - `unexercisedPctFilingAmount` number, nullable
    - `unexercisedPctFilingShares` number, nullable: 提出日現在の未行使割合（株数ベース、%）
    - `unexercisedPctFyEndAmount` number, nullable: 同上、金額ベース
    - `unexercisedPctFyEndShares` number, nullable: 当事業年度末日現在の未行使割合（株数ベース、% = 0-100スケール）
    - `unitRaw` '円' | '千円' | '百万円' | '億円', nullable: 開示された金額単位。検出できない場合 null（この場合 *AmountYen 系は全て null になるが *AmountNative は保持される）
  - `meta` object
    - `count` integer
    - `edinetCode` string
    - `notes` string
    - `source` string

## Other responses

- `404`: 該当データなし (決議記載なし、または未取得)

---

[API](https://skmtc.dev/edinetdb/apis/edinet-db-api.md) · [All operations](https://skmtc.dev/edinetdb/apis/edinet-db-api/llms.txt) · [OpenAPI document](https://skmtc.dev/edinetdb/apis/edinet-db-api/revisions/d896c5f7d472?raw)
