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

# Resolve upload limits

> Returns the upload limits that apply to the calling workspace, plus its live PVC voice slot usage (`usedPvcVoiceSlots` / `maxPvcVoiceSlots`). Use it to discover your limits programmatically instead of hard-coding them.

Slot capacity is plan-dependent. Prefer reading the slot values from this endpoint at runtime over hard-coding them.

This endpoint covers upload ceilings and slot usage only; it does not report the per-plan training rate. See [Plan limits](https://docs.inworld.ai/tts/professional-voice-cloning.md#plan-limits) for both the slot and training allowances on each plan.

## API reference

**Endpoint:** `GET https://api.inworld.ai/voices/v1/pvcVoices:resolveUploadLimits`

### Authorization

- `Authorization` (string; required) — Your [API key](../../../api-reference/introduction). Read permissions are required for GET endpoints. Write permissions are required for POST, PATCH, and DELETE endpoints.
  
   For Basic authentication, please populate `Basic $INWORLD_API_KEY`. You can create a key in one command with the [Inworld CLI](../../../developer-tools/inworld-cli): `inworld workspace add-key`.

### Response

Status: `200`. Content type: `application/json`.

- `maxSamples` (integer) — Maximum samples one voice can hold.
- `maxFileSizeBytes` (string) — Maximum size of a single audio file, in bytes.
- `maxTotalSizeBytes` (string) — Maximum combined sample storage per voice, in bytes.
- `acceptedMimeTypes` (string[]) — Accepted audio MIME types. The actual byte content is sniffed to determine format.
- `supportedLanguages` (string[]) — Languages PVC training currently supports.
- `minTotalAudioDurationSec` (integer) — Minimum cumulative sample audio (after trims) required to train, in seconds.
- `maxFilesPerUpload` (integer) — Maximum files in a single upload request.
- `usedPvcVoiceSlots` (integer) — PVC voice slots currently claimed by this account.
- `maxPvcVoiceSlots` (integer) — Total PVC voice slots this account's plan allows, including add-ons.

### Response examples

#### 200: limits

```json
{
  "maxSamples": 50,
  "maxFileSizeBytes": "1000000000",
  "maxTotalSizeBytes": "1000000000",
  "acceptedMimeTypes": [
    "audio/wav",
    "audio/mpeg",
    "audio/webm"
  ],
  "supportedLanguages": [
    "EN_US"
  ],
  "minTotalAudioDurationSec": 600,
  "maxFilesPerUpload": 10,
  "usedPvcVoiceSlots": 3,
  "maxPvcVoiceSlots": 10
}
```

#### default: default_response

```json
{
  "code": 0,
  "message": "string",
  "details": [
    {
      "@type": "string"
    }
  ]
}
```

### Code examples

#### cURL

```bash
curl -s 'https://api.inworld.ai/voices/v1/pvcVoices:resolveUploadLimits' \
  -H "Authorization: Basic $INWORLD_API_KEY"
```

#### Python

```python
import requests

url = "https://api.inworld.ai/voices/v1/pvcVoices:resolveUploadLimits"
headers = {"Authorization": "Basic <api-key>"}

response = requests.get(url, headers=headers)
print(response.json())
```

#### JavaScript

```javascript
const url = 'https://api.inworld.ai/voices/v1/pvcVoices:resolveUploadLimits';

const response = await fetch(url, {
  headers: { 'Authorization': 'Basic <api-key>' },
});

console.log(await response.json());
```
