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

# Transmitir eventos de despliegue de plantilla

> Transmite el progreso de un trabajo de despliegue o actualización como Server-Sent Events, con un evento por cada cambio de paso, hasta que termina.

Transmite el progreso de un trabajo de despliegue o de actualización para que no tengas que hacer polling. Con una clave de API, el ámbito es `templates:deploy`. Solo la cuenta que inició el trabajo puede seguirlo; cualquier otro ID de trabajo responde `TEMPLATE_DEPLOY_NOT_FOUND`.

La respuesta es un flujo de **Server-Sent Events** (`text/event-stream`), no JSON. Empieza con el estado actual del trabajo y después envía un evento `progress` cada vez que el trabajo cambia. Llega un evento `heartbeat` cada 15 segundos mientras no hay cambios, para mantener la conexión abierta. Cuando el trabajo llega a `succeeded` o `failed`, un evento `end` cierra el flujo. Como el estado sale de datos almacenados, puedes reconectarte en cualquier momento y obtener de nuevo el estado actual.

**deploy\_id** `string` *required*

El ID del trabajo.

### Eventos

**progress** `event`

El `data` es un objeto JSON con el estado del trabajo.

**Mostrar objeto**

**deploy\_id** `string`

El ID del trabajo.

**status** `string`

`queued`, `running`, `undoing`, `succeeded` o `failed`.

**current\_step** `string | null`

El paso que se ejecuta ahora, o `null`.

**steps** `object[]`

Los pasos del trabajo con `step`, `status`, `started_at` y `finished_at`, como en [Obtener trabajo de despliegue](https://docs.vertracloud.app/es-es/api-reference/endpoint/templates/deploy-status.md).

**error** `object | null`

El error legible (`code`, `message`, `step`) de un trabajo fallido, o `null`.

**heartbeat** `event`

Un mensaje de keep-alive. El `data` es un objeto vacío (`{}`).

**end** `event`

El trabajo terminó y el flujo se cierra. El `data` es `{ "deploy_id": "..." }`.

Los eventos nunca llevan salidas, recursos ni valores de variables. Cuando recibas `end`, lee el trabajo con [Obtener trabajo de despliegue](https://docs.vertracloud.app/es-es/api-reference/endpoint/templates/deploy-status.md) para obtener las salidas. Una salida secreta marcada como `once` se devuelve en esa primera lectura del trabajo terminado.

```bash cURL theme={null}
curl -N https://api.vertracloud.app/v1/template-deploys/3f6a9c12-7e4b-4d58-a1c0-5b8e2d9f7a63/events \
  -H "Authorization: Bearer $VERTRA_API_KEY" \
  -H "Accept: text/event-stream"
```

```text Response theme={null}
event: progress
data: {"deploy_id":"3f6a9c12-7e4b-4d58-a1c0-5b8e2d9f7a63","status":"running","current_step":"apps","steps":[{"step":"validate","status":"done","started_at":"2026-10-28T14:00:01Z","finished_at":"2026-10-28T14:00:02Z"},{"step":"apps","status":"running","started_at":"2026-10-28T14:00:02Z","finished_at":null},{"step":"start","status":"pending","started_at":null,"finished_at":null}],"error":null}

event: heartbeat
data: {}

event: progress
data: {"deploy_id":"3f6a9c12-7e4b-4d58-a1c0-5b8e2d9f7a63","status":"succeeded","current_step":null,"steps":[{"step":"validate","status":"done","started_at":"2026-10-28T14:00:01Z","finished_at":"2026-10-28T14:00:02Z"},{"step":"apps","status":"done","started_at":"2026-10-28T14:00:02Z","finished_at":"2026-10-28T14:00:20Z"},{"step":"start","status":"done","started_at":"2026-10-28T14:00:21Z","finished_at":"2026-10-28T14:00:30Z"}],"error":null}

event: end
data: {"deploy_id":"3f6a9c12-7e4b-4d58-a1c0-5b8e2d9f7a63"}
```

### Respuestas de error

Los errores se devuelven antes de abrir el flujo, como JSON.

**code** `string`

El código de error que indica el motivo del fallo. Valores posibles:

* `VALIDATION_ERROR`: `deploy_id` no es un ID válido (`400`).
* `API_KEY_SCOPE_DENIED`: La clave de API no tiene el ámbito `templates:deploy` (`403`).
* `TEMPLATE_DEPLOY_NOT_FOUND`: El trabajo no existe o pertenece a otra cuenta (`404`).
* `INTERNAL_SERVER_ERROR`: Fallo inesperado (`500`).

```json Error Response theme={null}
{
  "code": "TEMPLATE_DEPLOY_NOT_FOUND"
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.