バフェット・コードのブログ

企業分析に役立つ記事を配信中

API V2のサービス終了と API V3 への移行方法

このページについて

バフェットコードAPIは、予てより v3の利用を推奨していましたが、2022年2月末での v2 のサポートを終了することにしました。

つきましては、2022年2月28日までにv2 から v3 に移行していただく必要ありますが、このページでは、現在バフェットコード API v2を参照しているユーザに向けて

  • v3 の変更点
  • v2 から v3 への移行手順

について説明します。

各エンドポイントの詳細な仕様については BuffettCode API ドキュメント をご確認ください。

2022年2月28でサポートが終了するAPI一覧

https://api.buffett-code.com/api/v2/ 以下のAPIすべてのサポートが終了します。従量課金の https://api.buffett-code.com/api/v2/ondemand/ 配下も含まれます。

V3の変更点

バフェットコード v3 では、大きく分けて下記の5つの変更が加えられています。

  1. Screening, Ondemand Daily エンドポイントの追加
  2. Bulk Quarter, Bulk Daily, Ondemand Daily エンドポイントの追加
  3. Company, Quarter, Daily, Updated Quarter エンドポイントのクエリパラメータの非互換な変更
  4. Indicator エンドポイントは廃止、Quarter, Dailyへ統合
  5. Company, Quarter, Ondemand Quarter, Daily の各エンドポイントのレスポンスのデータ構造の非互換な変更

1. のScreeningとOndemand Dailyについては完全な新機能ですので、ここでは説明を割愛します*1

以下に、エンドポイントごとの非互換な変更をまとめます。なお、Search エンドポイントは非互換な変更ありません。

Indicator の非互換な変更

  • Indicator エンドポイントは廃止されます
  • Indicator  エンドポイントで最新値のみを提供していた各種項目は、Quarter, Daily で時系列データとして提供します

Company の非互換な変更

Company エンドポイントの非互換な変更は下記の通りです。

  • v2では任意パラメータだった "ticker" の指定が必須になりました
  • レスポンスのJSONのデータ構造が変更されました

Quarter の非互換な変更

Quarter エンドポイントの非互換な変更は下記の通りです。

  • v2時点で非推奨のクエリパラメータだった、{tickers, from, to} が廃止され、 {ticker, fy, fq} での指定が必須になりました 
    • 銘柄と範囲を指定してデータを取得する場合は新設の Bulk Quarter をご利用ください
    • Bulk Quarter エンドポイントでは、 ticker, from, to をサポートしています
    • 複数の銘柄を指定してのリクエストはできなくなりました
  • レスポンスのJSONのデータ構造が変更されました
  • デフォルトでは、大きなhtmlが返る項目を省略するようにしました

Ondemand Quarter の非互換な変更

Ondemand Quarter エンドポイントの非互換な変更は下記の通りです。

  • レスポンスのJSONのデータ構造が変更されました

Daily の非互換な変更

Daily エンドポイントの非互換な変更は下記の通りです。

  • クエリパラメータが {tickers, from, to} から {ticker, date} に変更されました
    •  銘柄と範囲を指定してデータを取得する場合は新設の Bulk Daily をご利用ください
    • "Bulk Daily" のエンドポイントでは、 ticker, from, to をサポートしています
    • 複数の銘柄を指定してのリクエストはできなくなりました
  • レスポンスJSONのデータ構造が変更されました

Updated Quarter の非互換な変更

Updated Quarter エンドポイントの非互換な変更は下記の通りです。

  • クエリパラメータ "day" が "date" に変更されました
  • レスポンスのJSONのデータ構造が変更されました
  • 一度にすべての結果ページネーション方式に変更しました

V3 エンドポイントへの移行手順

上記の変更点を踏まえて移行手順について説明します。

エンドポイントを変更するだけで、そのままご利用いただけます。

Indicator

前述の通り、 Indicator エンドポイントは v3 では廃止され、今まで https://api.buffett-code.com/api/v2/indicator で最新値のみ提供していた各種指標は、 Quarter (ならびに Bulk Quarter, Ondemand Quarter)、もしくはDaily (ならびに Bulk Daily, Ondemand Daily)の時系列データとして取得可能になりました。

v2 Indicator と同様、「銘柄ごとの最新値」を取得したい場合、

  • Daily の場合、クエリパラメータ dateに "latest"
  • Quarter の場合、クエリパラメータ fy に"LY" 、 fqに "LQ"

を指定してください。

Dailyへ統合

下記指標は、 Daily, ならびにBulk Daily, Ondemand Dailyで日時データとして取得できます。

  • stockprice
  • trading_volume
  • market_capital
  • enterprise_value
  • eps_forecast
  • per_forecast
  • pbr
  • per_pbr
  • ebitda_forecast
  • ev_ebitda_forecast
  • psr_forecast
  • pcfr_forecast
  • dividend_yield_forecast
  • dividend_yield_actual
  • debt_market_capital_ratio
  • cash_market_capital_ratio
  • listing_years
  • net_sales_growth_rate_forecast
  • operating_income_growth_rate_forecast
  • net_income_growth_rate_forecast
Quarterへ統合

下記指標は、 Quarter, ならびにBulk Quarter, Ondemand Quarterで四半期ごとのデータとして取得できます。

  • num_of_shares
  • eps_actual
  • bps
  • ebitda_actual
  • roe
  • real_roe
  • net_profit_margin
  • total_asset_turnover
  • financial_leverage
  • roa
  • roic
  • doe
  • gross_margin
  • operating_margin
  • net_sales_operating_cash_flow_ratio
  • sga_ratio
  • depreciation_gross_profit_ratio
  • r_and_d_ratio
  • interest_op_income_ratio
  • interest_coverage_ratio
  • net_sales_progress
  • operating_income_progress
  • net_income_progress
  • net_sales_per_employee
  • trade_receivables
  • accounts_receivable_turnover
  • inventory_turnover
  • trade_payables
  • trade_payable_turnover
  • working_capital
  • ccc
  • tangible_fixed_assets_turnover
  • debt
  • debt_assets_ratio
  • debt_monthly_sales_ratio
  • operating_cash_flow_debt_ratio
  • net_debt
  • adjusted_debt_ratio
  • de_ratio
  • current_ratio
  • net_debt_net_income_ratio
  • equity
  • equity_ratio
  • free_cash_flow
  • cash_assets_ratio
  • cash_monthly_sales_ratio
  • accrual

Company

Company の移行には、エンドポイントの変更

に加え、下記の対応が必要です。

  1. クエリパラメータ "ticker" の追加
  2. レスポンスのJSONの構造変更への対応
クエリパラメータの追加

v2では、クエリパラメータを受け取らず国内上場企業の基本情報を一度に返していましたが、 v3 では "ticker" による銘柄コードによる指定が必要になります。

例えば、例銘柄コード 2801 (キッコーマン)のデータを取得する場合、

https://api.buffett-code.com/api/v3/company?ticker=2801

と指定します。なお、東証上場銘柄コード一覧はこちらから取得可能です*2

レスポンスのJSON構造の変更

v2とv3では、下記のようにJSONの構造が変化しています(見やすくするために、カラムを省略しています)。

V2 Company のレスポンス

V3 Company のレスポンス

たとえば、キッコーマン( 2801 )の東証33業種にアクセスする場合、それぞれ

  • v2: response["2801"][0]["tosyo_33category"]
  • v3: response["data"]["tosyo_33category"]

となります。

Quarter, Ondemand Quarter

Quarter, Ondemand Quarter の移行には、エンドポイントの変更

に加え、下記の対応が必要です

  1. クエリパラメータの変更
  2. レスポンスのJSONの構造変更への対応
  3. "desc_business" が必要な場合に限り、クエリパラメータ subjects の指定
クエリパラメータの変更

v2 では

  • Quarter: {tickers, from, to} もしくは {ticker, fy, fq} を指定)
  • Ondemand Quarter: {ticker, fy, fq} を指定

の2つのエンドポイントが存在していましたが、v3では

  • Quarter: {ticker, fy, fq} を指定
  • Ondemand Quarter: {ticker, fy, fq} を指定
  • Bulk Quarter {ticker, from, to} を指定

に変更されました。1つのリクエストで特定銘柄の複数四半期のデータを取得したい場合、QuarterではなくBulk Quarter をご利用ください。いずれのエンドポイントでも、"tickers"パラメータを用いて複数銘柄を1度に指定することはできません。

レスポンスのJSON構造の変更

v2とv3では、下記のようにJSONの構造が変化しています(見やすくするために、カラムを省略しています)。

V2 Quarter のレスポンス

V3 Quarter のレスポンス

V3 Bulk Quarter のレスポンス

たとえば、日立製作所( 6501 )の代表者名にアクセスする場合、それぞれ

  • v2 (quarter, ondemand quarter): response["6501"][0]["ceo_name"]
  • v3 (quarter, ondemand quarter): response["data"]["ceo_name"]
  • v3 (bulk quarter): response["data"]["2020Q4"]["ceo_name"]

となります。

クエリパラメータ subjects の指定

v2では、取得したい項目の指定ができず、すべての項目を常に取得する形でした。v3では、クエリパラメータ "subjects" を使って必要な項目に絞ってデータを取得できるようになります。subjects の指定は処理の高速化に有効です。

これに伴い、データ量が大きく処理を低速化させる "desc_business" はデフォルトでは返却しないように変更しています。"desc_business" の取得が必要な場合は

  • subjects に :desc_business: を含めるようにする
  • subjects に "TEXTBLOCK" を指定する

のいずれかの対応をお願いします。

Daily

Dailyの移行には、エンドポイントの変更

に加え、下記の対応が必要です

  1. クエリパラメータの変更
  2. レスポンスのJSONの構造変更への対応
クエリパラメータの変更

v2の Daily のエンドポイントでは {tickers, from, to} のクエリパラメータを受け付けていましたが、 v3 では

  • Daily: {ticker, date} を指定
  • Bulk Daily {ticker, from, to} を指定

に変更されました。1つのリクエストで特定銘柄の複数日付のデータを取得したい場合、DailyではなくBulk Daily をご利用ください。いずれのエンドポイントでも、"tickers"パラメータを用いて複数銘柄を1度に指定することはできません。

レスポンスのJSON構造の変更

v2とv3では、下記のようにJSONの構造が変化しています(見やすくするために、カラムを省略しています)。

V2 Daily のレスポンス

V3 Daily のレスポンス

V3 Bulk Daily のレスポンス

たとえば、日立製作所( 6501 )の時価総額にアクセスする場合、それぞれ

  • v2 (daily): response["6501"][0]["market_capital"]
  • v3 (daily): response["data"]["market_capital"]
  • v3 (bulk daily): response["data"]["2021-01-06"]["market_capital"]

となります。

Updated Quarter

Dailyの移行には、エンドポイントの変更

に加え、下記の対応が必要です

  1. クエリパラメータの変更
  2. レスポンスのJSONの構造変更への対応
  3. ページネーションへの対応
クエリパラメータの変更

v2の Updated Quarter のエンドポイントでは "day" のクエリパラメータを受け付けていましたが、 v3 では

  • ticker: 銘柄コード(任意)
  • date: 日付(パラメータ名が day から変更)

となっています。

例えば、例銘柄コード 2801 (キッコーマン)の更新を確認するには、

https://api.buffett-code.com/api/v3/updated_quarter?date=2021-06-23&ticker=2801

のようにします。

銘柄コードを指定しない場合は v2 と同様、 date で指定された日付に更新があったすべての銘柄についてのレスポンスが返ります。

レスポンスのJSON構造の変更

v2とv3では、下記のようにJSONの構造が変化しています。

V2 Updated Quarter のレスポンス

V3 Updated Quarter のレスポンス

たとえば、日立製作所( 6501 )の会計年度にアクセスする場合、それぞれ

  • v2: response["6501"][0]["fiscal_quarter"]
  • v3: response["data"][0]["fiscal_quarter"]

となります。

ページネーションへの対応

v2では、クエリパラメータに対応する結果を一度に返していましたが、v3では処理の高速化のためページネーション (pagination) 方式を採用しています。

レスポンスヘッダに

  • Total-Count: クエリパラメータにマッチする件数の総数
  • Page-Items: 1ページあたりの件数(クエリパラメータ "per_page" で制御可能)
  • Current-Page: 現在のページ番号(クエリパラメータ "page" で制御可能
  • Total-Pages: ページ総数

が返却されますので、必要に応じてページネーションを行ってください。
例えば、Total-Count: 100, Page-Items: 20、Total-Pages: 5の場合、 pageを1から5まで変化させながら5回リクエストをすることで、該当日付のすべての更新を取得することができます。

移行に伴う問い合わせについて

お問い合わせフォームからお問い合わせください。

注釈等

*1:新機能については、下記 API ドキュメントをお読みください

*2:ただし、東証上場銘柄一覧には、バフェットコードが企業データを提供していない銘柄も含まれており、その場合 Status Code 404  が返ります