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

# Crear proyecto

> Suba un archivo de vídeo o audio y cree un proyecto sin iniciar la traducción

# Crear proyecto

Cree un nuevo proyecto subiendo un archivo de vídeo o audio. La API inicia solo la transcripción (sin traducción ni sincronización labial). Puede abrir el proyecto en la aplicación VoiceCheap más tarde para activar la traducción, o utilizar [Obtener detalles del proyecto](/docs/es/api-reference/project-details) para inspeccionar el estado del proyecto.

## Límite de concurrencia

Este endpoint comparte el mismo límite de concurrencia que `POST /v1/translate`: hasta 10 traducciones en curso por cuenta. Si se alcanza el límite, las solicitudes devuelven `CONCURRENT_TRANSLATION_LIMIT_REACHED` (HTTP 429).

## Solicitud

Este endpoint acepta `multipart/form-data` con una carga de archivo.

### Cabeceras

<ParamField header="x-api-key" type="string" required>
  Su clave de API de VoiceCheap. Obtenga una en [app.voicecheap.ai/page-api](https://app.voicecheap.ai/page-api).
</ParamField>

### Parámetros del cuerpo

<ParamField body="file" type="file" required>
  El archivo de vídeo o audio a subir.

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

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

  **Tamaño máximo de archivo por plan:** Beginner 5 GB, Starter 10 GB, Creator 20 GB, Pro 30 GB, Scale 40 GB y Enterprise 60 GB.
</ParamField>

<ParamField body="targetLanguage" type="string" required>
  El idioma de destino a asociar con este proyecto. Debe estar en 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">
  El idioma de origen del contenido utilizando códigos de idioma ISO (p. ej., `en`, `es`, `fr`, `de`, `ja`, `zh`).

  <Warning>
    **Altamente recomendado: déjelo vacío para la detección automática.**

    Solo proporcione este parámetro si está 100% seguro de que el código de idioma es correcto y tiene un formato ISO válido. Los códigos de idioma incorrectos provocarán fallos en la transcripción. Nuestra detección automática admite más de 80 idiomas y es altamente precisa.
  </Warning>

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

<ParamField body="projectName" type="string">
  Un nombre personalizado para el proyecto. Útil para identificar proyectos en su panel de control.

  **Predeterminado:** Se utilizará el ID del proyecto si no se proporciona.
</ParamField>

<ParamField body="webhookUrl" type="string">
  Un endpoint https que recibe el [eventos de webhook](/docs/es/api-reference/webhooks) para este proyecto,
  anulando el endpoint configurado en su cuenta.

  **Predeterminado:** El endpoint de webhook de la cuenta, cuando hay uno configurado.
</ParamField>

<ParamField body="numberOfSpeakers" type="string">
  `auto-detect` o un número entero de `1` a `32`. Proporcionar el número conocido de hablantes puede mejorar la diarización.

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

<ParamField body="brandVocabulary" type="string">
  Una matriz de cadenas JSON de nombres, marcas, acrónimos o términos especializados específicos de la solicitud. Estos términos se fusionan con el glosario guardado de la cuenta o del equipo.

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

<ParamField body="removeFillerWords" type="boolean">
  Eliminar palabras de relleno comunes durante la transcripción.

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

<ParamField body="sourceSrt" type="string">
  Una transcripción SRT existente en el idioma de origen. Cuando se suministra, `originalLanguage` debe ser un código de idioma explícito en lugar de `auto-detect`.
</ParamField>

Este endpoint es solo para la creación del proyecto + inicio de la transcripción. Las opciones de traducción como subtítulos, clonación de voz, aislamiento de voz y música de fondo son gestionadas por `POST /v1/translate`.

## Ejemplo de solicitud

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

## Ejemplo de respuesta

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

## Errores

| Estado | Código                                 | Descripción                                                                          |
| ------ | -------------------------------------- | ------------------------------------------------------------------------------------ |
| 400    | `FILE_REQUIRED`                        | No se cargó ningún archivo con la solicitud                                          |
| 400    | `INVALID_FILE_TYPE`                    | El tipo de archivo cargado no es compatible                                          |
| 400    | `DURATION_DETECTION_FAILED`            | No se pudo detectar la duración del archivo cargado                                  |
| 400    | `INVALID_MULTIPART_REQUEST`            | Los datos del formulario multipart están mal formados o exceden los límites de campo |
| 400    | `INVALID_BRAND_VOCABULARY`             | Una entrada del glosario específica de la solicitud no es válida                     |
| 400    | `INVALID_SOURCE_SRT`                   | El SRT de origen proporcionado está mal formado                                      |
| 400    | `SOURCE_LANGUAGE_REQUIRED_FOR_SRT`     | sourceSrt requiere un originalLanguage explícito                                     |
| 400    | `VIDEO_TOO_LONG`                       | La duración del medio excede el límite del plan del usuario                          |
| 413    | `FILE_TOO_LARGE`                       | El archivo cargado excede el límite del plan del usuario                             |
| 401    | `MISSING_API_KEY`                      | Se requiere la clave API                                                             |
| 401    | `INVALID_API_KEY_FORMAT`               | La clave API debe comenzar con `vc_`                                                 |
| 401    | `INVALID_API_KEY`                      | La clave API proporcionada no es válida                                              |
| 403    | `API_ACCESS_REQUIRED`                  | Se requiere acceso a la API para esta cuenta                                         |
| 403    | `SUBSCRIPTION_REQUIRED`                | El acceso a la API requiere una suscripción de pago                                  |
| 429    | `RATE_LIMIT_EXCEEDED`                  | Demasiadas solicitudes (límite: 10 solicitudes por minuto)                           |
| 429    | `CONCURRENT_TRANSLATION_LIMIT_REACHED` | Demasiadas traducciones en curso (límite: 10 traducciones simultáneas)               |
| 500    | `INTERNAL_ERROR`                       | Error inesperado del servidor                                                        |
