Zużycie i rozliczenia
Zrozum swój rachunek: zużycie w każdej odpowiedzi, endpoint salda dla każdego klucza, efektywne stawki, limity 429 i co się dzieje przy pustym saldzie.
Zużycie dla każdego żądania wraca w każdej odpowiedzi — rozliczaj się na jego podstawie bez obaw. Stan salda dostępny przez GET /v1/dashboard/balance.
Wszystkie modele, możliwości i ceny Indeks dokumentacji dla agentów AI:https://oneprovider.dev/docs/llms.txt Zużycie w każdym żądaniu
Każda odpowiedź /v1/messages zawiera obiekt usage z liczbą tokenów:
{
"usage": {
"input_tokens": 48,
"output_tokens": 92,
"cache_creation_input_tokens": 0,
"cache_read_input_tokens": 0
}
} W chat-completions te same liczby występują jako prompt_tokens, completion_tokens i total_tokens.
Saldo klucza: GET /v1/dashboard/balance
Zwraca aktualne saldo klucza. Odpowiada natychmiast i przyjmuje ten sam klucz co API.
Tylko Authorization: Bearer Ten endpoint przyjmuje twój klucz wyłącznie w nagłówkuAuthorization: Bearer sk-... (w przeciwieństwie do /v1/messages, który akceptuje też x-api-key). bash curl -H "Authorization: Bearer sk-YOUR_KEY_HERE" \
https://api.oneprovider.dev/v1/dashboard/balance Odpowiedź 200 OK:
{
"object": "balance",
"balance_usd": 54.77,
"expires_at": "2026-07-29T19:00:00Z",
"is_active": true,
"last_synced_at": "2026-06-29T19:52:00Z"
} balance_usd: dostępne saldo klucza w USD.expires_at: termin ważności klucza (ISO 8601 UTC,null, jeśli go nie ma).is_active:false, jeśli klucz jest wstrzymany lub wyłączony.last_synced_at: kiedy saldo było ostatnio aktualizowane.
Endpointy salda zgodne z OpenAI
Aplikacje takie jak NextChat i LobeChat odczytują saldo ze ścieżek w stylu OpenAI. Działają z tym samym kluczem w Authorization: Bearer:
| Endpoint | Co zwraca |
|---|---|
GET /v1/dashboard/billing/subscription | hard_limit_usd: pozostałe saldo |
GET /v1/dashboard/billing/usage | total_usage: zawsze 0 (pole jest w centach) |
GET /v1/dashboard/billing/credit_grants | total_available: pozostałe saldo |
Błędy: 401 przy braku lub nieprawidłowym nagłówku Authorization: Bearer; 429 po przekroczeniu limitu żądań (endpointy salda mają limit na adres IP). Saldo i wydatki z każdego żądania znajdziesz też w Panelu (strona „Zużycie” w bocie @oneprovider_robot i na app.oneprovider.dev ).
Obowiązujące stawki
Rozliczamy według stałej stawki za 1 mln tokenów, opublikowanej na /pricing . Bez mnożnika, bez minimum, bez zaokrągleń. Wzór:
textcost = (input_tokens / 1_000_000) * rate_in
+ (output_tokens / 1_000_000) * rate_out
+ (cache_read_input_tokens / 1_000_000) * (rate_in * 0.10)
+ (cache_creation_input_tokens / 1_000_000) * (rate_in * 1.25) - Odczyty z cache są rozliczane po 10% stawki za wejście w większości modeli.
- Tworzenie cache (pierwszy zapis punktu cache) jest rozliczane po 125% stawki za wejście w większości modeli.
- Mnożniki 0,10 i 1,25 we wzorze są typowe: dokładne stawki odczytu i zapisu cache dla każdego modelu znajdziesz w tabeli modeli .
Gdy saldo się wyczerpie
Gdy saldo klucza spadnie do zera, żądania z nim zwracają 429 z error.type insufficient_balance, error.code insufficient_quota i nagłówkiem x-should-retry: false:
HTTP/1.1 429 Too Many Requests
x-should-retry: false
Content-Type: application/json
{
"type": "error",
"error": {
"type": "insufficient_balance",
"code": "insufficient_quota",
"message": "Insufficient balance on this API key. Top up: dashboard.oneprovider.dev"
}
} Nie ponawiaj: sprawdź saldo w Panelu i limit klucza (strona „Klucze”), w razie potrzeby doładuj saldo i wyślij żądanie ponownie (jak to zrobić ). Pozostałe kody opisano w Kodach błędów .
Termin klucza ustalasz sam; saldo nie wygasa Termin ważności klucza ustawiasz w Panelu (do 90 dni, z możliwością przedłużenia). Saldo nie jest pobierane według zegara: nie ma miesięcznego resetu, zobowiązania ani subskrypcji; środki pozostają dostępne, dopóki ich nie wydasz.Limit żądań (429)
Zbyt wiele żądań w krótkim czasie zwraca 429 rate_limit_error. Odpowiedź może zawierać nagłówek Retry-After w sekundach:
HTTP/1.1 429 Too Many Requests
Retry-After: 2
Content-Type: application/json
{
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Rate limit exceeded; retry later"
}
} Gdy jest Retry-After, odczekaj co najmniej tyle czasu; w przeciwnym razie ponawiaj z rosnącą przerwą. Jeśli 429 wciąż wracają, zmniejsz współbieżność po stronie klienta. Żądania odrzucone z powodu limitu nie zużywają salda.
Dokładność zużycia w każdym żądaniu
Obiekty usage z poszczególnych żądań sumują się dokładnie do rzeczywistych wydatków klucza. Sprawdzono 2026-05-08 na 24-godzinnej próbie 25 845 żądań: maksymalna różnica wyniosła <$0.001 (zaokrąglenie na 6. miejscu po przecinku). Rozliczaj się na podstawie usage z każdego żądania bez obaw.