# Obtener llamada

**GET** `/v2/get-call/{call_id}`

Recupera el detalle completo de una llamada, incluyendo transcripción, grabación, análisis post-llamada y métricas de latencia.

***

## Parámetros de ruta

| Campo     | Tipo   | Requerido | Descripción                                                               |
| --------- | ------ | --------- | ------------------------------------------------------------------------- |
| `call_id` | string | Sí        | ID de la llamada a consultar. Ejemplo: `119c3f8e47135a29e65947eeb34cf12d` |

***

## Respuesta — 200 OK

Devuelve el objeto completo de la llamada. Para llamadas telefónicas incluye `call_type: "phone_call"`, `from_number`, `to_number` y `direction`. Para llamadas web incluye `call_type: "web_call"` y `access_token`.

### Campos principales

| Campo                        | Tipo    | Descripción                                                             |
| ---------------------------- | ------- | ----------------------------------------------------------------------- |
| `call_id`                    | string  | Identificador único de la llamada.                                      |
| `call_type`                  | string  | `phone_call` o `web_call`                                               |
| `agent_id`                   | string  | ID del agente utilizado.                                                |
| `agent_version`              | integer | Versión del agente utilizado.                                           |
| `call_status`                | string  | `registered` \| `not_connected` \| `ongoing` \| `ended` \| `error`      |
| `direction`                  | string  | `inbound` o `outbound` (solo para llamadas telefónicas)                 |
| `from_number`                | string  | Número de origen (solo para llamadas telefónicas).                      |
| `to_number`                  | string  | Número de destino (solo para llamadas telefónicas).                     |
| `start_timestamp`            | integer | Inicio de la llamada en milisegundos (epoch).                           |
| `end_timestamp`              | integer | Fin de la llamada en milisegundos (epoch).                              |
| `duration_ms`                | integer | Duración total en milisegundos.                                         |
| `transcript`                 | string  | Transcripción completa en texto plano.                                  |
| `transcript_object`          | array   | Transcripción con marca de tiempo por utterance (ver estructura abajo). |
| `transcript_with_tool_calls` | array   | Transcripción entrelazada con llamadas a herramientas.                  |
| `recording_url`              | string  | URL del audio WAV de la llamada.                                        |
| `disconnection_reason`       | string  | Razón de desconexión.                                                   |
| `call_analysis`              | object  | Análisis post-llamada (ver estructura abajo).                           |
| `call_cost`                  | object  | Costo de la llamada (ver estructura abajo).                             |
| `latency`                    | object  | Métricas de latencia (ver estructura abajo).                            |
| `metadata`                   | object  | Metadatos almacenados en la llamada.                                    |

***

### Estructura: `transcript_object`

Array de objetos `Utterance`:

| Campo     | Tipo   | Descripción                                                                     |
| --------- | ------ | ------------------------------------------------------------------------------- |
| `role`    | string | `agent` \| `user` \| `transfer_target`                                          |
| `content` | string | Texto del turno de conversación.                                                |
| `words`   | array  | Detalle palabra a palabra: `{ "word": string, "start": number, "end": number }` |

Tipos especiales de utterance:

| Tipo                      | Rol                    | Campos adicionales                                                                      |
| ------------------------- | ---------------------- | --------------------------------------------------------------------------------------- |
| Invocación de herramienta | `tool_call_invocation` | `tool_call_id`, `name`, `arguments` (JSON string)                                       |
| Resultado de herramienta  | `tool_call_result`     | `tool_call_id`, `content`, `successful` (boolean)                                       |
| Transición de nodo        | `node_transition`      | `former_node_id`, `former_node_name`, `new_node_id`, `new_node_name`, `transition_type` |
| DTMF                      | `dtmf`                 | `digit` (carácter: `"1"`, `"2"`, `"*"`, `"#"`, etc.)                                    |

***

### Estructura: `call_analysis`

| Campo                  | Tipo    | Descripción                                        |
| ---------------------- | ------- | -------------------------------------------------- |
| `call_summary`         | string  | Resumen narrativo de la llamada.                   |
| `call_successful`      | boolean | Si la llamada alcanzó su objetivo.                 |
| `user_sentiment`       | string  | `Positive` \| `Neutral` \| `Negative` \| `Unknown` |
| `in_voicemail`         | boolean | Si la llamada llegó a buzón de voz.                |
| `custom_analysis_data` | object  | Campos personalizados definidos en el agente.      |

***

### Estructura: `latency`

Cada métrica (`e2e`, `asr`, `llm`, `tts`, etc.) contiene:

| Campo | Descripción          |
| ----- | -------------------- |
| `p50` | Percentil 50 en ms   |
| `p90` | Percentil 90 en ms   |
| `p95` | Percentil 95 en ms   |
| `p99` | Percentil 99 en ms   |
| `max` | Máximo en ms         |
| `min` | Mínimo en ms         |
| `num` | Número de mediciones |

***

### Estructura: `call_cost`

| Campo                    | Descripción                                                     |
| ------------------------ | --------------------------------------------------------------- |
| `total_duration_seconds` | Duración total facturable en segundos.                          |
| `combined_cost`          | Costo total en centavos de dólar.                               |
| `product_costs`          | Array de costos por componente (transcripción, LLM, voz, etc.). |

***

## Ejemplo de solicitud

```bash
curl --request GET \
     --url https://calls.anunzi.net/v2/get-call/119c3f8e47135a29e65947eeb34cf12d \
     --header 'Authorization: Bearer TU_API_KEY'
```

***

## Ejemplo de respuesta (parcial)

```json
{
  "call_id": "119c3f8e47135a29e65947eeb34cf12d",
  "call_type": "phone_call",
  "agent_id": "oBeDLoLOeuAbiuaMFXRtDOLriTJ5tSxD",
  "call_status": "ended",
  "direction": "outbound",
  "from_number": "+14157774444",
  "to_number": "+12137774445",
  "start_timestamp": 1714500000000,
  "end_timestamp": 1714500180000,
  "duration_ms": 180000,
  "disconnection_reason": "user_hangup",
  "transcript": "Agente: Hola, ¿cómo estás?\nUsuario: Bien, gracias.",
  "call_analysis": {
    "call_summary": "El usuario confirmó interés en el producto.",
    "call_successful": true,
    "user_sentiment": "Positive"
  }
}
```

***

## Códigos de estado

| Código | Descripción                                  |
| ------ | -------------------------------------------- |
| `200`  | Llamada encontrada y devuelta correctamente. |
| `400`  | Formato de solicitud inválido.               |
| `401`  | API Key ausente o inválida.                  |
| `422`  | La llamada no existe bajo tu API Key.        |
| `500`  | Error interno del servidor.                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://doc.anunzi.net/api-calls/obtener-llamada.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
