curl --request POST 'https://api.voicecheap.ai/v1/actions/usage_get' \
--header "x-api-key: $VOICECHEAP_API_KEY" \
--header 'Content-Type: application/json' \
--data '{}'
const input = {};
const response = await fetch('https://api.voicecheap.ai/v1/actions/usage_get', {
method: 'POST',
headers: {
'x-api-key': process.env.VOICECHEAP_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify(input),
});
const body = await response.json();
if (!response.ok) throw new Error(body.code + ': ' + body.message);
console.log(body);
import os
import requests
response = requests.post(
"https://api.voicecheap.ai/v1/actions/usage_get",
headers={"x-api-key": os.environ["VOICECHEAP_API_KEY"]},
json={},
timeout=120,
)
body = response.json()
if not response.ok:
raise RuntimeError(f"{body.get('code')}: {body.get('message')}")
print(body)
{
"data": {
"month": "2026-10",
"usedCalls": 120,
"pendingCalls": 2,
"monthlyLimit": 500,
"remainingCalls": 378,
"requestsPerMinute": 30,
"resetsAt": 1793491200000,
"plan": "beginner"
}
}
Wykorzystanie i aktywność
Pobierz wykorzystanie wywołań API i MCP
Pobierz wspólny miesięczny limit wywołań API i MCP, pozostałe wywołania, termin odnowienia i limit częstotliwości żądań dla rozliczeniowego obszaru roboczego.
POST
/
v1
/
actions
/
usage_get
curl --request POST 'https://api.voicecheap.ai/v1/actions/usage_get' \
--header "x-api-key: $VOICECHEAP_API_KEY" \
--header 'Content-Type: application/json' \
--data '{}'
const input = {};
const response = await fetch('https://api.voicecheap.ai/v1/actions/usage_get', {
method: 'POST',
headers: {
'x-api-key': process.env.VOICECHEAP_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify(input),
});
const body = await response.json();
if (!response.ok) throw new Error(body.code + ': ' + body.message);
console.log(body);
import os
import requests
response = requests.post(
"https://api.voicecheap.ai/v1/actions/usage_get",
headers={"x-api-key": os.environ["VOICECHEAP_API_KEY"]},
json={},
timeout=120,
)
body = response.json()
if not response.ok:
raise RuntimeError(f"{body.get('code')}: {body.get('message')}")
print(body)
{
"data": {
"month": "2026-10",
"usedCalls": 120,
"pendingCalls": 2,
"monthlyLimit": 500,
"remainingCalls": 378,
"requestsPerMinute": 30,
"resetsAt": 1793491200000,
"plan": "beginner"
}
}
Pobierz wspólny miesięczny limit wywołań API i MCP, pozostałe wywołania, termin odnowienia i limit częstotliwości żądań dla rozliczeniowego obszaru roboczego.
Wymagane uprawnienia:
POST https://api.voicecheap.ai/v1/actions/usage_get
Uwierzytelnianie i uprawnienia
string
wymagane
Wyślij klucz API VoiceCheap w tym nagłówku. Obsługiwany jest również nagłówek Authorization: Bearer z tym samym kluczem API. Tokeny dostępu OAuth są
akceptowane tylko przez MCP, a nie przez ten endpoint REST.
usage:read.
Wymagana jest aktywna płatna subskrypcja. Uprawnienia nie zmieniają ról w zespole, własności zasobów, kredytów na multimedia ani limitów planu.
Parametry
Wyślij pusty obiekt JSON. Ta akcja nie ma pól wejściowych.Pełny schemat danych wejściowych
Pełny schemat danych wejściowych
Poniższy JSON Schema zachowuje dokładne nazwy pól, typy zagnieżdżone, wartości domyślne, ograniczenia i akceptowane wartości udostępniane przez mechanizm wykrywania. Dodatkowe reguły zależności między polami znajdują się w uwagach do operacji.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Przykłady żądań
Zastąp przykładowe identyfikatory zasobów i klucze multimediów wartościami zwróconymi dla Twojego konta. Przy ponawianiu tej samej operacji zmieniającej dane zachowaj identyfikator żądania.curl --request POST 'https://api.voicecheap.ai/v1/actions/usage_get' \
--header "x-api-key: $VOICECHEAP_API_KEY" \
--header 'Content-Type: application/json' \
--data '{}'
const input = {};
const response = await fetch('https://api.voicecheap.ai/v1/actions/usage_get', {
method: 'POST',
headers: {
'x-api-key': process.env.VOICECHEAP_API_KEY,
'Content-Type': 'application/json',
},
body: JSON.stringify(input),
});
const body = await response.json();
if (!response.ok) throw new Error(body.code + ': ' + body.message);
console.log(body);
import os
import requests
response = requests.post(
"https://api.voicecheap.ai/v1/actions/usage_get",
headers={"x-api-key": os.environ["VOICECHEAP_API_KEY"]},
json={},
timeout=120,
)
body = response.json()
if not response.ok:
raise RuntimeError(f"{body.get('code')}: {body.get('message')}")
print(body)
Odpowiedź
Pierwsze pomyślne wykonanie zwraca HTTP 200 z wynikiem operacji w data. Ponowienie może zamiast tego zwrócić zapisany stan żądania. Przykład przedstawia jedną obsługiwaną odpowiedź, bez wszystkich opcjonalnych pól. Zwraca wspólny limit wywołań API i MCP aktywnego obszaru roboczego na bieżący miesiąc kalendarzowy UTC.{
"data": {
"month": "2026-10",
"usedCalls": 120,
"pendingCalls": 2,
"monthlyLimit": 500,
"remainingCalls": 378,
"requestsPerMinute": 30,
"resetsAt": 1793491200000,
"plan": "beginner"
}
}
Pola wyniku
| Pole | Opis |
|---|---|
data.month | Miesiąc kalendarzowy UTC w formacie YYYY-MM. |
data.usedCalls | Pomyślnie ukończone wywołania wliczane do bieżącego miesiąca. |
data.pendingCalls | Przyjęte wywołania, które są nadal zarezerwowane i wliczają się do limitu. |
data.monthlyLimit | Miesięczny limit wywołań; null oznacza brak miesięcznego ograniczenia. |
data.remainingCalls | Pozostały limit po uwzględnieniu ukończonych i oczekujących wywołań; null, gdy monthlyLimit ma wartość null. |
data.requestsPerMinute | Wspólny limit żądań obszaru roboczego na minutę. |
data.resetsAt | Pierwsza chwila następnego miesiąca kalendarzowego UTC jako znacznik czasu Unix w milisekundach. |
data.plan | Faktycznie obowiązujący plan obszaru roboczego. |
Uwagi do operacji
- API i MCP zużywają ten sam limit obszaru roboczego. Nielimitowane miesięczne wywołania nadal podlegają limitom częstotliwości i kredytom na multimedia.
- Samo usage_get jest wyłączone z miesięcznego licznika wywołań i nadal wymaga uwierzytelnienia oraz podlega limitowi częstotliwości wywołań.
Wykorzystanie
Ta kontrola stanu lub wykorzystania nie zużywa miesięcznego limitu wywołań API/MCP. Nadal obowiązują zasady uwierzytelniania, płatnego dostępu, własności i limitów częstotliwości.Błędy
| Status HTTP | Kod | Znaczenie lub sposób rozwiązania |
|---|---|---|
| 400 | CREDENTIAL_IN_QUERY | Dane uwierzytelniające zostały podane w parametrze zapytania access_token lub api_key. Wysyłaj dane uwierzytelniające w nagłówkach. |
| 400 | VALIDATION_ERROR | Obiekt JSON zawiera nieobsługiwane pole, nieprawidłową wartość lub brakuje w nim wymaganego argumentu. |
| 401 | API_KEY_EXPIRED | Klucz API wygasł. |
| 401 | INVALID_API_KEY | Podaj prawidłowy, niewygasły klucz API. |
| 401 | INVALID_CREDENTIAL | Nagłówek Authorization ma nieprawidłowy format lub jest sprzeczny z x-api-key. |
| 401 | MISSING_CREDENTIAL | Nie podano użytecznych danych uwierzytelniających w nagłówku lub przekroczyły one 4096 znaków. |
| 401 | USER_NOT_FOUND | Konto powiązane z poświadczeniem już nie istnieje. |
| 403 | AMBIGUOUS_TEAM_API_KEY | Użytkownik, do którego należą dane uwierzytelniające, należy do więcej niż jednego zespołu, więc kontekst rozliczeniowy jest niejednoznaczny. |
| 403 | INSUFFICIENT_SCOPE | Nadaj wszystkie wymagane uprawnienia lub wybierz inne dane uwierzytelniające. |
| 403 | INTEGRATION_PLAN_UNSUPPORTED | Nie udało się zweryfikować efektywnego planu. |
| 403 | SUBSCRIPTION_REQUIRED | Użyj aktywnej płatnej subskrypcji. |
| 403 | TEAM_OWNER_NOT_FOUND | Nie znaleziono konta faktycznego właściciela zespołu. |
| 429 | INTEGRATION_RATE_LIMIT_REACHED | Jeśli występuje nagłówek Retry-After, odczekaj wskazany czas i stosuj rosnące odstępy między ponowieniami. |
| 500 | INTERNAL_ERROR | Sprawdź stan zapisanego żądania i historię zasobu przed podjęciem decyzji o ponowieniu operacji zmieniającej dane. |
| 503 | SERVER_RESTARTING | Serwer jest uruchamiany ponownie. Spróbuj ponownie wkrótce i zachowaj ten sam identyfikator żądania dla operacji zmieniającej dane. |
{
"code": "INSUFFICIENT_SCOPE",
"message": "This credential does not permit the requested action.",
"status": 403,
"details": {
"requiredScopes": ["usage:read"]
}
}
Czy ta strona była pomocna?

