このページについて
バフェットコードAPIは、予てより v3の利用を推奨していましたが、2022年2月末での v2 のサポートを終了することにしました。
つきましては、2022年2月28日までにv2 から v3 に移行していただく必要ありますが、このページでは、現在バフェットコード API v2を参照しているユーザに向けて
- v3 の変更点
- v2 から v3 への移行手順
について説明します。
各エンドポイントの詳細な仕様については BuffettCode API ドキュメント をご確認ください。また、エクセル・スプレッドシートのBCODE関数を介してAPIを利用している場合は API v2のサポート終了に伴う、BCODE 関数の仕様変更と対応のお願い を参考に、対応をお願いします。
2022年2月28でサポートが終了するAPI一覧
https://api.buffett-code.com/api/v2/ 以下のAPIすべてのサポートが終了します。従量課金の https://api.buffett-code.com/api/v2/ondemand/ 配下も含まれます。
- Quarter (https://api.buffett-code.com/api/v2/quarter)
- Indicator (https://api.buffett-code.com/api/v2/indicator)
- Company (https://api.buffett-code.com/api/v2/company)
- Search (https://api.buffett-code.com/api/v2/search)
- Daily (https://api.buffett-code.com/api/v2/daily)
- Updated Quarter (https://api.buffett-code.com/api/v2/updated_quarter)
- Ondemand Quarter (https://api.buffett-code.com/api/v2/ondemand/quarter)
V3の変更点
バフェットコード v3 では、大きく分けて下記の5つの変更が加えられています。
- Screening, Ondemand Daily エンドポイントの追加
- Bulk Quarter, Bulk Daily, Ondemand Daily エンドポイントの追加
- Company, Quarter, Daily, Updated Quarter エンドポイントのクエリパラメータの非互換な変更
- Indicator エンドポイントは廃止、Quarter, Dailyへ統合
- 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 エンドポイントへの移行手順
上記の変更点を踏まえて移行手順について説明します。
Search
エンドポイントを変更するだけで、そのままご利用いただけます。
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 の移行には、エンドポイントの変更
に加え、下記の対応が必要です。
- クエリパラメータ "ticker" の追加
- レスポンスの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 の移行には、エンドポイントの変更
- v2
- v3
に加え、下記の対応が必要です
- クエリパラメータの変更
- レスポンスのJSONの構造変更への対応
- "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の移行には、エンドポイントの変更
- v2
- v3
に加え、下記の対応が必要です
- クエリパラメータの変更
- レスポンスの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の移行には、エンドポイントの変更
- v2: https://api.buffett-code.com/api/v2/updated_quarter
- v3: https://api.buffett-code.com/api/v3/updated_quarter
に加え、下記の対応が必要です
- クエリパラメータの変更
- レスポンスのJSONの構造変更への対応
- ページネーションへの対応
クエリパラメータの変更
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回リクエストをすることで、該当日付のすべての更新を取得することができます。
移行に伴う問い合わせについて
お問い合わせフォームからお問い合わせください。