> ## Documentation Index
> Fetch the complete documentation index at: https://api-docs.voicecheap.ai/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# 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.

Haal je accountidentiteit, effectieve abonnement, saldo van inbegrepen en gekochte minuten, tekensaldo voor tekst naar spraak en de machtigingen van deze verbinding op.

```http theme={null}
POST https://api.voicecheap.ai/v1/actions/account_get
```

## Authenticatie en machtigingen

<ParamField header="x-api-key" type="string" required>
  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.
</ParamField>

Vereiste machtigingen: `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.

<Accordion title="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.

  ```json theme={null}
  {
    "type": "object",
    "properties": {},
    "additionalProperties": false
  }
  ```
</Accordion>

## 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.

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST 'https://api.voicecheap.ai/v1/actions/account_get' \
    --header "x-api-key: $VOICECHEAP_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{}'
  ```

  ```javascript JavaScript theme={null}
  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);
  ```

  ```python Python theme={null}
  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)
  ```
</RequestExample>

## 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.

<ResponseExample>
  ```json HTTP 200 theme={null}
  {
    "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
      }
    }
  }
  ```
</ResponseExample>

## 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. |

```json theme={null}
{
  "code": "INSUFFICIENT_SCOPE",
  "message": "This credential does not permit the requested action.",
  "status": 403,
  "details": {
    "requiredScopes": ["account:read"]
  }
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.