List sign-up pages

GET /api/v1/signup-pages Every sign-up page of the organization, newest first. This is where the id the other sign-up page calls require comes from. The rows carry no HTML: a page document weighs a few kilobytes, and twenty of them would travel for nothing. Ask for a page one by one to read its content.

Authorization

Role in the organizationThis endpoint
OWNERAllowed
ADMINAllowed
MEMBERAllowed
A key carries the role its creator holds in this organization — never a role on AgentsMail itself. See API keys.

Query parameters

ParameterTypeDescription
pagenumberPage number, 1 by default
limitnumberRows per page, 20 by default, 100 at most
searchstringMatches the internal name and the slug
statusstringdraft or published. Anything else answers 400
listIdstringOnly the pages that feed this list

Example

bash
curl -H "x-api-key: $AGENTMAIL_API_KEY" \
  "https://www.agentsmail.io/api/v1/signup-pages?status=published&limit=50"

Response

  • 200 OK — the pages of the organization. An organization with none answers an empty array.
  • 400 Bad Requeststatus is neither draft nor published. Returning everything would suggest no page carries the status you asked for.
  • 401 Unauthorized — missing or invalid key, or its owner left the organization.
  • 429 Too Many Requests — the key is over its rate limit.

Response fields

FieldTypeDescription
successbooleanIndicates if the operation was successful
dataarrayThe sign-up pages
data[].idstringUnique identifier — this is the id every other page call takes
data[].namestringInternal name, the one only your team sees
data[].slugstringThe last part of the public address
data[].statusstringdraft or published
data[].listIdstringThe list that receives the subscribers
data[].listNamestringName of that list, so you do not have to read it separately
data[].sourceTemplateNamestring | nullThe theme the page was copied from, null for pasted HTML
data[].createdAtstringISO creation date
data[].updatedAtstringISO date of the last change
pagination.totalnumberTotal number of pages matching the filters
pagination.pagenumberCurrent page number
pagination.limitnumberRows per page
pagination.totalPagesnumberNumber of pages of results

Example response

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}
}

Notes

  • content is not in the rows. Read a single page to get its HTML.
  • A listId belonging to another organization simply matches nothing: the filter never crosses the organization boundary.