# IRBANK API ドキュメント > IRBANK 外部公開 API(REST)の仕様書 # IRBANK API ドキュメント Source: https://docs.irbank.net/ IRBANK の外部公開 API(REST)の仕様書です。日本の上場企業の財務・株価・バリュエーション・株主・開示データを HTTP + JSON で取得できます。 ## ベース URL ``` https://api.irbank.net/v1 ``` ## まず読む - [クイックスタート](/getting-started/quickstart) — 最初のリクエストを送る - [共通仕様ガイド](/guides) — 識別子・単位・ページング・エラーの共通ルール - [API リファレンス](/reference) — 全エンドポイントの仕様(OpenAPI 生成) - [提供状況・ロードマップ](/roadmap) — 提供中/追加予定の一覧 - [データカタログ](/data-catalog) — 収録期間・更新タイミング・出典 - [データの利用条件](/guides/data-usage-terms) — 再配布・法人利用・商用利用の禁止・出典表示・提供上の制約 - [お問い合わせ](https://app.irbank.net/feedback) — ご要望・不具合の報告 --- # 金額をすべて円単位で返すように変更 Source: https://docs.irbank.net/changelog/amounts-in-jpy REST API がこれまで百万円・億円で返していた金額を、すべて円(`unit: "jpy"`)に統一しました。フィールド名・型は変わらず、値のスケールだけが変わります。 | エンドポイント | 変更前 | 変更後 | 対象 | | --- | --- | --- | --- | | `GET /financials` | `million_jpy`(百万円) | `jpy`(円) | 売上高・利益・キャッシュフロー・BS 項目などの金額 69 項目 | | `GET /indicators` | `million_jpy`(百万円) | `jpy`(円) | `net_debt`・`total_dividends` | | `GET /segments` | 百万円 | 円 | `revenue`・`operating_income`・`assets` | | `GET /valuations` | `hundred_million_jpy`(億円) | `jpy`(円) | `market_cap`・`market_cap_high`・`market_cap_low` | | `GET /screening` | 億円 | 円 | `marketCap`・`enterpriseValue` の値と `filters` のしきい値 | `GET /financials` の `average_annual_salary` は変更前から円のため単位は変わりませんが、他の金額項目と揃えて整数円へ丸めるようになりました。 1 株当たり指標(`jpy_per_share`)・株価(`jpy`)・役員報酬(円)・配当(円)はもともと円のため変更ありません。 `GET /screening` の `filters` は、旧単位(億円)とみられる金額しきい値(0 より大きく 100 万円未満)を 400 で弾き、円での書き方を案内します。移行期のみの措置です。 各フィールドの単位はレスポンスの `fields[]`(`/screening` は `GET /screening/fields`)で確認できます → [単位とスケール](/guides/units)。 --- # ドキュメントサイトをベータ公開 Source: https://docs.irbank.net/changelog/beta-site API ドキュメントサイト(docs.irbank.net)をベータ公開しました。 - はじめに / ガイド / リファレンス / データカタログを掲載 - API リファレンスは OpenAPI 定義から生成しています - ベータ期間中、仕様は予告なく変更される場合があります --- # /indicators に有報の報告値指標を追加、buyback_ratio を削除 Source: https://docs.irbank.net/changelog/indicators-reported-values `GET /indicators` に、提出書類に指標として記載される報告値 11 項目を追加しました。これまでは計算値のみを返していました。 `roe`・`per`・`bps`・`equity_ratio`・`payout_ratio`・`dps`・`dps_q1`・`dps_q2`・`dps_q3`・`dps_year_end`・`total_dividends`(四半期配当 `dps_q1` / `dps_q3` は実施企業のみ) 報告値と計算値(`roe_computed` など)は別のキーで併存し、算出方法が異なるため値は一致しません。単位はキーごとに異なるため `fields[].unit` で判別してください → [単位とスケール](/guides/units)。同じキーは `GET /financials` と同じ値・同じ単位を返します。 ## 削除した項目 `buyback_ratio`(自社株買い比率)を提供項目から削除しました。上流の算出が未実装で、全企業・全期間で値を持たない項目だったためです([バージョニング方針](/guides/versioning)の「例外」に該当します)。 レスポンスのキーと OpenAPI 定義の双方から削除されます。削除前の定義では必須プロパティだったため、**それをもとに厳密な検証を行っているクライアントでは、定義を再生成するまで `/indicators` の全レスポンスが検証エラーになります**。 ## 期の返し方の修正 決算期変更のあった企業で、`years` に指定した期数より 1 期少なく返ることがある不具合を修正しました。`GET /financials` でも同じ事象が一部の企業で発生していました。 --- # データカタログ Source: https://docs.irbank.net/data-catalog 各データの収録期間・更新タイミング・出典の一覧です。ここに載っているデータはすべて API で提供しています。 収録期間は実データの最古日から算出しています(銘柄・指標により実際の開始時期は前後します)。 | データ | 収録期間 | 更新タイミング | 出典 | | --- | --- | --- | --- | | 財務(有価証券報告書・四半期報告書) | 最大 30 期 | EDINET 提出後、順次 | EDINET(金融庁) | | 財務(決算短信) | 2000 年 3 月期以降 | 開示から 24 時間後 | TDnet(東京証券取引所) | | セグメント別業績 | 直近 20 期相当 | 有報・短信の取り込みに同じ | EDINET / TDnet | | 配当実績 | 上場以降の全年度 | 有報・短信の取り込みに同じ | EDINET / TDnet | | バリュエーション時系列 | 既定 20 期 | 決算期末基準で算出 | IRBANK 算出(株価・財務から) | | 日次株価 | 2005-01-01 以降 | 日次(取引日ごと) | JPX(東京証券取引所) / 札幌証券取引所(札証単独上場銘柄) / 福岡証券取引所(福証単独上場銘柄) | | 大量保有報告書 | 2013-09-17 以降 | EDINET 提出後、順次 | EDINET | | 信用取引残高(東証・週次) | 2025-06-06 以降 | 週次(東証の公表日の当日夕方) | JPX(東京証券取引所) | | 貸借取引残高(日証金・日次) | 2012-11-12 以降 | 日次(前営業日分を当日夕方) | 日本証券金融(日証金) | ## 更新タイミングの補足 - 「EDINET 提出後、順次」は、提出書類の取り込みパイプラインが検知してから反映されるまで通常数時間以内です - 決算短信(TDnet)由来の値は、再配信の契約制約により**開示から 24 時間経過後**に反映されます ## 日次株価の出典の補足 札幌証券取引所・福岡証券取引所の**単独上場銘柄**(他の取引所に重複上場していない銘柄)の株価は JPX の配信に含まれないため、各取引所が公表する日報を出典としています。それ以外の銘柄(東証への上場を含む銘柄)の株価は JPX が出典です。 出典は銘柄ごとに変わるため、レスポンスの `attribution` で個別に返します。出典表示が必要な場面では、静的な表ではなく `attribution.source_label` の値を使ってください([データの利用条件](/guides/data-usage-terms))。 なお、表の「2005-01-01 以降」は出典によらず全銘柄に適用される提供下限(これより前の株価は提供していません)で、実際の収録開始日は銘柄ごとに異なります。札幌証券取引所・福岡証券取引所の単独上場銘柄では、収録開始が 2005-01-01 より後になる場合があります。 ## Web サイトとの差異 適時開示(TDnet)由来のデータは、API では開示から 24 時間以内は返しません(再配信の契約制約のため)。IRBANK の Web サイトに表示されている値が API では取得できない期間があります。 ## 収録期間の方針 財務 30 期・バリュエーション 20 期など、長期時系列の提供は IRBANK API の設計方針です。**収録期間はプランによらず共通**で、プラン間の差はリクエスト上限のみです([プランと利用上限](/getting-started/plans))。 ## 再配布について ここでいう再配布とは、**取得した生データを第三者へそのまま再頒布すること**を指し、**禁止**です(データファイルとしての配布・販売・公開、レスポンスをそのまま返す代理 API の提供などを含みます)。また、再配布に当たるかどうかにかかわらず、**当社の事前の書面による承諾のない商用利用(法人による自社サービスへの組み込み・表示を含む)はできません**。詳細は [データの利用条件](/guides/data-usage-terms) と[利用規約](https://corp.irbank.net/terms/)を参照してください。 --- # FAQ Source: https://docs.irbank.net/faq ## Web サイトに表示されている値が API で取得できない 適時開示(TDnet)由来のデータは、開示から 24 時間以内は API では返しません。詳細は[データカタログ](/data-catalog)を参照してください。 ## 5 桁の証券コードは使える? API は 4 桁の証券コードを使います(例: `7203`)。5 桁コードでしか表せない銘柄(優先株など)は現在収録していないため、5 桁コードを指定しても取得できません。[企業・銘柄の識別子](/guides/identifiers)を参照してください。 ## GET /v1/peers が同業種の銘柄を返さない `GET /v1/peers` は業種による絞り込みではなく、有価証券報告書の事業セグメントをもとにした競合分析の結果を返します。競合は業種をまたぐことがあり、同業種でも競合と判定されなければ含まれません。同業種の銘柄一覧が必要な場合は `GET /v1/securities` の `industry` フィルタを使ってください。 ## scope_exceptions が空にならない `scope_exceptions` は多くの期で 1 件以上入ります。異常ではありません。詳細は[会計期間と決算種別](/guides/fiscal-periods)の「連結・単体の判定」を参照してください。 ## ドキュメント全体をまとめて生成 AI に読み込ませたい サイト全ページの本文を 1 ファイルにまとめた [llms-full.txt](/llms-full.txt) を公開しています。ガイド・API リファレンス(全エンドポイント)・データカタログを含むため、このファイルを渡すだけでドキュメント全体を読み込ませられます。ページの一覧と概要だけでよい場合は [llms.txt](/llms.txt) を、特定のページだけでよい場合はページ URL の末尾に `.md` を付けたもの(例: `/guides/units.md`)を使ってください。 PDF ではなく Markdown で提供しているのは、PDF からテキストを抽出すると見出しの階層・表・コードブロックの構造が失われ、生成 AI の理解精度が落ちるためです。ページ単位で PDF が必要な場合は、ブラウザの印刷機能から「PDF に保存」を選ぶと本文のみが出力されます。 ## ここに載っていない質問・不具合を報告したい [お問い合わせフォーム](https://app.irbank.net/feedback)からご連絡ください。 --- # はじめに Source: https://docs.irbank.net/getting-started IRBANK API を使い始めるための手順です。 1. [クイックスタート](/getting-started/quickstart) — 最初のリクエストを送る 2. [認証](/getting-started/authentication) — API キーの取得と使い方 3. [プランと利用上限](/getting-started/plans) — プラン別のリクエスト上限 --- # 認証 Source: https://docs.irbank.net/getting-started/authentication IRBANK API は API キー(Bearer トークン)で認証します。 ## キーの取得 [IRBANK Connect](https://app.irbank.net/mcp-api) で発行・失効・利用状況の確認を行います。 発行されるキーは `irbk_key_` で始まる 52 文字の文字列です。平文が表示されるのは発行直後の一度きりで、あとから再表示はできません。その場でコピーして保管してください(紛失した場合は、そのキーを失効させて新しいキーを発行します)。 ## キーを環境変数に置く キーはソースコードに直接書かず、環境変数など実行環境側に置いて読み込む形を推奨します。 以下のコード例では環境変数名を `IRBANK_API_KEY` としていますが、これは説明用の例です。API 側が特定の名前を要求することはないため、任意の名前を使えます(その場合は例の中の名前を読み替えてください)。 ```bash # macOS / Linux(そのシェルを開いている間だけ有効) export IRBANK_API_KEY="irbk_key_..." ``` ```powershell # Windows (PowerShell) $env:IRBANK_API_KEY = "irbk_key_..." ``` シェルを開き直しても使いたい場合は `~/.zshrc` などに書きます。アプリケーションから使う場合は、`.env` に置いて(`.gitignore` に追加したうえで)読み込むか、実行環境のシークレット管理機能に登録してください。 ## リクエストへの付与 `Authorization` ヘッダーに `Bearer <キー>` の形で載せます(`Bearer` とキーの間は半角スペース 1 つです)。 ```bash # macOS / Linux curl -H "Authorization: Bearer $IRBANK_API_KEY" \ "https://api.irbank.net/v1/securities/7203" ``` ```powershell # Windows (PowerShell)。curl は Invoke-WebRequest の別名になっているため curl.exe を使います curl.exe -H "Authorization: Bearer $env:IRBANK_API_KEY" "https://api.irbank.net/v1/securities/7203" ``` ```python import os import requests res = requests.get( "https://api.irbank.net/v1/securities/7203", headers={"Authorization": f"Bearer {os.environ['IRBANK_API_KEY']}"}, ) ``` ```javascript const res = await fetch("https://api.irbank.net/v1/securities/7203", { headers: { Authorization: `Bearer ${process.env.IRBANK_API_KEY}` }, }) ``` キーが正しくセットできているかだけを確かめたいときは、残りリクエスト数を返す `GET /v1/usage` が使えます。この照会自体は日次上限を消費しません。 ```bash # macOS / Linux curl -H "Authorization: Bearer $IRBANK_API_KEY" \ "https://api.irbank.net/v1/usage" ``` ```powershell # Windows (PowerShell) curl.exe -H "Authorization: Bearer $env:IRBANK_API_KEY" "https://api.irbank.net/v1/usage" ``` ## 認証に失敗したら キーが無い・無効な場合は `401` を返します。次の点を確認してください。 - 環境変数が空になっていないか(macOS / Linux は `echo $IRBANK_API_KEY`、PowerShell は `echo $env:IRBANK_API_KEY` で確認できます) - ヘッダーの値が `Bearer` で始まっているか(キーだけを渡すと `401` になります) - キーが失効していないか(IRBANK Connect で確認できます) ステータスコードとエラー形式の一覧は[エラーとレート制限](/guides/errors-and-limits)を参照してください。 ## キーの管理 - キーはユーザーに紐づきます。複数キーを発行した場合、利用上限はユーザー単位で合算されます - キーをソースコードや公開リポジトリに含めないでください - 用途ごと(本番・検証など)にキーを分けておくと、片方だけを失効させられます --- # プランと利用上限 Source: https://docs.irbank.net/getting-started/plans > ℹ️ ベータ期間中は、プランにかかわらず一律 4,000 req/日(REST API と MCP で共有)で提供しています。下表のプラン別上限は、ベータ期間の終了後に適用される基本の上限です。適用時期は決まり次第本ページでお知らせします。 | プラン | リクエスト上限(ベータ終了後の基本上限) | | --- | --- | | 無料会員 | 200 req/日 | | スタンダード | 1,000 req/日 | | プレミアム | 4,000 req/日 | **取得できるデータの範囲・収録期間は全プラン共通です。** プランによるデータの年数制限はなく、プラン間の差はリクエスト上限のみです。 - 日次上限は REST API と MCP(IRBANK Connect)で共有の 1 つの枠です。MCP でのリクエストも同じ上限を消費します - 一部のベータ参加者の方には、ベータ期間の終了後も基本上限とは異なる上限が適用される場合があります。詳細は決まり次第本ページでお知らせします - 上限を超えたリクエストは `429 Too Many Requests` を返します。詳細は[エラーとレート制限](/guides/errors-and-limits)を参照してください - 残りリクエスト数は `GET /v1/usage` で確認できます(この照会自体は日次上限を消費しません) --- # クイックスタート Source: https://docs.irbank.net/getting-started/quickstart ## 1. API キーを取得する [IRBANK Connect](https://app.irbank.net/mcp-api) にログインし、API キーを発行します。 ## 2. 最初のリクエスト 発行したキーを環境変数(ここでは例として `IRBANK_API_KEY`)にセットしてから実行します。セットの仕方は[認証](/getting-started/authentication)を参照してください。 ```bash curl -H "Authorization: Bearer $IRBANK_API_KEY" \ "https://api.irbank.net/v1/financials?edinet_code=E02144" ``` ## 3. レスポンス 各レスポンスは JSON で返り、数値フィールドには単位情報が付与されます。詳細は[単位とスケール](/guides/units)を参照してください。 --- # ガイド Source: https://docs.irbank.net/guides 全エンドポイントに共通するルールをまとめています。個別エンドポイントの仕様は[リファレンス](/reference)を参照してください。 - [企業・銘柄の識別子](/guides/identifiers) - [会計期間と決算種別](/guides/fiscal-periods) - [単位とスケール](/guides/units) - [株式分割・併合の調整方針](/guides/price-adjustment) - [日付・タイムゾーン・欠損値](/guides/dates-and-nulls) - [ページング](/guides/pagination) - [エラーとレート制限](/guides/errors-and-limits) - [バージョニングと後方互換](/guides/versioning) --- # データの利用条件 Source: https://docs.irbank.net/guides/data-usage-terms IRBANK API で取得したデータの取り扱いには、出典元との契約に基づく制約があります。**利用前に必ずご確認ください。** > ℹ️ 法的な効力を持つ条件は[利用規約](https://corp.irbank.net/terms/)が定めます。本ページは実務上の要点をまとめたものです。 ## 再配布の禁止 取得した**生データを第三者へそのまま再頒布することはできません**。これには次が含まれます。 - データファイル(CSV / JSON 等)としての配布・販売・公開 - API レスポンスをそのまま返す代理 API・ミラーの提供 - データセットとしての第三者への提供(無償・有償を問わず) ## 法人利用・商用利用の禁止 再配布に当たるかどうかにかかわらず、**当社の事前の書面による承諾なく、取得したデータを商業目的で利用することはできません**。法人が自社サービス・自社プロダクトにデータを組み込んで表示・提供する利用もこれに含まれます。取得したデータは、ご自身の分析・調査など私的利用の範囲でご利用ください。詳細は[利用規約](https://corp.irbank.net/terms/)をご確認ください。 ## 出典の表示 [利用規約](https://corp.irbank.net/terms/)上許容される態様(上記の禁止事項に当たらない場合のほか、当社の事前の書面による承諾を得て商業目的で利用する場合を含みます)でデータや分析結果を第三者が見る形で表示・提供するときは、出典元との契約に基づき**出典元の明示が必要**です。API レスポンスにも出典情報(`attribution` 項目)を含めています。データ種別ごとの出典は次のとおりです。 | データ | 出典表示 | | --- | --- | | 有価証券報告書・四半期報告書・大量保有報告書などの提出書類由来 | 金融庁 EDINET | | 適時開示(決算短信を含む)由来 | JPX TDnet | | 株価・時価総額・信用残 | JPX 東京証券取引所 | | 株価(札証単独上場銘柄) | 札幌証券取引所(札証) | | 株価(福証単独上場銘柄) | 福岡証券取引所(福証) | | 貸借倍率・逆日歩(品貸料) | 日本証券金融(日証金) | 札証・福証の**単独上場銘柄**(他の取引所に重複上場していない銘柄)の株価は JPX の配信に含まれず、各取引所が公表する日報を出典としています。株価は銘柄によって出典が変わるため、出典表示にはレスポンスの `attribution.source_label` の値を使ってください。 いずれも加工は IRBANK が実施しています。表示例: ```text 出典: 金融庁 EDINET / JPX TDnet(加工: IRBANK) ``` ## 提供上の制約 契約に基づき、API が返すデータには次の制約があります。**これらは仕様であり、不具合ではありません。** ### 適時開示(TDnet)は開示から 24 時間後 TDnet 由来の開示・決算短信データは、**開示時刻から 24 時間が経過するまで API では取得できません**(JPX TDnet 配信契約に基づく再配信の制約)。24 時間経過前の書類を指定した場合は `404` を返します。 IRBANK の Web サイトには表示されている値が、API では取得できない期間があります。 ### 株価は 2005-01-01 以降 東証ライセンスにより、**日次株価は 2005-01-01 以降のみ**提供します。これより前のデータは保持していません。 日次株価(`GET /securities/{code}/prices` の `from` / `to`)と過去日を基準にしたスクリーニング(`GET /screening` の `as_of`)は 2005-01-01 より前を指定できず、`400` を返します。 ### 信用取引残高(東証)は 2025-06-01 以降 東証ライセンスにより、**東証提供の信用取引残高は 2025-06-01 以降のみ**保持しています。これより前のデータは保持していません。 日証金(日本証券金融)由来の貸借取引残高には、この期間の制約はありません。 ## 関連 - [利用規約](https://corp.irbank.net/terms/) — 法的な効力を持つ条件 - [データカタログ](/data-catalog) — 収録期間・更新タイミング・出典の一覧 - [エラーとレート制限](/guides/errors-and-limits) - [プランと利用上限](/getting-started/plans) --- # 日付・タイムゾーン・欠損値 Source: https://docs.irbank.net/guides/dates-and-nulls ## 日付とタイムゾーン - 日付は `YYYY-MM-DD`、日時は ISO 8601 で返します - 開示日時・営業日はすべて **JST(日本標準時)** 基準です ## 欠損値の意味 `null` には複数の意味があります。 | ケース | 例 | | --- | --- | | 会計基準上存在しない | IFRS 企業の経常利益 | | 企業が非開示 | 一部のセグメント情報 | | 収録期間外 | ライセンス上提供できない期間 | | 未到来・未確定 | 未発表の決算 | ## 空配列の意味(reason フィールド) リクエストは成功したがデータが 0 件の場合、レスポンスは 404 ではなく **200 + 空配列**です。このとき、なぜ空かをトップレベルの `reason` フィールドで返します(データが 1 件以上ある場合は `null`)。 ```json { "segments": [], "reason": { "code": "no_results", "message": "No segment disclosure is currently recorded for this organization within the most recent 20 fiscal years. Companies operating in a single segment do not disclose segment information. Values sourced from TDnet become available 24 hours after disclosure, so very recent disclosures may appear later." } } ``` `reason.code` は現在 `no_results` の 1 値です。**`message` は人間向けの補足なので、分岐は必ず `code` で行ってください**(`message` の文面は予告なく改善されることがあります)。 | code | 意味 | 対処 | | --- | --- | --- | | `no_results` | このリクエストに該当するデータが 0 件。**収録が無い場合**と**指定した条件に合致しない場合**の両方を含みます(両者は現在の実装では区別できないため、機械可読な値としては区別していません) | 通常はリトライ不要。ただし TDnet 由来のデータは開示から 24 時間は未収録のため、直近開示分は後から追加されることがあります(下記「配信制約による欠損」を参照)。条件を指定していた場合は、`message` に実際に適用された条件が入るので参考にしてください | `message` は適用された条件(`fiscal_year` / `period` / `as_of` / `from` / `to` / `cursor` 等)を事実として述べますが、**「その条件を外せば取得できる」ことは意味しません**。たとえばセグメントを 1 件も開示していない企業では、`fiscal_year` を外しても 0 件のままです。 一時的にデータを解決できずサーバー側が回答を返せない場合は、200 ではなく **`503` + `{"error": {"code": "data_unavailable", ...}}`** を返します(指数バックオフで再試行してください)。「空である」ことと「答えを出せない」ことがステータスコードで区別できます。 対象は `/segments` `/financials` `/indicators` `/dividends` `/shareholders` `/valuations` `/peers` `/securities/{code}/prices` `/securities/{code}/officers` `/persons/{id}/appointments` `/persons/{id}/compensation-history` `/persons/{id}/holdings` `/rankings/{metric}` です。 `reason` が付かないエンドポイントと、その理由: - `/securities` の一覧・`/screening` — 検索系。「条件に合致する銘柄が 0 件」は結果そのものであり、理由の説明を要しません - `/persons/{id}`(プロファイル) — 氏名・生年月日という本体を返すため、`current_appointments` が空でもレスポンス自体は空ではありません。全て退任済みの人物がこれに当たり、過去の就任先は `/persons/{id}/appointments` で取得できます - `/organizations/{edinet_code}` — `listed_security_codes` は必ず 1 件返ります(上場していない法人は `404`) - `/disclosures/{doc_id}`・`/disclosures/{doc_id}/sections/{section}` — 該当セクションが無い場合は `available_sections` で取得可能なセクションを案内します - `/industries`・`/screening/fields` — 固定のマスタ・カタログで空になりません ## 配信制約による欠損 適時開示(TDnet)由来のデータは、**開示から 24 時間以内は返しません**。同じ企業の同じ項目でも、IRBANK の Web サイトと API とで表示が異なる場合があります。詳細は[データカタログ](/data-catalog)を参照してください。 --- # エラーとレート制限 Source: https://docs.irbank.net/guides/errors-and-limits ## エラー形式 エラーは HTTP ステータスコードと JSON ボディで返します。ボディは全エンドポイント共通で、 機械可読な `code` を含みます。 ```json { "error": { "code": "not_found", "message": "Security not found" } } ``` `401` には `WWW-Authenticate: Bearer` が付きます(トークンが無効な場合は `error="invalid_token"`、 スコープ不足の `403` は `error="insufficient_scope"`)。 | ステータス | 意味 | | --- | --- | | `400` | パラメータ不正(不正だったパラメータは `error.details` に記載) | | `401` | API キーが無い・無効 | | `404` | リソースが存在しない(例: 存在しない証券コードの指定) | | `429` | レート制限・日次上限の超過 | | `5xx` | サーバーエラー | ### `error.code` 一覧 | `code` | ステータス | 意味 | | --- | --- | --- | | `invalid_parameter` | `400` | パラメータの値が不正。内訳は `error.details` | | `invalid_cursor` | `400` | `cursor` が壊れている。前回のレスポンスから取り直すか、先頭から取得し直す | | `unauthorized` | `401` | API キーが無い・無効 | | `forbidden` | `403` | この API キーでは REST API を利用できない | | `connect_access_required` | `403` | IRBANK Connect の利用許可が無い(本人確認が未完了・取り消し済み) | | `not_found` | `404` | リソースが存在しない | | `method_not_allowed` | `405` | そのパスで許可されていない HTTP メソッド | | `payload_too_large` | `413` | リクエストが大きすぎる | | `rate_limited` | `429` | レート制限・日次上限の超過 | | `data_unavailable` | `503` | データを一時的に取得できず応答を組み立てられない。バックオフして再試行する | | `service_unavailable` | `503` | 一時的に利用できない | | `internal_error` | `5xx` | サーバーエラー | ## パラメータ不正(`400`)の詳細 `400` では、不正だったパラメータを `error.details` に列挙します。複数のパラメータが同時に 不正な場合は、そのすべてが並びます。 ```json { "error": { "code": "invalid_parameter", "message": "years must be <= 30", "details": [{ "param": "years", "reason": "out_of_range", "expected": "<= 30" }] } } ``` | フィールド | 内容 | | --- | --- | | `param` | 不正だったクエリ/パスパラメータ名 | | `reason` | 不正の種別(下表)。分岐はこの値で書いてください | | `expected` | 受理される値の要約。示せない場合は省略されます | `reason` は次の値のいずれかです。値が追加されることはありません。 | `reason` | 意味 | | --- | --- | | `missing` | 必須のパラメータが指定されていない | | `conflict` | 同時に指定できないパラメータを併用している | | `invalid_type` | 型が違う(整数を求める箇所に小数、など) | | `invalid_format` | 形式が違う(`YYYY/MM` でない、コードの桁数が違う、など) | | `out_of_range` | 許容範囲の外(`expected` に超えた側の境界が入ります) | | `unknown_value` | 受理される値の集合にない(`expected` に一覧が入ります。**大文字小文字は区別します**) | | `too_many_items` | 指定できる件数の上限を超えている | | `invalid` | 上記のいずれにも当てはまらない | `message` は人間向けの説明で、**文言は予告なく変わります**。プログラムからの分岐には `error.code` と `details[].reason` を使ってください。 `details` は、パラメータの検証で弾かれた `400` に載ります。認証やレート制限のように リクエスト本体に到達する前の段階で返る `400` には載りません。**無い場合を許容する実装**に してください。 ## レート制限と日次上限 - 日次上限はプランごとに異なります([プランと利用上限](/getting-started/plans)) - 日次上限は REST API と MCP(IRBANK Connect)で共有の 1 つの枠です。MCP でのリクエストも同じ上限を消費します - 日次上限とは別に、短時間の集中アクセスを制御するレート制限があります。現在はアカウントごとに **60 リクエスト/分** です(同一アカウントの複数の API キーで合算されます)。日次上限の残りがある場合でも、この制限を超えたリクエストは `429 Too Many Requests` を返します - レート制限値はベータ期間中のため、実際の利用状況を踏まえて調整する場合があります - `429` レスポンスには再試行可能時刻を判断できる情報が含まれます - 残りリクエスト数は `GET /v1/usage` で確認できます(この照会自体は日次上限を消費しません) ## リトライの指針 `429` / `5xx` は指数バックオフでリトライしてください。`400` / `404` はリクエストを修正しない限り結果が変わらないため、リトライしないでください。 `200` でもデータが 0 件のときは `reason.code` で判断します(詳細は[日付・タイムゾーン・欠損値](/guides/dates-and-nulls))。 | `reason.code` | リトライ | | --- | --- | | `no_results` | 不要(TDnet 由来の直近開示分のみ、24 時間後に追加されることがあります) | サーバー側が一時的に回答を返せない場合は `200` ではなく `503` + `{"error": {"code": "data_unavailable", ...}}` を返すので、指数バックオフでリトライしてください。 --- # 会計期間と決算種別 Source: https://docs.irbank.net/guides/fiscal-periods ## 年次・四半期・半期 財務系エンドポイントは `period` パラメータで年次(`annual`)・四半期(`quarterly`)・半期(`semiannual`)を切り替えます。四半期データには `Q1`〜`Q4` / `full_year`、半期データには `H1` / `full_year` のラベルが付きます。 ## 累積と単期 四半期値は原則**単期**(そのクォーターのみの値)です。開示上の累積値から差分計算して単期化しています。 半期(`semiannual`)の `H1` は**上期累計**(期首〜中間期末)を開示値のまま返します。単期化はしません。 キャッシュフロー(`operating_cf` / `investing_cf`)を半期でのみ開示する企業では、`quarterly` の各四半期に単四半期の CF 値が存在せず `null` になります。この場合は `semiannual` を指定すると `H1` の累計 CF が取得できます。 ## 決算期変更 決算期変更に伴う移行短期決算(3 ヶ月・9 ヶ月等)は年次系列から除外し、各暦年で canonical な 12 ヶ月期を 1 期だけ返します。移行短期決算の開示値そのものは年次系列からは取得できません。 なお、取込み元データで会計期間が誤って記録されている一部の法人では、同一暦年に 2 期が残る場合があります。 実際の 12 ヶ月決算が存在しない暦年は、移行決算期末までの直近 12 ヶ月換算値が収録されている場合にそれで補完します。この換算値は開示された四半期実績からの推計値のため、開示書類の数値とは一致しません。 12 ヶ月換算値も収録されていない場合は、その期末時点の残高(総資産・純資産などの貸借対照表項目)のみで補完します。この期では売上高・利益などのフロー項目は `null` になります。 決算期変更の結果その暦年に決算期末が存在しない場合(例: 12 月決算から 3 月決算へ移行し、移行期が 15 ヶ月になる年)は、その暦年の期を返しません。 上記の判定は返却する項目に含まれるデータをもとに行うため、決算期変更に該当するごく一部の暦年では、返却項目数の異なるインターフェース間(REST の `/financials` と MCP の `get_financials`)で採用される期が異なる場合があります。 ## 連結・単体の判定 各期の `is_consolidated` は連結(`true`)/単体(`false`)を表しますが、これは**期全体の要約ラベル**で、期内の連結科目数の比率から決めています。個々の項目の値は、その項目について開示のあるスコープを採ります。そのため、連結決算の企業でも一部の項目が単体開示からしか取れない(あるいはその逆)という状態は珍しくありません。 ラベルと逆のスコープが採用された項目は `scope_exceptions` に項目キーの一覧として入ります。**大半の期で 1 件以上入ります**(例外的な異常データを示すものではありません)。空配列なら、値を返す全項目が `is_consolidated` と同じスコープです。 同様に `standard_exceptions` は、期の `accounting_standard` と異なる会計基準で採用された項目キーを、実際に採用された基準ごとに列挙します。会計基準の移行期などで発生します。 `is_consolidated` と `scope_exceptions`(`accounting_standard` と `standard_exceptions`)を組み合わせると、各項目が実際にどのスコープ・どの基準の値なのかを項目単位で復元できます。スコープを揃えて比較したい場合は、`scope_exceptions` に載っている項目を除外してください。 ## 会計基準 J-GAAP 固有の項目(経常利益・特別損益)は、IFRS / US-GAAP 提出企業では `null` になります。 --- # 企業・銘柄の識別子 Source: https://docs.irbank.net/guides/identifiers IRBANK API では 2 種類の識別子を使い分けます。 ## 証券コード(security_code) 4 桁の証券コード(例: `7203` = トヨタ自動車、英数字コードは `285A` など)。株価・銘柄マスタ・バリュエーションなど**銘柄**単位のデータで使います。取引所やニュースで使われている一般的なコードをそのまま指定できます。 収録している銘柄はすべて 4 桁コードを持ちます。優先株など 4 桁形が無く 5 桁コード(例: `25935`)でしか表せない銘柄は、現在は収録していません(5 桁コードを指定しても該当銘柄が無いため 404 になります)。収録している銘柄の一覧は `GET /v1/securities` で取得できます。 ## EDINET コード(edinet_code) `E` + 5 桁(例: `E02144`)。財務・開示・株主など**法人**単位のデータで使います。 ## 法人と銘柄の関係 1 法人(EDINET コード)が優先株など複数の銘柄を上場している場合がありますが、収録しているのは主たる上場銘柄(本体株式)だけです。持株会社の場合、財務データは持株会社(法人)に、株価は上場銘柄(証券コード)に紐づきます。 財務時系列(`GET /v1/financials`)は `edinet_code` の代わりに `security_code` でも指定できます。指定できるのは法人の主たる上場銘柄(本体株式・4 桁)のコードのみで、発行法人の主たる EDINET 提出者へ自動解決し、解決結果をレスポンスの `edinet_code` に含めて返します。EDINET 提出者を持たない ETF 等は 404 になります。 --- # ページング Source: https://docs.irbank.net/guides/pagination 一覧系エンドポイントは **cursor ベース**のページングを採用しています。 ## 使い方 ```bash # 1 ページ目 curl ".../v1/securities?limit=100" # レスポンスの next_cursor を次のリクエストに渡す curl ".../v1/securities?cursor=eyJvZmZzZXQi..." ``` - `next_cursor` は不透明な文字列です。中身の解析や組み立てをしないでください - `next_cursor` が無いレスポンスが最終ページです - ページ番号・オフセット指定は提供しません(深いページでの性能劣化と、ページ間のデータ変動による重複・欠落を避けるため) --- # 株式分割・併合の調整方針 Source: https://docs.irbank.net/guides/price-adjustment ## 調整後終値(adj_close) 日次株価(`GET /securities/{code}/prices`)は生の終値(`close`)と、株式分割・併合を最新株数基準で遡及調整した `adj_close` の両方を返します。 **時系列比較・チャート分析には `adj_close` を使ってください。** `close` は当時の生値のため、分割・併合の境界で不連続になります。 ## 調整後フィールド(`*_adjusted`) 1 株基準の指標も同じ方針で、報告時の生値と**最新株数基準で遡及調整した値**(`*_adjusted`)の両方を返します。 - バリュエーション(`GET /valuations`): `stock_price_adjusted`・`stock_price_high_adjusted`・`stock_price_low_adjusted`・`pbr_adjusted`・`bps_adjusted`・`dps_adjusted`・`eps_adjusted`・`dividend_yield_adjusted` など - 配当(`GET /dividends`): `annual_dps`(報告時実額)と `annual_dps_adjusted` `GET /valuations` の株価は 2 系統あります。`stock_price`・`stock_price_high`・`stock_price_low` は**その決算期末終値と同じ株数基準**へ揃えてあり、同一行内での終値・高値・安値の比較に使えます(`per` もこの基準。`market_cap` は金額として基準に依らず一定です。ただし `stock_price` と `shares_outstanding` の積にはならない決算期があります — 次節参照)。決算期をまたぐ株価の比較には `*_adjusted`(最新株数基準)を使ってください。 ## 時価総額と発行済株式数 `market_cap`・`stock_price` は円、`shares_outstanding` は株なので、`stock_price × shares_outstanding` が `market_cap` に対応します。そして**この積と一致しない決算期があります**。`market_cap` は価格と株数を必ず同じ株数基準の組み合わせで算出しており、次の 2 つの場合に同じ行の 2 フィールドの積とは食い違います。 1. **決算期末が権利落ち日〜効力発生日の隙間に入る決算期**: `shares_outstanding` は各決算期末時点の有価証券報告書・決算短信の記載値(as-reported)で、分割・併合の遡及調整をしていないため、効力発生日まで旧株数基準のままです。一方 `stock_price` は実際の終値なので、権利落ち日から新株数基準になります。切り替わる日が違うので、この隙間に決算期末が入ると 2 つのフィールドの基準がずれます。`market_cap` は株数を株価と同じ基準へ揃えて算出します。 2. **`shares_outstanding` が返らない決算期**: その決算期でも `market_cap` は算出されますが、同じ行の `stock_price` との積では再現できません。 例: オリエンタルランド(4661)の 1:5 分割(権利付き最終日 2023-03-29・権利落ち日 2023-03-30・効力発生日 2023-04-01)。 | 決算期 | stock_price | shares_outstanding | 積(円) | market_cap(円) | | --- | --- | --- | --- | --- | | 2022/03 | 23,510 | 363,690,160 | 8,550,355,661,600 | 8,550,355,661,600 | | 2023/03 | 4,528 | 363,690,160 | 1,646,789,044,480 | 8,233,945,222,400 | | 2024/03 | 4,849 | 1,818,450,800 | 8,817,667,929,200 | 8,817,667,929,200 | 2022/03 と 2024/03 は積が `market_cap` と一致します。2023/03 だけ決算期末(3/31)が権利落ち日(3/30)と効力発生日(4/1)の間に入るため、株価だけが分割後の株数基準になっており、`market_cap` は株数を分割後基準(1,818,450,800 株)へ揃えて算出しています。この値は正しい時価総額です。**時価総額は `market_cap` を参照してください**。 分割・併合をまたいで発行済株式数の推移そのものを見たい場合は、`shares_outstanding`(各期の as-reported 実数)をそのまま使えます。 ## 調整される値・されない値 - 調整あり: `adj_close` と `*_adjusted` の付くフィールド(BPS / DPS / EPS / PBR / 配当利回りの adjusted 系) - 調整なし(as-reported): `eps`・`bps_reported` など報告時実額の系列と `close`・`*_reported` の付くフィールド、および `shares_outstanding`。分割年をまたぐ比較には注意してください as-reported の 1 株指標(`eps`・`bps_reported`)は、決算日後・報告書提出前に効力発生した分割を**発行体が遡及再表示する**ため、IRBANK 側で調整していなくても分割の前後で不連続になることがあります(上のオリエンタルランドの例では `bps_reported` が 2022/03 の 2,309.12 から 2023/03 の 506.5 へ切り替わります)。`GET /valuations` で決算期をまたいで比較する場合、BPS は `bps_adjusted`、DPS は `dps_adjusted`、EPS は同一エンドポイントの `eps_adjusted` を使ってください。 **注意**: `GET /financials` と `GET /indicators` にも同名の `eps_adjusted` がありますが、算出元が異なり値が食い違うことがあります。`GET /valuations` の `eps_adjusted` は `GET /financials` / `GET /indicators` の `eps_computed_adjusted`(計算値ベースの分割調整値)と同一算出元です。`GET /financials` / `GET /indicators` 自身の `eps_adjusted` は別系統の算出値で、直近に株式分割を実施した企業の最新期で調整が未反映になる既知の問題があります。`GET /financials` / `GET /indicators` を使って決算期をまたぐ EPS 比較をする場合は `eps_adjusted` ではなく `eps_computed_adjusted` を使ってください。 --- # 単位とスケール Source: https://docs.irbank.net/guides/units 数値フィールドの単位はレスポンスに機械可読な形で付与されます(self-describing)。AI クライアントや自動処理が桁を取り違えないためのものです。 ## 単位語彙 | 識別子 | 意味 | 使用例 | | --- | --- | --- | | `jpy` | 円 | 株価・売上高・営業利益などの財務金額・時価総額・企業価値(EV) | | `jpy_per_share` | 円/株 | EPS・BPS・DPS | | `percent` | %(10.1 = 10.1%) | ROE・配当利回り・前年比 | | `ratio` | 比率の生値(0.7763 = 77.63%) | 株主資本比率・配当性向・女性役員比率・男女賃金格差 | | `points` | ポイント(%ポイント差) | ROE 変化幅(3年前比)・ROE 要因分解の寄与 | | `times` | 倍(無次元) | PER・PBR・信用倍率 | | `shares` | 株 | 発行済株式数・出来高・保有株数・信用残 | | `people` | 人 | 従業員数・株主数・女性役員数 | | `t_co2e` | トンCO2換算(t-CO2e) | GHG 排出量 Scope1 / Scope2 / Scope3 | | `days` | 日 | 上場後経過日数・逆日歩日数 | | `years` | 年 | 連続増配年数・平均年齢 | | `months` | 月 | 手元流動性比率(現金が月商の何ヶ月分か) | | `count` | 回・件などの無次元カウント | テクニカル指標値・連続回数・合成スコア(ピオトロスキー F スコア等) | 単位を持たないフィールド(スクリーニング指標カタログの `type: enum` など)では `unit` は `null` になります。 金額は円で返すため桁が大きくなります。JavaScript の `JSON.parse` は 9,007,199,254,740,991(約 9,007 兆)を超えると精度が落ちます。収録されている単一項目の最大値は約 434 兆円(総資産)で上限の 1/20 ですが、複数項目・複数社を合算する場合は留意してください。 ## `ratio` と `percent` — 同じ概念でも単位は同じとは限りません `ratio` は 1.0 = 100% のスケール、`percent` は 100 = 100% のスケールです(どちらも 100% を超える値・負の値を取りえます。例: 配当性向)。**同じ「自己資本比率」でも、エンドポイントによってどちらで返すかが異なります**。値そのものは正しく、単位識別子が両者を区別しています。 | エンドポイント | フィールド | `unit` | 例(任天堂 FY2026) | | --- | --- | --- | --- | | `/financials` | `equity_ratio` | `ratio` | 0.7763 | | `/indicators` | `equity_ratio` | `ratio` | 0.7763 | | `/indicators` | `equity_ratio_computed` | `percent` | 77.63 | | `/screening/fields` | `equityRatio` | `ratio` | 0.7763 | `/indicators` では**報告値と計算値が別のキーで併存します**。`equity_ratio`・`roe`・`bps` は提出書類に記載された報告値、`equity_ratio_computed`・`roe_computed`・`bps_computed` は財務諸表の数値から算出した計算値で、算出方法が異なるため値は一致しません。 数値を解釈するときは、フィールド名ではなく必ずレスポンスの `unit`(`/screening` は `GET /screening/fields` の `unit`)を見てください。 ## スクリーニングのしきい値はフィールドの単位で指定します `/screening` の `filters` は、そのフィールドの `unit` と同じスケールでしきい値を書きます。`unit: ratio` のフィールドに百分率のしきい値を渡してもリクエストとしては妥当なので**エラーにはならず、単に 0 件になります**。 ``` # 「自己資本比率 70% 以上」のつもり → 0 件(1.0 = 100% のスケールに 70 は現れない) GET /v1/screening?filters=equityRatio:gte:70 # 正しい書き方(unit: ratio なので 0.7 と書く) GET /v1/screening?filters=equityRatio:gte:0.7 ``` 金額のフィールド(`unit: jpy` の `marketCap`・`enterpriseValue`)も同じく円で指定します。こちらは旧単位(億円)とみられるしきい値を 400 で弾き、円での書き方を案内します。 ``` # 「時価総額 1,000 億円以上」のつもり → 400(1,000 円と解釈されるのを防ぐ) GET /v1/screening?filters=marketCap:gte:1000 # 正しい書き方(unit: jpy なので円で書く) GET /v1/screening?filters=marketCap:gte:100000000000 ``` 400 になるのは 0 より大きく 100 万円未満のしきい値だけです。`marketCap:gte:0` のような下限なしの指定はそのまま使えます。 `unit: ratio` のフィールド(`equityRatio`・`payoutRatio`・`ratioOfFemaleDirectors`・`ratioOfFemaleManagers`・`ratioOfMaleEmployeesTakingChildcareLeave`・`wageGap*`)は 70% を `0.7`、`unit: percent` のフィールド(`roe`・`dividendYield` など)は 70% を `70` と書きます。`unit: times`(`per`・`pbr`・`pegRatio`・`deRatio` など)は倍率で、比率ではありません。各フィールドがどちらかは `GET /screening/fields` の `unit` と `note` で確認できます。 --- # バージョニングと後方互換 Source: https://docs.irbank.net/guides/versioning ## パスバージョニング API バージョンは URL パスに含まれます(`/v1/...`)。**同一バージョン内では、レスポンス構造およびリクエスト契約に対する破壊的変更を行いません。** この保証の対象は API の契約(フィールドの有無・名前・型、パラメータの仕様)です。配信されるデータの値そのもの(訂正・再集計にともなう変化)は対象に含みません。 ## 非破壊的変更(予告なく行うことがある) - レスポンスへのフィールド追加 - 任意リクエストパラメータの追加 - enum への値追加(利用側の分岐を壊さないもの) - **データの訂正・再計算による値の変化**(一次情報の訂正、集計ロジックの不具合修正、遡及的な再計算を含む) **利用側は未知のフィールドを無視する実装にしてください。** ## 破壊的変更(新バージョンで行う) - フィールドの削除・リネーム・型変更 - 必須パラメータの追加 - 既定の挙動(ソート順・パラメータの既定値)の変更 - エンドポイントの削除 ## 例外 法令・データ提供元との契約・セキュリティ上の要請により、同一バージョン内であっても変更が必要になる場合があります。この場合は原則として変更履歴で事前に告知し、可能な限り移行期間を設けます。ただし、脆弱性対応など緊急を要する場合は、変更を先行して適用し、変更履歴ですみやかに告知します。 また、**提供実体を持たないフィールド**(全対象・全期間にわたって値が存在せず、上流に算出・収集の実装が無いもの)は、同一バージョン内で提供項目から削除することがあります。利用者が受け取る値(常に `null`)は変わらないためです。削除にあたっては、事前に実データで全期間・全対象にわたり値が存在しないことを確認し、変更履歴で告知します。 **ベータ期間中の単位の統一**も、同一バージョン内で行うことがあります。フィールド名・型は保ったまま値のスケールが変わり、そのフィールドをしきい値として受け取るパラメータ(`/screening` の `filters`)の解釈も同時に変わります。対象・変更前後の単位・移行方法は変更履歴に記載します(実施例: [金額をすべて円単位で返すように変更](/changelog/amounts-in-jpy))。ベータ終了後は行いません。 ## 非推奨化(deprecation) バージョンを廃止する場合は、ドキュメントと変更履歴で事前に告知し、移行期間を設けます。 --- # IRBANK API Source: https://docs.irbank.net/reference IRBANK 外部公開 API(REST)。日本の上場企業の財務・株価関連・需給・開示データを HTTP + JSON で提供する。認証は API Key(Bearer)。利用上限・プランは「[プランと利用上限](https://docs.irbank.net/getting-started/plans)」を参照。 ## securities ## organizations ## industries ## financials ## indicators ## segments ## dividends ## valuations ## peers ## shareholders ## persons ## disclosures ## screening ## rankings ## usage --- # 開示書類の詳細 Source: https://docs.irbank.net/reference/disclosures/getdisclosuredocument EDINET / TDnet の開示書類の詳細 (メタ情報・章構成・XBRL ファクト) を返す。TDnet 由来開示は開示時刻から 24 時間以上経過後のみ取得可能 (未経過は 404)。 --- # 開示書類の指定セクション本文 Source: https://docs.irbank.net/reference/disclosures/getdisclosuresectiontext 開示書類の指定セクションの本文テキストを返す。指定 section が存在しない場合は section_text: null と available_sections (候補一覧) を 200 で返す。TDnet 由来開示は開示時刻から 24 時間以上経過後のみ取得可能 (未経過は 404)。 --- # 年次配当実績 Source: https://docs.irbank.net/reference/dividends/listdividends EDINET コード指定で法人の年次配当実績を古い順 (fiscal_year 昇順) で返す。1株配当 (報告時実額 / 分割・併合の遡及調整後) / 配当性向 / DOE / 純資産配当率 / 連続増配年数と根拠開示参照 (source_refs)。実績のみ — 配当予想・スケジュール・利回りは対象外。各数値プロパティの単位は fields[].unit を参照。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 財務時系列 Source: https://docs.irbank.net/reference/financials/getfinancials 上場法人の財務時系列 (最大 30 期, `as_of` 起点) を返す。 ## 対象の指定 - `edinet_code` または `security_code` のどちらか一方を指定する。 - `security_code` は法人の主たる上場銘柄 (本体株式・4 桁) のみ指定可。法人の主たる EDINET 提出者へ解決して返す (レスポンスの `edinet_code` に解決結果を含む)。 ## 期間の単位 (`period`) 年次 (`annual`, 既定)・四半期 (`quarterly`)・半期 (`semiannual`) を選択できる。 ### `annual` - 各暦年 1 期 (canonical な 12 ヶ月期) を返し、決算期変更に伴う移行短期決算 (3 ヶ月・9 ヶ月等) の開示値は含まない (取込み元データの期間が誤っている一部の法人では同一暦年に 2 期が残ることがある)。 - 実 12 ヶ月決算が無い暦年は、直近 12 ヶ月換算値が収録されていればそれで補完する (開示四半期実績からの推計値で、開示書類の数値とは一致しない)。 - 換算値も無い場合は期末残高 (BS 項目) のみの期で補完し、この期はフロー項目 (売上高・利益等) が null になる。 - 決算期変更の結果その暦年に決算期末が存在しない場合は、その暦年の期を返さない。 ### `semiannual` - 上期累計 (`H1`) + 通期 (`full_year`) を返す。 - CF を半期のみ開示する企業の `operating_cf` / `investing_cf` はこのモードで取得できる (`quarterly` では単四半期行が存在せず null になる)。 ## 返す項目 - 財務諸表の全収録項目 (PL / BS / キャッシュフロー / 配当 / バリュエーション / 人的資本 / ESG 約 100 項目)。 - EPS / BPS / ROE / DPS の計算値・株式分割調整値 (`eps_computed` / `eps_computed_adjusted` / `eps_adjusted` / `diluted_eps_adjusted` / `bps_computed` / `bps_computed_adjusted` / `bps_adjusted` / `roe_computed` / `dps_adjusted` / `dps_q2_adjusted` / `dps_year_end_adjusted`)。 - 未開示・非対象の項目は null。 - 残高 (期末時点) 系の項目 (総資産等の BS 項目・現金及び現金同等物 等) は `period=quarterly` / `semiannual` では `full_year` 行にのみ値が入る。 ## 単位 - 金額系は円 (`jpy`, 整数)、1 株当たり指標は円/株、比率は報告値そのまま。 - 各数値プロパティの単位はレスポンスの `fields[].unit` に機械可読で付与 (self-describing)。 ## 期ラベル (`is_consolidated` / `accounting_standard`) いずれも期単位の要約で、値を返す項目のうち有価証券報告書「主要な経営指標等」の代表 6 項目 (売上高 / 当期純利益 / 総資産 / 純資産 / 営業CF / 現金及び現金同等物) を母数に算出する (母数を固定するのは、取得項目数によってラベルが変わらないようにするため)。 - 代表 6 項目が 1 つも値を持たない期では代替の母数へフォールバックするため、下記の例外一覧から母数を逆算しても一致しないことがある。 - `period=quarterly` / `semiannual` では残高系の代表項目 (総資産 / 純資産 / 現金及び現金同等物) が `full_year` 行にしか入らず、単四半期 (Q1〜Q4) の母数は売上高・当期純利益が中心になる。 - `is_consolidated` は母数のうち連結として採用された項目の比率がしきい値以上なら true だが、最小件数の下限は課さないため、母数が薄い期では連結項目が過半に満たなくても true になることがある。 - 値の採用は項目ごとの連結優先・会計基準優先フォールバックのため、期ラベルと逆スコープ・異基準で採用された項目キーは各期の `scope_exceptions` / `standard_exceptions` に列挙される (`scope_exceptions` が空配列 / `standard_exceptions` が空オブジェクトなら、値を返す全項目が期ラベルと同一)。 ## 空レスポンス 該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 計算済み財務指標の時系列 Source: https://docs.irbank.net/reference/indicators/getindicators 上場法人の計算済み財務指標の年次時系列 (最大 30 期, `as_of` 起点) を返す。 ## 対象の指定 - `edinet_code` または `security_code` のどちらか一方を指定する。 - `security_code` は法人の主たる上場銘柄 (本体株式・4 桁) のみ指定可。法人の主たる EDINET 提出者へ解決して返す (レスポンスの `edinet_code` に解決結果を含む)。 ## 返す項目 営業利益率・ROA・ROE・PER・自己資本比率・配当性向・流動比率・回転率・成長率・連続増配年数・業績予想修正統計など、財務指標 175 項目を提供する (`/financials` が財務諸表の報告値そのもの、本エンドポイントが指標という分担)。 - 大半は有価証券報告書等の報告値から算出した計算値だが、ROE・PER・自己資本比率・配当性向・BPS・DPS のように提出書類に指標として記載される項目は報告値をそのまま返す (計算値と併存する項目は `roe` / `roe_computed` のようにキーで区別でき、算出方法の違いにより両者は一致しない)。 - 値は上流の計算結果・報告値をそのまま返し (as-computed / as-reported)、分母が小さい企業では比率が極端な値になりうる。 - 値が無い項目は null (当該法人・業種で非対象、未開示、上流で算出不能のいずれも含む)。0 とは区別され、null は「値が存在しない」ことを表す。 ## 単位 - 各指標の単位・分析カテゴリはレスポンスの `fields[].unit` / `fields[].category` に機械可読で付与 (self-describing)。 - 比率系は原則 % 値 (例: 7.4 = 7.4%)。ただし報告値の `equity_ratio`・`payout_ratio` のみ生比率 (例: 0.5 = 50%、`fields[].unit` は `ratio`) で、% 値が必要な場合は `equity_ratio_computed` を使う。 - 金額系のうち集計額の `net_debt`・`total_dividends` は円 (`jpy`, 整数)、従業員 1 人当たり系は円 (`jpy`)、1 株当たり系は円/株。 ## 対象期間 - 提供は年次のみ (四半期は将来拡張予定)。 - 返すのは決算期末が到来済みの期のみで、進行中の年度 (決算期末が未到来) は含まない (業績予想の修正統計は進行中年度についても算出されるが、その期は他の指標がすべて null になり `years` の枠を消費するため対象外としている)。 - ある期の指標が適時開示 (TDnet) の 24 時間以内で再配信できない場合、その期の当該指標は null になり、期内の全指標が非表示になるとその期は `periods` 自体から除かれる。 ## 期ラベル (`is_consolidated` / `accounting_standard`) いずれも期単位の要約で、値の採用は項目ごとの連結優先・会計基準優先フォールバックのため、期ラベルと逆スコープ・異基準で採用された項目キーは各期の `scope_exceptions` / `standard_exceptions` に列挙される (空配列なら全項目が期ラベルと同一)。 ## 空レスポンス 該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 東証 17/33 業種マスタ Source: https://docs.irbank.net/reference/industries/listindustries 東証 17 業種 (TOPIX-17 セクター) と 33 業種の一覧。33 業種には対応する 17 業種名を parent として付与する (JPX 公式の固定対応)。 --- # 法人基本情報 Source: https://docs.irbank.net/reference/organizations/getorganization EDINET コード指定で上場法人の基本情報 (法人名・所在地・上場証券コード) を返す。財務時系列は GET /financials、セグメント別業績は GET /segments。 --- # 競合企業 Source: https://docs.irbank.net/reference/peers/listpeers 指定銘柄の競合企業を、有価証券報告書ベースの競合分析に基づいて競合セグメント・競合理由付きで返す。 ## 並び順と件数 - `security_code` 昇順に並べ、その先頭 `limit` 件 (既定 8) を返す (自銘柄は除外)。 - 競合としての関連度順ではないため、競合が `limit` を超える銘柄では証券コードの大きい競合が落ちる。 - 落ちた件数を示すフィールドもページングも無いため、より多く必要な場合は `limit` を最大 20 まで上げる。 ## 非上場競合の置き換え - 競合が非上場の場合は親会社チェーンを辿り、最も近い上場親会社に置き換えて返す。 - この置き換えが起きた競合では `segments` と `competition_reason` は置き換え前の非上場競合のものになる。 - 置き換えの有無と置き換え前の競合名はレスポンスに含まれない。 ## 親会社等 (`parent_companies`) - 各競合には、その競合の議決権を保有する親会社等 (`parent_companies`: 名称・証券コード・種類・議決権割合) を最新の有価証券報告書「関係会社の状況」から添える。 - これは開示そのもので、上記の置き換えに使う親会社チェーン (競合分析由来の推定) とは別のソース。 ## 注意 - `capital_relationship` は上流の競合分析が資本関係を出力していないため、現状はすべての競合で null。 - 業種による絞り込みではないため、業種をまたぐ競合が含まれることがあり、同業種でも競合と判定されなければ含まれない。同業種の銘柄一覧が必要な場合は `GET /securities` の `industry` フィルタを使う。 ## 空レスポンス 競合分析データが無い銘柄と、競合が全て非上場で上場親会社にも解決できない銘柄は `peers: []` を返す。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 人物プロファイル Source: https://docs.irbank.net/reference/persons/getperson 人物の氏名・生年月日と現任の役員就任先一覧を返す。全て退任済みの人物は current_appointments が空配列になる (氏名・生年月日は返る)。過去の就任先は GET /persons/{id}/appointments で取得する。 --- # 人物の役員就任履歴 Source: https://docs.irbank.net/reference/persons/getpersonappointments 企業(証券コード・名称)ごとの役員就任履歴と役職の変遷(就任日・退任日)を返す。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 人物の役員報酬履歴 Source: https://docs.irbank.net/reference/persons/getpersoncompensationhistory 企業ごとの年度別役員報酬(報酬 1 億円超の個別開示に基づく)を返す。報酬データが無い人物は companies が空配列。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 人物の保有株式 Source: https://docs.irbank.net/reference/persons/getpersonholdings 銘柄(証券コード・名称)ごとの保有株式数と会計期末ごとの推移を返す。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 銘柄の役員一覧 Source: https://docs.irbank.net/reference/persons/listsecurityofficers 有価証券報告書の役員一覧に基づく、銘柄の役員(現任・退任済み・来期選任候補を含む)の人物単位の一覧を返す。並びは現任 → 来期選任候補 → 退任済みの順で、各グループ内は有報掲載順。各 person_id は GET /persons/{id}(プロファイル)・/appointments(就任履歴)・/compensation-history(報酬)・/holdings(保有株式)の入力に使える。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 指標別ランキング Source: https://docs.irbank.net/reference/rankings/getranking 指定した指標の市場横断ランキング(順位・証券コード・銘柄名・指標値)を最新営業日基準で返す。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # スクリーニング指標カタログ Source: https://docs.irbank.net/reference/screening/listscreeningfields GET /screening の filters / sort_by に指定できる指標キーの一覧を返す。type=numeric のキーのみ filters / sort_by に使用できる(type=enum は sector / industry パラメータ専用)。 --- # 複数条件スクリーニング Source: https://docs.irbank.net/reference/screening/screensecurities 財務指標・銘柄名・業種/セクターで上場銘柄をスクリーニングする。filters は `field:op:value` のカンマ区切り(最大 20 件、AND 結合。op は gte / lte / gt / lt / eq)。有効な指標キーは GET /screening/fields。しきい値と metrics[].value は GET /screening/fields の unit と同じスケール(金額は円。時価総額 1,000 億円は marketCap:gte:100000000000)。金額指標のしきい値が 0 より大きく 100 万円未満の場合は、旧単位 (億円) の指定とみなして 400 を返す。 --- # 銘柄詳細 Source: https://docs.irbank.net/reference/securities/getsecurity 指定した銘柄の基本情報(証券コード・銘柄名・市場区分・業種・EDINET コード・上場状態・上場年月・決算月・発行済株式数)を返す。 --- # 銘柄の日次株価 Source: https://docs.irbank.net/reference/securities/getsecurityprices 指定した銘柄の日次株価(始値・高値・安値・終値・調整後終値・出来高)を新しい順で返す。東証ライセンスに基づくシステム共通の制約により、2005-01-01 より前は出典によらず全銘柄で提供されない。時系列比較には株式分割・併合を遡及調整した adj_close を使うこと。出典は原則 JPX 東京証券取引所。ただし札証・福証の単独上場銘柄は JPX の配信に含まれず、各取引所が公表する日報が出典となる(銘柄ごとに変わるため attribution を参照)。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 上場銘柄の一覧 Source: https://docs.irbank.net/reference/securities/listsecurities 上場銘柄(証券コード・銘柄名・市場区分・業種)を証券コード昇順で返す。銘柄詳細は GET /securities/{code}。 --- # セグメント別業績 Source: https://docs.irbank.net/reference/segments/listsegments EDINET コード指定で法人のセグメント別業績一覧を返す (売上 / 営業利益 / 連結売上シェア / 前年比 / 従業員数 / セグメント資産)。fiscal_year (例: 2025) を指定すると当該年度のみ返す。未指定時は直近 20 期相当の全年度。TDnet 由来の値は開示から 24 時間以上経過したもののみ返す。各数値プロパティの単位はレスポンスの fields[].unit に機械可読で付与 (self-describing)。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 発行体の大株主リスト Source: https://docs.irbank.net/reference/shareholders/listshareholders 発行体起点の大株主リスト(EDINET 大量保有報告書ベース)。現在有効な保有情報を保有比率降順で返す。各数値プロパティの単位は fields[].unit に機械可読で付与 (self-describing)。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 残りリクエスト数 Source: https://docs.irbank.net/reference/usage/getusage 当日(JST)の日次上限に対する使用量と残数を返す。この照会自体は日次上限を消費しない。 --- # 年次バリュエーション時系列 Source: https://docs.irbank.net/reference/valuations/getvaluations 単一銘柄の年次バリュエーション時系列を決算期末の新しい順で返す。株価 / 時価総額 / PER / PBR (報告基準・調整後) / EPS (報告基準・調整後) / BPS (報告基準・調整後) / ROE / 配当利回り (報告基準・調整後) / 発行済株式数と、トップレベルの per_5y_avg (直近5年 PER の単純平均)。各**数値**プロパティの単位は fields[].unit を参照 (金額は円)。fiscal_year と per_source は数値ではないため fields[] の対象外。PER は有報報告値 EPS を優先し、欠測する決算期のみ計算値で補完する (採用元は per_source)。ROE は報告値 (roe) と計算値 (roe_computed) を別項目で返す (/financials と同じ分け方)。該当データが 0 件のときは空配列とともに reason (code=no_results + 状況の説明) を返す。 --- # 提供状況・ロードマップ Source: https://docs.irbank.net/roadmap 各エンドポイントの提供段階の一覧です。API の詳細な仕様(パラメータ・レスポンス・呼び出し例)は[リファレンス](/reference)を参照してください。 - **提供中** — ベータで提供中のエンドポイント([リファレンス](/reference)に掲載) - **追加予定** — 順次追加予定(提供開始は[変更履歴](/changelog)で告知します) ## 提供中 | カテゴリ | エンドポイント | | --- | --- | | マスタ | `GET /securities`・`GET /securities/{code}`・`GET /organizations/{edinet_code}`・`GET /industries` | | 株価 | `GET /securities/{code}/prices` | | 財務 | `GET /financials`・`GET /indicators`・`GET /segments`・`GET /dividends`・`GET /valuations` | | 株主・保有 | `GET /shareholders` | | 人物 | `GET /securities/{code}/officers`・`GET /persons/{id}`・`GET /persons/{id}/appointments`・`GET /persons/{id}/compensation-history`・`GET /persons/{id}/holdings` | | 開示 | `GET /disclosures/{doc_id}`(`?include=xbrl_facts` で XBRL ファクトを含む)・`GET /disclosures/{doc_id}/sections/{section}` | | 企業関係 | `GET /peers` | | スクリーニング・ランキング | `GET /screening`・`GET /screening/fields`・`GET /rankings/{metric}` | | その他 | `GET /usage` | ## 追加予定 順次追加します。 | カテゴリ | 追加予定エンドポイント | | --- | --- | | 株価・需給 | 日次株価(全銘柄横断)・週次信用残・日証金 日次貸借/逆日歩・大量保有報告書フィード | | 財務 | 財務諸表明細(BS/PL/CF)・勘定科目・1 株当たり指標 | | 株主・保有 | 報告者プロファイル・保有者起点の逆引き・所有者別状況・政策保有株式 | | 人物 | 役員報酬(企業単位) | | 企業関係 | 取引先・子会社・投資先(`relationships`) | | 開示 | 開示フィード(全社横断) | | 経済指標 | 経済指標の定義・時系列値 | ## ご要望・お問い合わせ 追加してほしいエンドポイントやデータのご要望は[お問い合わせフォーム](https://app.irbank.net/feedback)からお寄せください。