> ## Documentation Index
> Fetch the complete documentation index at: https://omniloy.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Resultados

> Leer el resultado de un cuestionario: respuestas, score, transcripción y grabación

Los resultados de cada llamada —tanto de seguimiento como de triaje— se consultan con los endpoints de lectura.

## Cuestionario (protocol run)

```bash theme={null}
curl "https://{your-prod-endpoint}/v1/protocol-runs/{runId}" \
  -H "Authorization: Bearer oc_sk_..."
```

Devuelve el run con su versión de protocolo, `answers[]`, `calls[]`, notas, un resumen del paciente y el `score` calculado. Campos relevantes del run:

| Campo                                    | Descripción                                                                                                               |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- |
| `questionnaire_status`                   | `pending`, `in_progress`, `completed`, `rejected`, `call_failed`, `wrong_number`, `no_answer`, `unresolved`, `cancelled`. |
| `score`, `score_class`                   | Puntuación y banda de riesgo calculadas (cuando aplica).                                                                  |
| `sequence_number`                        | Número de cuestionario dentro de la inscripción.                                                                          |
| `scheduled_at`, `started_at`, `ended_at` | Marcas de tiempo del run.                                                                                                 |
| `reviewed_at`, `review_note`             | Revisión clínica, si la hubo.                                                                                             |

## Llamada y transcripción

```bash theme={null}
curl "https://{your-prod-endpoint}/v1/calls/{callId}" \
  -H "Authorization: Bearer oc_sk_..."
```

Devuelve la llamada con su transcripción (`timeline_events`, solo las intervenciones de la conversación). Campos relevantes:

| Campo                                    | Descripción                                                                                          |
| ---------------------------------------- | ---------------------------------------------------------------------------------------------------- |
| `status`                                 | `pending`, `dialing`, `in_progress`, `completed`, `failed`, `no_answer`, `cancelled`, `transferred`. |
| `call_direction`                         | `outbound` (seguimiento) o `inbound` (triaje).                                                       |
| `disconnect_reason`                      | Motivo de cierre de la llamada.                                                                      |
| `has_recording`                          | Si existe grabación disponible.                                                                      |
| `started_at`, `ended_at`, `scheduled_at` | Marcas de tiempo.                                                                                    |

## Grabación

Si `has_recording` es `true`, obtén un enlace firmado de corta duración:

```bash theme={null}
curl "https://{your-prod-endpoint}/v1/calls/{callId}/recording" \
  -H "Authorization: Bearer oc_sk_..."
```

```json theme={null}
{ "data": { "url": "https://{your-prod-endpoint}/v1/calls/{callId}/recording/stream?expires=…&token=…" } }
```

Ese enlace redirige al audio (`audio/ogg`); OlivIA lee el fichero del almacenamiento del lado del servidor, de modo que tu sistema nunca recibe una credencial de almacenamiento. Devuelve `404` si no hay grabación y `503` si el almacenamiento no está disponible.
