Start domain warming
Starts an automated warming policy on a verified sending domain.
POST
Starts an automated warming policy on a verified sending domain. Samva opens the first 24-hour campaign window immediately, then opens later windows from the saved growth policy after safe windows close. Direct sends are counted in the domain's window but never delayed. Responds with 201.
apiKeyheader
x-api-key<token>id*stringMatch
^dom_[0-9a-hjkmnp-tv-z]{16,24}$application/json- body
identity*stringValue in
"new""migrating""returning"initialDailyRecipients*integerRange
0 < value <= 1000000dailyGrowthPercent*integerRange
0 <= value <= 10000targetDailyRecipients*integerRange
0 < value <= 1000000Success
application/json- response
domain*plan*|nullbatches*array<>decisions*array<>evidence*holds*import { createClient } from "samva";const samva = createClient({ apiKey: process.env.SAMVA_API_KEY! });const result = await samva.email.createDomainWarmingPlan({ "id": "example", "identity": "new", "initialDailyRecipients": 1, "dailyGrowthPercent": 0, "targetDailyRecipients": 1});Example Response
{ "domain": { "id": "string", "domain": "string" }, "plan": { "id": "string", "status": "active", "identity": "new", "initialDailyRecipients": 0, "dailyGrowthPercent": 0, "targetDailyRecipients": 0, "holdReason": "string", "heldAt": "string", "pausedAt": "string", "completedAt": "string", "createdAt": "string", "updatedAt": "string" }, "batches": [ { "id": "string", "sequence": 0, "state": "scheduled", "startsAt": "string", "endsAt": "string", "allowanceRecipients": 0, "dailyGrowthPercent": 0, "targetDailyRecipients": 0, "reservedRecipients": 0, "acceptedRecipients": 0, "cancelledAt": "string", "createdAt": "string" } ], "decisions": [ { "id": "string", "kind": "plan-created", "batchId": "string", "actor": "string", "note": "string", "createdAt": "string" } ], "evidence": { "observedAt": "string", "windowHours": 0, "minimumSends": 0, "sent": 0, "bounced": 0, "complained": 0, "hourly": [ { "sent": 0, "bounced": 0, "complained": 0 } ], "bounceThreshold": 0, "complaintThreshold": 0, "verdict": "insufficient-evidence", "thresholdReason": "string" }, "holds": { "workspacePausedAt": "string", "workspacePauseReason": "string", "sendingStatus": "enabled" }}