GET /api/v1/signup-page-templates
The sign-up page themes we maintain, in catalogue order. Take the content of one, send it as the
content of your page, and you have a working page without writing a line of HTML.
Read only. There is no endpoint to add, change or remove a theme: the catalogue belongs to the
product, not to an organization, and it is the same for every key.
Authorization
| Role in the organization | This endpoint |
|---|---|
OWNER | Allowed |
ADMIN | Allowed |
MEMBER | Allowed |
Example
bash
curl -H "x-api-key: $AGENTMAIL_API_KEY" \
"https://www.agentsmail.io/api/v1/signup-page-templates"Response
200 OK— the published themes, in catalogue order.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
| Field | Type | Description |
|---|---|---|
success | boolean | Indicates if the operation was successful |
data | array | The themes |
data[].id | string | Unique identifier for the theme |
data[].name | string | Its name — put it in sourceTemplateName when you copy it |
data[].description | string | null | One line about what it looks like |
data[].content | string | The HTML to copy into your page |
data[].previewImageUrl | string | null | A thumbnail of the theme, when there is one |
data[].position | number | Catalogue order, lowest first |
data[].createdAt | string | ISO creation date |
data[].updatedAt | string | ISO date of the last change |
Example response
json
{
"success": true,
"data": [
{
"id": "2f2f2f2f-5555-4aaa-8bbb-999900001111",
"name": "Minimal",
"description": "One column, one form, nothing else",
"content": "<html><body><h1>{{heroTitle}}</h1>{{form}}{{poweredBy}}</body></html>",
"previewImageUrl": "https://www.agentsmail.io/thumbnails/minimal.png",
"position": 1,
"createdAt": "2026-07-01T09:00:00.000Z",
"updatedAt": "2026-08-02T10:00:00.000Z"
}
]
}Notes
- No pagination and no search here. The whole catalogue comes back in one call — filter it on your side.
- What comes back is published, always. A theme still being prepared is not in this list, and nothing in the answer says a theme could be anything else.
- Every theme carries
{{form}}, so a copy is accepted as-is. Edit it and you own the result: the{{form}}placeholder has to survive your edits.