GET /api/v1/signup-pages
Todas las páginas de suscripción de la organización, de la más reciente a la más antigua. De aquí sale el id que exigen las demás llamadas de páginas de suscripción.
Las filas no llevan HTML: el documento de una página pesa unos kilobytes, y veinte de ellos viajarían para nada. Pide las páginas una a una para leer su content.
Autorización
| Rol en la organización | Este endpoint |
|---|---|
OWNER | Permitido |
ADMIN | Permitido |
MEMBER | Permitido |
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|---|---|
page | number | Número de página, 1 por defecto |
limit | number | Filas por página, 20 por defecto, 100 como máximo |
search | string | Coincide con el nombre interno y con el slug |
status | string | draft o published. Cualquier otro valor responde 400 |
listId | string | Solo las páginas que alimentan esta lista |
Ejemplo
bash
curl -H "x-api-key: $AGENTMAIL_API_KEY" \
"https://www.agentsmail.io/api/v1/signup-pages?status=published&limit=50"Respuesta
200 OK: las páginas de la organización. Una organización sin ninguna responde con un array vacío.400 Bad Request:statusno es nidraftnipublished. Devolverlo todo daría a entender que ninguna página tiene el estado que pediste.401 Unauthorized: clave ausente o no válida, o su propietario dejó la organización.429 Too Many Requests: la clave superó su límite de peticiones.
Campos de la respuesta
| Campo | Tipo | Descripción |
|---|---|---|
success | boolean | Indica si la operación tuvo éxito |
data | array | Las páginas de suscripción |
data[].id | string | Identificador único: es el id que reciben todas las demás llamadas de páginas |
data[].name | string | Nombre interno, el que solo ve tu equipo |
data[].slug | string | La última parte de la dirección pública |
data[].status | string | draft o published |
data[].listId | string | La lista que recibe a los suscriptores |
data[].listName | string | Nombre de esa lista, para que no tengas que leerla por separado |
data[].sourceTemplateName | string | null | El tema del que se copió la página, null para HTML pegado |
data[].createdAt | string | Fecha de creación ISO |
data[].updatedAt | string | Fecha ISO del último cambio |
pagination.total | number | Número total de páginas que cumplen los filtros |
pagination.page | number | Número de la página actual |
pagination.limit | number | Filas por página |
pagination.totalPages | number | Número de páginas de resultados |
Ejemplo de respuesta
json
{
"success": true,
"data": [
{
"id": "3d3d3d3d-4444-4eee-9fff-000011112222",
"name": "Newsletter footer",
"slug": "newsletter",
"status": "published",
"listId": "9f8e7d6c-1111-4bbb-8ccc-ddddeeeeffff",
"listName": "Subscribers",
"sourceTemplateName": "Minimal",
"createdAt": "2026-08-01T10:00:00.000Z",
"updatedAt": "2026-08-02T10:00:00.000Z"
}
],
"pagination": {"total": 1, "page": 1, "limit": 20, "totalPages": 1}
}Notas
contentno está en las filas. Lee una página individual para obtener su HTML.- Un
listIdque pertenece a otra organización simplemente no coincide con nada: el filtro nunca cruza el límite de la organización.