---
title: "Lista las difusiones del workspace"
method: GET
path: "/workspaces/{workspaceId}/broadcasts"
tags: ["Broadcasts"]
---

# Lista las difusiones del workspace

`GET /workspaces/{workspaceId}/broadcasts`

## Request

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

Las difusiones del workspace con su estado. Es por donde se ve qué se mandó, qué está programado y qué quedó a medias.

Sin parámetros devuelve las de siempre, topeadas en 500 filas. Con `paginate=true` la respuesta es `{ data, has_more, next_cursor }`: pasa `next_cursor` en `starting_after` para pedir la página siguiente, hasta que `has_more` sea `false`. En esa forma cada página son plantillas y difusiones sueltas, con todas sus corridas en `runs`.

## Path parameters

- `workspaceId` number, required

## Query parameters

- `paginate` boolean
- `starting_after` string
- `limit` number

## Response `200`

Sin `paginate` ni `starting_after`, la forma de siempre. Con ellos, `{ data, has_more, next_cursor }`.

- 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` union, required
    - BroadcastListItemDto[]
      - `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.
      - `flow_name` string, nullable, required: Nombre del flujo que ejecuta. `null` si el flujo ya no existe.
      - `id` string, required: UUID de la difusión.
      - `last_run_at` string, nullable: Cuándo se disparó por última vez. Solo en manuales/recurrentes.
      - `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.
      - `runs` BroadcastListItemDto[]: Corridas disparadas desde esta plantilla. Solo en manuales/recurrentes.
      - `runs_count` number: Cuántas corridas tuvo la plantilla. Solo en manuales/recurrentes.
      - `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
    - BroadcastListPageDto
      - `data` BroadcastListItemDto[], 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.
        - `flow_name` string, nullable, required: Nombre del flujo que ejecuta. `null` si el flujo ya no existe.
        - `id` string, required: UUID de la difusión.
        - `last_run_at` string, nullable: Cuándo se disparó por última vez. Solo en manuales/recurrentes.
        - `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.
        - `runs` BroadcastListItemDto[]: Corridas disparadas desde esta plantilla. Solo en manuales/recurrentes.
        - `runs_count` number: Cuántas corridas tuvo la plantilla. Solo en manuales/recurrentes.
        - `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
      - `has_more` boolean, required: `true` si hay más filas después de esta página.
      - `next_cursor` string, nullable, required: Cursor opaco para `starting_after`. `null` cuando `has_more` es `false`.

## 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.
- `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)
