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

# Crea progetto

> Carica un file video o audio e crea un progetto senza avviare la traduzione

# Crea progetto

Crea un nuovo progetto caricando un file video o audio. L'API avvia solo la trascrizione (nessuna traduzione o sincronizzazione labiale). Puoi aprire il progetto nell'app VoiceCheap in un secondo momento per attivare la traduzione, oppure utilizzare [Ottieni dettagli progetto](/docs/it/api-reference/project-details) per ispezionare lo stato del progetto.

## Limite di concorrenza

Questo endpoint condivide lo stesso limite di concorrenza di `POST /v1/translate`: fino a 10 traduzioni in corso per account. Se il limite viene raggiunto, le richieste restituiscono `CONCURRENT_TRANSLATION_LIMIT_REACHED` (HTTP 429).

## Richiesta

Questo endpoint accetta `multipart/form-data` con un caricamento di file.

### Intestazioni

<ParamField header="x-api-key" type="string" required>
  La tua chiave API VoiceCheap. Ottienine una da [app.voicecheap.ai/page-api](https://app.voicecheap.ai/page-api).
</ParamField>

### Parametri del corpo

<ParamField body="file" type="file" required>
  Il file video o audio da caricare.

  **Formati video supportati:** `video/mp4`, `video/quicktime`, `video/x-matroska`, `video/webm`, `video/mpeg`

  **Formati audio supportati:** `audio/mpeg`, `audio/wav`, `audio/mp4`, `audio/x-m4a`, `audio/flac`, `audio/ogg`, `audio/aac`, `audio/webm`

  **Dimensione massima del file per piano:** Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB e Enterprise 60 GB.
</ParamField>

<ParamField body="targetLanguage" type="string" required>
  La lingua di destinazione da associare a questo progetto. Deve essere in minuscolo.

  **Valori consentiti (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">
  La lingua di origine del contenuto utilizzando i codici lingua ISO (es. `en`, `es`, `fr`, `de`, `ja`, `zh`).

  <Warning>
    **Fortemente consigliato: lasciare vuoto per il rilevamento automatico.**

    Fornisci questo parametro solo se sei sicuro al 100% che il codice lingua sia corretto e nel formato ISO valido. Codici lingua errati causeranno errori di trascrizione. Il nostro rilevamento automatico supporta oltre 80 lingue ed è altamente accurato.
  </Warning>

  **Predefinito:** `auto-detect`
</ParamField>

<ParamField body="projectName" type="string">
  Un nome personalizzato per il progetto. Utile per identificare i progetti nella tua dashboard.

  **Predefinito:** Se non fornito, verrà utilizzato l'ID progetto.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Un endpoint https che riceve il [eventi webhook](/docs/it/api-reference/webhooks) per questo progetto,
  sovrascrivendo l'endpoint configurato sul tuo account.

  **Predefinito:** L'endpoint webhook dell'account, quando configurato.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  `auto-detect` o un numero intero da `1` a `32`. Fornire il numero noto di parlanti può migliorare la diarizzazione.

  **Predefinito:** `auto-detect`
</ParamField>

<ParamField body="brandVocabulary" type="string">
  Un array di stringhe JSON di nomi, marchi, acronimi o termini specialistici specifici della richiesta. Questi termini vengono uniti al glossario salvato dell'account o del team.

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

<ParamField body="removeFillerWords" type="boolean">
  Rimuovi le comuni parole riempitive durante la trascrizione.

  **Predefinito:** `true`
</ParamField>

<ParamField body="sourceSrt" type="string">
  Una trascrizione SRT esistente nella lingua di origine. Quando fornito, `originalLanguage` deve essere un codice lingua esplicito anziché `auto-detect`.
</ParamField>

Questo endpoint serve solo per la creazione del progetto + avvio della trascrizione. Le opzioni di traduzione come sottotitoli, clonazione vocale, isolamento vocale e audio di sottofondo sono gestite da `POST /v1/translate`.

## Esempio di richiesta

```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"
```

## Esempio di risposta

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

## Errori

| Stato | Codice                                 | Descrizione                                                              |
| ----- | -------------------------------------- | ------------------------------------------------------------------------ |
| 400   | `FILE_REQUIRED`                        | Nessun file è stato caricato con la richiesta                            |
| 400   | `INVALID_FILE_TYPE`                    | Il tipo di file caricato non è supportato                                |
| 400   | `DURATION_DETECTION_FAILED`            | Impossibile rilevare la durata del file caricato                         |
| 400   | `INVALID_MULTIPART_REQUEST`            | I dati del modulo multipart sono malformati o superano i limiti di campo |
| 400   | `INVALID_BRAND_VOCABULARY`             | Una voce del glossario specifica per la richiesta non è valida           |
| 400   | `INVALID_SOURCE_SRT`                   | Il file SRT sorgente fornito è malformato                                |
| 400   | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT`     | sourceSrt richiede un originalLanguage esplicito                         |
| 400   | `VIDEO_TOO_LONG`                       | La durata del file multimediale supera il limite del piano dell'utente   |
| 413   | `FILE_TOO_LARGE`                       | Il file caricato supera il limite del piano dell'utente                  |
| 401   | `MISSING_API_KEY`                      | La chiave API è richiesta                                                |
| 401   | `INVALID_API_KEY_FORMAT`               | La chiave API deve iniziare con `vc_`                                    |
| 401   | `INVALID_API_KEY`                      | La chiave API fornita non è valida                                       |
| 403   | `API_ACCESS_REQUIRED`                  | L'accesso all'API è richiesto per questo account                         |
| 403   | `SUBSCRIPTION_REQUIRED`                | L'accesso all'API richiede un abbonamento a pagamento                    |
| 429   | `RATE_LIMIT_EXCEEDED`                  | Troppe richieste (limite: 10 richieste al minuto)                        |
| 429   | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Troppe traduzioni in corso (limite: 10 traduzioni simultanee)            |
| 500   | `INTERNAL_ERROR`                       | Errore imprevisto del server                                             |
