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

# Project aanmaken

> Upload een video- of audiobestand en maak een project aan zonder de vertaling te starten

# Project aanmaken

Maak een nieuw project aan door een video- of audiobestand te uploaden. De API start alleen de transcriptie (geen vertaling of lipsynchronisatie). Je kunt het project later openen in de VoiceCheap-app om de vertaling te activeren, of [Projectdetails ophalen](/docs/nl/api-reference/project-details) gebruiken om de projectstatus te inspecteren.

## Gelijktijdigheidslimiet

Dit eindpunt deelt dezelfde gelijktijdigheidslimiet als `POST /v1/translate`: maximaal 10 lopende vertalingen per account. Als de limiet is bereikt, retourneren verzoeken `CONCURRENT_TRANSLATION_LIMIT_REACHED` (HTTP 429).

## Verzoek

Dit eindpunt accepteert `multipart/form-data` met een bestandsupload.

### Headers

<ParamField header="x-api-key" type="string" required>
  Je VoiceCheap API-sleutel. Haal er een op via [app.voicecheap.ai/page-api](https://app.voicecheap.ai/page-api).
</ParamField>

### Hoofdparameters

<ParamField body="file" type="file" required>
  Het video- of audiobestand dat moet worden geüpload.

  **Ondersteunde videoformaten:** `video/mp4`, `video/quicktime`, `video/x-matroska`, `video/webm`, `video/mpeg`

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

  **Maximale bestandsgrootte per abonnement:** Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB en Enterprise 60 GB.
</ParamField>

<ParamField body="targetLanguage" type="string" required>
  De doeltaal die aan dit project moet worden gekoppeld. Moet in kleine letters zijn.

  **Toegestane waarden (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">
  De brontaal van de inhoud met behulp van ISO-taalcodes (bijv. `en`, `es`, `fr`, `de`, `ja`, `zh`).

  <Warning>
    **Sterk aanbevolen: laat dit leeg voor automatische detectie.**

    Geef deze parameter alleen op als je 100% zeker weet dat de taalcode correct is en in een geldig ISO-formaat is. Onjuiste taalcodes leiden tot transcriptiefouten. Onze automatische detectie ondersteunt 80+ talen en is zeer nauwkeurig.
  </Warning>

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

<ParamField body="projectName" type="string">
  Een aangepaste naam voor het project. Handig om projecten in je dashboard te identificeren.

  **Standaard:** De project-ID wordt gebruikt als er geen naam is opgegeven.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Een https-eindpunt dat de [webhook-gebeurtenissen](/docs/nl/api-reference/webhooks) voor dit project ontvangt,
  waarbij het eindpunt dat op je account is geconfigureerd wordt overschreven.

  **Standaard:** Het webhook-eindpunt van het account, wanneer er een is geconfigureerd.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  `auto-detect` of een geheel getal van `1` tot `32`. Het opgeven van het bekende aantal sprekers kan de diarisatie verbeteren.

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

<ParamField body="brandVocabulary" type="string">
  Een JSON-stringarray van verzoekspecifieke namen, merken, acroniemen of specialistische termen. Deze termen worden samengevoegd met de opgeslagen woordenlijst van het account of team.

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

<ParamField body="removeFillerWords" type="boolean">
  Verwijder veelvoorkomende stopwoorden tijdens de transcriptie.

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

<ParamField body="sourceSrt" type="string">
  Een bestaand SRT-transcript in de brontaal. Indien opgegeven, moet `originalLanguage` een expliciete taalcode zijn in plaats van `auto-detect`.
</ParamField>

Dit eindpunt is alleen voor het aanmaken van projecten + het starten van transcriptie. Vertaalopties zoals ondertitels, stemklonen, stemisolatie en achtergrondaudio worden afgehandeld door `POST /v1/translate`.

## Voorbeeldverzoek

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

## Voorbeeldantwoord

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

## Fouten

| Status | Code                                   | Beschrijving                                                                     |
| ------ | -------------------------------------- | -------------------------------------------------------------------------------- |
| 400    | `FILE_REQUIRED`                        | Er is geen bestand geüpload bij het verzoek                                      |
| 400    | `INVALID_FILE_TYPE`                    | Het geüploade bestandstype wordt niet ondersteund                                |
| 400    | `DURATION_DETECTION_FAILED`            | Kon de duur van het geüploade bestand niet detecteren                            |
| 400    | `INVALID_MULTIPART_REQUEST`            | Multipart form data is misvormd of overschrijdt veldlimieten                     |
| 400    | `INVALID_BRAND_VOCABULARY`             | Een verzoekspecifiek woordenlijst-item is ongeldig                               |
| 400    | `INVALID_SOURCE_SRT`                   | De aangeleverde bron-SRT is misvormd                                             |
| 400    | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT`     | sourceSrt vereist een expliciete originalLanguage                                |
| 400    | `VIDEO_TOO_LONG`                       | De mediaduur overschrijdt de limiet van het abonnement van de gebruiker          |
| 413    | `FILE_TOO_LARGE`                       | Het geüploade bestand overschrijdt de limiet van het abonnement van de gebruiker |
| 401    | `MISSING_API_KEY`                      | API-sleutel is vereist                                                           |
| 401    | `INVALID_API_KEY_FORMAT`               | API-sleutel moet beginnen met `vc_`                                              |
| 401    | `INVALID_API_KEY`                      | De verstrekte API-sleutel is ongeldig                                            |
| 403    | `API_ACCESS_REQUIRED`                  | API-toegang is vereist voor dit account                                          |
| 403    | `SUBSCRIPTION_REQUIRED`                | API-toegang vereist een betaald abonnement                                       |
| 429    | `RATE_LIMIT_EXCEEDED`                  | Te veel verzoeken (limiet: 10 verzoeken per minuut)                              |
| 429    | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Te veel vertalingen in uitvoering (limiet: 10 gelijktijdige vertalingen)         |
| 500    | `INTERNAL_ERROR`                       | Onverwachte serverfout                                                           |
