DRAFT) and you're ready to put it on a real domain. It puts this ZapSite live on 1 to 100 of the customer's own domains.ACTIVE (check or enable it via the domain-protection endpoints first). This is checked up front, so if even one domain lacks active protection the whole request is rejected with a 400 and nothing is queued. Other ineligible domains do NOT fail the call: a domain that isn't found, isn't ACTIVE, or is already serving another live or in-progress deployment is skipped individually and reported in data.skipped[] with a reason, while the rest still deploy. So a 202 can come back with some domains in data.queued[] and others in data.skipped[].copy), otherwise you get a 400 telling you to generate it. Each accepted domain is created as a QUEUED deployment and progresses QUEUED -> AWAITING_DNS -> DNS_WRITTEN -> DEPLOYING -> LIVE (or FAILED); poll GET /:id and watch deployments[].status.@/www) and clears any existing forwarding on it first. This is a real go-live action, not a preview.POST /zap-sites/SITECCHMN86W734P8PMM3E53EW82HCC2/deploy?userId=H8M9JV2S9HMPYFQW393AZHQVD4XM
{"domains": ["example.com"]}curl --location 'https://customers.coldmailreseller.com/api/v1/integration/zap-sites/SITECCHMN86W734P8PMM3E53EW82HCC2/deploy?userId=H8M9JV2S9HMPYFQW393AZHQVD4XM' \
--header 'cmr-x-api-key: <api-key>' \
--header 'Content-Type: application/json' \
--data '{
"domains": [
"example.com"
],
"indexing": true,
"tracking": true,
"form_enabled": true
}'{
"status": 202,
"message": "ZapSite deployment started",
"data": {
"queued": [
{
"id": "6bbaaa0a-d8a7-4619-b329-9cde8820fd19",
"domain": "example.com",
"status": "QUEUED",
"lastError": null,
"indexing": true,
"tracking": true,
"formEnabled": true,
"createdAt": "string",
"updatedAt": "string"
}
],
"skipped": [
{
"domain": "string",
"reason": "Domain not found"
}
]
}
}