Account Balance
返回当前凭证绑定账户的余额视图。
这个接口不只是一个裸 balance 数字;它会返回用户、分组和显示货币信息,适合前端状态栏、钱包卡片、轻量轮询。
Endpoint
http
GET https://api.sakrylle.com/v1/account/balance请求头
| 名称 | 必填 | 说明 |
|---|---|---|
Authorization | 是 | Bearer sk-xxxxxxxxxxxxxxxx 或 Bearer sk_oauth_xxxxxxxxxxxxxxxx |
响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
user_id | integer | 用户 ID |
username | string | 用户名 |
credit_remaining | number | 当前余额 |
currency_display | string | 显示货币,固定为 CNY |
rate_multiplier | number | 当前分组倍率 |
group_id | integer | 当前分组 ID |
group_name | string | 当前分组名 |
allow_image_generation | boolean | 当前分组是否允许图像生成相关能力 |
响应示例
json
{
"user_id": 42,
"username": "alice",
"credit_remaining": 23.71,
"currency_display": "CNY",
"rate_multiplier": 0.5,
"group_id": 3,
"group_name": "GPT-Pro",
"allow_image_generation": true
}OAuth 访问说明
如果用 OAuth token 调用,这个 endpoint 需要:
account:balance:read- 或
account:read
说明
- 适合做“钱包余额 + 当前分组”轻量展示
credit_remaining与控制台显示口径一致allow_image_generation是当前分组能力提示,不等于“必然有图像模型”;实际模型列表仍以/v1/models为准
错误
401 authentication_error— 鉴权失败403 insufficient_scope/permission_error— OAuth scope 不足或无权访问
代码示例
bash
curl https://api.sakrylle.com/v1/account/balance \
-H "Authorization: Bearer $SAKRYLLE_API_KEY"python
import httpx
resp = httpx.get(
"https://api.sakrylle.com/v1/account/balance",
headers={"Authorization": "Bearer sk-xxxxxxxxxxxxxxxx"},
)
print(resp.json())javascript
const resp = await fetch("https://api.sakrylle.com/v1/account/balance", {
headers: { Authorization: "Bearer sk-xxxxxxxxxxxxxxxx" },
});
console.log(await resp.json());go
package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET",
"https://api.sakrylle.com/v1/account/balance", nil)
req.Header.Set("Authorization", "Bearer sk-xxxxxxxxxxxxxxxx")
resp, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}rust
use reqwest::Client;
#[tokio::main]
async fn main() -> anyhow::Result<()> {
let client = Client::new();
let resp: serde_json::Value = client
.get("https://api.sakrylle.com/v1/account/balance")
.bearer_auth("sk-xxxxxxxxxxxxxxxx")
.send()
.await?
.json()
.await?;
println!("{resp:#}");
Ok(())
}java
import java.net.URI;
import java.net.http.*;
public class AccountBalance {
public static void main(String[] args) throws Exception {
HttpRequest req = HttpRequest.newBuilder()
.uri(URI.create("https://api.sakrylle.com/v1/account/balance"))
.header("Authorization", "Bearer sk-xxxxxxxxxxxxxxxx")
.GET()
.build();
HttpResponse<String> resp = HttpClient.newHttpClient()
.send(req, HttpResponse.BodyHandlers.ofString());
System.out.println(resp.body());
}
}csharp
using System.Net.Http.Headers;
var http = new HttpClient();
http.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", "sk-xxxxxxxxxxxxxxxx");
var resp = await http.GetAsync("https://api.sakrylle.com/v1/account/balance");
Console.WriteLine(await resp.Content.ReadAsStringAsync());