使用ApiKey获取Openai余额(2023年4月更新解决方案)
起因
Openai这几天的更新,导致credit_grants接口只能使用浏览器token访问,若使用Api Key则会返回:Your request to GET /dashboard/billing/credit_grants must be made with a session key (that is, it can only be made from the browser). You made it with the following key type: secret.
,大意就是不再支持Api Key来调用这个接口了。
解决方案
虽然credit_grants接口被ban了,但是/dashboard/billing
下的其他接口并没有影响。参考网上大佬的思路,可以使用subscription
和usage
接口,分别获取总额度hard_limit_usd
和使用量total_usage
,做减法获取余额。
注意 usage 接口需要执行start_date和end_date 并且时间范围不能超过100天,需要写个循环获取然后加起来总额
两个接口完整路径:
https://api.openai.com/dashboard/billing/subscription
https://api.openai.com/dashboard/billing/usage
具体实现和快速获取
具体go语言的实现已经同步到github了,有兴趣的可以了解一下。
另外项目编译好了二进制文件,可以直接下载到服务器使用:
shell
# 下载
wget https://github.com/LaoYutang/openai-balance/releases/download/release/openai-balance-linux-amd64 -O openai-balance
chmod +x openai-balance
# 使用
./openai-balance -k $你的Api Key
# 如果需要魔法
./openai-balance -k $你的Api Key -p http://ip:port