ページネーション、フィルタリング、ソート

ページネーション、フィルタリング、ソートを使用して効率的にデータを取得する方法を学びましょう。クエリパラメータを使ってクエリを最適化し、API呼び出しを減らす方法を解説します。

ページネーション

Smart Money APIでは効率的なデータ取得のためにカーソルベースのページネーションを採用しています。ページ番号とリミットを指定して結果セットを制御できます。

パラメータ タイプ デフォルト 最大値
page integer 1 N/A
limit integer 50 500

ページネーションの例

cURL
# 最初の100件を取得 curl "https://api.smartmoneyapi.com/v1/whales/events?page=1&limit=100" # 2ページ目を取得 curl "https://api.smartmoneyapi.com/v1/whales/events?page=2&limit=100"

レスポンスのページネーション情報

JSON
{ "success": true, "data": {...}, "pagination": { "page": 1, "limit": 50, "total": 420, "total_pages": 9, "has_next": true, "has_prev": false } }

フィルタリング

シンボル、取引所、方向などの条件で結果をフィルタリングします。フィルタはAND条件で結合されます。

フィルタ
symbol 取引ペア BTCUSDT, ETHUSDT
exchange bybit, binance, hyperliquid bybit
direction long, short long
min_position_size 数値 10.5
min_pnl_percent 数値 2.0

フィルタリングの例

cURL
# シンボルと方向でフィルタリング curl "https://api.smartmoneyapi.com/v1/whales/events?symbol=BTCUSDT&direction=long" # 取引所と最小ポジションサイズでフィルタリング curl "https://api.smartmoneyapi.com/v1/whales/events?exchange=bybit&min_position_size=15"

ソート

ポジションサイズやP&Lなどのフィールドで結果をソートします。フィールドと方向(asc/desc)を指定します。

cURL
# ポジションサイズの降順でソート(大きい順) curl "https://api.smartmoneyapi.com/v1/whales/events?sort=position_sizeℴ=desc" # P&Lの昇順でソート curl "https://api.smartmoneyapi.com/v1/whales/events?sort=pnl_percentℴ=asc"

完全な例

Python: 全ページをイテレート

Python
import requests def get_all_whale_positions(api_key, symbol=None): """ページネーションを使って全てのクジラポジションを取得""" all_positions = [] page = 1 while True: params = { "page": page, "limit": 100, # 最大バッチサイズ "sort": "position_size", "order": "desc" } if symbol: params["symbol"] = symbol response = requests.get( "https://api.smartmoneyapi.com/v1/whales/events", headers={"Authorization": f"Bearer {api_key}"}, params=params ) data = response.json() all_positions.extend(data["data"]["positions"]) # さらにページがあるか確認 if not data["pagination"]["has_next"]: break page += 1 return all_positions # 使用例 positions = get_all_whale_positions("sk_live_abc123xyz789", symbol="BTCUSDT") print(f"Found {len(positions)} whale positions")

ベストプラクティス

1. 最大リミット(100-500)を使用: 同じ量のデータを取得するためのAPI呼び出しを減らせます。効率的に結果をバッチ処理しましょう。

2. サーバーサイドでフィルタリング: アプリケーションコードではなくクエリパラメータを使ってソースでフィルタリングします。データ転送量を削減できます。

3. サーバーでソート: APIからソート済みの結果をリクエストします。大規模なソートはサーバー側で効率的に行われます。

4. キャッシュとページネーション: 結果をローカルにキャッシュし、キャッシュされたデータをページネーションすることでAPI呼び出しを最小限に抑えます。

5. 可能なら早期終了: 常に全ページを取得する必要はありません。ユースケースに十分なデータが得られたら処理を停止しましょう。

さらに学ぶ

全てのフィルタリングとソートオプションについては完全なAPIリファレンスをご覧ください。

REST APIリファレンスを見る
無料で開始 — 1日100回、カード不要

3つの取引所からのライブクジラフロー、資金調達、オープンインタレスト、オンチェーンデータを1つのAPIで取得。無料ティア、クレジットカード不要、いつでもアップグレード可能。

無料で始める →
ライブAPIコンソールを試す → (アカウント不要)
30秒でAPIキーを取得

構築の準備はできましたか?無料のAPIキー(1日100回、カード不要)を取得して、ライブのクジラデータ、資金調達、オンチェーンデータの取得を開始しましょう。

APIキーを取得 →