Re-attempt warmup enablement for an account stuck in pending / not_started.
email_domains row for context).status: "pending" AND warmup_status: "not_started" — any other combination returns 409.POST /accounts/warmup/enable (idempotent — Instantly accepts already-warming emails and returns 200).status: "warming" / warmup_status: "warming" via compare-and-swap, so concurrent retries can’t double-apply.warming — it still has to accrue reputation over ~2–3 weeks before it graduates to active and can send. Track progress via getWarmupAnalytics.Idempotent. If Instantly was already warming the inbox from a prior partial attempt, the retry still returns 200 and transitions the DB row forward. Safe to call until success.Gate carefully. Retry is only valid when status === "pending" AND warmup_status === "not_started". If the account already warmed up, banned out, or graduated to active, this endpoint returns 409 — use getWarmupAnalytics to read current state instead.Status-vs-502 split.502 means Instantly rejected the call — try again after a short backoff.500 with the message “Warmup was enabled but failed to update account status” means Instantly accepted but our DB write failed. Safe to retry immediately; a second Instantly call is a no-op.getWarmupAnalytics to watch reputation climb; launchCampaign once status === "active".Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Supabase UUID of the email account. Must be owned by the caller and currently in status: pending + warmup_status: not_started.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Warmup re-enabled. Returns the refreshed account row.
Account row after the retry. On success, status is warming and warmup_status is warming.