通过接口获取账户信息
MaomaoToken 提供一组管理 API,无需通过网页界面,即可在脚本或命令行中管理 API Key、查询账户信息以及获取可用模型列表。
说明
访问令牌(Access Token)与用于调用模型的普通 API Key 不同。管理 API 需要使用 Access Token,在 MaomaoToken 控制台的个人资料页面 获取。
API 端点一览
| 端点 | 方法 | 描述 |
|---|---|---|
/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=...) |
/api/user/token | GET | 获取用户 Key |
/api/user/available_models | GET | 获取当前用户可用的模型列表 |
查询账户余额
curl -X GET "https://api.maomaotoken.com/api/user/self" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
api_url = "https://api.maomaotoken.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"):
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"当前额度: {quota}")
print(f"可用余额: ${usd_balance:.2f}")查询单个 Key 的可用额度:
curl 'https://api.maomaotoken.com/dashboard/billing/remain' \
-H 'authorization: Bearer sk-***'Key 管理
创建新 Key
curl -X POST "https://api.maomaotoken.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
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
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)
data = response.json()
if data.get("success"):
print(f"新Key: {data['data'].get('key')}")获取 Key 列表
# 修改 num 参数调整返回数量
curl -X GET "https://api.maomaotoken.com/api/token/?num=20" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
response = requests.get(f"{api_url}/api/token/", headers=headers)
data = response.json()
if data.get("success"):
for token in data.get("data", []):
print(f"ID: {token.get('id')} | 名称: {token.get('name')} | Key: {token.get('key')}")搜索 Key
curl -X GET "https://api.maomaotoken.com/api/token/search?keyword=关键词" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
query = "关键词"
response = requests.get(f"{api_url}/api/token/search?keyword={query}", headers=headers)
data = response.json()
if data.get("success"):
for token in data.get("data", []):
print(f"ID: {token.get('id')} | 名称: {token.get('name')}")更新 Key
curl -X PUT "https://api.maomaotoken.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
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
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)
data = response.json()
print("更新成功" if data.get("success") else f"失败: {data.get('message')}")删除 Key
curl -X DELETE "https://api.maomaotoken.com/api/token/Key_ID" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
key_id = "Key_ID"
response = requests.delete(f"{api_url}/api/token/{key_id}", headers=headers)
data = response.json()
print("删除成功" if data.get("success") else f"失败: {data.get('message')}")获取可用模型列表
curl -X GET "https://api.maomaotoken.com/api/user/available_models" \
-H "Authorization: YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json"import requests
api_url = "https://api.maomaotoken.com"
headers = {"Authorization": "YOUR_ACCESS_TOKEN", "Content-Type": "application/json"}
response = requests.get(f"{api_url}/api/user/available_models", headers=headers)
data = response.json()
if data.get("success"):
models = data.get("data", [])
print(f"可用模型数量:{len(models)}")
for i, model in enumerate(models, 1):
print(f" {i}. {model}")常见问题
401 Unauthorized?
确认 Access Token 完整复制,没有多余空格;并确认账户有足够权限执行该操作。
连接失败?
检查请求的域名是否正确,确保使用 https://api.maomaotoken.com。