سه endpoint برای اینکه بدانید چقدر اعتبار دارید و کجا خرج شده است. هر سه با همان کلید کار میکنند و هزینهای ندارند. همین اطلاعات را با نمودار در اپ گیسو، بخش API هم میبینید.
موجودی و محدودیتهای کلید: GET /me#
curl https://gisoo.pro/api/v1/me -H "Authorization: Bearer $GISOO_API_KEY"
{
"object": "account",
"balance": { "usd": "12.408114", "usd_display": "$12.4081" },
"status": "active",
"project": { "id": 42, "name": "support-bot" },
"key": {
"name": "production",
"prefix": "sk-gisoo-v1-Xy7Q",
"rpm_limit": 60,
"spend_limit_usd": "20.00",
"spent_usd": "3.591886",
"expires_at": null
},
"limits": { "concurrency": 8, "max_request_kb": 20480 }
}
balance.usdموجودی حساب به دلار، با شش رقم اعشار؛usd_displayهمان برای نمایش.statusحساب:activeیاsuspended.key.spend_limit_usdسقف هزینهٔ همین کلید (nullیعنی بدون سقف) وkey.spent_usdمقداری که تا حالا خرج کرده است.key.rpm_limitوlimits.concurrencyسقفهایی است که در این لحظه روی کلید و حساب اعمال میشود؛limits.max_request_kbبیشترین حجم بدنه.
# A small guard: stop the batch job before the balance runs out.
import requests, os
HEADERS = {"Authorization": "Bearer " + os.environ["GISOO_API_KEY"]}
def balance_usd() -> float:
me = requests.get("https://gisoo.pro/api/v1/me", headers=HEADERS, timeout=15).json()
return float(me["balance"]["usd"])
if balance_usd() < 1.0:
raise SystemExit("Balance under $1 — top up before running the batch.")
گزارش مصرف: GET /usage#
مصرف پروژهای که کلید به آن تعلق دارد، روزبهروز یا به تفکیک مدل:
2026-09-01. پیشفرض ۲۹ روز پیش.day (پیشفرض) یا model.key فقط همین کلید.# Last 30 days, day by day (default)
curl "https://gisoo.pro/api/v1/usage" -H "Authorization: Bearer $GISOO_API_KEY"
# September, per model, only this key
curl "https://gisoo.pro/api/v1/usage?from=2026-09-01&to=2026-09-30&group=model&scope=key" \
-H "Authorization: Bearer $GISOO_API_KEY"
{
"object": "usage",
"from": "2026-09-01",
"to": "2026-09-30",
"group": "model",
"total_usd": "1.284000",
"data": [
{ "key": "gpt-4o-mini", "requests": 812, "errors": 3, "input_tokens": 1204511, "output_tokens": 301877, "usd": "0.506100" },
{ "key": "text-embedding-3-small", "requests": 40, "errors": 0, "input_tokens": 902114, "output_tokens": 0, "usd": "0.025300" }
]
}
تاریخها روز تقویم میلادیاند. مبلغها به دلار و شامل همهٔ درخواستهای موفق بازهاند؛ درخواست ناموفق در errors شمرده میشود و هزینه ندارد.
هزینهٔ یک درخواست: GET /requests/{id}#
شناسه همان id پاسخ (برای Chat Completions) یا هدر X-Request-Id هر پاسخ است و با req_ شروع میشود. فقط درخواستهای همان پروژه دیده میشوند.
curl https://gisoo.pro/api/v1/requests/req_4b1f0c9a7e2d8f3a6c5b0e1d -H "Authorization: Bearer $GISOO_API_KEY"
{
"id": "req_4b1f0c9a7e2d8f3a6c5b0e1d",
"object": "request",
"created": 1790000000,
"model": "gpt-4o-mini",
"endpoint": "chat",
"status": "success",
"streamed": true,
"usage": { "input_tokens": 1500, "output_tokens": 500, "cached_tokens": 1024, "total_tokens": 2000 },
"usd": "0.000628",
"latency_ms": 1840,
"error": null
}
status:success،error،pending(پاسخ جریانی هنوز باز است) یاcancelled.usdهزینهٔ نهایی همین درخواست.- برای درخواست ناموفق،
errorکد و پیام خطا را دارد.
# Log what each request cost, from the id the response already gave you.
reply = client.chat.completions.with_raw_response.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "Hi"}],
)
request_id = reply.headers.get("x-request-id") # also completion.id for chat completions
completion = reply.parse()
info = requests.get("https://gisoo.pro/api/v1/requests/" + request_id, headers=HEADERS, timeout=15).json()
print(request_id, info["usd"], info["usage"])
این گزارشها از فرادادهٔ درخواستها ساخته میشوند: مدل، تعداد توکن، هزینه، زمان و IP. متن پرامپت و پاسخ مدل در گیسو ذخیره نمیشود؛ اگر برای بررسی بعدی لازمشان دارید، در سیستم خودتان نگه دارید.
پاسخ پرسشتان را پیدا نکردید؟
شناسهٔ درخواست (هدر X-Request-Id) را با پرسشتان در تیکت بفرستید تا دقیق بررسی کنیم.