> For the complete documentation index, see [llms.txt](https://anunzi-ai.gitbook.io/anunzi-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://anunzi-ai.gitbook.io/anunzi-docs/api-calls/crear-llamada-web.md).

# Crear llamada web

**POST** `/v2/create-web-call`

Crea una llamada de voz que se realiza directamente desde el navegador, sin necesidad de un número de teléfono. La respuesta incluye un `access_token` que debes pasar al frontend para que el usuario pueda unirse a la llamada.

***

## Parámetros del cuerpo

### Requeridos

| Campo      | Tipo   | Descripción                                                                               |
| ---------- | ------ | ----------------------------------------------------------------------------------------- |
| `agent_id` | string | ID único del agente que conducirá la llamada. Ejemplo: `oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD` |

### Opcionales

| Campo                          | Tipo    | Descripción                                                                                                                                                 |
| ------------------------------ | ------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `agent_version`                | integer | Versión específica del agente a utilizar. Por defecto usa la versión más reciente.                                                                          |
| `agent_override`               | object  | Sobreescribe parámetros del agente para esta llamada únicamente. Contiene sub-objetos `agent`, `retell_llm` y `conversation_flow`.                          |
| `metadata`                     | object  | Objeto libre para almacenar información adicional. No es procesado por el sistema. Recuperable desde el objeto de llamada.                                  |
| `retell_llm_dynamic_variables` | object  | Pares clave-valor inyectados en el prompt del agente durante la llamada. Solo aplica para agentes con Response Engine. Ejemplo: `{"nombre_cliente": "Ana"}` |
| `current_node_id`              | string  | Nodo del flujo de conversación desde donde debe comenzar la llamada. Solo aplica para agentes con Conversation Flow. Ejemplo: `recopilar_informacion`       |
| `current_state`                | string  | Estado inicial de la conversación. Debe ser un estado válido definido en el LLM del agente. Ejemplo: `presentacion`                                         |

***

## Respuesta — 201 Created

Devuelve el objeto de llamada web con todos los campos base más el token de acceso.

### Campos del objeto de llamada

| Campo                  | Tipo    | Descripción                                                                                      |
| ---------------------- | ------- | ------------------------------------------------------------------------------------------------ |
| `call_id`              | string  | Identificador único de la llamada.                                                               |
| `call_type`            | string  | Siempre `web_call` para llamadas web.                                                            |
| `access_token`         | string  | **Token para unirse a la llamada desde el frontend.** Debes pasarlo al SDK de voz en el cliente. |
| `agent_id`             | string  | ID del agente utilizado.                                                                         |
| `agent_version`        | integer | Versión del agente utilizado.                                                                    |
| `call_status`          | string  | Estado actual: `registered` \| `ongoing` \| `ended` \| `error`                                   |
| `start_timestamp`      | integer | Marca de tiempo de inicio en milisegundos (epoch).                                               |
| `end_timestamp`        | integer | Marca de tiempo de fin en milisegundos (epoch).                                                  |
| `duration_ms`          | integer | Duración total en milisegundos.                                                                  |
| `transcript`           | string  | Transcripción completa (disponible tras el fin de la llamada).                                   |
| `recording_url`        | string  | URL del audio de la llamada en formato WAV.                                                      |
| `disconnection_reason` | string  | Razón de desconexión.                                                                            |
| `call_analysis`        | object  | Análisis post-llamada: `call_summary`, `call_successful`, `user_sentiment`.                      |
| `metadata`             | object  | Metadatos enviados al crear la llamada.                                                          |
| `latency`              | object  | Métricas de latencia (e2e, asr, llm, tts).                                                       |

***

## Ejemplo de solicitud

```bash
curl --request POST \
     --url https://calls.anunzi.net/v2/create-web-call \
     --header 'Authorization: Bearer TU_API_KEY' \
     --header 'Content-Type: application/json' \
     --data '{
  "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD"
}'
```

Con variables dinámicas:

```bash
curl --request POST \
     --url https://calls.anunzi.net/v2/create-web-call \
     --header 'Authorization: Bearer TU_API_KEY' \
     --header 'Content-Type: application/json' \
     --data '{
  "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",
  "retell_llm_dynamic_variables": {
    "nombre_usuario": "Carlos",
    "plan_actual": "Básico"
  },
  "metadata": {
    "session_id": "web-9923"
  }
}'
```

***

## Ejemplo de respuesta

```json
{
  "call_id": "Kx2pYnWVmlR3eDsT1Qva59fHgJzLcAXb",
  "call_type": "web_call",
  "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",
  "agent_version": 1,
  "call_status": "registered"
}
```

***

## Códigos de estado

| Código | Descripción                                             |
| ------ | ------------------------------------------------------- |
| `201`  | Llamada web creada correctamente.                       |
| `400`  | Formato de solicitud inválido. Verifica los parámetros. |
| `401`  | API Key ausente o inválida.                             |
| `402`  | Período de prueba vencido.                              |
| `422`  | El agente solicitado no existe bajo tu API Key.         |
| `429`  | Límite de solicitudes alcanzado.                        |
| `500`  | Error interno del servidor.                             |
