---
title: "Edita una difusión (solo en estado draft/scheduled)"
method: PUT
path: "/workspaces/{workspaceId}/broadcasts/{id}"
tags: ["Broadcasts"]
---

# Edita una difusión (solo en estado draft/scheduled)

`PUT /workspaces/{workspaceId}/broadcasts/{id}`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/workspaces/{workspaceId}/broadcasts/{id}`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Solo se puede editar mientras está en `draft` o `scheduled`. Una vez que empezó a salir, ya no: lo que corresponde ahí es cancelarla.

## Path parameters

- `workspaceId` number, required
- `id` string, required

## Request body

- UpdateBroadcastDto
  - `filters` SegmentConditionDto[]
    - `field` string, required: Clave en items.data: '$status', '$city', '$tags', o un campo custom. Con `received_template` / `not_received_template`, el nombre de la plantilla (en cualquier idioma).
    - `operator` 'equals' | 'not_equals' | 'contains' | 'starts_with' | 'gt' | 'lt' | 'is_true' | 'is_false' | 'is_set' | 'is_not_set' | 'is_any_of' | 'has_tag' | 'between' | 'received_template' | 'not_received_template', required
    - `value` object: Valor a comparar. Array para `is_any_of`; `[desde, hasta]` para `between` (un extremo vacío = rango abierto por ese lado). Opcional para is_set/etc. Con `received_template` / `not_received_template`, los días hacia atrás (entero de 1 a 365): «recibió (o no) la plantilla `field` en los últimos N días». Un envío que el proveedor rechazó no cuenta como recibido.
  - `flow_id` string
  - `name` string
  - `recurrence` 'none' | 'daily' | 'weekly' | 'monthly'
  - `recurrence_dom` number
  - `recurrence_dow` number
  - `recurrence_time` string
  - `scheduled_at` string, nullable
  - `send_mode` 'now' | 'scheduled' | 'manual' | 'recurring'
  - `throttle_per_minute` number
  - `timezone` string

## Response `200`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` BroadcastResponseDto, required
    - `created_at` string, required
    - `created_by` number, nullable, required: Usuario que la creó. `null` si la creó una automatización.
    - `failed_count` number, required: Destinatarios cuyo flujo falló o no se pudo arrancar.
    - `filters` object[], required: Condiciones del segmento, tal como se guardaron. Se combinan con AND; vacío significa "todos los contactos".
    - `finished_at` string, nullable, required: Cuándo llegó a un estado terminal. `null` mientras siga viva.
    - `flow_id` string, required: UUID del flujo publicado que se ejecuta por cada contacto del segmento.
    - `id` string, required: UUID de la difusión.
    - `name` string, required: Nombre con el que la ves en el listado.
    - `next_run_at` string, nullable, required: Próximo disparo calculado de una difusión recurrente.
    - `recurrence` 'none' | 'daily' | 'weekly' | 'monthly', required
    - `recurrence_dom` number, nullable, required: Día del mes del disparo, 1–31 (se ajusta en meses cortos). Solo `monthly`.
    - `recurrence_dow` number, nullable, required: Día de la semana del disparo, 0 = domingo. Solo con `recurrence: "weekly"`.
    - `recurrence_time` string, nullable, required: Hora local del disparo automático, `HH:MM` en 24 h. Solo si es recurrente.
    - `scheduled_at` string, nullable, required: ISO 8601. Solo tiene valor con `send_mode: "scheduled"`.
    - `send_mode` 'now' | 'scheduled' | 'manual' | 'recurring', required: `now` la toma el próximo tick; `scheduled` espera `scheduled_at`; `manual` es una plantilla que dispara un nodo de flujo; `recurring` se dispara sola.
    - `sent_count` number, required: Destinatarios cuyo **flujo terminó** bien (`success`). No es «mensajes entregados»: un flujo con esperas (`wait_hours`) deja al destinatario en curso hasta que la corrida cierra, aunque el mensaje ya haya llegado. Lo entregado está en `delivered_count` del detalle y en `GET /broadcasts/{id}/recipients`.
    - `source_broadcast_id` string, nullable, required: Si esta fila es una **corrida** disparada desde una plantilla manual o recurrente, aquí va el id de esa plantilla. `null` en las difusiones normales.
    - `started_at` string, nullable, required: Cuándo empezó a despacharse. `null` mientras no arrancó.
    - `status` 'draft' | 'scheduled' | 'running' | 'completed' | 'cancelled', required: `draft` es la plantilla manual en reposo; `scheduled` espera su turno; `running` está despachando; `completed` y `cancelled` son terminales.
    - `throttle_per_minute` number, required: Techo de envíos por minuto que respeta el despachador.
    - `timezone` string, nullable, required: Zona horaria IANA con la que se interpreta `recurrence_time`.
    - `total_recipients` number, required: Contactos que quedaron materializados como destinatarios.
    - `updated_at` string, required
    - `workspace_id` number, required

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/fc6d3aad75de?raw)
