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

# Criar projeto

> Carregue um arquivo de vídeo ou áudio e crie um projeto sem iniciar a tradução

# Criar projeto

Crie um novo projeto carregando um arquivo de vídeo ou áudio. A API inicia apenas a transcrição (sem tradução ou sincronização labial). Você pode abrir o projeto no aplicativo VoiceCheap posteriormente para acionar a tradução, ou usar [Obter detalhes do projeto](/docs/pt/api-reference/project-details) para inspecionar o estado do projeto.

## Limite de simultaneidade

Este endpoint compartilha o mesmo limite de simultaneidade que `POST /v1/translate`: até 10 traduções em andamento por conta. Se o limite for atingido, as solicitações retornam `CONCURRENT_TRANSLATION_LIMIT_REACHED` (HTTP 429).

## Solicitação

Este endpoint aceita `multipart/form-data` com um upload de arquivo.

### Cabeçalhos

<ParamField header="x-api-key" type="string" required>
  Sua chave de API VoiceCheap. Obtenha uma em [app.voicecheap.ai/page-api](https://app.voicecheap.ai/page-api).
</ParamField>

### Parâmetros do corpo

<ParamField body="file" type="file" required>
  O arquivo de vídeo ou áudio para carregar.

  **Formatos de vídeo suportados:** `video/mp4`, `video/quicktime`, `video/x-matroska`, `video/webm`, `video/mpeg`

  **Formatos de áudio suportados:** `audio/mpeg`, `audio/wav`, `audio/mp4`, `audio/x-m4a`, `audio/flac`, `audio/ogg`, `audio/aac`, `audio/webm`

  **Tamanho máximo de arquivo por plano:** 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>
  O idioma de destino a ser associado a este projeto. Deve estar em letras minúsculas.

  **Valores permitidos (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">
  O idioma de origem do conteúdo usando códigos de idioma ISO (por exemplo, `en`, `es`, `fr`, `de`, `ja`, `zh`).

  <Warning>
    **Altamente recomendado: Deixe este campo vazio para detecção automática.**

    Forneça este parâmetro apenas se tiver 100% de certeza de que o código do idioma está correto e no formato ISO válido. Códigos de idioma incorretos causarão falhas na transcrição. Nossa detecção automática suporta mais de 80 idiomas e é altamente precisa.
  </Warning>

  **Padrão:** `auto-detect`
</ParamField>

<ParamField body="projectName" type="string">
  Um nome personalizado para o projeto. Útil para identificar projetos em seu painel.

  **Padrão:** O ID do projeto será usado se não for fornecido.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Um endpoint https que recebe o [eventos de webhook](/docs/pt/api-reference/webhooks) para este projeto,
  substituindo o endpoint configurado em sua conta.

  **Padrão:** O endpoint de webhook da conta, quando um está configurado.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  `auto-detect` ou um número inteiro de `1` a `32`. Fornecer a contagem conhecida de falantes pode melhorar a diarização.

  **Padrão:** `auto-detect`
</ParamField>

<ParamField body="brandVocabulary" type="string">
  Uma matriz de strings JSON de nomes, marcas, acrônimos ou termos especializados específicos da solicitação. Esses termos são mesclados com o vocabulário salvo da conta ou da equipe.

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

<ParamField body="removeFillerWords" type="boolean">
  Remova palavras de preenchimento comuns durante a transcrição.

  **Padrão:** `true`
</ParamField>

<ParamField body="sourceSrt" type="string">
  Uma transcrição SRT existente no idioma de origem. Quando fornecido, `originalLanguage` deve ser um código de idioma explícito em vez de `auto-detect`.
</ParamField>

Este endpoint serve apenas para a criação do projeto + início da transcrição. Opções de tradução como legendas, clonagem de voz, isolamento de voz e música de fundo são tratadas por `POST /v1/translate`.

## Exemplo de solicitação

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

## Exemplo de resposta

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

## Erros

| Status | Código                                 | Descrição                                                            |
| ------ | -------------------------------------- | -------------------------------------------------------------------- |
| 400    | `FILE_REQUIRED`                        | Nenhum arquivo foi enviado com a solicitação                         |
| 400    | `INVALID_FILE_TYPE`                    | O tipo de arquivo enviado não é suportado                            |
| 400    | `DURATION_DETECTION_FAILED`            | Não foi possível detectar a duração do arquivo enviado               |
| 400    | `INVALID_MULTIPART_REQUEST`            | O formulário multipart está malformado ou excede os limites de campo |
| 400    | `INVALID_BRAND_VOCABULARY`             | Uma entrada de glossário específica da solicitação é inválida        |
| 400    | `INVALID_SOURCE_SRT`                   | O SRT de origem fornecido está malformado                            |
| 400    | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT`     | sourceSrt requer um originalLanguage explícito                       |
| 400    | `VIDEO_TOO_LONG`                       | A duração da mídia excede o limite do plano do usuário               |
| 413    | `FILE_TOO_LARGE`                       | O arquivo enviado excede o limite do plano do usuário                |
| 401    | `MISSING_API_KEY`                      | A chave de API é necessária                                          |
| 401    | `INVALID_API_KEY_FORMAT`               | A chave de API deve começar com `vc_`                                |
| 401    | `INVALID_API_KEY`                      | A chave de API fornecida é inválida                                  |
| 403    | `API_ACCESS_REQUIRED`                  | O acesso à API é necessário para esta conta                          |
| 403    | `SUBSCRIPTION_REQUIRED`                | O acesso à API requer uma assinatura paga                            |
| 429    | `RATE_LIMIT_EXCEEDED`                  | Muitas solicitações (limite: 10 solicitações por minuto)             |
| 429    | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Muitas traduções em andamento (limite: 10 traduções simultâneas)     |
| 500    | `INTERNAL_ERROR`                       | Erro inesperado do servidor                                          |
