HTTP API

HTTP Public API

HTTP Private API

API Documentation

※Lightning FX は、2024年3月28日 (木) をもってサービスのご提供を終了しました。
 また、同日より、新サービスとして「bitFlyer Crypto CFD」のご提供を開始しております。

※bitFlyer Crypto CFDのAPIは、Lightning FXのAPIと互換性があり、これまでと同様のAPI仕様にてお取引いただくことが可能です。
 ・API「マーケットの一覧」において、bitFlyer Crypto CFDの market_type は Lightning FX の market_type を引き継ぎ、 FX とします
 ・各APIで使用する BTC-CFD/JPY の product_code は FX BTC/JPY の product_code を引き継ぎ、 FX_BTC_JPYとします
 ・ファンディングレートの導入にあたり、新たにファンディングレート授受率を取得するAPI「ファンディングレート」を追加します

※なお、今後、bitFlyer Crypto CFDに合わせてAPI仕様を一部変更する可能性があります。  API仕様を変更する際は、予め変更内容をお知らせいたします。

bitFlyer Lightning では、HTTP APIRealtime API の 2 種類の API を提供しています。

HTTP API

エンドポイント URL: https://api.bitflyer.com/v1/

HTTP API には、API キーによる認証が不要な HTTP Public API と、 認証が必要な HTTP Private API に分けられます。

API Playground では、API の呼出を実際に行うことができます。

API制限

HTTP API は、以下のとおり呼出回数を制限いたします。
上限に達すると呼出を一定時間ブロックします。また、ブロックの解除後も呼出の上限を一定時間引き下げます。

条件 制限
同じIPアドレス 5 分間で 500 回
0.1 以下の数量の注文 1 分間で 100 回*
Private API 5 分間で 500 回
下記のPrivate API
新規注文を出す
POST /v1/me/sendchildorder
新規の親注文を出す(特殊注文)
POST /v1/me/sendparentorder
すべての注文をキャンセルする
POST /v1/me/cancelallchildorders
合計で5 分間で 300 回

*0.1 以下の数量の注文は、すべての板の合計で 1 分間で 100 回を上限とします。 上限に達するとその後 1 時間は 1 分間で 10 回まで注文を制限します。

システムに負荷をかける目的で注文を繰り返していると当社が判断した場合は、API の使用を制限することがあります。ご了承ください。

認証

Private API の呼出には認証が必要です。
ログイン後、開発者ページ において発行した API key と API secret を使用します (API key をご利用いただけるのは、bitFlyer Lightning をご利用可能なお客様のみとなります)。

以下の情報を HTTP リクエストヘッダに含めます。

ACCESS-SIGN は、ACCESS-TIMESTAMP, HTTP メソッド, リクエストのパス, リクエストボディ を文字列として連結したものを、 API secret で HMAC-SHA256 署名を行った結果です。

// Node.js のサンプル
var request = require('request');
var crypto = require('crypto');

var key = '{{ YOUR API KEY }}';
var secret = '{{ YOUR API SECRET }}';

var timestamp = Date.now().toString();
var method = 'POST';
var path = '/v1/me/sendchildorder';
var body = JSON.stringify({
    product_code: 'BTC_JPY',
    child_order_type: 'LIMIT',
    side: 'BUY',
    price: 30000,
    size: 0.1
});

var text = timestamp + method + path + body;
var sign = crypto.createHmac('sha256', secret).update(text).digest('hex');

var options = {
    url: 'https://api.bitflyer.com' + path,
    method: method,
    body: body,
    headers: {
        'ACCESS-KEY': key,
        'ACCESS-TIMESTAMP': timestamp,
        'ACCESS-SIGN': sign,
        'Content-Type': 'application/json'
    }
};
request(options, function (err, response, payload) {
    console.log(payload);
});

API キーの権限

API キーを作成する際には、キーごとにパーミッションを指定することができます。 キーの持っている権限の一覧を取得するには API キーの権限を取得する API を使用してください。

API キーの権限設定

ページ形式

複数の結果を返す API は、範囲を指定しての読み込みに対応しています。

二段階認証

出金時の二段階認証は必須となっているため、API 呼出時にも二段階認証が必要です。 確認コードを code パラメータとしてリクエストに含めることで認証を行います。 code パラメータを指定しなかった場合や、確認コードが間違っている場合、以下のようなエラーレスポンスを返します。

{
  "status": -505,
  "error_message": "Two-factor authentication code is incorrect."
}

メール、もしくは SMS による二段階認証を設定されている場合は、同時に確認コードをお送りしますので、その値を含めて再度 API を呼出してください。

HTTP Public API

マーケットの一覧

リクエスト

GET /v1/getmarkets
GET /v1/markets

レスポンス

[
  {
    "product_code": "BTC_JPY",
    "market_type": "Spot"
  },
  {
    "product_code": "XRP_JPY",
    "market_type": "Spot"
  },
  {
    "product_code": "ETH_JPY",
    "market_type": "Spot"
  },
  {
    "product_code": "XLM_JPY",
    "market_type": "Spot"
  },
  {
    "product_code": "MONA_JPY",
    "market_type": "Spot"
  },
  {
    "product_code": "ETH_BTC",
    "market_type": "Spot"
  },
  {
    "product_code": "BCH_BTC",
    "market_type": "Spot"
  },
  {
    "product_code": "FX_BTC_JPY",
    "market_type": "FX"
  }
]

板情報

リクエスト

GET /v1/getboard
GET /v1/board

クエリパラメータ

レスポンス

{
  "mid_price": 33320,
  "bids": [
    {
      "price": 30000,
      "size": 0.1
    },
    {
      "price": 25570,
      "size": 3
    }
  ],
  "asks": [
    {
      "price": 36640,
      "size": 5
    },
    {
      "price": 36700,
      "size": 1.2
    }
  ]
}

Ticker

リクエスト

GET /v1/getticker
GET /v1/ticker

クエリパラメータ

レスポンス

{
  "product_code": "BTC_JPY",
  "state": "RUNNING",
  "timestamp": "2015-07-08T02:50:59.97",
  "tick_id": 3579,
  "best_bid": 30000,
  "best_ask": 36640,
  "best_bid_size": 0.1,
  "best_ask_size": 5,
  "total_bid_depth": 15.13,
  "total_ask_depth": 20,
  "market_bid_size": 0,
  "market_ask_size": 0,
  "ltp": 31690,
  "volume": 16819.26,
  "volume_by_product": 6819.26
}

約定履歴

リクエスト

GET /v1/getexecutions
GET /v1/executions

クエリパラメータ

レスポンス

[
  {
    "id": 39287,
    "side": "BUY",
    "price": 31690,
    "size": 27.04,
    "exec_date": "2015-07-08T02:43:34.823",
    "buy_child_order_acceptance_id": "JRF20150707-200203-452209",
    "sell_child_order_acceptance_id": "JRF20150708-024334-060234"
  },
  {
    "id": 39286,
    "side": "SELL",
    "price": 33170,
    "size": 0.36,
    "exec_date": "2015-07-08T02:43:34.72",
    "buy_child_order_acceptance_id": "JRF20150708-010230-400876",
    "sell_child_order_acceptance_id": "JRF20150708-024334-197755"
  }
]

板の状態

リクエスト

GET /v1/getboardstate

クエリパラメータ

レスポンス

{
  "health": "NORMAL",
  "state": "RUNNING",
}

{
  "health": "NORMAL",
  "state": "MATURED",
  "data": {
    "special_quotation": 410897
  }
}

※今後、表示項目について変更・追加の可能性はございます。予め了承ください。

取引所の状態

取引所の稼動状態を取得します。

リクエスト

GET /v1/gethealth

クエリパラメータ

レスポンス

{
  "status": "NORMAL"
}

ファンディングレート

次回徴収・付与予定のファンディングレート授受率を取得します。

リクエスト

GET /v1/getfundingrate

クエリパラメータ

※2024年3月28日より開始となる bitFlyer Crypto CFD においても、当面の間、market_type は “FX” を継続利用いたします。

※2024年3月28日より開始となる bitFlyer Crypto CFD においても、当面の間、product_code は “FX_BTC_JPY” を継続利用いたします。

レスポンス

{
  "current_funding_rate": -0.003750000000
  "next_funding_rate_settledate": "2024-04-15T13:00:00"
}

法人アカウント最大レバレッジ

法人アカウントの最大レバレッジを取得します。下記は法人アカウントのお客様向けとなります。

リクエスト

GET /v1/getcorporateleverage

レスポンス

{
    "current_max": 7.70,
    "current_startdate": "2021-04-27T15:00:00",
    "next_max": 7.65,
    "next_startdate": "2021-05-04T15:00:00"
}

チャット

チャットの発言一覧を取得します。

リクエスト

GET /v1/getchats

クエリパラメータ

レスポンス

[
  {
    "nickname": "User1234567",
    "message": "Hello world!",
    "date": "2016-02-16T10:58:08.833"
  },
  {
    "nickname": "ビット太郎",
    "message": "サンプルメッセージ",
    "date": "2016-02-15T10:18:06.67"
  }
]

HTTP Private API

Private API の呼出には、API key による認証が必要です。 認証 の項を参照してください。

API キーの権限を取得

この API キーで呼出可能な HTTP Private API の一覧を取得できます。

リクエスト

GET /v1/me/getpermissions

レスポンス

[
  "/v1/me/getpermissions",
  "/v1/me/getbalance",
  "/v1/me/getcollateral",
  "/v1/me/getchildorders",
  "/v1/me/getparentorders",
  "/v1/me/getparentorder",
  "/v1/me/getexecutions",
  "/v1/me/getpositions"
]

資産残高を取得

リクエスト

GET /v1/me/getbalance

レスポンス

[
  {
    "currency_code": "JPY",
    "amount": 1024078,
    "available": 508000
  },
  {
    "currency_code": "BTC",
    "amount": 10.24,
    "available": 4.12
  },
  {
    "currency_code": "ETH",
    "amount": 20.48,
    "available": 16.38
  }
]

証拠金の状態を取得

リクエスト

GET /v1/me/getcollateral

レスポンス

{
  "collateral": 100000,
  "open_position_pnl": -715,
  "require_collateral": 19857,
  "keep_rate": 5.000,
  "margin_call_amount": 1000000,
  "margin_call_due_date": "2021-09-01T08:00:00"
}

リクエスト

GET /v1/me/getcollateralaccounts

レスポンス

[
  {
    "currency_code": "JPY",
    "amount": 10000
  },
  {
    "currency_code": "BTC",
    "amount": 1.23
  }
]

通貨別の証拠金の数量を取得できます。

預入用アドレス取得

仮想通貨を bitFlyer アカウントに預入るためのアドレスを取得します。

リクエスト

GET /v1/me/getaddresses

レスポンス

[
  {
    "type": "NORMAL",
    "currency_code": "BTC",
    "address": "3AYrDq8zhF82NJ2ZaLwBMPmaNziaKPaxa7"
  },
  {
    "type": "NORMAL",
    "currency_code": "ETH",
    "address": "0x7fbB2CC24a3C0cd3789a44e9073381Ca6470853f"
  }
]

仮想通貨預入履歴

リクエスト

GET /v1/me/getcoinins

クエリパラメータ

レスポンス

[
  {
    "id": 100,
    "order_id": "CDP20151227-024141-055555",
    "currency_code": "BTC",
    "amount": 0.00002,
    "address": "1WriteySQufKZ2pVuM1oMhPrTtTVFq35j",
    "tx_hash": "9f92ee65a176bb9545f7becb8706c50d07d4cee5ffca34d8be3ef11d411405ae",
    "status": "COMPLETED",
    "event_date": "2015-11-27T08:59:20.301"
  }
]

仮想通貨送付履歴

リクエスト

GET /v1/me/getcoinouts

クエリパラメータ

レスポンス

[
  {
    "id": 500,
    "order_id": "CWD20151224-014040-077777",
    "currency_code": "BTC",
    "amount": 0.1234,
    "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
    "tx_hash": "724c07dfd4044abcb390b0412c3e707dd5c4f373f0a52b3bd295ce32b478c60a",
    "fee": 0.0005,
    "additional_fee": 0.0001,
    "status": "COMPLETED",
    "event_date": "2015-12-24T01:40:40.397"
  }
]

銀行口座一覧取得

アカウントに登録された銀行口座の一覧を取得します。

リクエスト

GET /v1/me/getbankaccounts

レスポンス

[
  {
    "id": 3402,
    "is_verified": true,
    "bank_name": "三井住友銀行",
    "branch_name": "アオイ支店",
    "account_type": "普通",
    "account_number": "1111111",
    "account_name": "ビットフライヤータロウ"
  }
]

入金履歴

リクエスト

GET /v1/me/getdeposits

クエリパラメータ

レスポンス

[
  {
    "id": 300,
    "order_id": "MDP20151014-101010-033333",
    "currency_code": "JPY",
    "amount": 10000,
    "status": "COMPLETED",
    "event_date": "2015-10-14T10:10:10.001"
  }
]

出金

リクエスト

POST /v1/me/withdraw

Body パラメータ

{
  "currency_code": "JPY",
  "bank_account_id": 1234,
  "amount": 12000,
  "code": "012345"
}

別途日本円出金手数料がかかります。 手数料一覧・税のページをご覧ください。

レスポンス

{
  "message_id": "69476620-5056-4003-bcbe-42658a2b041b"
}


エラーレスポンスの例

{
  "status": -700,
  "error_message": "This account has not yet been authenticated",
  "data": null
}

エラーが発生して負の status 値が返った場合は、出金されません。

出金履歴

リクエスト

GET /v1/me/getwithdrawals

クエリパラメータ

レスポンス

[
  {
    "id": 700,
    "order_id": "MWD20151020-090909-011111",
    "currency_code": "JPY",
    "amount": 12000,
    "status": "COMPLETED",
    "event_date": "2015-10-20T09:09:09.416"
  }
]

新規注文を出す

リクエスト

POST /v1/me/sendchildorder

Body パラメータ

{
  "product_code": "BTC_JPY",
  "child_order_type": "LIMIT",
  "side": "BUY",
  "price": 30000,
  "size": 0.1,
  "minute_to_expire": 10000,
  "time_in_force": "GTC"
}

レスポンス

パラメータが正しい場合は、ステータスコード 200 OK が返ります。

{
    "child_order_acceptance_id": "JRF20150707-050237-639234"
}

注文をキャンセルする

リクエスト

POST /v1/me/cancelchildorder

Body パラメータ

{
  "product_code": "BTC_JPY",
  "child_order_id": "JOR20150707-055555-022222"
}

{
  "product_code": "BTC_JPY",
  "child_order_acceptance_id": "JRF20150707-033333-099999"
}

child_order_id または child_order_acceptance_id のどちらか片方のみを指定してください。

レスポンス

パラメータが正しい場合は、ステータスコード 200 OK が返ります。

新規の親注文を出す(特殊注文)

単純な指値注文 (LIMIT), 成り行き注文 (MARKET) 以外の、ロジックを含んだ注文を発注することができます。 このような注文は、親注文 (parent order) として扱われます。 特殊注文を利用することで、マーケットの状況に応じて注文を出したり、複数の注文を関連付けたりすることが可能です。

注文の方法と種類については、bitFlyer Lightning の特殊注文について もよくお読みください。

リクエスト

POST /v1/me/sendparentorder

Body パラメータ

{
  "order_method": "IFDOCO",
  "minute_to_expire": 10000,
  "time_in_force": "GTC",
  "parameters": [{
    "product_code": "BTC_JPY",
    "condition_type": "LIMIT",
    "side": "BUY",
    "price": 30000,
    "size": 0.1
  },
  {
    "product_code": "BTC_JPY",
    "condition_type": "LIMIT",
    "side": "SELL",
    "price": 32000,
    "size": 0.1
  },
  {
    "product_code": "BTC_JPY",
    "condition_type": "STOP_LIMIT",
    "side": "SELL",
    "price": 28800,
    "trigger_price": 29000,
    "size": 0.1
  }]
}

parameters には以下のキーと値を持つオブジェクトの配列を指定します。

レスポンス

パラメータが正しい場合は、ステータスコード 200 OK が返ります。

{
  "parent_order_acceptance_id": "JRF20150707-050237-639234"
}

親注文をキャンセルする

親注文も、普通の注文と同様にキャンセルすることができます。 親注文をキャンセルした場合、その注文に関連する発注中の注文はすべてキャンセルされます。

リクエスト

POST /v1/me/cancelparentorder

Body パラメータ

{
  "product_code": "BTC_JPY",
  "parent_order_id": "JCO20150925-055555-022222"
}

{
  "product_code": "BTC_JPY",
  "parent_order_acceptance_id": "JRF20150925-033333-099999"
}

parent_order_id または parent_order_acceptance_id のどちらか片方のみを指定してください。

レスポンス

パラメータが正しい場合は、ステータスコード 200 OK が返ります。

すべての注文をキャンセルする

対象となるプロダクトの、これまで発注したすべての自分の注文をキャンセルします。

リクエスト

POST /v1/me/cancelallchildorders

Body パラメータ

{
  "product_code": "BTC_JPY"
}

レスポンス

パラメータが正しい場合は、ステータスコード 200 OK が返ります。

注文の一覧を取得

リクエスト

GET /v1/me/getchildorders

クエリパラメータ

レスポンス

[
  {
    "id": 138398,
    "child_order_id": "JOR20150707-084555-022523",
    "product_code": "BTC_JPY",
    "side": "BUY",
    "child_order_type": "LIMIT",
    "price": 30000,
    "average_price": 30000,
    "size": 0.1,
    "child_order_state": "COMPLETED",
    "expire_date": "2015-07-14T07:25:52",
    "child_order_date": "2015-07-07T08:45:53",
    "child_order_acceptance_id": "JRF20150707-084552-031927",
    "outstanding_size": 0,
    "cancel_size": 0,
    "executed_size": 0.1,
    "total_commission": 0,
    "time_in_force": "GTC"
  },
  {
    "id": 138397,
    "child_order_id": "JOR20150707-084549-022519",
    "product_code": "BTC_JPY",
    "side": "SELL",
    "child_order_type": "LIMIT",
    "price": 30000,
    "average_price": 0,
    "size": 0.1,
    "child_order_state": "CANCELED",
    "expire_date": "2015-07-14T07:25:47",
    "child_order_date": "2015-07-07T08:45:47",
    "child_order_acceptance_id": "JRF20150707-084547-396699",
    "outstanding_size": 0,
    "cancel_size": 0.1,
    "executed_size": 0,
    "total_commission": 0,
    "time_in_force": "GTC"
  }
]

親注文の一覧を取得

リクエスト

GET /v1/me/getparentorders

クエリパラメータ

レスポンス

[
  {
    "id": 138398,
    "parent_order_id": "JCO20150707-084555-022523",
    "product_code": "BTC_JPY",
    "side": "BUY",
    "parent_order_type": "STOP",
    "price": 30000,
    "average_price": 30000,
    "size": 0.1,
    "parent_order_state": "COMPLETED",
    "expire_date": "2015-07-14T07:25:52",
    "parent_order_date": "2015-07-07T08:45:53",
    "parent_order_acceptance_id": "JRF20150707-084552-031927",
    "outstanding_size": 0,
    "cancel_size": 0,
    "executed_size": 0.1,
    "total_commission": 0
  },
  {
    "id": 138397,
    "parent_order_id": "JCO20150707-084549-022519",
    "product_code": "BTC_JPY",
    "side": "SELL",
    "parent_order_type": "IFD",
    "price": 30000,
    "average_price": 0,
    "size": 0.1,
    "parent_order_state": "CANCELED",
    "expire_date": "2015-07-14T07:25:47",
    "parent_order_date": "2015-07-07T08:45:47",
    "parent_order_acceptance_id": "JRF20150707-084547-396699",
    "outstanding_size": 0,
    "cancel_size": 0.1,
    "executed_size": 0,
    "total_commission": 0
  }
]

複数の注文が関連づけられた親注文の price, size の値は、いずれも参考値です。

個別の注文の詳細なパラメータを取得するには、親注文の詳細を取得 する API を利用してください。 また、関連する注文の一覧を取得する場合は、注文の一覧を取得 する API を利用してください。

親注文の詳細を取得

リクエスト

GET /v1/me/getparentorder

クエリパラメータ

parent_order_id または parent_order_acceptance_id のどちらか片方のみを指定してください。

レスポンス

{
  "id": 4242,
  "parent_order_id": "JCP20150825-046876-036161",
  "order_method": "IFDOCO",
  "expire_date": "2015-09-24T04:35:59.277",
  "time_in_force": "GTC",
  "parameters": [{
    "product_code": "BTC_JPY",
    "condition_type": "LIMIT",
    "side": "BUY",
    "price": 30000,
    "size": 0.1,
    "trigger_price": 0,
    "offset": 0
  }, {
    "product_code": "BTC_JPY",
    "condition_type": "LIMIT",
    "side": "SELL",
    "price": 32000,
    "size": 0.1,
    "trigger_price": 0,
    "offset": 0
  }, {
    "product_code": "BTC_JPY",
    "condition_type": "STOP_LIMIT",
    "side": "SELL",
    "price": 28800,
    "size": 0.1,
    "trigger_price": 29000,
    "offset": 0
  }],
  "parent_order_acceptance_id": "JRF20150925-060559-396699"
}

約定の一覧を取得

リクエスト

GET /v1/me/getexecutions

クエリパラメータ

レスポンス

[
  {
    "id": 37233,
    "child_order_id": "JOR20150707-060559-021935",
    "side": "BUY",
    "price": 33470,
    "size": 0.01,
    "commission": 0,
    "exec_date": "2015-07-07T09:57:40.397",
    "child_order_acceptance_id": "JRF20150707-060559-396699"
  },
  {
    "id": 37232,
    "child_order_id": "JOR20150707-060426-021925",
    "side": "BUY",
    "price": 33470,
    "size": 0.01,
    "commission": 0,
    "exec_date": "2015-07-07T09:57:40.397",
    "child_order_acceptance_id": "JRF20150707-060559-396699"
  }
]

残高履歴を取得

リクエスト

GET /v1/me/getbalancehistory

クエリパラメータ

レスポンス

[
  {
    "id": 1000108,
    "trade_date": "2016-10-19T14:44:55.28",
    "event_date": "2016-10-19T05:44:55.28",
    "product_code": "BTC_USD",
    "currency_code": "USD",
    "trade_type": "SELL",
    "price": 9999.99,
    "amount": 99.99,
    "quantity": 99.99,
    "commission": 0,
    "balance": 9999999.99,
    "order_id": "JORYYYYMMDD‌-000000-000001X"
  },
  {
    "id": 1000107,
    "trade_date": "2016-10-19T14:41:35.23",
    "event_date": "2016-10-19T05:41:35.23",
    "product_code": "BTC_USD",
    "currency_code": "USD",
    "trade_type": "SELL",
    "price": 9999.99,
    "amount": 999.99,
    "quantity": 99.99,
    "commission": 0,
    "balance": 9999999.99,
    "order_id": "JORYYYYMMDD‌-000000-000000X"
  }
]

建玉の一覧を取得

リクエスト

GET /v1/me/getpositions

クエリパラメータ

レスポンス

[
  {
    "product_code": "FX_BTC_JPY",
    "side": "BUY",
    "price": 36000,
    "size": 10,
    "commission": 0,
    "swap_point_accumulate": -35,
    "require_collateral": 120000,
    "open_date": "2015-11-03T10:04:45.011",
    "leverage": 3,
    "pnl": 965,
    "sfd": -0.5
  }
]

証拠金の変動履歴を取得

リクエスト

GET /v1/me/getcollateralhistory

クエリパラメータ

レスポンス

[
  {
    "id": 4995,
    "currency_code": "JPY",
    "change": -6,
    "amount": -6,
    "reason_code": "CLEARING_COLL",
    "date": "2017-05-18T02:37:41.327"
  },
  {
    "id": 4994,
    "currency_code": "JPY",
    "change": 2083698,
    "amount": 0,
    "reason_code": "EXCHANGE_COLL",
    "date": "2017-04-28T03:05:07.493"
  },
  {
    "id": 4993,
    "currency_code": "BTC",
    "change": -14.69001618,
    "amount": 34.97163164,
    "reason_code": "EXCHANGE_COLL",
    "date": "2017-04-28T03:05:07.493"
  }
]

取引手数料を取得

リクエスト

GET /v1/me/gettradingcommission

クエリパラメータ

レスポンス

{
  "commission_rate": 0.001
}