CoincheckのAPIを利用して、過去数年分の全約定履歴を取得しようとアレコレした記録です。
コインチェックAPIについてはこちら
結論
取得できません(2023/04/06現在)
starting_afterとending_beforeのパラメータが使えないため、過去100件分のみ取得出来ます。
私の勘違いでもし取得できる方法がありましたら、コメント欄の方で教えて頂けると助かります。
ここから先は結論に至るまでに悪戦苦闘した備忘録です。
備忘録
ページネーション
デフォルトの取引履歴API(/api/trades)では最新10件までしか取得できない。
ページネーションを使えば過去のデータが取れるらしい。
ページネーションのパラメータについて
- limit: 1ページあたりの取得件数を指定できます。
- order: “desc”, “asc” を指定できます。
- starting_after: IDを指定すると絞り込みの開始位置を設定できます。
- ending_before: IDを指定すると絞り込みの終了位置を設定できます。
この説明だけだと分からない点があるので検証した
各パラメータの検証
limit
1ページあたりの取得件数を指定できます。
取得件数は1~100の範囲で指定できる。
100を超える値を指定しても100のみ返される、1の方も同様。
order
“desc”, “asc” を指定できます。
直近limit件の約定履歴を昇順か降順で返す指定かと思ったが違った。
descを指定した場合は直観通りのデータが返されるが、ascを指定した場合は全約定履歴(過去データ含む)を昇順に返す。
limitを3、orderをascにした場合に返されたデータ
{'data': [{'amount': '0.0951',
'created_at': '2014-10-31T06:12:09.000Z',
'id': 1,
'order_type': 'sell',
'pair': 'btc_jpy',
'rate': '36880.0'},
{'amount': '1.2366',
'created_at': '2014-10-31T07:13:24.000Z',
'id': 2,
'order_type': 'buy',
'pair': 'btc_jpy',
'rate': '38880.0'},
{'amount': '0.5094',
'created_at': '2014-10-31T07:21:25.000Z',
'id': 3,
'order_type': 'buy',
'pair': 'btc_jpy',
'rate': '39130.0'}],
'pagination': {'ending_before': None,
'limit': 3,
'order': 'asc',
'starting_after': None},
'success': True}
2014年の約定履歴が返されている事が分かる。
starting_afterとending_before
IDを指定すると絞り込みの開始位置/終了位置を設定できます。
IDを指定すれば任意の約定履歴を取得出来るらしい。
下は返されたデータ
{'error': 'starting_after and ending_before is now unavailable parameter', 'success': False}
残念ながら、今はこのパラメータは使うことが出来ないっぽい。(どういうこと・・・?)
コメント