curl --request POST 'https://api.voicecheap.ai/v1/actions/account_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/account_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/account_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": {
"userId": "user_123",
"email": "developer@example.com",
"displayName": "Studio owner",
"companyName": "Studio",
"plan": "pro",
"workspace": {
"ownerUserId": "user_123",
"teamId": null,
"isTeamMember": false
},
"credits": {
"availableMinutes": 150,
"includedMinutes": 120,
"purchasedMinutes": 30,
"textToSpeech": {
"limit": 4000000,
"used": 125000,
"remaining": 3925000,
"includedRemaining": 3875000,
"purchasedRemaining": 50000,
"resetsAt": 1793491200000
}
},
"permissions": {
"scopes": [
"account:read"
],
"canManageOwnTeam": false,
"canEditSharedSettings": true
},
"limits": {
"maxConcurrentTranslations": 5,
"accessToLipSyncPro": false
}
}
}
Account
Account en tegoedsaldi ophalen
Haal je accountidentiteit, effectieve abonnement, saldo van inbegrepen en gekochte minuten, tekensaldo voor tekst naar spraak en de machtigingen van deze verbinding op.
POST
/
v1
/
actions
/
account_get
curl --request POST 'https://api.voicecheap.ai/v1/actions/account_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/account_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/account_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": {
"userId": "user_123",
"email": "developer@example.com",
"displayName": "Studio owner",
"companyName": "Studio",
"plan": "pro",
"workspace": {
"ownerUserId": "user_123",
"teamId": null,
"isTeamMember": false
},
"credits": {
"availableMinutes": 150,
"includedMinutes": 120,
"purchasedMinutes": 30,
"textToSpeech": {
"limit": 4000000,
"used": 125000,
"remaining": 3925000,
"includedRemaining": 3875000,
"purchasedRemaining": 50000,
"resetsAt": 1793491200000
}
},
"permissions": {
"scopes": [
"account:read"
],
"canManageOwnTeam": false,
"canEditSharedSettings": true
},
"limits": {
"maxConcurrentTranslations": 5,
"accessToLipSyncPro": false
}
}
}
Haal je accountidentiteit, effectieve abonnement, saldo van inbegrepen en gekochte minuten, tekensaldo voor tekst naar spraak en de machtigingen van deze verbinding op.
Vereiste machtigingen:
POST https://api.voicecheap.ai/v1/actions/account_get
Authenticatie en machtigingen
string
vereist
Stuur een VoiceCheap API-sleutel mee in deze header. Authorization: Bearer met dezelfde API-sleutel wordt ook ondersteund. OAuth-toegangstokens
worden alleen door MCP geaccepteerd, niet door dit REST-endpoint.
account:read.
Een actief betaald abonnement is vereist. Machtigingen wijzigen geen teamrollen, eigendom van resources, mediategoed of abonnementslimieten.
Parameters
Stuur een leeg JSON-object. Deze actie heeft geen invoervelden.Volledig invoerschema
Volledig invoerschema
Het onderstaande JSON Schema behoudt de exacte veldnamen, geneste typen, standaardwaarden, grenzen en toegestane waarden die discovery beschikbaar stelt. Aanvullende regels tussen velden staan in de opmerkingen bij de bewerking.
{
"type": "object",
"properties": {},
"additionalProperties": false
}
Voorbeeldaanvragen
Vervang de voorbeeldidentificaties van resources en mediasleutels door waarden die voor je account zijn geretourneerd. Behoud dezelfde aanvraagidentificatie wanneer je dezelfde wijziging opnieuw probeert.curl --request POST 'https://api.voicecheap.ai/v1/actions/account_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/account_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/account_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)
Antwoord
Een geslaagde eerste uitvoering retourneert HTTP 200 met het resultaat van de bewerking onder data. Een herhaalde aanvraag kan in plaats daarvan de opgeslagen aanvraagstatus retourneren. Het voorbeeld toont één ondersteund antwoord, niet alle optionele velden. Retourneert het openbare profiel van de aanroeper, het effectieve abonnement, de actieve werkruimte, het beschikbare mediategoed, de verbindingsrechten en de vertaallimieten.{
"data": {
"userId": "user_123",
"email": "developer@example.com",
"displayName": "Studio owner",
"companyName": "Studio",
"plan": "pro",
"workspace": {
"ownerUserId": "user_123",
"teamId": null,
"isTeamMember": false
},
"credits": {
"availableMinutes": 150,
"includedMinutes": 120,
"purchasedMinutes": 30,
"textToSpeech": {
"limit": 4000000,
"used": 125000,
"remaining": 3925000,
"includedRemaining": 3875000,
"purchasedRemaining": 50000,
"resetsAt": 1793491200000
}
},
"permissions": {
"scopes": [
"account:read"
],
"canManageOwnTeam": false,
"canEditSharedSettings": true
},
"limits": {
"maxConcurrentTranslations": 5,
"accessToLipSyncPro": false
}
}
}
Resultaatvelden
| Veld | Beschrijving |
|---|---|
data.userId | ID van het geauthenticeerde account. |
data.email | E-mailadres van het aangemelde account. |
data.displayName | Weergavenaam van het geauthenticeerde account. |
data.companyName | Opgeslagen bedrijfsnaam, of null. |
data.plan | Effectief abonnement dat door deze verbinding wordt gebruikt. |
data.workspace.ownerUserId | Account dat eigenaar is van de projecten en het minutentegoed in de actieve werkruimte. |
data.workspace.teamId | Identificatie van het actieve team, of null voor een persoonlijke werkruimte. |
data.workspace.isTeamMember | Of deze verbinding als lid werkt in de werkruimte van een teameigenaar. |
data.credits.availableMinutes | Totaal aantal beschikbare hele minuten, inclusief gekocht tegoed. |
data.credits.includedMinutes | Beschikbare hele minuten uit het inbegrepen tegoed. |
data.credits.purchasedMinutes | Beschikbare hele minuten uit gekocht minutentegoed. |
data.credits.textToSpeech.limit | Inbegrepen tekenlimiet voor tekst naar spraak in de huidige verbruiksperiode. |
data.credits.textToSpeech.used | Inbegrepen tekens voor tekst naar spraak die in de huidige periode zijn gebruikt. |
data.credits.textToSpeech.remaining | Beschikbare inbegrepen plus gekochte tekens voor tekst naar spraak. |
data.credits.textToSpeech.includedRemaining | Beschikbare inbegrepen tekens voor tekst naar spraak. |
data.credits.textToSpeech.purchasedRemaining | Beschikbare gekochte tekens voor tekst naar spraak. |
data.credits.textToSpeech.resetsAt | Einde van de huidige verbruiksperiode voor tekst naar spraak in milliseconden, of null wanneer geen periode actief is. |
data.permissions.scopes | Machtigingen die aan deze API-sleutel of MCP-verbinding zijn verleend. |
data.permissions.canManageOwnTeam | Of het aangemelde account al eigenaar is van een team. |
data.permissions.canEditSharedSettings | Of de aanroeper de woordenschat van de werkruimte en de vertaalinstructies van het account mag bewerken. |
data.limits.maxConcurrentTranslations | Effectieve limiet voor gelijktijdige vertalingen. |
data.limits.accessToLipSyncPro | Of het effectieve account van deze verbinding toegang heeft tot Pro-lipsynchronisatie. |
Opmerkingen bij de bewerking
- Minutentegoed hoort bij de actieve persoonlijke werkruimte of teamwerkruimte. De tekst-naar-spraakgeschiedenis en het tekentegoed horen bij het geauthenticeerde account.
- Limietperioden voor tekst-naar-spraak duren 30 dagen vanaf de eerste generatie nadat de vorige periode is geëindigd; hun reset staat los van integratieaanroepen per kalendermaand.
- Deze actie retourneert geen opgeslagen API-sleutels, ondertekeningsgeheimen voor webhooks of authenticatiegegevens voor externe accounts.
Verbruik
Elke geslaagde aanroep verbruikt één maandelijkse API/MCP-aanroep. Ook het mediategoed en de eigen generatielimieten van de bewerking zijn van toepassing.Fouten
| HTTP-status | Code | Betekenis of herstel |
|---|---|---|
| 400 | CREDENTIAL_IN_QUERY | Inloggegevens zijn opgegeven in een queryparameter access_token of api_key. Stuur inloggegevens in headers. |
| 400 | VALIDATION_ERROR | Het JSON-object bevat een niet-ondersteund veld, een ongeldige waarde of een ontbrekend verplicht argument. |
| 401 | API_KEY_EXPIRED | De API-sleutel is verlopen. |
| 401 | INVALID_API_KEY | Geef een geldige, niet-verlopen API-sleutel op. |
| 401 | INVALID_CREDENTIAL | De Authorization-header heeft een ongeldige indeling of is in strijd met x-api-key. |
| 401 | MISSING_CREDENTIAL | Er is geen bruikbaar authenticatiemiddel in de header opgegeven, of het overschreed 4096 tekens. |
| 401 | USER_NOT_FOUND | Het account dat bij de toegangsgegevens hoort, bestaat niet meer. |
| 403 | AMBIGUOUS_TEAM_API_KEY | De gebruiker van het authenticatiemiddel behoort tot meer dan één team, waardoor de factureringscontext onduidelijk is. |
| 403 | INSUFFICIENT_SCOPE | Verleen alle vereiste machtigingen of kies andere toegangsgegevens. |
| 403 | INTEGRATION_PLAN_UNSUPPORTED | De integratielimieten van het account konden niet worden geverifieerd. |
| 403 | SUBSCRIPTION_REQUIRED | Gebruik een actief betaald abonnement. |
| 403 | TEAM_MEMBERSHIP_INVALID | Het huidige teamlidmaatschap van het account komt niet overeen met de werkruimte van deze verbinding. Vernieuw het lidmaatschap en maak opnieuw verbinding. |
| 403 | TEAM_OWNER_NOT_FOUND | Het effectieve account van de teameigenaar kon niet worden gevonden. |
| 404 | ACCOUNT_NOT_FOUND | Het account of het account van de actieve werkruimte kon niet worden gevonden. |
| 429 | INTEGRATION_MONTHLY_LIMIT_REACHED | Wacht tot de maandelijkse reset of wijzig je abonnement. |
| 429 | INTEGRATION_RATE_LIMIT_REACHED | Wacht de tijd uit Retry-After af wanneer deze aanwezig is en vergroot de wachttijd tussen nieuwe pogingen. |
| 500 | INTERNAL_ERROR | Controleer de opgeslagen aanvraagstatus en de resourcegeschiedenis voordat je besluit een wijziging opnieuw te proberen. |
| 503 | SERVER_RESTARTING | De server wordt opnieuw gestart. Probeer het zo opnieuw en behoud bij een wijziging dezelfde aanvraagidentificatie. |
{
"code": "INSUFFICIENT_SCOPE",
"message": "This credential does not permit the requested action.",
"status": 403,
"details": {
"requiredScopes": ["account:read"]
}
}
Was deze pagina nuttig?

