次世代コマンドラインツール AIHubMix CLI(コマンドラインツール) の使用を推奨します:単一バイナリ・ゼロランタイム依存(Python 不要)で、
aihubmix keys list などのリソース化コマンドを提供し、jq と AI Agent に対応しています。本ページは旧バージョンの Python スクリプトの使用方法を参考として残しています。準備
AiHubMix CLIを使用する前に、以下が必要です。- AiHubMixアカウント
- AiHubMix設定ページから「システムアクセストークンを生成」をクリックしてアクセストークンを生成します。
- 必要なPython依存関係をインストールします。
pip install -U requests openai
aihubmix_cli.pyスクリプトはこちらから入手できます。
機能リスト
AiHubMix CLIは以下の主要機能を提供します。APIエンドポイント一覧
| エンドポイント | HTTPメソッド | 説明 |
|---|---|---|
/api/user/self | GET | 現在のユーザー情報とアカウント残高を取得 |
/api/token/ | GET | すべてのKEYリストを取得 |
/api/token/ | POST | 新しいAPI KEYを作成 |
/api/token/ | PUT | 既存のAPI KEYを更新 |
/api/token/{token_id} | GET | 特定のKEYの詳細情報を取得 |
/api/token/{token_id} | DELETE | 特定のKEYを削除 |
/api/token/search | GET | KEYを検索 ( ?keyword=search keywordを使用) |
/api/user/token | GET | ユーザーKEYを取得 |
/api/user/available_models | GET | 現在のユーザーが利用可能なモデルリストを取得 |
アカウント管理
curl -X GET "https://aihubmix.com/api/user/self" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# アカウント残高を取得
response = requests.get(f"{api_url}/api/user/self", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
user_data = data.get("data", {})
quota = user_data.get('quota', 0)
usd_balance = quota / 500000 # $1は500,000クレジットに相当
print(f"ユーザー名: {user_data.get('username', '不明')}")
print(f"表示名: {user_data.get('display_name', '不明')}")
print(f"現在のクレジット: {quota}")
print(f"利用可能なドル: ${usd_balance:.2f}")
else:
print(f"リクエスト失敗: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance
curl 'https://aihubmix.com/dashboard/billing/remain' \
-H 'authorization: Bearer sk-***' \
KEY管理
curl -X POST "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "新しいKEY名",
"expired_time": -1,
"remain_quota": 500000,
"unlimited_quota": false,
"subnet": ""
}'
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 新しいKEYを作成
payload = {
"name": "新しいKEY名",
"expired_time": -1, # 永続
"remain_quota": 500000,
"unlimited_quota": False,
"subnet": ""
}
response = requests.post(f"{api_url}/api/token/", headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
token_data = data.get("data", {})
print(f"新しいKEY: {token_data.get('key', '不明')}")
print(f"KEY ID: {token_data.get('id', '不明')}")
else:
print(f"KEYの作成に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action create_token --name "新しいKEY名" --expires -1 --quota 500000
curl -X GET "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# KEYリストを取得
response = requests.get(f"{api_url}/api/token/", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
tokens_data = data.get("data", [])
print(f"KEYリスト (合計 {len(tokens_data)} 個):")
for token in tokens_data:
print(f"KEY ID: {token.get('id', '不明')}")
print(f"KEY名: {token.get('name', '不明')}")
print(f"KEY: {token.get('key', '不明')}")
print("---")
else:
print(f"KEYリストの取得に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_tokens
curl -X GET "https://aihubmix.com/api/token/search?keyword=search keyword" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# 検索キーワード
query = "search keyword"
# KEYを検索
response = requests.get(f"{api_url}/api/token/search?keyword={query}", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
tokens_data = data.get("data", [])
print(f"検索結果 (合計 {len(tokens_data)} 個):")
for token in tokens_data:
print(f"KEY ID: {token.get('id', '不明')}")
print(f"KEY名: {token.get('name', '不明')}")
print(f"KEY: {token.get('key', '不明')}")
print("---")
else:
print(f"KEYの検索に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action search_tokens --query "search keyword"
curl -X PUT "https://aihubmix.com/api/token/" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "KEY_ID",
"name": "新しい名前",
"expired_time": 86400,
"remain_quota": 100000,
"status": 1
}'
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# KEYを更新
key_id = "KEY_ID" # 実際のKEY IDに置き換えてください
payload = {
"id": key_id,
"name": "新しい名前",
"expired_time": 86400, # 24時間後に期限切れ
"remain_quota": 100000,
"status": 1 # 1-有効、0-無効
}
response = requests.put(f"{api_url}/api/token/", headers=headers, json=payload)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
print(f"KEYの更新に成功しました")
if "data" in data:
token_data = data.get("data", {})
print(f"名前: {token_data.get('name', '不明')}")
print(f"有効期限: {token_data.get('expired_time', '不明')}")
else:
print(f"KEYの更新に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action update_token --id "KEY_ID" --name "新しい名前" --expires 86400 --quota 100000 --status 1
curl -X DELETE "https://aihubmix.com/api/token/KEY_ID" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# KEYを削除
key_id = "KEY_ID" # 実際のKEY IDに置き換えてください
response = requests.delete(f"{api_url}/api/token/{key_id}", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
print(f"KEYの削除に成功しました")
else:
print(f"KEYの削除に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action delete_token --id "KEY_ID"
curl -X GET "https://aihubmix.com/api/user/token" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# ユーザーKEYを取得
response = requests.get(f"{api_url}/api/user/token", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
user_token = data.get("data", {}).get("token")
print(f"ユーザーKEY: {user_token}")
else:
print(f"ユーザーKEYの取得に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_user_token
モデル管理
curl -X GET "https://aihubmix.com/api/user/available_models" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"
import requests
import json
# API設定
api_url = "https://aihubmix.com"
access_token = "YOUR_ACCESS_TOKEN"
headers = {
"Authorization": access_token,
"Content-Type": "application/json"
}
# ユーザーが利用可能なモデルを取得
response = requests.get(f"{api_url}/api/user/available_models", headers=headers)
if response.status_code == 200:
data = response.json()
if data.get("success", False):
models_data = data.get("data", [])
print(f"ユーザーが利用可能なモデルリスト (合計 {len(models_data)} 個):")
for i, model in enumerate(models_data, 1):
print(f" {i}. {model}")
else:
print(f"ユーザーが利用可能なモデルの取得に失敗しました: {data.get('message', '不明なエラー')}")
else:
print(f"リクエスト失敗、ステータスコード: {response.status_code}")
python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_available_models
JSON形式での出力
すべてのCLIコマンドは、プログラムによる処理を容易にするために、JSON形式で結果を出力することをサポートしています。python aihubmix_cli.py --url "https://aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance --json
トラブルシューティング
問題が発生した場合は、以下の解決策を試してください。-
接続の問題:メインドメインへの接続が失敗した場合は、代替ドメインを使用してみてください。
python aihubmix_cli.py --url "https://api.aihubmix.com" --token "YOUR_ACCESS_TOKEN" --action get_balance -
アクセストークンが無効:提供されたアクセストークンがAiHubMixウェブサイトから取得した有効なキーであることを確認してください。アクセストークンの形式は通常
fd***のようになります。 - 権限不足:一部の操作には特定の権限が必要な場合があります。アカウントに十分な権限があることを確認してください。
- リクエスト失敗:ネットワーク接続を確認するか、しばらくしてから再試行してください。
注意事項
- アクセストークンは、AIモデルにアクセスするための通常のAPI KEYとは異なります。
- 各ユーザーは独自のシステムアクセストークンを持ち、そのアクセスレベルはユーザーの役割(一般ユーザー、管理者、またはルートユーザー)によって決定されます。
最終更新日:2026-06-01