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

> Prześlij plik wideo lub audio i utwórz projekt bez rozpoczynania tłumaczenia

# Utwórz projekt

Utwórz nowy projekt, przesyłając plik wideo lub audio. API rozpoczyna tylko transkrypcję (bez tłumaczenia lub synchronizacji ruchu ust). Możesz później otworzyć projekt w aplikacji VoiceCheap, aby uruchomić tłumaczenie, lub użyć [Pobierz szczegóły projektu](/docs/pl/api-reference/project-details), aby sprawdzić stan projektu.

## Limit współbieżności

Ten punkt końcowy współdzieli ten sam limit współbieżności co `POST /v1/translate`: do 10 trwających tłumaczeń na konto. Jeśli limit zostanie osiągnięty, żądania zwrócą `CONCURRENT_TRANSLATION_LIMIT_REACHED` (HTTP 429).

## Żądanie

Ten punkt końcowy akceptuje `multipart/form-data` wraz z przesłaniem pliku.

### Nagłówki

<ParamField header="x-api-key" type="string" required>
  Twój klucz API VoiceCheap. Pobierz go z [app.voicecheap.ai/page-api](https://app.voicecheap.ai/page-api).
</ParamField>

### Parametry treści

<ParamField body="file" type="file" required>
  Plik wideo lub audio do przesłania.

  **Obsługiwane formaty wideo:** `video/mp4`, `video/quicktime`, `video/x-matroska`, `video/webm`, `video/mpeg`

  **Obsługiwane formaty audio:** `audio/mpeg`, `audio/wav`, `audio/mp4`, `audio/x-m4a`, `audio/flac`, `audio/ogg`, `audio/aac`, `audio/webm`

  **Maksymalny rozmiar pliku według planu:** Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB oraz Enterprise 60 GB.
</ParamField>

<ParamField body="targetLanguage" type="string" required>
  Język docelowy, który ma zostać powiązany z tym projektem. Musi być zapisany małymi literami.

  **Dozwolone wartości (70+):** `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`, `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">
  Język źródłowy zawartości przy użyciu kodów językowych ISO (np. `en`, `es`, `fr`, `de`, `ja`, `zh`).

  <Warning>
    **Zdecydowanie zalecane: Pozostaw to pole puste w celu automatycznego wykrywania.**

    Podaj ten parametr tylko wtedy, gdy masz 100% pewności, że kod języka jest poprawny i w prawidłowym formacie ISO. Nieprawidłowe kody języków spowodują błędy transkrypcji. Nasze automatyczne wykrywanie obsługuje ponad 80 języków i jest wysoce dokładne.
  </Warning>

  **Domyślnie:** `auto-detect`
</ParamField>

<ParamField body="projectName" type="string">
  Niestandardowa nazwa projektu. Przydatna do identyfikacji projektów w Twoim panelu nawigacyjnym.

  **Domyślnie:** Jeśli nie zostanie podana, użyty zostanie identyfikator projektu.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Punkt końcowy https, który odbiera [zdarzenia webhook](/docs/pl/api-reference/webhooks) dla tego projektu,
  zastępując punkt końcowy skonfigurowany na Twoim koncie.

  **Domyślnie:** Punkt końcowy webhook konta, jeśli jest skonfigurowany.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  `auto-detect` lub liczba całkowita od `1` do `32`. Podanie znanej liczby mówców może poprawić diaryzację.

  **Domyślnie:** `auto-detect`
</ParamField>

<ParamField body="brandVocabulary" type="string">
  Tablica ciągów JSON zawierająca specyficzne dla żądania nazwy, marki, akronimy lub terminy specjalistyczne. Terminy te są łączone z zapisanym słownictwem konta lub zespołu.

  ```json theme={null}
  ["VoiceCheap", "SmartSync", "ITC Global"]
  ```
</ParamField>

<ParamField body="removeFillerWords" type="boolean">
  Usuń typowe słowa wypełniacze podczas transkrypcji.

  **Domyślnie:** `true`
</ParamField>

<ParamField body="sourceSrt" type="string">
  Istniejąca transkrypcja SRT w języku źródłowym. Po dostarczeniu, `originalLanguage` musi być jawnym kodem języka, a nie `auto-detect`.
</ParamField>

Ten punkt końcowy służy wyłącznie do tworzenia projektu i rozpoczęcia transkrypcji. Opcje tłumaczenia, takie jak napisy, klonowanie głosu, izolacja głosu i muzyka w tle, są obsługiwane przez `POST /v1/translate`.

## Przykładowe żądanie

```bash theme={null}
curl -X POST "https://api.voicecheap.ai/v1/projects" \
  -H "x-api-key: YOUR_API_KEY" \
  -F "file=@/path/to/video.mp4" \
  -F "targetLanguage=french" \
  -F "projectName=Launch Demo" \
  -F "numberOfSpeakers=2" \
  -F 'brandVocabulary=["VoiceCheap","SmartSync"]' \
  -F "removeFillerWords=true"
```

## Przykładowa odpowiedź

```json theme={null}
{
  "success": true,
  "message": "Project created. Transcription started.",
  "projectId": "project_123",
  "projectName": "Launch Demo",
  "targetLanguage": "french",
  "status": "processing"
}
```

## Błędy

| Status | Kod                                    | Opis                                                                   |
| ------ | -------------------------------------- | ---------------------------------------------------------------------- |
| 400    | `FILE_REQUIRED`                        | W żądaniu nie przesłano żadnego pliku                                  |
| 400    | `INVALID_FILE_TYPE`                    | Przesłany typ pliku nie jest obsługiwany                               |
| 400    | `DURATION_DETECTION_FAILED`            | Nie udało się wykryć czasu trwania przesłanego pliku                   |
| 400    | `INVALID_MULTIPART_REQUEST`            | Dane formularza multipart są nieprawidłowe lub przekraczają limity pól |
| 400    | `INVALID_BRAND_VOCABULARY`             | Wpis w glosariuszu specyficzny dla żądania jest nieprawidłowy          |
| 400    | `INVALID_SOURCE_SRT`                   | Dostarczony plik źródłowy SRT jest nieprawidłowy                       |
| 400    | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT`     | sourceSrt wymaga jawnego określenia originalLanguage                   |
| 400    | `VIDEO_TOO_LONG`                       | Czas trwania multimediów przekracza limit planu użytkownika            |
| 413    | `FILE_TOO_LARGE`                       | Przesłany plik przekracza limit planu użytkownika                      |
| 401    | `MISSING_API_KEY`                      | Wymagany jest klucz API                                                |
| 401    | `INVALID_API_KEY_FORMAT`               | Klucz API musi zaczynać się od `vc_`                                   |
| 401    | `INVALID_API_KEY`                      | Podany klucz API jest nieprawidłowy                                    |
| 403    | `API_ACCESS_REQUIRED`                  | Dla tego konta wymagany jest dostęp do API                             |
| 403    | `SUBSCRIPTION_REQUIRED`                | Dostęp do API wymaga płatnej subskrypcji                               |
| 429    | `RATE_LIMIT_EXCEEDED`                  | Zbyt wiele żądań (limit: 10 żądań na minutę)                           |
| 429    | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Zbyt wiele trwających tłumaczeń (limit: 10 jednoczesnych tłumaczeń)    |
| 500    | `INTERNAL_ERROR`                       | Nieoczekiwany błąd serwera                                             |
