gate-exchange-affiliate について
gate-exchange-affiliateは、Gate Exchangeのパートナープログラム情報を照会するスキルです。コミッションやチームの取引状況、申請資格を確認するパートナー向けで、Partner APIのデータを期間分割や集計ルールに沿って扱います。
主な機能
- 01コミッションと取引記録の照会
- 02紹介ユーザー数と取引ユーザー数の確認
- 03パートナー資格と申請状況の確認
- 04最大30日単位での期間分割
- 05資産と業務ルールに沿ったデータ集計
活用シーン
- 01期間別のコミッションと取引量の確認
- 02紹介顧客数と取引ユーザー数の集計
- 03申請資格や審査状況の確認
- 04特定の取引ユーザーの貢献照会
MCP 対応
Gate MCPセッションを通じてPartner APIを利用し、gate-cliに記載されたパートナー向け照会コマンドを呼び出します。コミッション、取引、紹介ユーザー一覧、申請情報を扱います。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ gate/ gate-skills --skill gate-exchange-affiliateインストール後、Claude Code で/gate-exchange-affiliateを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.clawhubignoreCHANGELOG.mdREADME.mdsetup.shreferences/gate-cli.mdgate-runtime-rules.mdmcp.mdquick-start.mdscenarios.md詳細
gate-cli の解決(バイナリパス)
gate-cli は次の順に解決します。(1) command -v gate-cli と gate-cli --version が成功する場合、(2) 実行可能であれば ${HOME}/.local/bin/gate-cli、(3) 実行可能であれば ${HOME}/.openclaw/skills/bin/gate-cli。正規のルールは exchange-runtime-rules.md §4(または gate-runtime-rules.md §4)を参照してください。
Gate Exchange アフィリエイトプログラムアシスタント
Gate Exchange のアフィリエイト/パートナープログラムのデータを照会・管理します。コミッションの追跡、チームのパフォーマンス分析、申請に関するガイダンスが含まれます。
一般ルール
⚠️ 停止してください — 続行する前に、共有ランタイムルールを必ず読み、厳守してください。
すべてのルールを読み終えるまで、ツールを選択または呼び出してはいけません。これらのルールが最優先です。
→ ./references/gate-runtime-rules.md を読んでください
- このスキルに明記された
gate-cliコマンドのみを使用してください。 このワークフローでは、ほかのインターフェースで利用できる場合でも、ここに記載されていないコマンドを実行してはいけません。
スキルの依存関係
使用する gate-cli コマンド
照会操作(読み取り専用)
gate-cli cex rebate partner applicationgate-cli cex rebate partner eligibilitygate-cli cex rebate partner commissionsgate-cli cex rebate partner sub-listgate-cli cex rebate partner transactions
認証
- 対話型のファイル設定: ホスト上で
GATE_API_KEYとGATE_API_SECRETの両方が設定されていない場合は、gate-cli config initを実行して、API キー、シークレット、プロファイル、デフォルト値のウィザードを完了してください(gate-cli を参照)。 - 環境変数/フラグ: 認証情報がすでに指定されている場合は、
gate-cli config initは不要です。たとえば、ホスト上でGATE_API_KEYとGATE_API_SECRETの両方が設定されている場合や、サポートされている場所で--api-key/--api-secretを指定する場合です。シークレットをチャットに貼り付けるようユーザーに求めてはいけません。 - API キーが必要です:はい
- 権限: Rebate:Read
- ポータル: チャットの外でキーを作成またはローテーションしてください:https://www.gate.com/myaccount/profile/api-key/manage
インストール確認
- 必須:
gate-cli(見つからない場合は、このスキルのディレクトリからsh ./setup.shを実行してください。GATE_CLI_SETUP_MODE=releaseは任意です)。 gate-cliを名前で呼び出す場合は、$HOME/.openclaw/skills/bin(またはsetup.shがインストールするディレクトリ)をPATHに追加してください。- 認証情報: ホストで
GATE_API_KEYとGATE_API_SECRETの両方が設定されていて(空でない場合)、gate-cli config initを必須としてはいけません。これはgate-cliで有効な設定と同等です。両方とも未設定または空の場合は、gate-cli config initを実行するか、スキルライブラリ内の対応するスキルでGATE_API_KEY/GATE_API_SECRETを設定するよう、オペレーターに案内してください(シークレットをチャットに貼り付けるようユーザーに求めてはいけません)。 - 動作確認: CLI が想定どおりに動作することを確認するまで、認証が必要な呼び出しを続行してはいけません(例:
gate-cli --versionまたはこのスキルの読み取り専用gate-cli cex ...コマンド)。変更操作を行う前に、認証情報が解決されることを確認してください。
実行モード
references/gate-cli.md を読み、厳守したうえで、このスキルのアフィリエイトワークフローを実行してください。
SKILL.mdにはルーティングとレポートのポリシーが記載されています。references/gate-cli.mdは、適格性/申請/コミッションの照会フローおよび縮退時の処理に関する、権威あるgate-cli実行仕様です。
重要なお知らせ
- 役割:このスキルではパートナー API のみを使用します。ユーザーのクエリにおける「アフィリエイト」は、パートナーの役割を指します。
- 期間制限:API の1回のリクエストで指定できる期間は最大30日です。30日を超える期間(最大180日)のクエリでは、エージェントは30日ごとの区間に分割する必要があります。
- 認証:パートナー API は引き続きローカルの Gate MCP セッションを通じて実行されます。必要なパートナーヘッダー(
X-Gate-User-Idなど)はそのセッションから提供されるため、ユーザーが貼り付ける必要はありません。 - 重要 —
user_idパラメーター:commission_historyAPI とtransaction_historyAPI の両方で、user_idパラメーターは「手数料の受取人」ではなく「トレーダー/取引ユーザー」で絞り込みます。特定のトレーダーの貢献を明示的に問い合わせる場合にのみ、このパラメーターを使用してください。一般的な手数料のクエリでは、user_idパラメーターを使用しないでください。 - データ集計:API のレスポンスリストから合計を計算する場合は、ビジネスルールに基づくカスタム集計ロジックを使用してください。データ構造やビジネスロジックを考慮すると、単純にすべての値を合計した場合、誤った結果になることがあります。
クエリ期間とタイムゾーン(UTC+8)
すべてのクエリ期間には、ユーザーの現在の暦日を UTC+8 で使用します。「過去7日間」「過去30日間」「今週」「先月」などの相対的な期間については、今日から指定された期間を差し引いて開始日を計算し、開始日を UTC+8 の 00:00:00、終了日を 23:59:59 に変換してから、Unix タイムスタンプに変換してください。クエリの境界に未来のタイムスタンプを使用してはいけません。to パラメーターは常に現在の Unix 時刻以下にしてください。ユーザーが未来の日付を指定した場合は、クエリを拒否し、過去のデータのみ利用できることを説明してください。
利用可能な API(パートナーのみ)
| API エンドポイント | 説明 | 期間制限 |
|---|---|---|
GET /rebate/partner/transaction_history | 紹介したユーザーの取引履歴を取得します | リクエストごとに30日以内 |
GET /rebate/partner/commission_history | 紹介したユーザーの手数料履歴を取得します | リクエストごとに30日以内 |
GET /rebate/partner/sub_list | 下位ユーザーの一覧を取得します(顧客数の確認用) | 期間パラメーターなし |
GET /rebate/partner/eligibility | ユーザーがパートナーに申し込む資格があるか確認します | 期間パラメーターなし |
GET /rebate/partner/applications/recent | ユーザーの最近のパートナー申請記録(過去30日間)を取得します | 期間パラメーターなし |
注:代理店 API(/rebate/agency/*)は非推奨であり、このスキルでは使用しません。
⚠️ 重要な API 使用上の警告
user_id パラメーターについて
- 一般的な手数料のクエリでは、
user_idパラメーターを絶対に使用しないでください commission_historyAPI とtransaction_historyAPI の両方におけるuser_idパラメーターは、手数料の受取人ではなく、トレーダー/取引ユーザーで絞り込みます- 特定のトレーダーの貢献を明示的に問い合わせる場合(例:「UID 123456 の取引高」)にのみ、
user_idを使用してください - 「自分の手数料」「自分の収益」「自分のリベート」のようなクエリでは、
user_idパラメーターを使用しないでください
データ集計ルール
- API のレスポンスリストに含まれるすべての値を単純に合計しないでください
- 以下を考慮したカスタム集計ロジックを使用してください。
- ビジネスルールとデータの関連性
- 資産タイプごとの分類
- 適切なフィルタリングと重複排除
- 期間の境界
- データ構造が複雑なため、単純な合計では誤った結果になる場合があります
安全ルール
- クエリ時刻(UTC+8):相対期間、日付の境界、Unix 時刻への変換については、**重要なお知らせ → クエリ時刻とタイムゾーン(UTC+8)**に従ってください。未来のタイムスタンプは使用しないでください。
toは現在の Unix 時刻以下である必要があります。ユーザーが指定した未来の日付は拒否してください。 - user_id の使用:ユーザーが特定のトレーダーの取引実績について明示的に尋ねた場合(例:「UID 123456 の取引量」)に限り、
user_idパラメーターを使用してください。「自分のコミッション」や「自分の収益」についてはuser_idを使用しないでください。これらは、紹介したすべてのユーザーを対象とするパートナー自身の合計です。 - データの範囲:認証済みパートナーのデータのみを照会してください。他のパートナーのデータにアクセスしたり、API レスポンスの範囲外のデータを推測したりしないでください。
- 集計:リストフィールドをそのまま合計しないでください。誤った合計を避けるため、文書化された集計ルールに従い、資産タイプ、重複排除、期間の境界を考慮してください。
- サブアカウント:API がアカウントをサブアカウントと示す場合、または
sub_accountの利用資格ブロックを返す場合は、パートナーデータの確認や申し込みにはメインアカウントを使用するようユーザーに案内してください。
主な指標
- コミッション額:
commission_historyに基づくリベート収益の合計 - 取引量:
transaction_historyに基づく取引額の合計 - 純手数料:
transaction_historyに基づき徴収された手数料の合計 - 顧客数:
sub_listに基づく紹介ユーザーの合計数 - 取引ユーザー数:
transaction_historyに基づくユーザーのユニーク数
ドメイン知識
- パートナー(アフィリエイト):このスキルでは、「アフィリエイト」と「パートナー」は同じ役割を指します。Gate Exchange で取引するユーザーを紹介し、紹介ユーザーの取引活動からリベート(コミッション)を得るユーザーです。使用するのはパートナー API のみです。Agency API は非推奨です。
- コミッション(リベート):紹介ユーザーが発生させた取引手数料からパートナーに支払われるリベートです。コミッション履歴を通じて、取引ごとまたは期間ごとに報告されます。金額の資産は異なる場合があるため(例:USDT)、集計には業務ルールと資産の扱いを適用する必要があります。
- 取引量と純手数料:これらは紹介ユーザーの取引活動(現物、先物など)から発生します。取引履歴は取引ごとのレコードを返します。取引量と手数料は適切なロジックで集計してください。リストフィールドを単純に合計しないでください。
- 紹介ユーザー:パートナーが紹介したユーザーです。紹介ユーザーのリストは、タイプ別にユーザーを返します:サブエージェント(1)、間接顧客(2)、直接顧客(3)。顧客数は紹介ユーザーの合計数です。取引ユーザー数は、指定期間内に取引活動があったユーザーのユニーク数です。
- 利用資格:現在のユーザーがパートナープログラムに申し込めるかどうかです。利用資格 API で確認します。レスポンスには
eligibleが含まれ、利用資格がない場合はblock_reasonsとblock_reason_codes(例:sub_account、already_agent、kyc_incomplete)が含まれます。 - 申し込み状況:過去 30 日以内に行われたユーザーの直近のパートナー申し込み(ある場合)です。審査状況(pending/approved/rejected)が applications/recent API から返されます。
ワークフロー
ステップ 1:ユーザーのクエリを解析する
クエリの種類を特定し、パラメーターを抽出します。
抽出する主なデータ:
query_type:overview | time_specific | metric_specific | user_specific | team_report | application | application_eligibility | application_statustime_range:デフォルトは過去 7 日間。指定がある場合はその期間metric:commission | volume | fees | customers | trading_users(指標に関するクエリの場合)user_id:特定のユーザー ID(ユーザー指定のクエリの場合)
ステップ 2:期間を検証する
指定された期間が有効かどうかを確認し、分割が必要か判断します。
抽出する主なデータ:
needs_splitting:ブール値(30 日を超える場合は true)segments:分割が必要な場合の期間セグメントの配列error:期間が 180 日を超える場合の文字列
ステップ 3:パートナー API を呼び出す
クエリの種類に応じて、適切なパートナー API を呼び出します。
MCP が Gate リベートツールで設定されている場合は、名前で対応する MCP ツールを呼び出します(例:Call gate-cli cex rebate partner transactions、Call gate-cli cex rebate partner commissions、Call gate-cli cex rebate partner sub-list、Call gate-cli cex rebate partner eligibility、Call gate-cli cex rebate partner application)。パラメーターについては、API パラメーターリファレンスに記載された内容に従ってください。MCP が利用できない場合は、以下の API パスを使用します。
重要な注意事項:
- 特定のトレーダーの貢献を明示的に照会する場合を除き、
user_idパラメーターは使用しないでください - API レスポンスの
user_idは、コミッション受取人ではなくトレーダーを表します - 「自分のコミッション」に関するクエリでは、
user_idパラメーターを完全に省略してください
概要または期間を指定したクエリの場合:
- 期間パラメーターを指定して
/rebate/partner/transaction_historyを呼び出します(user_idは指定しません) - 期間パラメーターを指定して
/rebate/partner/commission_historyを呼び出します(user_idは指定しません) - 顧客数を取得するため、
/rebate/partner/sub_listを呼び出します
指標を指定したクエリの場合:
- 指標に応じて必要な API のみを呼び出します(明示的に指定されていない限り、
user_idは指定しません)
ユーザーを指定したクエリの場合:
user_idパラメーターを指定して API を呼び出します(その特定のトレーダーの貢献が表示されます)
申請に関するクエリの場合:
- 「申請できますか?」/「対象ですか?」→
GET /rebate/partner/eligibilityを呼び出します(eligible、block_reasons、block_reason_codes が返されます) - 「自分の申請状況」/「最近の申請」/「申請結果」→
GET /rebate/partner/applications/recentを呼び出します(audit_status、apply_msg などを含む過去 30 日間の申請記録が返されます) - 一般的な「申請方法」→ 必要に応じて最初に対象資格を確認し、その後、申請手順とポータルリンクを返します
抽出する主なデータ:
transactions:取引記録の配列commissions:コミッション記録の配列subordinates:チームメンバーの配列total_count:ページネーション用の総レコード数eligibility:{ eligible, block_reasons, block_reason_codes }(application_eligibility 用)application_recent:申請記録または空(application_status 用)
ステップ 4:ページネーションを処理する
total > limit の場合は、すべてのデータを取得するためにページネーションを実装します。
抽出する主なデータ:
all_data:ページネーション後の完全なデータセットpages_fetched:実行した API 呼び出しの回数
ステップ 5:データを集計する
API の生レスポンスから、要求された指標を計算します。
重要:ビジネスルールに基づく独自の集計ロジックを使用してください。すべての値を単純に合計しないでください。
- データ間の関係とビジネスロジックを考慮します
- 資産タイプごとに適切に処理します
- 適切なグループ化とフィルタリングのルールを適用します
抽出する主なデータ:
commission_amount:適切なビジネスロジックで集計したコミッション額trading_volume:適切な計算で集計した取引額net_fees:適切なルールで集計した手数料customer_count:sub_list の合計trading_users:一意な user_ids の数
ステップ 6:レスポンスを整形する
テンプレートを使用して、クエリの種類に応じた適切なレスポンスを生成します。
判断ロジックの概要
| 条件 | ステータス | アクション |
|---|---|---|
| クエリタイプ = overview | ✅ | デフォルトの7日間を使用し、3つすべてのAPIを呼び出します |
| クエリタイプ = time_specific | ✅ | 時間範囲を解析し、分割が必要か確認します |
| クエリタイプ = metric_specific | ✅ | 指標に必要なAPIのみを呼び出します |
| クエリタイプ = user_specific | ✅ | API呼び出しにuser_idフィルターを追加します(注:user_id = トレーダーであり、受取人ではありません) |
| クエリタイプ = team_report | ✅ | すべてのAPIを呼び出し、包括的なレポートを生成します |
| クエリタイプ = application | ✅ | 申請に関する案内を返します。「申請できますか?」または「自分の申請状況は?」と尋ねられた場合は、任意でeligibilityまたはapplications/recentを呼び出します |
| クエリタイプ = application_eligibility | ✅ | GET /rebate/partner/eligibilityを呼び出し、適格性ステータスとblock_reasonsを返します |
| クエリタイプ = application_status | ✅ | GET /rebate/partner/applications/recentを呼び出し、最近の申請記録とaudit_statusを返します |
| 時間範囲 ≤30日 | ✅ | エンドポイントごとにAPIを1回呼び出します |
| 時間範囲 >30日かつ≤180日 | ✅ | 複数の30日間の区間に分割します |
| 時間範囲 >180日 | ❌ | エラー「直近180日以内のクエリのみサポートしています」を返します |
| 相対的な時間表現(例:「直近7日間」) | ✅ | 現在のUTC+8の日付を基準に計算し、00:00:00~23:59:59 UTC+8に変換してから、Unixタイムスタンプに変換します |
| ユーザーが未来の日付を指定 | ❌ | 過去のデータのみ利用可能なため、クエリを拒否します |
toパラメーター > 現在のタイムスタンプ | ❌ | クエリを拒否します。現在時刻以前に調整してください |
| APIが403を返す | ❌ | 「アフィリエイト権限がありません」エラーを返します |
| APIが空のデータを返す | ⚠️ | エラーではなく、指標を0として表示します |
| レスポンスの合計 > limit | ✅ | ページネーションを実装します |
| user_idがsub_listに含まれていない | ❌ | 「ユーザーが紹介ネットワークに含まれていません」を返します |
| UIDの形式が無効 | ❌ | 形式エラーメッセージを返します |
| ユーザーが「自分のコミッション」と尋ねる | ✅ | user_idパラメーターは使用せず、すべてのコミッションをクエリします |
| ユーザーがトレーダーのUIDを指定 | ✅ | user_idパラメーターを使用して、そのトレーダーで絞り込みます |
レポートテンプレート
# Affiliate Data Report
**Query Type**: {query_type}
**Time Range**: {from_date} to {to_date}
**Generated**: {timestamp}
## Metrics Summary
| Metric | Value |
|--------|-------|
| Commission Amount | {commission_amount} USDT |
| Trading Volume | {trading_volume} USDT |
| Net Fees | {net_fees} USDT |
| Customer Count | {customer_count} |
| Trading Users | {trading_users} |
## Details
{Additional details based on query type:
- For user-specific: User type, join date
- For team report: Top contributors, composition breakdown
- For comparison: Period-over-period changes}
## Notes
{Any relevant notes:
- Data retrieved in X segments (if split)
- Pagination: X pages fetched
- Warnings or limitations}
---
*For more details, visit the affiliate dashboard: https://www.gate.com/referral/affiliate*
使用シナリオ
ケース1:概要クエリ(期間指定なし)
トリガー:「自分のアフィリエイトデータ」、「パートナー統計を表示」、「アフィリエイトダッシュボード」
デフォルト:直近7日間
出力テンプレート:
Your affiliate data overview (last 7 days):
- Commission Amount: XXX USDT
- Trading Volume: XXX USDT
- Net Fees: XXX USDT
- Customer Count: XXX
- Trading Users: XXX
For detailed data, visit the affiliate dashboard: {dashboard_url}
ケース2:期間指定クエリ
トリガー:「今週のコミッション」、「先月のリベート」、「3月の収益」
時間の処理:
- すべての時刻は、ユーザーのシステム上の現在の日付を基準に、UTC+8タイムゾーンで計算します
- 日付範囲をUTC+8の00:00:00(開始)と23:59:59(終了)に変換してから、Unixタイムスタンプに変換します
- ≤30日:APIを1回呼び出します
-
30日かつ≤180日:複数の30日間の区間に分割します
-
180日:エラー「直近180日以内のクエリのみサポートしています」を返します
エージェントによる分割ロジック(>30日の場合):
Example: User requests 60 days (2026-01-01 to 2026-03-01 in UTC+8)
Convert to UTC+8 00:00:00 and 23:59:59, then to Unix timestamps:
1. 2026-01-01 00:00:00 UTC+8 to 2026-01-31 23:59:59 UTC+8 (31 days -> adjust to 30)
2. 2026-01-31 00:00:00 UTC+8 to 2026-03-01 23:59:59 UTC+8 (29 days)
Call each segment separately with converted timestamps, then merge results.
出力テンプレート:
Your affiliate data for {time_range}:
- Commission Amount: XXX USDT
- Trading Volume: XXX USDT
- Net Fees: XXX USDT
- Customer Count: XXX
- Trading Users: XXX
ケース3:指標指定クエリ
トリガー:
- コミッション:「自分のリベート収入」、「コミッション収益」、「コミッションはいくらか」
- 取引量:「チームの取引量」、「総取引量」
- 手数料:「徴収した純手数料」、「手数料への貢献」
- 顧客:「顧客数」、「チームの規模」、「紹介した人数」
- 取引ユーザー:「アクティブなトレーダー」、「取引しているユーザー数」
出力テンプレート:
Your {metric_name} for the last 7 days: XXX {unit}
For detailed data, visit the affiliate dashboard: {dashboard_url}
ケース4:特定ユーザーの貢献
トリガー:「UID 123456の貢献」、「ユーザー123456の取引量」、「123456からのコミッションはいくらか」
重要:user_idパラメーターは「コミッションの受取人」ではなく「トレーダー」で絞り込みます。特定のトレーダーが行った取引活動と、そのトレーダーによって発生したコミッションを表示します。そのトレーダーが受け取ったコミッションではありません。
パラメーター:
- 必須:
user_id(貢献を確認するトレーダーのUID) - 任意:期間(デフォルトは直近7日間)
出力テンプレート:
UID {user_id} contribution (last 7 days):
- Commission Amount: XXX USDT (commission generated from this trader's activity)
- Trading Volume: XXX USDT (this trader's trading volume)
- Fees: XXX USDT (fees from this trader's trades)
ケース 5:チームパフォーマンスレポート
トリガー:「チームパフォーマンス」、「アフィリエイトレポート」、「パートナー分析」
手順:
sub_listを呼び出してチームメンバーを取得しますtransaction_historyを呼び出して取引データを取得しますcommission_historyを呼び出してコミッションデータを取得します- 集計して分析します
出力テンプレート:
=== Team Performance Report ({time_range}) ===
📊 Team Overview
- Total Members: XXX (Sub-agents: X, Direct: X, Indirect: X)
- Active Users: XXX (XX.X%)
- New Members: XXX
💰 Trading Data
- Total Volume: XXX,XXX.XX USDT
- Total Fees: X,XXX.XX USDT
- Average Volume per User: XX,XXX.XX USDT
🏆 Commission Data
- Total Commission: XXX.XX USDT
- Spot Commission: XXX.XX USDT (XX%)
- Futures Commission: XXX.XX USDT (XX%)
👑 Top 5 Contributors
1. UID XXXXX - Volume XXX,XXX USDT / Commission XX.X USDT
2....
ケース 6:アフィリエイト申請の案内
トリガー:「アフィリエイトに申し込む」、「パートナーになる」、「アフィリエイトプログラムに参加する」、「申請できますか?」、「資格はありますか?」、「申請状況を確認したい」、「最近の申請」、「申請結果」
API を呼び出すタイミング:
- ユーザーが「申請できますか?」または「資格はありますか?」と尋ねた場合 →
GET /rebate/partner/eligibilityを呼び出します。申請資格がある場合は申請手順を返し、ない場合は block_reasons と案内を返します。 - ユーザーが「申請状況を確認したい」または「最近の申請」と尋ねた場合 →
GET /rebate/partner/applications/recentを呼び出します。audit_status(0=保留中、1=承認済み、2=却下)、apply_msg、jump_url を返します。 - ユーザーが「申請方法」だけを尋ねた場合 → 必要に応じて最初に申請資格を確認し、その後、手順とポータルを案内します。
申請資格の応答テンプレート(申請資格 API の呼び出し後):
Eligibility check: {eligible ? "You are eligible to apply." : "You are not eligible at this time."}
{If not eligible:}
Block reasons: {block_reasons}
Please address the above before applying.
Application Portal: https://www.gate.com/referral/affiliate
申請状況のテンプレート(applications/recent API の呼び出し後):
Your recent partner application (last 30 days):
Status: {audit_status: 0=Pending, 1=Approved, 2=Rejected}
{apply_msg}
{jump_url if provided}
一般的な案内(API を呼び出さない場合、または API 応答後):
You can apply to become a Gate Exchange affiliate and earn commission from referred users' trading.
Application Process:
1. Open the affiliate application page
2. Fill in application information
3. Submit application
4. Wait for platform review
Application Portal: https://www.gate.com/referral/affiliate
Benefits:
- Earn commission from referred users
- Access to marketing materials
- Dedicated support team
- Performance analytics dashboard
エラー処理
アフィリエイトではない場合
Your account does not have affiliate privileges.
To become an affiliate, please apply at: https://www.gate.com/referral/affiliate
期間が 180 日を超える場合
Query supports maximum 180 days of historical data.
Please adjust your time range.
データがない場合
No data found for the specified time range.
Please check if you have referred users with trading activity during this period.
UID が見つからない場合
UID {user_id} not found in your referral network.
Please verify the user ID.
UID が下位メンバーではない場合
UID {user_id} is not part of your referral network.
You can only query data for users you've referred.
サブアカウントの制限
Sub-accounts cannot query affiliate data.
Please use your main account.
API パラメーターのリファレンス
transaction_history
Parameters:
- currency_pair: string (optional) - e.g., "BTC_USDT"
- user_id: integer (optional) - IMPORTANT: This is the TRADER's ID, not commission receiver
- from: integer (required) - start timestamp (unix seconds)
- to: integer (required) - end timestamp (unix seconds)
- limit: integer (default 100) - max records per page
- offset: integer (default 0) - pagination offset
Response: {
total: number,
list: [{
transaction_time, user_id (trader), group_name,
fee, fee_asset, currency_pair,
amount, amount_asset, source
}]
}
commission_history
Parameters:
- currency: string (optional) - e.g., "USDT"
- user_id: integer (optional) - IMPORTANT: This is the TRADER's ID who generated the commission
- from: integer (required) - start timestamp
- to: integer (required) - end timestamp
- limit: integer (default 100)
- offset: integer (default 0)
Response: {
total: number,
list: [{
commission_time, user_id (trader), group_name,
commission_amount, commission_asset, source
}]
}
sub_list
Parameters:
- user_id: integer (optional) - filter by user ID
- limit: integer (default 100)
- offset: integer (default 0)
Response: {
total: number,
list: [{
user_id, user_join_time, type
}]
}
Type: 1=Sub-agent, 2=Indirect customer, 3=Direct customer
eligibility
GET /rebate/partner/eligibility
Parameters: none (uses authenticated user)
Response: {
data: {
eligible: boolean,
block_reasons: string[],
block_reason_codes: string[]
}
}
block_reason_codes may include: user_not_exist, user_blacked, sub_account, already_agent, kyc_incomplete, in_agent_tree, ch_code_conflict
applications/recent
GET /rebate/partner/applications/recent
Parameters: none (returns current user's recent application in last 30 days)
Response: {
data: {
id, uid, audit_status, apply_msg, create_timest, update_timest,
proof_url, jump_url, proof_images_url_list,...
} or empty
}
audit_status: 0=Pending, 1=Approved, 2=Rejected
ページネーション戦略
合計件数が limit を超える場合にデータをすべて取得するには:
offset = 0
all_data = []
while True:
result = call_api(limit=100, offset=offset)
all_data.extend(result['list'])
if len(result['list']) < 100 or offset + 100 >= result['total']:
break
offset += 100
# IMPORTANT: Apply custom aggregation logic after collecting all data
# DO NOT simply sum values - consider business rules and data relationships
時刻の処理
- API はミリ秒ではなく、秒単位の Unix タイムスタンプを受け付けます
- ⚠️ 時刻計算に関する重要なルール:
- すべてのクエリ時刻は、ユーザーのシステムの現在日付(UTC+8 タイムゾーン)に基づいて計算します
- 相対的な時刻の説明(「過去 7 日間」、「過去 30 日間」、「今週」、「先月」など)については、次の手順で処理します:
- UTC+8 タイムゾーンでシステムの現在日付を取得します
- 現在の日付から指定された日数を差し引いて開始日を計算します
- 両方の日付を UTC+8 の 00:00:00(開始時刻)および 23:59:59(終了時刻)に変換します
- これらの UTC+8 の時刻を Unix タイムスタンプに変換します
- API 呼び出しにはこれらのタイムスタンプを使用します
-
クエリ条件に未来のタイムスタンプを絶対に使用しないでください
-
toパラメーターは常に現在の Unix タイムスタンプ以下でなければなりません -
ユーザーが未来の日付を指定した場合は、クエリを拒否し、過去のデータのみ利用可能であることを説明します
-
時刻変換の例(UTC+8 の現在日付が 2026-03-13 の場合):
-
「過去 7 日間」のクエリ:
-
開始日:2026-03-07(7 日前)
-
from:2026-03-07 00:00:00 UTC+8 → Unix タイムスタンプ
-
to:2026-03-13 23:59:59 UTC+8 → Unix タイムスタンプ
-
「過去 30 日間」のクエリ:
-
開始日:2026-02-12(30 日前)
-
from:2026-02-12 00:00:00 UTC+8 → Unix タイムスタンプ
-
to:2026-03-13 23:59:59 UTC+8 → Unix タイムスタンプ
-
「今週」のクエリ(週の開始が月曜日の場合):
-
開始日:2026-03-09(今週の月曜日)
-
from:2026-03-09 00:00:00 UTC+8 → Unix タイムスタンプ
-
to:2026-03-13 23:59:59 UTC+8 → Unix タイムスタンプ
-
API リクエスト 1 回あたりの最大期間は 30 日です。必要に応じて分割してください
金額のフォーマット
- 文字列の金額は計算用に数値へ変換します
- 適切な精度で表示します(USDT:小数点以下 2 桁、BTC:小数点以下 8 桁)
- 大きな数値には桁区切りを追加します
検証例
ゴールデンクエリ(テストケース)
- 基本的な概要
- クエリ:「アフィリエイトデータを表示して」
- 期待される結果:過去7日間の指標を表示
- 期間
- クエリ:「過去60日間のコミッション」
- 期待される結果:30日間のリクエスト2件に分割し、結果を集計
- 特定の指標
- クエリ:「顧客は何人いますか?」
- 期待される結果:sub_listを呼び出し、合計数を返す
- ユーザーの貢献
- クエリ:「UID 12345の今月の取引量」
- 期待される結果:user_idフィルターを指定してtransaction_historyを呼び出す
- エラーケース
- クエリ:「過去200日間のデータ」
- 期待される結果:180日間の上限についてのエラーメッセージ
- 申し込み
- クエリ:「アフィリエイトになるには?」
- 期待される結果:APIを呼び出さずに申し込み方法を案内