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

# Utwórz projekt przetłumaczonego wideo lub audio

> Utwórz projekt z przesłanego fileKey, wykonaj transkrypcję i tłumaczenie, a następnie syntezę mowy. Obsługuje własne SRT, głosy, napisy i opcjonalną synchronizację ust. Korzysta ze standardowych kredytów na media. Opcjonalny webhookUrl odbiera zdarzenia przetwarzania. Sprawdzaj projects_status.

Utwórz projekt z przesłanego fileKey, wykonaj transkrypcję i tłumaczenie, a następnie syntezę mowy. Obsługuje własne SRT, głosy, napisy i opcjonalną synchronizację ust. Korzysta ze standardowych kredytów na media. Opcjonalny webhookUrl odbiera zdarzenia przetwarzania. Sprawdzaj projects\_status.

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

## Uwierzytelnianie i uprawnienia

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

Wymagane uprawnienia: `projects:write`, `translations:write`, `transcription:write`.

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

<ParamField body="fileKey" type="string" required>
  Wartość tekstowa.

  Minimalna długość: 1. Maksymalna długość: 1024.
</ParamField>

<ParamField body="targetLanguage" type="string" required>
  Wartość tekstowa.

  Dozwolone wartości: "afrikaans", "albanian", "amharic", "arabic", "armenian", "assamese", "azerbaijani", "basque", "belarusian", "bengali", "bosnian", "bulgarian", "catalan", "croatian", "czech", "danish", "dutch", "english", "british english", "estonian", "finnish", "french", "french canadian", "galician", "german", "greek", "gujarati", "hebrew", "hindi", "hungarian", "icelandic", "indonesian", "irish", "italian", "japanese", "kannada", "kazakh", "khmer", "korean", "lao", "latvian", "lithuanian", "macedonian", "malay", "malayalam", "mandarin", "marathi", "mongolian", "nepali", "norwegian", "persian", "polish", "portuguese", "brazilian portuguese", "pt\_brazil", "punjabi", "romanian", "russian", "serbian", "slovak", "slovenian", "spanish", "swahili", "swedish", "tagalog", "tamil", "telugu", "thai", "turkish", "ukrainian", "urdu", "vietnamese", "welsh", "yoruba", "zulu".
</ParamField>

<ParamField body="originalLanguage" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "af", "sq", "am", "ar", "hy", "as", "ast", "az", "ba", "eu", "be", "bn", "bs", "br", "bg", "my", "ca", "ceb", "zh", "hr", "cs", "da", "nl", "en", "eo", "at", "et", "fil", "fo", "fi", "fr", "fr-CA", "fy", "ff", "gd", "gl", "lg", "ka", "de", "el", "gu", "ht", "ha", "haw", "he", "hi", "hu", "is", "ig", "ilo", "id", "ia", "ga", "it", "ja", "jv", "kea", "kn", "kk", "km", "kur", "kir", "ko", "lo", "la", "luo", "lv", "lb", "ln", "lt", "mk", "mg", "ms", "ml", "mt", "mi", "mr", "mo", "mn", "ne", "no", "nn", "nso", "nya", "oc", "or", "pa", "ps", "fa", "pl", "pt", "ro", "ru", "sa", "sr", "sn", "sd", "si", "sk", "sl", "so", "es", "su", "sw", "ss", "sv", "tl", "tg", "ta", "tt", "te", "th", "bo", "tn", "tr", "tk", "ug", "uk", "umb", "ur", "uz", "vi", "cy", "wo", "xh", "yi", "yo", "zu", "cmn", "yue", "en-GB", "en-US", "en-AU", "auto-detect".
</ParamField>

<ParamField body="projectName" type="string">
  Wartość tekstowa.

  Minimalna długość: 1. Maksymalna długość: 200.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "27", "28", "29", "30", "31", "32", "auto-detect".
</ParamField>

<ParamField body="brandVocabulary" type="array">
  Lista wartości. Strukturę elementów opisuje pełny schemat danych wejściowych.

  Maksymalna liczba elementów: 1000.
</ParamField>

<ParamField body="removeFillerWords" type="boolean">
  Wartość logiczna.
</ParamField>

<ParamField body="sourceSrt" type="string">
  Wartość tekstowa.

  Maksymalna długość: 1000000.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Wartość tekstowa.

  Maksymalna długość: 2048. Format: "uri".
</ParamField>

<ParamField body="requestId" type="string">
  Opcjonalne na poziomie transportu: jeśli identyfikator zostanie pominięty, serwer doda go przed walidacją. Podaj własny, stały UUID v4, aby bezpiecznie odzyskać wynik po utracie odpowiedzi.

  Format: "uuid". Wzorzec: `^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$`.
</ParamField>

<ParamField body="keepBackgroundMusic" type="boolean">
  Wartość logiczna.
</ParamField>

<ParamField body="keepOriginalVoice" type="boolean">
  Wartość logiczna.
</ParamField>

<ParamField body="originalVoiceVolume" type="number">
  Wartość liczbowa.

  Minimum: 1. Maksimum: 70.
</ParamField>

<ParamField body="voiceMode" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "cloning", "custom".
</ParamField>

<ParamField body="voiceId" type="string">
  Wartość tekstowa.

  Minimalna długość: 1. Maksymalna długość: 128.
</ParamField>

<ParamField body="subtitles" type="boolean">
  Wartość logiczna.
</ParamField>

<ParamField body="subtitlesSource" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "translated", "original".
</ParamField>

<ParamField body="voiceIsolatorOption" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "studio", "realistic".
</ParamField>

<ParamField body="lipSyncMode" type="string">
  Wartość tekstowa.

  Dozwolone wartości: "standard", "pro", "studio".
</ParamField>

<ParamField body="activeSpeakerDetectionEnabled" type="boolean">
  Wartość logiczna.
</ParamField>

<ParamField body="voiceCloningSettings" type="object">
  Obiekt JSON. Pola zagnieżdżone opisuje pełny schemat danych wejściowych.
</ParamField>

<ParamField body="translationTimeSkips" type="array">
  Lista wartości. Strukturę elementów opisuje pełny schemat danych wejściowych.

  Maksymalna liczba elementów: 100.
</ParamField>

<ParamField body="translatedSrt" type="string">
  Wartość tekstowa.

  Maksymalna długość: 1000000.
</ParamField>

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

  ```json theme={null}
  {
    "type": "object",
    "properties": {
      "fileKey": {
        "type": "string",
        "minLength": 1,
        "maxLength": 1024
      },
      "targetLanguage": {
        "type": "string",
        "enum": [
          "afrikaans",
          "albanian",
          "amharic",
          "arabic",
          "armenian",
          "assamese",
          "azerbaijani",
          "basque",
          "belarusian",
          "bengali",
          "bosnian",
          "bulgarian",
          "catalan",
          "croatian",
          "czech",
          "danish",
          "dutch",
          "english",
          "british english",
          "estonian",
          "finnish",
          "french",
          "french canadian",
          "galician",
          "german",
          "greek",
          "gujarati",
          "hebrew",
          "hindi",
          "hungarian",
          "icelandic",
          "indonesian",
          "irish",
          "italian",
          "japanese",
          "kannada",
          "kazakh",
          "khmer",
          "korean",
          "lao",
          "latvian",
          "lithuanian",
          "macedonian",
          "malay",
          "malayalam",
          "mandarin",
          "marathi",
          "mongolian",
          "nepali",
          "norwegian",
          "persian",
          "polish",
          "portuguese",
          "brazilian portuguese",
          "pt_brazil",
          "punjabi",
          "romanian",
          "russian",
          "serbian",
          "slovak",
          "slovenian",
          "spanish",
          "swahili",
          "swedish",
          "tagalog",
          "tamil",
          "telugu",
          "thai",
          "turkish",
          "ukrainian",
          "urdu",
          "vietnamese",
          "welsh",
          "yoruba",
          "zulu"
        ]
      },
      "originalLanguage": {
        "type": "string",
        "enum": [
          "af",
          "sq",
          "am",
          "ar",
          "hy",
          "as",
          "ast",
          "az",
          "ba",
          "eu",
          "be",
          "bn",
          "bs",
          "br",
          "bg",
          "my",
          "ca",
          "ceb",
          "zh",
          "hr",
          "cs",
          "da",
          "nl",
          "en",
          "eo",
          "at",
          "et",
          "fil",
          "fo",
          "fi",
          "fr",
          "fr-CA",
          "fy",
          "ff",
          "gd",
          "gl",
          "lg",
          "ka",
          "de",
          "el",
          "gu",
          "ht",
          "ha",
          "haw",
          "he",
          "hi",
          "hu",
          "is",
          "ig",
          "ilo",
          "id",
          "ia",
          "ga",
          "it",
          "ja",
          "jv",
          "kea",
          "kn",
          "kk",
          "km",
          "kur",
          "kir",
          "ko",
          "lo",
          "la",
          "luo",
          "lv",
          "lb",
          "ln",
          "lt",
          "mk",
          "mg",
          "ms",
          "ml",
          "mt",
          "mi",
          "mr",
          "mo",
          "mn",
          "ne",
          "no",
          "nn",
          "nso",
          "nya",
          "oc",
          "or",
          "pa",
          "ps",
          "fa",
          "pl",
          "pt",
          "ro",
          "ru",
          "sa",
          "sr",
          "sn",
          "sd",
          "si",
          "sk",
          "sl",
          "so",
          "es",
          "su",
          "sw",
          "ss",
          "sv",
          "tl",
          "tg",
          "ta",
          "tt",
          "te",
          "th",
          "bo",
          "tn",
          "tr",
          "tk",
          "ug",
          "uk",
          "umb",
          "ur",
          "uz",
          "vi",
          "cy",
          "wo",
          "xh",
          "yi",
          "yo",
          "zu",
          "cmn",
          "yue",
          "en-GB",
          "en-US",
          "en-AU",
          "auto-detect"
        ]
      },
      "projectName": {
        "type": "string",
        "minLength": 1,
        "maxLength": 200
      },
      "numberOfSpeakers": {
        "type": "string",
        "enum": [
          "1",
          "2",
          "3",
          "4",
          "5",
          "6",
          "7",
          "8",
          "9",
          "10",
          "11",
          "12",
          "13",
          "14",
          "15",
          "16",
          "17",
          "18",
          "19",
          "20",
          "21",
          "22",
          "23",
          "24",
          "25",
          "26",
          "27",
          "28",
          "29",
          "30",
          "31",
          "32",
          "auto-detect"
        ]
      },
      "brandVocabulary": {
        "maxItems": 1000,
        "type": "array",
        "items": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200
        }
      },
      "removeFillerWords": {
        "type": "boolean"
      },
      "sourceSrt": {
        "type": "string",
        "maxLength": 1000000
      },
      "webhookUrl": {
        "type": "string",
        "maxLength": 2048,
        "format": "uri"
      },
      "requestId": {
        "type": "string",
        "format": "uuid",
        "pattern": "^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-4[0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$",
        "description": "UUID v4 for this action. Reuse the same ID with identical arguments on retries."
      },
      "keepBackgroundMusic": {
        "type": "boolean"
      },
      "keepOriginalVoice": {
        "type": "boolean"
      },
      "originalVoiceVolume": {
        "type": "number",
        "minimum": 1,
        "maximum": 70
      },
      "voiceMode": {
        "type": "string",
        "enum": ["cloning", "custom"]
      },
      "voiceId": {
        "type": "string",
        "minLength": 1,
        "maxLength": 128
      },
      "subtitles": {
        "type": "boolean"
      },
      "subtitlesSource": {
        "type": "string",
        "enum": ["translated", "original"]
      },
      "voiceIsolatorOption": {
        "type": "string",
        "enum": ["studio", "realistic"]
      },
      "lipSyncMode": {
        "type": "string",
        "enum": ["standard", "pro", "studio"]
      },
      "activeSpeakerDetectionEnabled": {
        "type": "boolean"
      },
      "voiceCloningSettings": {
        "type": "object",
        "properties": {
          "stability": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          },
          "similarity": {
            "type": "number",
            "minimum": 0,
            "maximum": 1
          }
        },
        "required": ["stability", "similarity"],
        "additionalProperties": false
      },
      "translationTimeSkips": {
        "maxItems": 100,
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "startTime": {
              "type": "number",
              "minimum": 0
            },
            "endTime": {
              "type": "number",
              "exclusiveMinimum": 0
            }
          },
          "required": ["startTime", "endTime"],
          "additionalProperties": false
        }
      },
      "translatedSrt": {
        "type": "string",
        "maxLength": 1000000
      }
    },
    "required": ["fileKey", "targetLanguage"],
    "additionalProperties": false
  }
  ```
</Accordion>

## Idempotencja

Dla każdej operacji zmieniającej dane użyj UUID v4 w requestId lub w nagłówku HTTP Idempotency-Key. Po awarii sieci użyj ponownie tego samego identyfikatora i identycznych argumentów. Jeśli podasz oba, muszą być zgodne. Ponowienie zapisanego żądania nie powtarza operacji ani nie zużywa kolejnego wywołania z miesięcznego limitu. Żądania zakończone błędem lub przerwane nie są automatycznie uruchamiane ponownie.

Każda operacja zmieniająca dane może zwrócić HTTP 202, gdy ponowienie napotka to samo żądanie nadal w stanie running, nawet jeśli jej pierwsze wykonanie zwykle jest synchroniczne. Jeśli wykonanie się zakończyło, ale resultStored ma wartość false, ponowienie zwraca HTTP 200 z zapisanym stanem żądania zamiast pierwotnego wyniku. Pobierz wynik za pomocą akcji historii, wyniku lub pobierania właściwej dla danej domeny.

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

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST 'https://api.voicecheap.ai/v1/actions/translations_create' \
    --header "x-api-key: $VOICECHEAP_API_KEY" \
    --header 'Content-Type: application/json' \
    --data '{"fileKey":"uploads/your-user-id/6bee76be-109f-423a-88fb-f41e2aa1f03b-launch.mp4","targetLanguage":"english","originalLanguage":"fr","projectName":"Product launch","numberOfSpeakers":"auto-detect","brandVocabulary":["VoiceCheap"],"removeFillerWords":true,"requestId":"41321bda-e243-4b6f-96a4-622cd047c991","keepBackgroundMusic":true,"keepOriginalVoice":false,"voiceMode":"cloning","subtitles":true,"subtitlesSource":"translated","voiceIsolatorOption":"studio"}'
  ```

  ```javascript JavaScript theme={null}
  const input = {
    fileKey: 'uploads/your-user-id/6bee76be-109f-423a-88fb-f41e2aa1f03b-launch.mp4',
    targetLanguage: 'english',
    originalLanguage: 'fr',
    projectName: 'Product launch',
    numberOfSpeakers: 'auto-detect',
    brandVocabulary: ['VoiceCheap'],
    removeFillerWords: true,
    requestId: '41321bda-e243-4b6f-96a4-622cd047c991',
    keepBackgroundMusic: true,
    keepOriginalVoice: false,
    voiceMode: 'cloning',
    subtitles: true,
    subtitlesSource: 'translated',
    voiceIsolatorOption: 'studio',
  };
  const response = await fetch('https://api.voicecheap.ai/v1/actions/translations_create', {
    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/translations_create",
      headers={"x-api-key": os.environ["VOICECHEAP_API_KEY"]},
      json={"fileKey": "uploads/your-user-id/6bee76be-109f-423a-88fb-f41e2aa1f03b-launch.mp4", "targetLanguage": "english", "originalLanguage": "fr", "projectName": "Product launch", "numberOfSpeakers": "auto-detect", "brandVocabulary": ["VoiceCheap"], "removeFillerWords": True, "requestId": "41321bda-e243-4b6f-96a4-622cd047c991", "keepBackgroundMusic": True, "keepOriginalVoice": False, "voiceMode": "cloning", "subtitles": True, "subtitlesSource": "translated", "voiceIsolatorOption": "studio"},
      timeout=120,
  )
  body = response.json()
  if not response.ok:
      raise RuntimeError(f"{body.get('code')}: {body.get('message')}")
  print(body)
  ```
</RequestExample>

## 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 nowy identyfikator projektu po uruchomieniu transkrypcji, po której następuje tłumaczenie i generowanie mowy, lub dubbingu na podstawie dostarczonego tłumaczenia.

<ResponseExample>
  ```json HTTP 200 theme={null}
  {
    "data": {
      "success": true,
      "message": "Translation started successfully. Use the status endpoint to track progress.",
      "projectId": "project_launch_2026",
      "estimatedDuration": 10
    },
    "requestId": "41321bda-e243-4b6f-96a4-622cd047c991"
  }
  ```

  ```json HTTP 202 replay_running theme={null}
  {
    "data": {
      "requestId": "41321bda-e243-4b6f-96a4-622cd047c991",
      "operation": "translations_create",
      "createdAt": 1792144800000,
      "updatedAt": 1792144820000,
      "status": "running",
      "pollAfterSeconds": 5
    },
    "requestId": "41321bda-e243-4b6f-96a4-622cd047c991"
  }
  ```

  ```json HTTP 200 replay_completed_without_result theme={null}
  {
    "data": {
      "requestId": "41321bda-e243-4b6f-96a4-622cd047c991",
      "operation": "translations_create",
      "createdAt": 1792144800000,
      "updatedAt": 1792144820000,
      "status": "completed",
      "resultStored": false,
      "message": "The action completed. Retrieve its output from the corresponding history or resource action."
    },
    "requestId": "41321bda-e243-4b6f-96a4-622cd047c991"
  }
  ```
</ResponseExample>

## Pola wyniku

| Pole | Opis |
| - | - |
| `data.success` | Wartość true oznacza, że proces w tle został przyjęty do realizacji; nie oznacza gotowych multimediów. |
| `data.message` | Potwierdzenie tłumaczenia lub dubbingu na podstawie dostarczonego tłumaczenia. |
| `data.projectId` | Identyfikator projektu nadrzędnego. |
| `data.estimatedDuration` | Przybliżony szacowany czas przetwarzania w minutach: ceil(source duration in seconds / 60) \* 5. |

## translatedSrt zostało podane i zaakceptowane.

Te same pola wyniku potwierdzają dubbing podanego tekstu docelowego.

```json HTTP 200 theme={null}
{
  "data": {
    "success": true,
    "message": "Dubbing started successfully from the provided translation. Use the status endpoint to track progress.",
    "projectId": "project_launch_2026",
    "estimatedDuration": 10
  }
}
```

## Odzyskaj żądanie i sprawdź jego stan

Używaj tego samego identyfikatora także po utracie połączenia. Jeśli resultStored ma wartość false, pobierz wynik za pomocą odpowiedniej akcji historii, wyniku lub pobierania. Nigdy nie uruchamiaj drugiego generowania tylko po to, aby sprawdzić postęp.

```bash theme={null}
curl --request POST 'https://api.voicecheap.ai/v1/actions/action_request_get' \
  --header "x-api-key: $VOICECHEAP_API_KEY" \
  --header 'Content-Type: application/json' \
  --data '{"requestId":"41321bda-e243-4b6f-96a4-622cd047c991","operation":"translations_create"}'
```

```json HTTP 200 theme={null}
{
  "data": {
    "requestId": "41321bda-e243-4b6f-96a4-622cd047c991",
    "operation": "translations_create",
    "status": "completed",
    "createdAt": 1792144800000,
    "updatedAt": 1792144820000,
    "resultStored": true,
    "result": {
      "success": true,
      "message": "Translation started successfully. Use the status endpoint to track progress.",
      "projectId": "project_launch_2026",
      "estimatedDuration": 10
    }
  }
}
```

## Uwagi do operacji

* Ukończony fileKey musi należeć do uwierzytelnionego wywołującego. Serwer mierzy czas trwania i rozmiar zapisanych multimediów.
* Opcjonalne sourceSrt wymaga jawnego originalLanguage. Gdy podano również translatedSrt, oba SRT muszą mieć tę samą liczbę bloków napisów; dostarczone tłumaczenie jest przyporządkowywane według indeksu bloku napisów.
* Gdy podano translatedSrt, proces tworzy dubbing tego tekstu i zwraca potwierdzenie użycia dostarczonego tłumaczenia. Z sourceSrt bloki napisów są dopasowywane według indeksu; bez sourceSrt używana jest oś czasu automatycznej transkrypcji.
* Wynik utworzenia nie zawiera workId ani translatedVersionId. Pobierz je z projects\_status lub projects\_get, gdy będą już istnieć.
* Domyślna wartość voiceMode to cloning. Przy voiceMode custom użyj głosu z katalogu lub głosu niestandardowego zapisanego przez uwierzytelnione konto; nie podawaj voiceCloningSettings. Rozliczanie zespołowe nie daje dostępu do głosów zapisanych przez innych członków.
* Opcjonalne subtitles, lipSyncMode i translationTimeSkips wymagają wejścia wideo. Pomijane zakresy muszą mieścić się w czasie trwania multimediów, keepBackgroundMusic musi mieć wartość true, a keepOriginalVoice — false.
* lipSyncMode akceptuje standard, pro lub studio, zależnie od planu i standardowej weryfikacji kredytów na multimedia. Mowa i synchronizacja ruchu ust nie stają się bezpłatne z powodu nieograniczonej liczby miesięcznych wywołań API.
* Sprawdzaj projects\_status, aby śledzić przetwarzanie multimediów; pobierz wszystkie wersje językowe za pomocą projects\_get.
* originalLanguage używa kodów języka źródłowego, takich jak fr lub en (lub auto-detect tam, gdzie jest akceptowane); targetLanguage używa obsługiwanych nazw języka docelowego, takich jak english.

## Wykorzystanie

Każde pomyślne wywołanie zużywa jedno wywołanie z miesięcznego limitu API/MCP. Obowiązują również kredyty na multimedia oraz limity generowania danej operacji.

## 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 | `FILE_TOO_LARGE` | Zapisany przesłany plik przekracza limit rozmiaru przesyłania na koncie. |
| 400 | `IDEMPOTENCY_CONFLICT` | Nagłówek Idempotency-Key i pole requestId w treści żądania muszą być zgodne. |
| 400 | `INVALID_FILE_TYPE` | Nazwa przesłanego pliku nie ma obsługiwanego rozszerzenia audio ani wideo. |
| 400 | `INVALID_MEDIA_DURATION` | Zmierzony czas trwania jest nieprawidłowy lub przekracza limit planu. |
| 400 | `INVALID_REQUEST_ID` | Podaj requestId lub Idempotency-Key w formacie UUID v4. |
| 400 | `INVALID_SOURCE_SRT` | sourceSrt musi zawierać prawidłowe bloki napisów SRT. |
| 400 | `INVALID_TRANSLATED_SRT` | Podany SRT w języku docelowym ma nieprawidłowy format. |
| 400 | `LIPSYNC_NOT_AVAILABLE_FOR_AUDIO` | Synchronizacja ruchu ust wymaga wejściowego wideo. |
| 400 | `LIPSYNC_VIDEO_TOO_LONG` | Film przekracza limit czasu trwania dla wybranego trybu synchronizacji ruchu ust. |
| 400 | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT` | Jawnie ustaw originalLanguage, gdy przekazujesz sourceSrt. |
| 400 | `SUBTITLES_NOT_AVAILABLE_FOR_AUDIO` | Napisy wtopione w obraz wymagają wejściowego wideo. |
| 400 | `TRANSLATED_SRT_CUE_COUNT_MISMATCH` | Gdy sourceSrt i translatedSrt są podane razem, każde musi zawierać taką samą liczbę bloków napisów. |
| 400 | `TRANSLATION_TIME_SKIP_CONFLICT` | Pomijania przedziałów czasu w tłumaczeniu nie można łączyć z keepOriginalVoice o wartości true. |
| 400 | `TRANSLATION_TIME_SKIP_NOT_AVAILABLE_FOR_AUDIO` | Pomijanie przedziałów czasu w tłumaczeniu wymaga wejściowego wideo. |
| 400 | `TRANSLATION_TIME_SKIP_OUT_OF_RANGE` | Pomijany zakres wykracza poza czas trwania multimediów. |
| 400 | `TRANSLATION_TIME_SKIP_REQUIRES_BACKGROUND` | Pomijanie przedziałów czasu w tłumaczeniu wymaga keepBackgroundMusic o wartości true. |
| 400 | `VALIDATION_ERROR` | Popraw dane wejściowe zgodnie ze schematem. Nieprawidłowe lub niespójne wartości są odrzucane przed wykonaniem. |
| 400 | `VOICE_CLONING_SETTINGS_NOT_ALLOWED` | voiceCloningSettings mają zastosowanie wyłącznie do voiceMode cloning. |
| 400 | `VOICE_ID_NOT_ALLOWED_WITH_CLONING` | Nie można łączyć voiceId z voiceMode cloning. |
| 400 | `VOICE_ID_REQUIRED` | voiceMode o wartości custom wymaga voiceId. |
| 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 | `ACCOUNT_UNAVAILABLE` | Konto wykonujące operację lub konto rozliczeniowe jest niedostępne albo jest w trakcie usuwania. |
| 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 | `CUSTOM_VOICE_ACCESS_DENIED` | Wybrany głos nie pochodzi z katalogu ani nie jest głosem niestandardowym zapisanym przez uwierzytelnione konto. |
| 403 | `INSUFFICIENT_CREDITS` | Konto nie ma wystarczającej liczby kredytów na multimedia dla wybranych ustawień mowy i opcjonalnej synchronizacji ruchu ust. |
| 403 | `INSUFFICIENT_SCOPE` | Nadaj wszystkie wymagane uprawnienia lub wybierz inne dane uwierzytelniające. |
| 403 | `INTEGRATION_PLAN_UNSUPPORTED` | Nie udało się zweryfikować limitów integracji konta. |
| 403 | `INVALID_FILE_REFERENCE` | fileKey musi wskazywać ukończony przesłany plik należący do uwierzytelnionego podmiotu wykonującego akcję. |
| 403 | `LIPSYNC_MODE_ACCESS_DENIED` | Wybrany opcjonalny tryb synchronizacji ruchu ust jest niedostępny w bieżącym planie. |
| 403 | `SUBSCRIPTION_REQUIRED` | Użyj aktywnej płatnej subskrypcji. |
| 403 | `TEAM_OWNER_NOT_FOUND` | Nie znaleziono konta faktycznego właściciela zespołu. |
| 404 | `MEDIA_NOT_FOUND` | Przesłany obiekt nie istnieje lub jest pusty. |
| 409 | `CONCURRENT_ACTION_LIMIT_REACHED` | Na tym koncie działa już 10 akcji integracji. Sprawdzaj stan istniejącego żądania przed rozpoczęciem kolejnego. |
| 409 | `IDEMPOTENCY_CONFLICT` | Używaj ponownie identyfikatora wyłącznie z tą samą operacją i tymi samymi argumentami. |
| 429 | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Konto osiągnęło już maksymalną liczbę równoczesnych tłumaczeń API. |
| 429 | `INTEGRATION_MONTHLY_LIMIT_REACHED` | Poczekaj na odnowienie miesięcznego limitu lub zmień plan. |
| 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 | `ACTION_RESULT_UNAVAILABLE` | Akcja została wykonana, ale nie udało się zapisać jej wyniku. Sprawdź zapisany stan żądania i historię zasobu przed rozpoczęciem nowego generowania. |
| 503 | `SERVER_RESTARTING` | Serwer jest uruchamiany ponownie. Spróbuj ponownie wkrótce i zachowaj ten sam identyfikator żądania dla operacji zmieniającej dane. |

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


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