| Field | Type | Required |
|---|---|---|
id | string (UUID) | Yes |
| Field | Type | Notes |
|---|---|---|
name | string | Max 255 chars |
cta_label | string | Max 255 chars |
theme | string | One of auto, slate, mint, carbon |
campaign_context | string | |
notify_email | string | null | Email for lead alerts; null/"" clears it |
slack_webhook | string | null | Must start with https://hooks.slack.com/; null/"" clears it |
form_fields | array | null | Max 12 items. null resets to renderer defaults. Order of the array is the display order. Each item: { name, label, type, required } |
form_fields[] item schema:| Field | Type | Notes |
|---|---|---|
name | string | Alphanumeric/underscore only (^[a-zA-Z0-9_]+$), must be unique within the array |
label | string | Max 120 chars |
type | string | One of text, email, textarea |
required | boolean |
curl --location --request PATCH 'https://api.zapmail.ai/api/v2/zap-sites/' \
--header 'x-auth-zapmail: YOUR_API_KEY' \
--header 'x-workspace-id: workspace_123' \
--header 'x-service-provider: GOOGLE' \
--header 'Content-Type: application/json' \
--data-raw '{
"name": "Example Q4 Cold Outreach — v2",
"notify_email": "random@example.com",
"form_fields": [
{
"name": "work_email",
"label": "Work email",
"type": "email",
"required": true
},
{
"name": "company",
"label": "Company",
"type": "text",
"required": false
},
{
"name": "message",
"label": "What are you looking for?",
"type": "textarea",
"required": false
}
]
}'{
"status": 200,
"message": "ZapSite updated successfully",
"data": {
"id": "5b1e0c2a-4f3e-4a9d-9c7c-6a2b6e1a7d10",
"name": "Example Q4 Cold Outreach — v2",
"destinationUrl": "https://example.com/pricing",
"ctaLabel": "Book a demo",
"theme": "auto",
"status": "LIVE",
"version": 2,
"notifyEmail": "random@example.com",
"slackWebhook": null,
"formFields": [
{
"name": "work_email",
"label": "Work email",
"type": "email",
"required": true
},
{
"name": "company",
"label": "Company",
"type": "text",
"required": false
},
{
"name": "message",
"label": "What are you looking for?",
"type": "textarea",
"required": false
}
],
"updatedAt": "2026-09-04T10:30:00.000Z",
"deployments": [],
"counts": {
"leads": 1,
"visitors": 48
}
}
}