---
title: "Lista recordatorios del workspace (filtros: contact_id, status)"
method: GET
path: "/reminders"
tags: ["Reminders"]
---

# Lista recordatorios del workspace (filtros: contact_id, status)

`GET /reminders`

## Request

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

Ordenados por `scheduled_for` ascendente y topeados a 100. Incluye los ya enviados, cancelados y fallidos; filtra con `status=pending` para ver solo los que todavía van a salir.

El histórico crece con cada envío: con `limit` y `page` lo recorres completo, y sin esos parámetros la respuesta no cambia.

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

## Query parameters

- `contact_id` string, required
- `status` string, required
- `limit` number
- `page` number
- `paginate` boolean
- `starting_after` string

## 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
    - ReminderResponseDto[]
      - `channel_id` number, nullable, required: Canal con el que se guardó el recordatorio. **No decide por dónde sale**: al enviar, el canal se resuelve desde el contacto. Es informativo.
      - `contact_id` number, required: A quién se le va a escribir. Es el `id` del contacto del CRM.
      - `created_at` string, required
      - `created_by` 'agent' | 'user', required: Quién lo agendó: una persona desde el panel, o un Met.
      - `created_by_agent_id` number, nullable, required
      - `created_by_user_id` number, nullable, required
      - `error` string, nullable, required: Motivo del fallo cuando `status` es `failed`; `null` en cualquier otro caso.
      - `id` number, required
      - `language` string, required
      - `message` string, nullable, required: El texto que va a leer el contacto. En el camino por defecto se inyecta como la variable `1` de la plantilla.
      - `namespace` string, nullable, required
      - `note` string, nullable, required: Nota para el equipo. Es el **único** campo que no viaja al contacto.
      - `scheduled_for` string, required: Cuándo se envía, en UTC. Un valor sin offset se interpretó en la zona del workspace.
      - `sent_at` string, nullable, required: Cuándo salió de verdad. `null` mientras siga pendiente.
      - `sent_message_id` number, nullable, required: El mensaje que se creó en la conversación del contacto al enviarlo.
      - `status` 'pending' | 'sent' | 'cancelled' | 'failed', required: `pending` = agendado y todavía va a salir. `sent` = ya se le escribió al contacto. `cancelled` = se canceló antes de la hora. `failed` = la hora llegó y la entrega falló; el motivo está en `error`.
      - `template_name` string, required: Plantilla de WhatsApp aprobada con la que se envía. Queda congelada al crear.
      - `updated_at` string, required
      - `variables` object, required: Variables de la plantilla, por posición (`{"1": "..."}`).
      - `workspace_id` number, required
    - ReminderListPageDto
      - `data` ReminderResponseDto[], required
        - `channel_id` number, nullable, required: Canal con el que se guardó el recordatorio. **No decide por dónde sale**: al enviar, el canal se resuelve desde el contacto. Es informativo.
        - `contact_id` number, required: A quién se le va a escribir. Es el `id` del contacto del CRM.
        - `created_at` string, required
        - `created_by` 'agent' | 'user', required: Quién lo agendó: una persona desde el panel, o un Met.
        - `created_by_agent_id` number, nullable, required
        - `created_by_user_id` number, nullable, required
        - `error` string, nullable, required: Motivo del fallo cuando `status` es `failed`; `null` en cualquier otro caso.
        - `id` number, required
        - `language` string, required
        - `message` string, nullable, required: El texto que va a leer el contacto. En el camino por defecto se inyecta como la variable `1` de la plantilla.
        - `namespace` string, nullable, required
        - `note` string, nullable, required: Nota para el equipo. Es el **único** campo que no viaja al contacto.
        - `scheduled_for` string, required: Cuándo se envía, en UTC. Un valor sin offset se interpretó en la zona del workspace.
        - `sent_at` string, nullable, required: Cuándo salió de verdad. `null` mientras siga pendiente.
        - `sent_message_id` number, nullable, required: El mensaje que se creó en la conversación del contacto al enviarlo.
        - `status` 'pending' | 'sent' | 'cancelled' | 'failed', required: `pending` = agendado y todavía va a salir. `sent` = ya se le escribió al contacto. `cancelled` = se canceló antes de la hora. `failed` = la hora llegó y la entrega falló; el motivo está en `error`.
        - `template_name` string, required: Plantilla de WhatsApp aprobada con la que se envía. Queda congelada al crear.
        - `updated_at` string, required
        - `variables` object, required: Variables de la plantilla, por posición (`{"1": "..."}`).
        - `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/5d9ca294295c?raw)
