查询OpenAI账号APIKey可用余额、使用量和使用明细接口,用python实现
现在可以使用以下接口进行实现
Python
apikey = "" subscription_url = "https://api.openai.com/v1/dashboard/billing/subscription" headers = { "Authorization": "Bearer " + apikey, "Content-Type": "application/json" } subscription_response = requests.get(subscription_url, headers=headers) if subscription_response.status_code == 200: data = subscription_response.json() total = data.get("hard_limit_usd") else: return subscription_response.text # start_date设置为今天日期前99天 start_date = (datetime.datetime.now() - datetime.timedelta(days=99)).strftime("%Y-%m-%d") # end_date设置为今天日期+1 end_date = (datetime.datetime.now() + datetime.timedelta(days=1)).strftime("%Y-%m-%d") billing_url = f"https://api.openai.com/v1/dashboard/billing/usage?start_date={start_date}&end_date={end_date}" billing_response = requests.get(billing_url, headers=headers) if billing_response.status_code == 200: data = billing_response.json() total_usage = data.get("total_usage") / 100 daily_costs = data.get("daily_costs") days = min(5, len(daily_costs)) recent = f"最近{days}天使用情况 \n" for i in range(days): cur = daily_costs[-i-1] date = datetime.datetime.fromtimestamp(cur.get("timestamp")).strftime("%Y-%m-%d") line_items = cur.get("line_items") cost = 0 for item in line_items: cost += item.get("cost") recent += f"\t{date}\t{cost / 100} \n" else: return billing_response.text return f"\n总额:\t{total:.4f} \n" \ f"已用:\t{total_usage:.4f} \n" \ f"剩余:\t{total-total_usage:.4f} \n" \ f"\n"+recent
输出结果如下:
总额: 18.0000
已用: 0.4737
剩余: 17.5263
最近5天使用情况
2023-04-28 0.0
2023-04-27 0.0
2023-04-26 0.0
2023-04-25 0.0
2023-04-24 0.0
可访问 https://aichat.xingtupai.com 查看示例
余额查询方法可参考:https://www.chatgptzh.com/post/325.html