mcpField
A
awardwallet

awardwallet

github.com/borskiその他78070 回インストール2 日前に更新
リポジトリ

awardwallet について

awardwalletは、AwardWallet Business Account Access APIを通じてポイント残高、ステータス、アカウント履歴を取得する旅行計画スキルです。Businessアカウントと接続済みアカウントの認証情報がある利用者向けです。

主な機能

  1. 01接続済みアカウントの残高取得
  2. 02ステータスとアカウント属性の表示
  3. 03全取引履歴の取得
  4. 04保存済み旅行日程の取得
  5. 05対応プロバイダー一覧の確認

活用シーン

  1. 01旅行計画前の航空・カードポイント集計
  2. 02ロイヤルティアカウントの最近の取引確認
  3. 03指定期間内の旅行日程確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/borski/travel-hacking-toolkit --skill awardwallet

インストール後、Claude Code で/awardwalletを入力して読み込まれたか確認します。

詳細

AwardWallet スキル

AwardWallet Business Account Access API を介して、ロイヤルティプログラムの残高、エリートステータス、取引履歴を照会します。

ソース: business.awardwallet.com — Business アカウントが必要です。

認証

.env ファイルに次の値を設定します。

  • AWARDWALLET_API_KEY — https://business.awardwallet.com/profile/api から取得します
  • AWARDWALLET_USER_ID — 接続済みユーザー ID です。下記の接続済みユーザー一覧エンドポイントから確認できます。

すべてのリクエストで X-Authentication ヘッダーを使用します。

初回設定時の注意点: AwardWallet は Business API キーに IP 許可リストを適用しています。IP が許可リストに登録されていない場合、すべての呼び出しで {"error": "access_denied", "code": "IP_DENIED"} が返されます。トラブルシューティングの前に IP を許可リストに登録してください。

  • 許可リストの登録先: https://business.awardwallet.com/profile/api
  • IP の確認方法: curl ifconfig.me
  • 複数の IP: 自宅、職場、ホットスポット、VPN の出口ノード、旅行先など、それぞれを登録する必要があります。安定した家庭用 ISP を利用している場合は、/24 を許可リストに登録するのが最も簡単です。
エラーの特徴
応答意味対処方法
{"error": "access_denied", "code": "IP_DENIED"}IP が許可リストに登録されていません開発者ポータルで現在の IP を許可リストに登録します
Unauthorized / 401キーが正しくありませんキーを再生成します
空の accounts 配列ユーザー ID が正しくないか、接続がありませんAWARDWALLET_USER_ID を確認します

API ベース

https://business.awardwallet.com/api/export/v1

クイックスタート:すべての残高を取得する

curl -s -H "X-Authentication: $AWARDWALLET_API_KEY" \
  "https://business.awardwallet.com/api/export/v1/connectedUser/$AWARDWALLET_USER_ID" | jq '.accounts'
レスポンスフィールド

各アカウントオブジェクトには次の情報が含まれます。

フィールド説明
accountId詳細確認に使用する一意の ID
codeプロバイダーコード(例:「united」、「chase」、「amex」)
displayName人が読みやすい名称(例:「United Airlines (MileagePlus)」)
kindカテゴリー:航空会社、ホテル、クレジットカードなど
balance書式設定済みの残高文字列
balanceRaw数値の残高
propertiesステータス、口座番号、有効期限などを含む配列
history直近 10 件の取引(全履歴を取得するには /account/{id} を呼び出します)
errorCode1 = 更新成功、2 = 認証情報が無効、など
便利な jq フィルター

以下のフィルターは、すべて curl の出力をパイプで渡すことを前提としています。上記の curl コマンド全体で ... を置き換えてください。

# Just airline balances with status
... | jq '[.accounts[] | select(.kind == "Airlines") | {name: .displayName, balance: .balanceRaw, status: ((.properties // [])[] | select(.kind == 3) | .value) // "none"}]'

# Just hotel balances with status
... | jq '[.accounts[] | select(.kind == "Hotels") | {name: .displayName, balance: .balanceRaw, status: ((.properties // [])[] | select(.kind == 3) | .value) // "none"}]'

# Just credit card / transferable points
... | jq '[.accounts[] | select(.kind == "Credit Cards") | {name: .displayName, balance: .balanceRaw}]'

# All balances sorted by amount (descending), non-zero only
... | jq '[.accounts[] | {name: .displayName, kind: .kind, balance: .balanceRaw} | select(.balance > 0)] | sort_by(-.balance)'

# Elite status across all programs
... | jq '[.accounts[] | {name: .displayName, status: ((.properties // [])[] | select(.kind == 3) | .value) // null} | select(.status != null)]'

# Accounts with errors (need password update, etc.)
... | jq '[.accounts[] | select(.errorCode != 1) | {name: .displayName, error: .errorCode}]'

# Combined summary for trip planning (airlines + transferable points, non-zero, sorted)
... | jq '[.accounts[] | select((.kind == "Airlines" or .kind == "Credit Cards") and .balanceRaw > 0) | {name: .displayName, kind: .kind, balance: .balanceRaw, status: ((.properties // [])[] | select(.kind == 3) | .value) // null}] | sort_by(-.balance)'

詳細確認:アカウントの全履歴

直近 10 件を超える全取引履歴を取得するには:

curl -s -H "X-Authentication: $AWARDWALLET_API_KEY" \
  "https://business.awardwallet.com/api/export/v1/account/{accountId}" | jq '.account[0].history'

旅行のタイムライン

接続済みユーザーの保存済み旅程を取得します。

curl -s -H "X-Authentication: $AWARDWALLET_API_KEY" \
  -X POST \
  -H "Content-Type: application/json" \
  -d '{"start": "2026-01-01", "end": "2027-01-01"}' \
  "https://business.awardwallet.com/api/export/v1/travel-timeline/$AWARDWALLET_USER_ID" | jq '.itineraries'

サポート対象プロバイダーの一覧表示

curl -s -H "X-Authentication: $AWARDWALLET_API_KEY" \
  "https://business.awardwallet.com/api/export/v1/providers/list" | jq '.'

アカウントプロパティの種類

properties 配列を解析する際、次の kind 値が標準化されています。

種類意味
1口座番号
2有効期限
3エリートステータス
4生涯獲得ポイント
5入会年月
6有効期限が近い残高
7年初来のマイル/ポイント
8年初来の搭乗区間数
9次のエリートレベル
10次のレベルまでに必要なポイント
11次のレベルまでに必要な搭乗区間数
12名前
13最終利用日
14次の特典に必要なポイント
15ステータスの有効期限
16ステータス維持に必要なポイント
17ステータス維持に必要な搭乗区間数
18アライアンスのエリートレベル
19ステータス対象マイル/ポイント

エラーコード

コード意味
0更新されたことがありません
1成功
2認証情報が無効です
3ロックアウトされています
4プロバイダーエラー、またはユーザーの操作が必要です
5AwardWallet によってプロバイダーが無効化されています
6解析に失敗しました
7パスワードがありません
8ロックアウト防止のため無効化されています
9警告付きで成功しました
10セキュリティ質問への回答が必要です
11タイムアウトしました

ワークフロー:旅行計画の概要

旅行を計画するときは、次のワークフローを実行します。

  1. すべてのアカウントを取得します
  2. 航空会社とクレジットカード(移行可能なポイント)に絞り込みます
  3. プログラム名、残高、エリートステータスを見やすくまとめます
  4. 更新が必要と思われるエラーのあるアカウントを記載します
  5. 渡航先で利用できる移行提携先と照合します

メモ

  • ユーザー/メンバーの詳細レスポンスに含まれる履歴は、最大10件です。履歴全体を確認するには、/account/{id}を使用してください。
  • balanceRawは数値です。balanceにはカンマ区切りの値が表示されます。
  • 接続済みユーザーは、自分のアクセスレベルを管理します。データが制限されている場合は、共有範囲が制限されている可能性があります。
  • Capital Oneのように、1つのログインで複数のカードを利用するプログラムでは、サブアカウントが存在します。subAccounts配列を確認してください。

コメント