# API קרדיטים

> GET /v1/credits מחזיר את יתרת הארגון, ואת ההוצאה והתקציבים של המפתח שאיתו נשלחת הקריאה.


אפשר לקרוא את היתרה בלי להוציא כלום. הקריאה חינם ולא משריינת שום סכום.

```endpoint
GET https://api.notholy.com/v1/credits
```

```bash test
curl https://api.notholy.com/v1/credits -H "Authorization: Bearer $NOTHOLY_API_KEY"
```

## תגובה

```json
{
  "object": "credits",
  "currency": "USD",
  "balance": "24.913402",
  "reserved": "0.004000",
  "available": "24.909402",
  "key": { "spent": "0.086598", "daily_budget": "5.000000" }
}
```

| שדה | סוג | הערות |
|---|---|---|
| `object` | string | תמיד `credits` |
| `currency` | string | תמיד `USD` |
| `balance` | string | הקרדיטים פחות השימוש שכבר חויב |
| `reserved` | string | הסכום שבקשות פעילות משריינות כרגע. כל שריון הוא העלות של הבקשה במקרה הגרוע; החלק שלא נוצל חוזר כשהחיוב נסגר |
| `available` | string | הסכום שבקשה חדשה יכולה לשריין: `balance` פחות `reserved` |
| `key.spent` | string | סך ההוצאה עם המפתח הזה |
| `key.total_budget`, `key.daily_budget` | string | מופיעים כשלמפתח יש תקציבים |

הסכומים הם מחרוזות עשרוניות עם 6 ספרות אחרי הנקודה. בתוך NotHoly הם נשמרים כמספרים שלמים במיליארדיות הדולר, ולכן אין עיגול בין בקשות.

> [!NOTE]
> כל בקשה משריינת את העלות במקרה הגרוע (הפרומפט ועוד `max_tokens`) לפני שהיא מתחילה. כשהערך `available` נמוך מזה, מגבלת הפלט קטנה כדי להתאים, ומתחת ל-16 טוקנים הבקשה מחזירה `402 insufficient_credits`. לפני פלטים ארוכים כדאי לבדוק את `available`.

```js test
const r = await fetch('https://api.notholy.com/v1/credits', { headers: { Authorization: `Bearer ${process.env.NOTHOLY_API_KEY}` } });
const c = await r.json();
console.log(c.available);
```

## שגיאות

| סטטוס | קוד | משמעות |
|---|---|---|
| 401 | `invalid_api_key` | מפתח חסר, לא תקין, מבוטל או שפג תוקפו |
| 403 | `account_suspended`, `consent_required` | פרטים ב[אימות](/he/getting-started/authentication) |
| 500 | `internal_error` | לא ניתן היה לקרוא את היתרה. יש לנסות שוב עם backoff |
